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/Manifest1
-rw-r--r--app-emulation/aranym/aranym-1.1.0-r1.ebuild116
-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-conditional-installs.patch93
-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.xml19
-rw-r--r--app-emulation/bochs/Manifest3
-rw-r--r--app-emulation/bochs/bochs-2.6.10.ebuild (renamed from app-emulation/bochs/bochs-2.6.9.ebuild)11
-rw-r--r--app-emulation/bochs/bochs-2.7.ebuild83
-rw-r--r--app-emulation/bochs/bochs-9999.ebuild85
-rw-r--r--app-emulation/bochs/metadata.xml2
-rw-r--r--app-emulation/buildah/Manifest2
-rw-r--r--app-emulation/buildah/buildah-1.11.2.ebuild57
-rw-r--r--app-emulation/buildah/buildah-1.11.3.ebuild57
-rw-r--r--app-emulation/buildah/metadata.xml16
-rw-r--r--app-emulation/cadvisor/Manifest3
-rw-r--r--app-emulation/cadvisor/cadvisor-0.33.0-r1.ebuild43
-rw-r--r--app-emulation/cadvisor/cadvisor-0.33.1.ebuild43
-rw-r--r--app-emulation/cadvisor/cadvisor-0.34.0.ebuild43
-rw-r--r--app-emulation/cadvisor/files/cadvisor.initd18
-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/Manifest6
-rw-r--r--app-emulation/cloud-init/cloud-init-17.2.ebuild80
-rw-r--r--app-emulation/cloud-init/cloud-init-22.2.2.ebuild (renamed from app-emulation/cloud-init/cloud-init-18.4-r1.ebuild)71
-rw-r--r--app-emulation/cloud-init/cloud-init-22.4.ebuild (renamed from app-emulation/cloud-init/cloud-init-18.5.ebuild)73
-rw-r--r--app-emulation/cloud-init/cloud-init-23.4.ebuild95
-rw-r--r--app-emulation/cloud-init/cloud-init-9999.ebuild70
-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/18.5-fix-invalid-string-format.patch46
-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-18.4-gentoo-support-upstream-templates.patch91
-rw-r--r--app-emulation/cloud-init/files/cloud.cfg79
-rw-r--r--app-emulation/cloud-init/files/hosts.gentoo.tmpl23
-rw-r--r--app-emulation/cloud-init/metadata.xml9
-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/Manifest4
-rw-r--r--app-emulation/conmon/conmon-0.3.0.ebuild42
-rw-r--r--app-emulation/conmon/conmon-0.4.0.ebuild42
-rw-r--r--app-emulation/conmon/conmon-2.0.0.ebuild42
-rw-r--r--app-emulation/conmon/conmon-2.0.1.ebuild42
-rw-r--r--app-emulation/conmon/metadata.xml11
-rw-r--r--app-emulation/containerd/Manifest4
-rw-r--r--app-emulation/containerd/containerd-1.2.10.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/files/containerd.initd24
-rw-r--r--app-emulation/containerd/metadata.xml31
-rw-r--r--app-emulation/containers-storage/Manifest4
-rw-r--r--app-emulation/containers-storage/containers-storage-1.13.1.ebuild110
-rw-r--r--app-emulation/containers-storage/containers-storage-1.13.3.ebuild110
-rw-r--r--app-emulation/containers-storage/containers-storage-1.13.5.ebuild102
-rw-r--r--app-emulation/containers-storage/metadata.xml24
-rw-r--r--app-emulation/cri-o/Manifest4
-rw-r--r--app-emulation/cri-o/cri-o-1.10.6.ebuild105
-rw-r--r--app-emulation/cri-o/cri-o-1.13.9.ebuild112
-rw-r--r--app-emulation/cri-o/cri-o-1.15.1.ebuild107
-rw-r--r--app-emulation/cri-o/cri-o-1.15.2.ebuild107
-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.xml31
-rw-r--r--app-emulation/cri-tools/Manifest4
-rw-r--r--app-emulation/cri-tools/cri-tools-1.14.0.ebuild29
-rw-r--r--app-emulation/cri-tools/cri-tools-1.15.0.ebuild29
-rw-r--r--app-emulation/cri-tools/cri-tools-1.16.0.ebuild29
-rw-r--r--app-emulation/cri-tools/cri-tools-1.16.1.ebuild36
-rw-r--r--app-emulation/cri-tools/metadata.xml11
-rw-r--r--app-emulation/crossover-bin/Manifest27
-rw-r--r--app-emulation/crossover-bin/crossover-bin-12.5.0-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild134
-rw-r--r--app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild134
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.0.0.ebuild143
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.0.1.ebuild146
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.1.0.ebuild146
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.2.0.ebuild149
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.3.0.ebuild148
-rw-r--r--app-emulation/crossover-bin/crossover-bin-15.3.1.ebuild148
-rw-r--r--app-emulation/crossover-bin/crossover-bin-16.0.0.ebuild148
-rw-r--r--app-emulation/crossover-bin/crossover-bin-16.2.5.ebuild148
-rw-r--r--app-emulation/crossover-bin/crossover-bin-17.5.0-r1.ebuild148
-rw-r--r--app-emulation/crossover-bin/crossover-bin-17.5.0.ebuild147
-rw-r--r--app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-17.5.1.ebuild)150
-rw-r--r--app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-18.0.0.ebuild)134
-rw-r--r--app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-18.1.0.ebuild)130
-rw-r--r--app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-18.5.0.ebuild)120
-rw-r--r--app-emulation/crossover-bin/metadata.xml9
-rw-r--r--app-emulation/dinero/dinero-4.7-r1.ebuild19
-rw-r--r--app-emulation/dinero/metadata.xml2
-rw-r--r--app-emulation/diskimage-builder/Manifest4
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-2.28.0.ebuild42
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-2.28.2.ebuild42
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild (renamed from app-emulation/diskimage-builder/diskimage-builder-2.27.2.ebuild)19
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-9999.ebuild19
-rw-r--r--app-emulation/diskimage-builder/metadata.xml2
-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/Manifest2
-rw-r--r--app-emulation/docker-compose/docker-compose-1.24.0.ebuild68
-rw-r--r--app-emulation/docker-compose/docker-compose-1.24.1.ebuild68
-rw-r--r--app-emulation/docker-compose/files/docker-compose-1.24.0-setup-py.patch58
-rw-r--r--app-emulation/docker-compose/metadata.xml11
-rw-r--r--app-emulation/docker-credential-helpers/Manifest2
-rw-r--r--app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.0.ebuild58
-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.ebuild10
-rw-r--r--app-emulation/docker-machine-kvm/metadata.xml2
-rw-r--r--app-emulation/docker-machine/docker-machine-0.13.0.ebuild2
-rw-r--r--app-emulation/docker-machine/metadata.xml2
-rw-r--r--app-emulation/docker-proxy/Manifest4
-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/metadata.xml19
-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-runc/Manifest1
-rw-r--r--app-emulation/docker-runc/docker-runc-1.0.0_rc4_p20180122.ebuild59
-rw-r--r--app-emulation/docker-runc/metadata.xml16
-rw-r--r--app-emulation/docker-swarm/Manifest5
-rw-r--r--app-emulation/docker-swarm/docker-swarm-1.2.5.ebuild82
-rw-r--r--app-emulation/docker-swarm/metadata.xml10
-rw-r--r--app-emulation/docker/Manifest4
-rw-r--r--app-emulation/docker/docker-18.09.9.ebuild308
-rw-r--r--app-emulation/docker/docker-19.03.2.ebuild308
-rw-r--r--app-emulation/docker/docker-19.03.3.ebuild309
-rw-r--r--app-emulation/docker/docker-19.03.4.ebuild309
-rw-r--r--app-emulation/docker/metadata.xml51
-rw-r--r--app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild74
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-as.patch12
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-lto.patch27
-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/Manifest6
-rw-r--r--app-emulation/dxvk/dxvk-1.10.3-r1.ebuild152
-rw-r--r--app-emulation/dxvk/dxvk-2.3.1-r1.ebuild191
-rw-r--r--app-emulation/dxvk/dxvk-9999.ebuild191
-rw-r--r--app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch17
-rw-r--r--app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch14
-rw-r--r--app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch7
-rw-r--r--app-emulation/dxvk/metadata.xml21
-rw-r--r--app-emulation/dynamips/Manifest2
-rw-r--r--app-emulation/dynamips/dynamips-0.2.23.ebuild (renamed from app-emulation/dynamips/dynamips-0.2.18.ebuild)26
-rw-r--r--app-emulation/dynamips/metadata.xml13
-rw-r--r--app-emulation/edumips64/Manifest2
-rw-r--r--app-emulation/edumips64/edumips64-1.1.ebuild46
-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/Manifest5
-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-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.xml22
-rw-r--r--app-emulation/firecracker-bin/Manifest6
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild87
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild87
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild87
-rw-r--r--app-emulation/firecracker-bin/metadata.xml15
-rw-r--r--app-emulation/firecracker/Manifest106
-rw-r--r--app-emulation/firecracker/firecracker-0.18.0.ebuild152
-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.xml14
-rw-r--r--app-emulation/free42/Manifest8
-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-2.5.16-fix-makefile.patch39
-rw-r--r--app-emulation/free42/files/free42-2.5.3-fix-makefile.patch62
-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.patch64
-rw-r--r--app-emulation/free42/free42-2.0.20.ebuild50
-rw-r--r--app-emulation/free42/free42-2.5.24.ebuild (renamed from app-emulation/free42/free42-2.5.9.ebuild)17
-rw-r--r--app-emulation/free42/free42-3.1.3.ebuild (renamed from app-emulation/free42/free42-2.5.10.ebuild)25
-rw-r--r--app-emulation/free42/free42-3.1.7.ebuild (renamed from app-emulation/free42/free42-2.5.3.ebuild)28
-rw-r--r--app-emulation/free42/free42-3.1.8.ebuild45
-rw-r--r--app-emulation/free42/metadata.xml16
-rw-r--r--app-emulation/fs-uae-launcher/Manifest2
-rw-r--r--app-emulation/fs-uae-launcher/files/fs-uae-launcher-2.8.3-QApplication.patch13
-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.0.ebuild)55
-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.0.ebuild)38
-rw-r--r--app-emulation/fs-uae/metadata.xml2
-rw-r--r--app-emulation/fuse-utils/Manifest1
-rw-r--r--app-emulation/fuse-utils/files/remove-local-prefix.patch22
-rw-r--r--app-emulation/fuse-utils/fuse-utils-1.4.1.ebuild32
-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)28
-rw-r--r--app-emulation/fuse-utils/metadata.xml11
-rw-r--r--app-emulation/fuse/Manifest3
-rw-r--r--app-emulation/fuse/files/remove-local-prefix.patch18
-rw-r--r--app-emulation/fuse/fuse-1.5.6.ebuild68
-rw-r--r--app-emulation/fuse/fuse-1.5.7.ebuild68
-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.5-flags.patch28
-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.5.ebuild)38
-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.ebuild51
-rw-r--r--app-emulation/gallium-nine-standalone/metadata.xml2
-rw-r--r--app-emulation/ganeti-instance-debootstrap/Manifest2
-rw-r--r--app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11-r1.ebuild32
-rw-r--r--app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.16.ebuild45
-rw-r--r--app-emulation/ganeti-instance-debootstrap/metadata.xml15
-rw-r--r--app-emulation/ganeti-instance-image/Manifest1
-rw-r--r--app-emulation/ganeti-instance-image/ganeti-instance-image-0.6-r2.ebuild48
-rw-r--r--app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild49
-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/ganeti/Manifest6
-rw-r--r--app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch122
-rw-r--r--app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch122
-rw-r--r--app-emulation/ganeti/files/fix_ftbfs_with_sphinx_1.447
-rw-r--r--app-emulation/ganeti/files/ganeti-2.10-rundir.patch35
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-add-pgrep.patch25
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-daemon-util-tests.patch38
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-dont-nest-libdir.patch49
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-dont-print-man-help.patch13
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-tests.patch13
-rw-r--r--app-emulation/ganeti/files/ganeti-2.12-qemu-enable-kvm.patch12
-rw-r--r--app-emulation/ganeti/files/ganeti-2.12-start-stop-daemon-args.patch39
-rw-r--r--app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch21
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-daemon-util.patch53
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-dont-invert-return-values-for-man-warnings.patch10
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-kvmd-run-as-daemon-user.patch33
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-noded-must-run-as-root.patch50
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-python-mock.patch26
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-respect-HFLAGS.patch12
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15-use-balloon-device.patch13
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15.2-bdev_py.patch16
-rw-r--r--app-emulation/ganeti/files/ganeti-2.15.2-remove-sandbox-failing-tests.patch58
-rw-r--r--app-emulation/ganeti/files/ganeti-2.16-kvmd-run-as-daemon-user.patch30
-rw-r--r--app-emulation/ganeti/files/ganeti-2.16-noded-must-run-as-root.patch26
-rw-r--r--app-emulation/ganeti/files/ganeti-2.17-relax-deps.patch21
-rw-r--r--app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch18
-rw-r--r--app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch18
-rw-r--r--app-emulation/ganeti/files/ganeti-kvm-poweroff.confd4
-rw-r--r--app-emulation/ganeti/files/ganeti-kvm-poweroff.initd57
-rw-r--r--app-emulation/ganeti/files/ganeti-lockdir.patch15
-rw-r--r--app-emulation/ganeti/files/ganeti.confd-r219
-rw-r--r--app-emulation/ganeti/files/ganeti.initd-r396
-rw-r--r--app-emulation/ganeti/files/ganeti.initd-r496
-rw-r--r--app-emulation/ganeti/ganeti-2.15.2-r5.ebuild331
-rw-r--r--app-emulation/ganeti/ganeti-2.15.2-r6.ebuild340
-rw-r--r--app-emulation/ganeti/ganeti-2.15.2-r7.ebuild365
-rw-r--r--app-emulation/ganeti/ganeti-2.15.2-r8.ebuild378
-rw-r--r--app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild349
-rw-r--r--app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild349
-rw-r--r--app-emulation/ganeti/metadata.xml39
-rw-r--r--app-emulation/genymotion-bin/Manifest2
-rw-r--r--app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild123
-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/Manifest2
-rw-r--r--app-emulation/glean/glean-1.10.3.ebuild27
-rw-r--r--app-emulation/glean/glean-1.23.0-r1.ebuild25
-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.xml11
-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.xml (renamed from app-emulation/ganeti-instance-image/metadata.xml)2
-rw-r--r--app-emulation/gxemul/Manifest2
-rw-r--r--app-emulation/gxemul/files/0.6.0-fix-mkstemp-test.patch10
-rw-r--r--app-emulation/gxemul/files/0.6.0-fix-mymkstemp.patch11
-rw-r--r--app-emulation/gxemul/files/gxemul-0.6.0-gcc46.patch (renamed from app-emulation/gxemul/files/0.6.0-gcc46.patch)0
-rw-r--r--app-emulation/gxemul/files/gxemul-0.6.0-no-doxygen.patch21
-rw-r--r--app-emulation/gxemul/gxemul-0.6.2.ebuild (renamed from app-emulation/gxemul/gxemul-0.6.0-r1.ebuild)24
-rw-r--r--app-emulation/gxemul/metadata.xml2
-rw-r--r--app-emulation/hercules-sdl-crypto/Manifest1
-rw-r--r--app-emulation/hercules-sdl-crypto/files/cmakefix.patch155
-rw-r--r--app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-crypto/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-decnumber/Manifest1
-rw-r--r--app-emulation/hercules-sdl-decnumber/files/cmakefix.patch159
-rw-r--r--app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-decnumber/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-softfloat/Manifest1
-rw-r--r--app-emulation/hercules-sdl-softfloat/files/cmakefix.patch159
-rw-r--r--app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-softfloat/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-telnet/Manifest1
-rw-r--r--app-emulation/hercules-sdl-telnet/files/cmakefix.patch155
-rw-r--r--app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-telnet/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl/Manifest1
-rw-r--r--app-emulation/hercules-sdl/files/gen_hashes.sh24
-rw-r--r--app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch29
-rw-r--r--app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild85
-rw-r--r--app-emulation/hercules-sdl/metadata.xml22
-rw-r--r--app-emulation/hercules/Manifest3
-rw-r--r--app-emulation/hercules/files/hercules-3.09-aliasing.patch41
-rw-r--r--app-emulation/hercules/files/hercules-3.13-htmldir.patch25
-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.patch379
-rw-r--r--app-emulation/hercules/files/hercules-3.13-user-install.patch21
-rw-r--r--app-emulation/hercules/hercules-3.10.ebuild48
-rw-r--r--app-emulation/hercules/hercules-3.13-r1.ebuild (renamed from app-emulation/hercules/hercules-3.12.ebuild)40
-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.ebuild31
-rw-r--r--app-emulation/img/metadata.xml8
-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.xml8
-rw-r--r--app-emulation/libcacard/Manifest2
-rw-r--r--app-emulation/libcacard/files/libcacard-0.1.2-underlinking.patch354
-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/Manifest3
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild44
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild (renamed from app-emulation/libguestfs-appliance/libguestfs-appliance-1.36.1.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.ebuild173
-rw-r--r--app-emulation/libguestfs/libguestfs-1.36.15.ebuild178
-rw-r--r--app-emulation/libguestfs/libguestfs-1.38.6.ebuild174
-rw-r--r--app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild255
-rw-r--r--app-emulation/libguestfs/metadata.xml35
-rw-r--r--app-emulation/libpod/Manifest2
-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-1.5.1-r1.ebuild142
-rw-r--r--app-emulation/libpod/libpod-1.6.2.ebuild142
-rw-r--r--app-emulation/libpod/metadata.xml32
-rw-r--r--app-emulation/libspectrum/Manifest3
-rw-r--r--app-emulation/libspectrum/files/remove-local-prefix.patch18
-rw-r--r--app-emulation/libspectrum/libspectrum-1.4.2.ebuild43
-rw-r--r--app-emulation/libspectrum/libspectrum-1.5.0.ebuild (renamed from app-emulation/libspectrum/libspectrum-1.4.4.ebuild)24
-rw-r--r--app-emulation/libspectrum/metadata.xml11
-rw-r--r--app-emulation/libvirt-glib/Manifest4
-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-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.xml8
-rw-r--r--app-emulation/libvirt/Manifest16
-rw-r--r--app-emulation/libvirt/files/README.gentoo-r3 (renamed from app-emulation/libvirt/files/README.gentoo-r2)6
-rw-r--r--app-emulation/libvirt/files/libvirt-1.2.16-fix_paths_in_libvirt-guests_sh.patch19
-rw-r--r--app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch42
-rw-r--r--app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch222
-rw-r--r--app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch84
-rw-r--r--app-emulation/libvirt/files/libvirt-5.2.0-do-not-use-sysconf.patch170
-rw-r--r--app-emulation/libvirt/files/libvirt-5.2.0-fix-paths-for-apparmor.patch116
-rw-r--r--app-emulation/libvirt/files/libvirt-5.2.0-md-clear.patch36
-rw-r--r--app-emulation/libvirt/files/libvirt-5.6.0-do-not-use-sysconf.patch174
-rw-r--r--app-emulation/libvirt/files/libvirt-5.7.0-do-not-use-sysconf.patch170
-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.patch32
-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/libvirt-guests.init-r3236
-rw-r--r--app-emulation/libvirt/files/libvirtd.init-r1736
-rw-r--r--app-emulation/libvirt/files/libvirtd.init-r19 (renamed from app-emulation/libvirt/files/libvirtd.init-r18)8
-rw-r--r--app-emulation/libvirt/files/libvirtd.service.conf10
-rw-r--r--app-emulation/libvirt/files/virtlockd.init-r2 (renamed from app-emulation/libvirt/files/virtlockd.init-r1)6
-rw-r--r--app-emulation/libvirt/files/virtlogd.init-r2 (renamed from app-emulation/libvirt/files/virtlogd.init-r1)6
-rw-r--r--app-emulation/libvirt/libvirt-10.0.0-r2.ebuild367
-rw-r--r--app-emulation/libvirt/libvirt-10.1.0-r1.ebuild366
-rw-r--r--app-emulation/libvirt/libvirt-10.2.0.ebuild365
-rw-r--r--app-emulation/libvirt/libvirt-10.3.0-r1.ebuild366
-rw-r--r--app-emulation/libvirt/libvirt-5.2.0-r2.ebuild384
-rw-r--r--app-emulation/libvirt/libvirt-5.5.0-r1.ebuild379
-rw-r--r--app-emulation/libvirt/libvirt-5.6.0.ebuild379
-rw-r--r--app-emulation/libvirt/libvirt-5.8.0.ebuild383
-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.ebuild377
-rw-r--r--app-emulation/libvirt/metadata.xml206
-rw-r--r--app-emulation/lxc-templates/Manifest1
-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.3.ebuild28
-rw-r--r--app-emulation/lxc-templates/metadata.xml11
-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-2.0.6-bash-completion.patch27
-rw-r--r--app-emulation/lxc/files/lxc-2.1.1-cgroups-enable-container-without-CAP_SYS_ADMIN.patch164
-rw-r--r--app-emulation/lxc/files/lxc-2.1.1-cve-2018-6556.patch118
-rw-r--r--app-emulation/lxc/files/lxc-2.1.1-fix-cgroup2-detection.patch26
-rw-r--r--app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch27
-rw-r--r--app-emulation/lxc/files/lxc.initd.7124
-rw-r--r--app-emulation/lxc/files/lxc.initd.8131
-rw-r--r--app-emulation/lxc/files/lxc_at.service.414
-rw-r--r--app-emulation/lxc/lxc-2.1.1-r1.ebuild215
-rw-r--r--app-emulation/lxc/lxc-3.0.3.ebuild163
-rw-r--r--app-emulation/lxc/lxc-3.1.0-r1.ebuild161
-rw-r--r--app-emulation/lxc/metadata.xml16
-rw-r--r--app-emulation/lxd/Manifest2
-rw-r--r--app-emulation/lxd/files/de-translation-newline-1.patch11
-rw-r--r--app-emulation/lxd/files/lxd.confd24
-rw-r--r--app-emulation/lxd/files/lxd.initd46
-rw-r--r--app-emulation/lxd/files/lxd.service10
-rw-r--r--app-emulation/lxd/lxd-3.14.ebuild240
-rw-r--r--app-emulation/lxd/lxd-3.16.ebuild265
-rw-r--r--app-emulation/lxd/metadata.xml32
-rw-r--r--app-emulation/metadata.xml3
-rw-r--r--app-emulation/nemu/Manifest5
-rw-r--r--app-emulation/nemu/metadata.xml18
-rw-r--r--app-emulation/nemu/nemu-2.1.0.ebuild69
-rw-r--r--app-emulation/nemu/nemu-3.0.0.ebuild81
-rw-r--r--app-emulation/nemu/nemu-3.1.0.ebuild (renamed from app-emulation/nemu/nemu-2.2.0.ebuild)62
-rw-r--r--app-emulation/nemu/nemu-3.3.0.ebuild80
-rw-r--r--app-emulation/nemu/nemu-9999.ebuild74
-rw-r--r--app-emulation/open-vm-tools/Manifest3
-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.3.5-icu.patch26
-rw-r--r--app-emulation/open-vm-tools/metadata.xml9
-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-10.3.10.ebuild)46
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild149
-rw-r--r--app-emulation/openstack-guest-agents-unix/Manifest3
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch60
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch57
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch15
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch323
-rw-r--r--app-emulation/openstack-guest-agents-unix/metadata.xml10
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild39
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild44
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild31
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild65
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild73
-rw-r--r--app-emulation/pcem/Manifest1
-rw-r--r--app-emulation/pcem/files/pcem-17-respect-cflags.patch11
-rw-r--r--app-emulation/pcem/metadata.xml23
-rw-r--r--app-emulation/pcem/pcem-17-r2.ebuild81
-rw-r--r--app-emulation/phpvirtualbox/metadata.xml4
-rw-r--r--app-emulation/playonlinux/Manifest2
-rw-r--r--app-emulation/playonlinux/files/playonlinux-4.2.4-binary-plugin.patch17
-rw-r--r--app-emulation/playonlinux/files/playonlinux-4.2.4-pol-bash.patch35
-rw-r--r--app-emulation/playonlinux/files/playonlinux-4.2.6-stop-update-warning.patch17
-rw-r--r--app-emulation/playonlinux/files/playonlinux-pkg.133
-rw-r--r--app-emulation/playonlinux/files/playonlinux.133
-rw-r--r--app-emulation/playonlinux/metadata.xml15
-rw-r--r--app-emulation/playonlinux/playonlinux-4.2.12.ebuild116
-rw-r--r--app-emulation/playonlinux/playonlinux-4.3.4.ebuild106
-rw-r--r--app-emulation/plus42/Manifest3
-rw-r--r--app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch64
-rw-r--r--app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch25
-rw-r--r--app-emulation/plus42/metadata.xml11
-rw-r--r--app-emulation/plus42/plus42-1.1.10.ebuild49
-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/Manifest2
-rw-r--r--app-emulation/protontricks/metadata.xml19
-rw-r--r--app-emulation/protontricks/protontricks-1.10.5.ebuild58
-rw-r--r--app-emulation/protontricks/protontricks-1.11.1.ebuild58
-rw-r--r--app-emulation/punes/Manifest3
-rw-r--r--app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch33
-rw-r--r--app-emulation/punes/metadata.xml9
-rw-r--r--app-emulation/punes/punes-0.103.ebuild52
-rw-r--r--app-emulation/punes/punes-0.104.ebuild52
-rw-r--r--app-emulation/punes/punes-0.111.ebuild63
-rw-r--r--app-emulation/q4wine/Manifest2
-rw-r--r--app-emulation/q4wine/metadata.xml7
-rw-r--r--app-emulation/q4wine/q4wine-1.3.13.ebuild (renamed from app-emulation/q4wine/q4wine-1.3.11.ebuild)19
-rw-r--r--app-emulation/qemu-guest-agent/Manifest8
-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-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-3.1.0.ebuild)25
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild82
-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-4.0.0.ebuild)39
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild81
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild82
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild89
-rw-r--r--app-emulation/qemu-init-scripts/files/openrc-run.patch10
-rw-r--r--app-emulation/qemu-init-scripts/metadata.xml7
-rw-r--r--app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0-r1.ebuild (renamed from app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0.ebuild)11
-rw-r--r--app-emulation/qemu-riscv64-bin/Manifest1
-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.ebuild20
-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-2.5.0-cflags.patch13
-rw-r--r--app-emulation/qemu/files/qemu-2.5.0-sysmacros.patch15
-rw-r--r--app-emulation/qemu/files/qemu-3.1.0-md-clear-md-no.patch61
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-fix_infiniband_include.patch12
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-linux-headers-5.2.patch334
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch12
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-pc-q35-4.0.patch135
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-sanitize-interp_info.patch32
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-xkbcommon.patch38
-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/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch35
-rw-r--r--app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch42
-rw-r--r--app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch44
-rw-r--r--app-emulation/qemu/metadata.xml38
-rw-r--r--app-emulation/qemu/qemu-7.2.11.ebuild (renamed from app-emulation/qemu/qemu-4.1.0.ebuild)479
-rw-r--r--app-emulation/qemu/qemu-7.2.4.ebuild (renamed from app-emulation/qemu/qemu-4.0.0-r50.ebuild)500
-rw-r--r--app-emulation/qemu/qemu-8.0.5.ebuild972
-rw-r--r--app-emulation/qemu/qemu-8.1.5.ebuild972
-rw-r--r--app-emulation/qemu/qemu-8.2.3.ebuild992
-rw-r--r--app-emulation/qemu/qemu-9.0.0.ebuild996
-rw-r--r--app-emulation/qemu/qemu-9999.ebuild549
-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/Manifest3
-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.0.ebuild48
-rw-r--r--app-emulation/reg/reg-0.16.0_p20190102.ebuild53
-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/Manifest657
-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_p20240422.ebuild767
-rw-r--r--app-emulation/ruffle/ruffle-9999.ebuild90
-rw-r--r--app-emulation/runc/Manifest2
-rw-r--r--app-emulation/runc/metadata.xml30
-rw-r--r--app-emulation/runc/runc-1.0.0_rc8.ebuild63
-rw-r--r--app-emulation/runc/runc-1.0.0_rc9.ebuild63
-rw-r--r--app-emulation/runv/metadata.xml2
-rw-r--r--app-emulation/s6-overlay/Manifest1
-rw-r--r--app-emulation/s6-overlay/metadata.xml14
-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.5.1.ebuild27
-rw-r--r--app-emulation/sen/sen-0.6.0.ebuild37
-rw-r--r--app-emulation/sen/sen-0.6.1.ebuild37
-rw-r--r--app-emulation/simh/Manifest2
-rw-r--r--app-emulation/simh/files/simh-3.11.0-fcommon.patch37
-rw-r--r--app-emulation/simh/files/simh-3.11.0-fix-mkdir-race.patch (renamed from app-emulation/simh/files/simh-3.9.0-fix-mkdir-race.patch)18
-rw-r--r--app-emulation/simh/files/simh-3.11.0-respect-FLAGS.patch13
-rw-r--r--app-emulation/simh/files/simh-3.9.0-respect-FLAGS.patch13
-rw-r--r--app-emulation/simh/metadata.xml5
-rw-r--r--app-emulation/simh/simh-3.11.1.ebuild (renamed from app-emulation/simh/simh-3.9.0-r1.ebuild)31
-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.xml18
-rw-r--r--app-emulation/simplevirt/simplevirt-0.0_p20181012.ebuild81
-rw-r--r--app-emulation/ski/Manifest1
-rw-r--r--app-emulation/ski/files/ski-1.3.2-binutils-2.34.patch22
-rw-r--r--app-emulation/ski/files/ski-1.3.2-gcc-10.patch22
-rw-r--r--app-emulation/ski/files/ski-1.3.2-lex-deps.patch17
-rw-r--r--app-emulation/ski/metadata.xml11
-rw-r--r--app-emulation/ski/ski-1.3.2-r2.ebuild51
-rw-r--r--app-emulation/ski/ski-1.3.2-r4.ebuild (renamed from app-emulation/ski/ski-1.3.2-r3.ebuild)28
-rw-r--r--app-emulation/ski/ski-1.4.0.ebuild45
-rw-r--r--app-emulation/skopeo/Manifest3
-rw-r--r--app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch158
-rw-r--r--app-emulation/skopeo/metadata.xml8
-rw-r--r--app-emulation/skopeo/skopeo-0.1.37.ebuild55
-rw-r--r--app-emulation/skopeo/skopeo-0.1.38.ebuild55
-rw-r--r--app-emulation/skopeo/skopeo-0.1.39.ebuild55
-rw-r--r--app-emulation/slirp4netns/Manifest2
-rw-r--r--app-emulation/slirp4netns/metadata.xml19
-rw-r--r--app-emulation/slirp4netns/slirp4netns-0.3.3.ebuild32
-rw-r--r--app-emulation/slirp4netns/slirp4netns-0.4.1.ebuild32
-rw-r--r--app-emulation/softgun/Manifest1
-rw-r--r--app-emulation/softgun/files/softgun-0.21-make.patch68
-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.21.ebuild32
-rw-r--r--app-emulation/softgun/softgun-0.22-r1.ebuild38
-rw-r--r--app-emulation/softgun/softgun-0.22.ebuild18
-rw-r--r--app-emulation/spectemu/files/spectemu-0.99.3-automagic.patch4
-rw-r--r--app-emulation/spectemu/files/spectemu-0.99.3-build.patch4
-rw-r--r--app-emulation/spectemu/metadata.xml2
-rw-r--r--app-emulation/spectemu/spectemu-0.99.3-r1.ebuild26
-rw-r--r--app-emulation/spice-html5/Manifest1
-rw-r--r--app-emulation/spice-html5/metadata.xml15
-rw-r--r--app-emulation/spice-html5/spice-html5-0.2.1.ebuild28
-rw-r--r--app-emulation/spice-protocol/Manifest6
-rw-r--r--app-emulation/spice-protocol/metadata.xml2
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.12.14.ebuild16
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild (renamed from app-emulation/spice-protocol/spice-protocol-0.14.0.ebuild)4
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild (renamed from app-emulation/spice-protocol/spice-protocol-0.12.15.ebuild)12
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild20
-rw-r--r--app-emulation/spice-protocol/spice-protocol-9999.ebuild23
-rw-r--r--app-emulation/spice-vdagent/Manifest4
-rw-r--r--app-emulation/spice-vdagent/files/spice-vdagent.initd-360
-rw-r--r--app-emulation/spice-vdagent/metadata.xml9
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.17.0_p20180319-r1.ebuild75
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild (renamed from app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild)50
-rw-r--r--app-emulation/spice/Manifest4
-rw-r--r--app-emulation/spice/files/spice-0.14.0-fix-flexible-array-buffer-overflow.patch12
-rw-r--r--app-emulation/spice/files/spice-0.14.0-libressl_fix.patch13
-rw-r--r--app-emulation/spice/files/spice-0.14.0-openssl1.1_fix.patch26
-rw-r--r--app-emulation/spice/metadata.xml5
-rw-r--r--app-emulation/spice/spice-0.14.0-r2.ebuild102
-rw-r--r--app-emulation/spice/spice-0.15.1-r1.ebuild (renamed from app-emulation/spice/spice-0.14.2.ebuild)47
-rw-r--r--app-emulation/spice/spice-0.15.2.ebuild97
-rw-r--r--app-emulation/spice/spice-9999.ebuild102
-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/files/uade-2.13-configure.patch24
-rw-r--r--app-emulation/uade/metadata.xml16
-rw-r--r--app-emulation/uade/uade-2.13-r2.ebuild52
-rw-r--r--app-emulation/uade/uade-2.13.ebuild34
-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/Manifest6
-rw-r--r--app-emulation/vagrant/files/vagrant-r1.in61
-rw-r--r--app-emulation/vagrant/files/vagrant.in2
-rw-r--r--app-emulation/vagrant/metadata.xml15
-rw-r--r--app-emulation/vagrant/vagrant-2.1.5.ebuild82
-rw-r--r--app-emulation/vagrant/vagrant-2.2.2-r2.ebuild90
-rw-r--r--app-emulation/vagrant/vagrant-2.2.4.ebuild90
-rw-r--r--app-emulation/vagrant/vagrant-2.2.5.ebuild90
-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/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch23
-rw-r--r--app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch35
-rw-r--r--app-emulation/vendor-reset/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-r2.ebuild44
-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/Manifest2
-rw-r--r--app-emulation/vice/files/vice-2.4.27-autotools.patch11
-rw-r--r--app-emulation/vice/files/vice-3.1-ffmpeg4.patch74
-rw-r--r--app-emulation/vice/metadata.xml9
-rw-r--r--app-emulation/vice/vice-3.1.ebuild171
-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/Manifest4
-rw-r--r--app-emulation/virt-manager/metadata.xml35
-rw-r--r--app-emulation/virt-manager/virt-manager-2.0.0.ebuild94
-rw-r--r--app-emulation/virt-manager/virt-manager-2.2.0.ebuild96
-rw-r--r--app-emulation/virt-manager/virt-manager-2.2.1.ebuild95
-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.ebuild111
-rw-r--r--app-emulation/virt-viewer/Manifest3
-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-what/Manifest4
-rw-r--r--app-emulation/virt-what/metadata.xml6
-rw-r--r--app-emulation/virt-what/virt-what-1.21.ebuild (renamed from app-emulation/virt-what/virt-what-1.18.ebuild)6
-rw-r--r--app-emulation/virt-what/virt-what-1.25.ebuild (renamed from app-emulation/virt-what/virt-what-1.19.ebuild)6
-rw-r--r--app-emulation/virtio-win/Manifest4
-rw-r--r--app-emulation/virtio-win/files/README.gentoo15
-rw-r--r--app-emulation/virtio-win/metadata.xml14
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.160.ebuild18
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild30
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild30
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild30
-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/Manifest7
-rw-r--r--app-emulation/virtualbox-additions/metadata.xml9
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-5.2.34.ebuild33
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.0.12.ebuild34
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.0.14.ebuild34
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild (renamed from app-emulation/virtualbox-additions/virtualbox-additions-5.2.32.ebuild)22
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild25
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild25
-rw-r--r--app-emulation/virtualbox-bin/Manifest14
-rw-r--r--app-emulation/virtualbox-bin/files/virtualbox-bin-3-wrapper104
-rw-r--r--app-emulation/virtualbox-bin/files/virtualbox-bin-config1
-rw-r--r--app-emulation/virtualbox-bin/files/virtualbox-bin.desktop-28
-rw-r--r--app-emulation/virtualbox-bin/metadata.xml14
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-5.2.32.132073.ebuild287
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-5.2.34.133893.ebuild287
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-6.0.12.133076.ebuild291
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-6.0.14.133895.ebuild291
-rw-r--r--app-emulation/virtualbox-extpack-oracle/Manifest7
-rw-r--r--app-emulation/virtualbox-extpack-oracle/metadata.xml9
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.32.132073.ebuild42
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.34.133893.ebuild42
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.12.133076.ebuild43
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.14.133895.ebuild43
-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.14-r1.ebuild33
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild33
-rw-r--r--app-emulation/virtualbox-guest-additions/Manifest13
-rw-r--r--app-emulation/virtualbox-guest-additions/files/vboxguest-4.1.0-log-use-c99.patch13
-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-6.0.12-linux-5.3+-compatibility.patch75
-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-5.2.32.ebuild229
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.2.34.ebuild229
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.14.ebuild219
-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.0.12.ebuild)221
-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.18.ebuild290
-rw-r--r--app-emulation/virtualbox-kvm/Manifest10
-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.rules (renamed from app-emulation/virtualbox-bin/files/10-virtualbox.rules)0
-rw-r--r--app-emulation/virtualbox-kvm/files/vboxwebsrv-confd (renamed from app-emulation/virtualbox-bin/files/vboxwebsrv-confd)2
-rw-r--r--app-emulation/virtualbox-kvm/files/vboxwebsrv-initd (renamed from app-emulation/virtualbox-bin/files/vboxwebsrv-initd)4
-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-wrapper (renamed from app-emulation/virtualbox/files/virtualbox-ose-5-wrapper)10
-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_pre20240502.ebuild767
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240515.ebuild768
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild768
-rw-r--r--app-emulation/virtualbox-modules/Manifest7
-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-6.0.12-linux-5.3+-compatibility.patch76
-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.conf-r1 (renamed from app-emulation/virtualbox-modules/files/virtualbox.conf)1
-rw-r--r--app-emulation/virtualbox-modules/metadata.xml10
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.2.32.ebuild51
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.2.34.ebuild51
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.0.12.ebuild54
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.0.14.ebuild52
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild34
-rw-r--r--app-emulation/virtualbox/Manifest17
-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/files/virtualbox-ose.desktop-28
-rw-r--r--app-emulation/virtualbox/metadata.xml24
-rw-r--r--app-emulation/virtualbox/virtualbox-5.2.32.ebuild497
-rw-r--r--app-emulation/virtualbox/virtualbox-5.2.34.ebuild496
-rw-r--r--app-emulation/virtualbox/virtualbox-6.0.12.ebuild510
-rw-r--r--app-emulation/virtualbox/virtualbox-6.0.14.ebuild510
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild681
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild740
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.18.ebuild741
-rw-r--r--app-emulation/virtualbox/virtualbox-9999.ebuild769
-rw-r--r--app-emulation/vkd3d-proton/Manifest8
-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.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/Manifest3
-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.ebuild39
-rw-r--r--app-emulation/vkd3d/vkd3d-1.11.ebuild49
-rw-r--r--app-emulation/vkd3d/vkd3d-9999.ebuild41
-rw-r--r--app-emulation/wine-any/Manifest14
-rw-r--r--app-emulation/wine-any/metadata.xml56
-rw-r--r--app-emulation/wine-any/wine-any-3.20.ebuild644
-rw-r--r--app-emulation/wine-any/wine-any-3.21.ebuild644
-rw-r--r--app-emulation/wine-any/wine-any-4.0.ebuild645
-rw-r--r--app-emulation/wine-any/wine-any-4.1.ebuild644
-rw-r--r--app-emulation/wine-any/wine-any-9999.ebuild645
-rw-r--r--app-emulation/wine-d3d9/Manifest9
-rw-r--r--app-emulation/wine-d3d9/metadata.xml55
-rw-r--r--app-emulation/wine-d3d9/wine-d3d9-3.20.ebuild577
-rw-r--r--app-emulation/wine-d3d9/wine-d3d9-3.21.ebuild577
-rw-r--r--app-emulation/wine-d3d9/wine-d3d9-4.0.ebuild578
-rw-r--r--app-emulation/wine-d3d9/wine-d3d9-4.1.ebuild577
-rw-r--r--app-emulation/wine-d3d9/wine-d3d9-9999.ebuild578
-rw-r--r--app-emulation/wine-desktop-common/metadata.xml10
-rw-r--r--app-emulation/wine-gecko/Manifest14
-rw-r--r--app-emulation/wine-gecko/metadata.xml11
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild28
-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/Manifest21
-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-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/Manifest3
-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.ebuild370
-rw-r--r--app-emulation/wine-proton/wine-proton-8.0.5c.ebuild387
-rw-r--r--app-emulation/wine-proton/wine-proton-9.0.1.ebuild419
-rw-r--r--app-emulation/wine-proton/wine-proton-9.0.9999.ebuild421
-rw-r--r--app-emulation/wine-staging/Manifest19
-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/files/wine-staging-9.8-musl-ioctls-header.patch30
-rw-r--r--app-emulation/wine-staging/metadata.xml58
-rw-r--r--app-emulation/wine-staging/wine-staging-4.15.ebuild620
-rw-r--r--app-emulation/wine-staging/wine-staging-4.16.ebuild620
-rw-r--r--app-emulation/wine-staging/wine-staging-4.17.ebuild620
-rw-r--r--app-emulation/wine-staging/wine-staging-4.18.ebuild620
-rw-r--r--app-emulation/wine-staging/wine-staging-9.0.ebuild480
-rw-r--r--app-emulation/wine-staging/wine-staging-9.5.ebuild483
-rw-r--r--app-emulation/wine-staging/wine-staging-9.6.ebuild478
-rw-r--r--app-emulation/wine-staging/wine-staging-9.7.ebuild478
-rw-r--r--app-emulation/wine-staging/wine-staging-9.8.ebuild479
-rw-r--r--app-emulation/wine-staging/wine-staging-9999.ebuild848
-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/files/wine-vanilla-9.8-musl-ioctls-header.patch30
-rw-r--r--app-emulation/wine-vanilla/metadata.xml52
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.0.1.ebuild533
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.0.2.ebuild533
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.0.ebuild533
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.15.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.16.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.17.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.18.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild383
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild389
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild428
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild431
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild431
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild431
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild432
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild737
-rw-r--r--app-emulation/winetricks/Manifest4
-rw-r--r--app-emulation/winetricks/metadata.xml8
-rw-r--r--app-emulation/winetricks/winetricks-20230212.ebuild (renamed from app-emulation/winetricks/winetricks-20190310.ebuild)23
-rw-r--r--app-emulation/winetricks/winetricks-20240105.ebuild (renamed from app-emulation/winetricks/winetricks-20190912.ebuild)23
-rw-r--r--app-emulation/winetricks/winetricks-99999999.ebuild23
-rw-r--r--app-emulation/x48/files/x48-0.6.4-configure.patch11
-rw-r--r--app-emulation/x48/files/x48-0.6.4-static.patch12
-rw-r--r--app-emulation/x48/files/x48-0.6.4-void_return.patch24
-rw-r--r--app-emulation/x48/metadata.xml10
-rw-r--r--app-emulation/x48/x48-0.6.4-r2.ebuild18
-rw-r--r--app-emulation/x48/x48-0.6.4-r3.ebuild70
-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/Manifest2
-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.xml7
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-5.6.0_p595.ebuild56
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-6.1.0_p1033.ebuild56
-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/Manifest10
-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-4.3-externals.patch75
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch13
-rw-r--r--app-emulation/xen-pvgrub/metadata.xml8
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.10.3.ebuild163
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.11.1.ebuild163
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.11.2.ebuild163
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.12.0.ebuild163
-rw-r--r--app-emulation/xen-tools/Manifest29
-rw-r--r--app-emulation/xen-tools/files/README.gentoo16
-rw-r--r--app-emulation/xen-tools/files/gentoo-patches.conf96
-rw-r--r--app-emulation/xen-tools/files/xenstored.initd44
-rw-r--r--app-emulation/xen-tools/files/xenstored.initd-r12
-rw-r--r--app-emulation/xen-tools/metadata.xml13
-rw-r--r--app-emulation/xen-tools/xen-tools-4.10.3-r2.ebuild468
-rw-r--r--app-emulation/xen-tools/xen-tools-4.11.1-r5.ebuild474
-rw-r--r--app-emulation/xen-tools/xen-tools-4.11.2.ebuild474
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4.ebuild524
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild (renamed from app-emulation/xen-tools/xen-tools-4.12.0-r3.ebuild)419
-rw-r--r--app-emulation/xen/Manifest12
-rw-r--r--app-emulation/xen/files/xen-4.6-efi.patch36
-rw-r--r--app-emulation/xen/files/xen.gcc9.fixes.patch34
-rw-r--r--app-emulation/xen/metadata.xml13
-rw-r--r--app-emulation/xen/xen-4.10.3-r1.ebuild171
-rw-r--r--app-emulation/xen/xen-4.11.1-r3.ebuild174
-rw-r--r--app-emulation/xen/xen-4.11.2.ebuild171
-rw-r--r--app-emulation/xen/xen-4.12.0-r1.ebuild174
-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-r5.ebuild80
-rw-r--r--app-emulation/xtrs/xtrs-4.9d-r6.ebuild (renamed from app-emulation/xtrs/xtrs-4.9d-r4.ebuild)25
1034 files changed, 39333 insertions, 49246 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/Manifest b/app-emulation/aranym/Manifest
new file mode 100644
index 000000000000..e50669b9613e
--- /dev/null
+++ b/app-emulation/aranym/Manifest
@@ -0,0 +1 @@
+DIST aranym_1.1.0.orig.tar.gz 3785612 BLAKE2B 52b5fa34c78c67cb94cbe0d94795368cb7007f37571282d67387a0237500143f8078117132c9df392c5fd48b32cdb8c1cf727fe4d22a3d24eac0595215bddf4e SHA512 723b1a7c80532734e1dea288dbffd66746d9c7d1302ccb0259248a26aac5dedc7f66a134929de7064686af6c676d10918d90e2cf58cb010fd445979945177b51
diff --git a/app-emulation/aranym/aranym-1.1.0-r1.ebuild b/app-emulation/aranym/aranym-1.1.0-r1.ebuild
new file mode 100644
index 000000000000..f471b146140f
--- /dev/null
+++ b/app-emulation/aranym/aranym-1.1.0-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PN^^}_${PV//./_}/${PN}_${PV}.orig.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+clipboard +jit jpeg lilo opengl osmesa pmmu +standard usb"
+REQUIRED_USE="|| ( jit pmmu standard ) lilo? ( pmmu )"
+
+# LILO can be used without zlib but the zlib dependency is automagic so
+# we just require it unconditionally.
+
+RDEPEND="
+ dev-libs/gmp:0=
+ media-libs/libsdl2[video]
+ clipboard? (
+ media-libs/libsdl2[X]
+ x11-libs/libX11
+ )
+ jpeg? ( virtual/jpeg )
+ kernel_linux? ( virtual/libudev )
+ lilo? ( sys-libs/zlib )
+ opengl? ( virtual/opengl )
+ osmesa? ( media-libs/mesa[osmesa] )
+ pmmu? ( dev-libs/mpfr:0= )
+ usb? ( virtual/libusb:1 )
+"
+
+DEPEND="${RDEPEND}"
+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}"
+DOCS=()
+
+src_prepare() {
+ xdg_src_prepare
+ eautoreconf
+}
+
+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=(
+ $(usev jit)
+ $(usev pmmu)
+ $(usev standard)
+ )
+
+ multibuild_foreach_variant run_in_build_dir multibuild_src_configure
+}
+
+multibuild_src_configure() {
+ # jit-fpu doesn't work on some platforms. FPUs were optional in
+ # Ataris anyway so just disable.
+ local myconf=(
+ $(use_enable opengl)
+ $(use_enable usb usbhost)
+ $(use_enable osmesa nfosmesa)
+ $(use_enable jpeg nfjpeg)
+ $(use_enable clipboard nfclipbrd)
+ --disable-jit-fpu
+ )
+
+ if [[ ${MULTIBUILD_VARIANT} == jit ]]; then
+ myconf+=( --enable-jit-compiler )
+ else
+ myconf+=( --disable-jit-compiler )
+ fi
+
+ if [[ ${MULTIBUILD_VARIANT} == pmmu ]]; then
+ myconf+=( --enable-fullmmu $(use_enable lilo) )
+ else
+ myconf+=( --disable-fullmmu --disable-lilo )
+ fi
+
+ # Force use of SDL2 over SDL1.
+ ac_cv_path_SDL_CONFIG=no econf "${myconf[@]}"
+
+ # https://github.com/aranym/aranym/issues/54
+ echo "#define HAVE_X11_XLIB_H 1" >> config.h || die
+}
+
+src_compile() {
+ multibuild_foreach_variant run_in_build_dir default
+}
+
+src_install() {
+ multibuild_foreach_variant run_in_build_dir default
+ rm "${ED}"/usr/share/doc/${PF}/COPYING || die
+}
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-conditional-installs.patch b/app-emulation/aranym/files/aranym-1.1.0-conditional-installs.patch
new file mode 100644
index 000000000000..20ba1c1c4a0e
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-conditional-installs.patch
@@ -0,0 +1,93 @@
+From 944ae098635d8bd4320b2acafc5746448e241db6 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Wed, 4 Dec 2019 23:31:04 +0000
+Subject: [PATCH] Reuse icon file and install normal/JIT/MMU files
+ conditionally
+
+---
+ Makefile.am | 19 ++++++++++---------
+ contrib/aranym-jit.desktop | 2 +-
+ contrib/aranym-mmu.desktop | 2 +-
+ doc/Makefile.am | 8 +++++++-
+ 4 files changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 9fbc64b6..9dc7b71b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -79,18 +79,19 @@ install-data-local:
+ for s in 32 48; do \
+ $(mkinstalldirs) "${DESTDIR}${datadir}/icons/hicolor/$${s}x$${s}/apps/"; \
+ $(INSTALL_DATA) $(top_srcdir)/contrib/icon-$${s}.png "${DESTDIR}${datadir}/icons/hicolor/$${s}x$${s}/apps/aranym.png"; \
+- $(INSTALL_DATA) $(top_srcdir)/contrib/icon-$${s}.png "${DESTDIR}${datadir}/icons/hicolor/$${s}x$${s}/apps/aranym-jit.png"; \
+- $(INSTALL_DATA) $(top_srcdir)/contrib/icon-$${s}.png "${DESTDIR}${datadir}/icons/hicolor/$${s}x$${s}/apps/aranym-mmu.png"; \
+ done
+ $(mkinstalldirs) "${DESTDIR}${datadir}/pixmaps"
+- rm -f "${DESTDIR}${datadir}/pixmaps/aranym"*.png
+- ln -s ../icons/hicolor/32x32/apps/aranym.png "${DESTDIR}${datadir}/pixmaps/aranym.png"
+- ln -s ../icons/hicolor/32x32/apps/aranym.png "${DESTDIR}${datadir}/pixmaps/aranym-jit.png"
+- ln -s ../icons/hicolor/32x32/apps/aranym.png "${DESTDIR}${datadir}/pixmaps/aranym-mmu.png"
++ ln -sf ../icons/hicolor/32x32/apps/aranym.png "${DESTDIR}${datadir}/pixmaps/aranym.png"
+ $(mkinstalldirs) "${DESTDIR}${datadir}/applications"
+- for name in aranym aranym-jit aranym-mmu; do \
+- $(INSTALL_DATA) "$(top_srcdir)/contrib/$${name}.desktop" "${DESTDIR}${datadir}/applications/$${name}.desktop"; \
+- done
++if USE_JIT
++ $(INSTALL_DATA) "$(top_srcdir)/contrib/aranym-jit.desktop" "${DESTDIR}${datadir}/applications/aranym-jit.desktop"
++else
++if FULLMMU
++ $(INSTALL_DATA) "$(top_srcdir)/contrib/aranym-mmu.desktop" "${DESTDIR}${datadir}/applications/aranym-mmu.desktop"
++else
++ $(INSTALL_DATA) "$(top_srcdir)/contrib/aranym.desktop" "${DESTDIR}${datadir}/applications/aranym.desktop"
++endif
++endif
+
+ uninstall-local:
+ rm -f $(DESTDIR)$(docdir)/changelog
+diff --git a/contrib/aranym-jit.desktop b/contrib/aranym-jit.desktop
+index 1ca2c55a..5a4ee582 100644
+--- a/contrib/aranym-jit.desktop
++++ b/contrib/aranym-jit.desktop
+@@ -3,7 +3,7 @@ Encoding=UTF-8
+ Name=ARAnyM JIT
+ Comment=Virtual Machine with JIT CPU compiler for max speed
+ Exec=aranym-jit
+-Icon=aranym-jit
++Icon=aranym
+ Terminal=false
+ Type=Application
+ Categories=System;Emulator;
+diff --git a/contrib/aranym-mmu.desktop b/contrib/aranym-mmu.desktop
+index 610d0e52..2b841f23 100644
+--- a/contrib/aranym-mmu.desktop
++++ b/contrib/aranym-mmu.desktop
+@@ -3,7 +3,7 @@ Encoding=UTF-8
+ Name=ARAnyM MMU
+ Comment=Virtual Machine with MMU for FreeMiNT and Linux-m68k
+ Exec=aranym-mmu
+-Icon=aranym-mmu
++Icon=aranym
+ Terminal=false
+ Type=Application
+ Categories=System;Emulator;
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 3f466ef8..f0a0688e 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -1,6 +1,12 @@
+ man1dir = $(mandir)/man1
+
+-man1_MANS = aranym.1 aranym-mmu.1 aranym-jit.1
++man1_MANS = aranym.1
++if USE_JIT
++man1_MANS += aranym-jit.1
++endif
++if FULLMMU
++man1_MANS += aranym-mmu.1
++endif
+ if NEED_ARATAPIF
+ man1_MANS += aratapif.1
+ endif
+--
+2.24.0
+
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
new file mode 100644
index 000000000000..34e1093dcb4b
--- /dev/null
+++ b/app-emulation/aranym/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>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">aranym/aranym</remote-id>
+ </upstream>
+ <use>
+ <flag name="clipboard">Enable bidirectional clipboard transfer between the host and FreeMiNT</flag>
+ <flag name="jit">Build Just-In-Time compiler variant with increased performance</flag>
+ <flag name="lilo">Enable support for directly booting kernels such as Linux</flag>
+ <flag name="osmesa">Allow images to be rendered in memory using the host CPU</flag>
+ <flag name="pmmu">Build full PMMU variant, required for running mainline Linux</flag>
+ <flag name="standard">Build standard (no JIT or PMMU) variant</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-emulation/bochs/Manifest b/app-emulation/bochs/Manifest
index da3c75f1dbbb..37499a1033c0 100644
--- a/app-emulation/bochs/Manifest
+++ b/app-emulation/bochs/Manifest
@@ -1 +1,2 @@
-DIST bochs-2.6.9.tar.gz 5169187 BLAKE2B 49824a96a48294d8d507bc15128103e9c2839515554657d282c7c9533aa299cb6289581e760ea40a6c659adfb7ebdac0d273d2a9e7b598c95b145d65e8cdc977 SHA512 dfecf3a1bad07f06c2f7bb989d146e4a8eaeca493b598d415f5a4aec2a85eb5524ba417422157608c8b0828832611df487c6923c8f4ad98a147ac089fc514c46
+DIST bochs-2.6.10.tar.gz 5282176 BLAKE2B 9f75d5afd6bad9f91eb18dc0bd5c9ed998bf12077d3e8d944769055f0def1eed019756346071d3809d492c54177ec798e739259ee13f67ff4760744377dc877c SHA512 eff422cadc3e0db7a47c4015a59ca0fa8caf88ed3026706c1f766e802449ec8e4798e5f147a583e1cfbbc578f71da8800542c0e1f4d04bc2dea77955855e8689
+DIST bochs-2.7.tar.gz 5298413 BLAKE2B 570ac0fec74b8e79a8e78d32a1a8655b8e3a202a3247407a45b66991598486bd6c566711a1f8e18e717d4f2119b82ae03bf4a792eebdd25a6e7ca4dedb3901ab SHA512 d43bd557316dc370ba1c317f5c3292f724460515db01316614b2d585b2760120cadd1d27a286083ac3e6f57466ed889959abd7fe960c219c149dab9a053c6967
diff --git a/app-emulation/bochs/bochs-2.6.9.ebuild b/app-emulation/bochs/bochs-2.6.10.ebuild
index 80e103e7f589..da275ab22599 100644
--- a/app-emulation/bochs/bochs-2.6.9.ebuild
+++ b/app-emulation/bochs/bochs-2.6.10.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 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/"
-SRC_URI="mirror://sourceforge/bochs/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
@@ -29,9 +29,10 @@ RDEPEND="
ncurses? ( sys-libs/ncurses:= )
"
DEPEND="${RDEPEND}
- doc? ( app-text/docbook-sgml-utils )
X? ( x11-base/xorg-proto )
- sys-apps/sed
+"
+BDEPEND="
+ doc? ( app-text/docbook-sgml-utils )
>=app-text/opensp-1.5
"
diff --git a/app-emulation/bochs/bochs-2.7.ebuild b/app-emulation/bochs/bochs-2.7.ebuild
new file mode 100644
index 000000000000..cbfb55b92ffe
--- /dev/null
+++ b/app-emulation/bochs/bochs-2.7.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="LGPL-ed pc emulator"
+HOMEPAGE="http://bochs.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+
+IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64"
+REQUIRED_USE="
+ avx? ( x86-64 )
+ gdb? ( !debugger !smp )
+ debugger? ( !gdb )
+"
+
+RDEPEND="
+ 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
+ )
+"
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+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
+}
+
+src_configure() {
+ econf \
+ --enable-all-optimizations \
+ --enable-idle-hack \
+ --enable-cdrom \
+ --enable-clgd54xx \
+ --enable-cpu-level=6 \
+ --enable-e1000 \
+ --enable-gameport \
+ --enable-iodebug \
+ --enable-monitor-mwait \
+ --enable-ne2000 \
+ --enable-plugins \
+ --enable-pci \
+ --enable-pnic \
+ --enable-raw-serial \
+ --enable-sb16=linux \
+ --enable-usb \
+ --enable-usb-ohci \
+ --enable-usb-xhci \
+ --prefix=/usr \
+ --with-nogui \
+ --without-wx \
+ $(use_enable 3dnow) \
+ $(use_enable avx) \
+ $(use_enable debugger) \
+ $(use_enable doc docbook) \
+ $(use_enable gdb gdb-stub) \
+ $(use_enable readline) \
+ $(use_enable smp) \
+ $(use_enable x86-64) \
+ $(use_with ncurses term) \
+ $(use_with sdl) \
+ $(use_with vnc rfb) \
+ $(use_with X x) \
+ $(use_with X x11)
+}
diff --git a/app-emulation/bochs/bochs-9999.ebuild b/app-emulation/bochs/bochs-9999.ebuild
new file mode 100644
index 000000000000..280702aad06e
--- /dev/null
+++ b/app-emulation/bochs/bochs-9999.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit subversion
+
+DESCRIPTION="LGPL-ed pc emulator"
+HOMEPAGE="http://bochs.sourceforge.net/"
+#SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
+ESVN_REPO_URI="svn://svn.code.sf.net/p/bochs/code/trunk/bochs"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+
+IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64"
+REQUIRED_USE="
+ avx? ( x86-64 )
+ gdb? ( !debugger !smp )
+ debugger? ( !gdb )
+"
+
+RDEPEND="
+ 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
+ )
+"
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+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
+}
+
+src_configure() {
+ econf \
+ --enable-all-optimizations \
+ --enable-idle-hack \
+ --enable-cdrom \
+ --enable-clgd54xx \
+ --enable-cpu-level=6 \
+ --enable-e1000 \
+ --enable-gameport \
+ --enable-iodebug \
+ --enable-monitor-mwait \
+ --enable-ne2000 \
+ --enable-plugins \
+ --enable-pci \
+ --enable-pnic \
+ --enable-raw-serial \
+ --enable-sb16=linux \
+ --enable-usb \
+ --enable-usb-ohci \
+ --enable-usb-xhci \
+ --prefix=/usr \
+ --with-nogui \
+ --without-wx \
+ $(use_enable 3dnow) \
+ $(use_enable avx) \
+ $(use_enable debugger) \
+ $(use_enable doc docbook) \
+ $(use_enable gdb gdb-stub) \
+ $(use_enable readline) \
+ $(use_enable smp) \
+ $(use_enable x86-64) \
+ $(use_with ncurses term) \
+ $(use_with sdl) \
+ $(use_with vnc rfb) \
+ $(use_with X x) \
+ $(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 cc53b820d9a7..000000000000
--- a/app-emulation/buildah/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST buildah-1.11.2.tar.gz 10128075 BLAKE2B ad8f4253b62cd7709bf5ae530d002190c1850da6bbfa7dff2281de0592422eccc67a4ba6e52f7a82d6c1b320b986237a84d0ffaaf9b3b1b93822a54621365250 SHA512 f491d96d5bb4d0aa03981fb58d24f36c2e3928179c8fb79e85f323ce9a65ae6da05b816d86ae43f94a83a1b2445b315f93ca28b531436d9b4e5861e4adef2aac
-DIST buildah-1.11.3.tar.gz 10429884 BLAKE2B 2d433a128d115c6b2f3a9d246d41406993905dee357237796cea3295036d026ca93f8c98ca992cfebfa574ab0d5e7b974fd356a146b7cde58986166bc18a5645 SHA512 07fff3f8c044ad01a663bf5470b19f75568ce741b3bb45f656200099ba559622597111ede3e20331dc06139f2e58d962d92bf0fdd00284ca6ed05b5b66500975
diff --git a/app-emulation/buildah/buildah-1.11.2.ebuild b/app-emulation/buildah/buildah-1.11.2.ebuild
deleted file mode 100644
index 6a58e5f4b30b..000000000000
--- a/app-emulation/buildah/buildah-1.11.2.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 golang-vcs-snapshot
-
-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="ostree selinux"
-EGO_PN="${HOMEPAGE#*//}"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT="0bafbfe"
-SRC_URI="https://${EGO_PN}/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"
-REQUIRED_USE="!selinux? ( !ostree )"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
- sed -e 's|^\(GIT_COMMIT ?= \).*|\1'${GIT_COMMIT}'|' -i Makefile || die
-
- [[ -f ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\necho containers_image_ostree_stub" > \
- ostree_tag.sh || die; }
-
- [[ -f selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- selinux_tag.sh || die; }
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME
- GOPATH="${WORKDIR}/${P}" emake 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() {
- GOPATH="${WORKDIR}/${P}" emake test-unit
-}
diff --git a/app-emulation/buildah/buildah-1.11.3.ebuild b/app-emulation/buildah/buildah-1.11.3.ebuild
deleted file mode 100644
index 42661d17b64a..000000000000
--- a/app-emulation/buildah/buildah-1.11.3.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 golang-vcs-snapshot
-
-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="ostree selinux"
-EGO_PN="${HOMEPAGE#*//}"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT="bdd78ad"
-SRC_URI="https://${EGO_PN}/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"
-REQUIRED_USE="!selinux? ( !ostree )"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
- sed -e 's|^\(GIT_COMMIT ?= \).*|\1'${GIT_COMMIT}'|' -i Makefile || die
-
- [[ -f ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\necho containers_image_ostree_stub" > \
- ostree_tag.sh || die; }
-
- [[ -f selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- selinux_tag.sh || die; }
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME
- GOPATH="${WORKDIR}/${P}" emake 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() {
- GOPATH="${WORKDIR}/${P}" emake test-unit
-}
diff --git a/app-emulation/buildah/metadata.xml b/app-emulation/buildah/metadata.xml
deleted file mode 100644
index aef68f1e5381..000000000000
--- a/app-emulation/buildah/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>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <use>
- <flag name="ostree">
- Enables dependencies for handling of OSTree images.
- </flag>
- </use>
- <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 06d9c85c8eda..000000000000
--- a/app-emulation/cadvisor/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST cadvisor-0.33.0.tar.gz 4646920 BLAKE2B ce0e264321efcfbbf422f086cd15dfde389a099d183cbc2daaefb5aa6aa36da0c6e213dc4c12a000b9049ce2a1444addee93746f5650a56fa0f7c6612aa25bd9 SHA512 3d1dd1b9dc684e71bca9dc64949911f5f3ae72c97aa3b6cd45dd51a404fc101b5591ec8c19c469d6a410de3cf46c3d8c104d34e5dd1fdc85c18c2d1b6a45b2af
-DIST cadvisor-0.33.1.tar.gz 4646909 BLAKE2B 1ba30d559c018bf11297ded8adcc77a8761f77a1a39d75fb6e704ab84b3118d14587c91fd638da59bc9a46969b0545bdcf55e482390adeef6a4841fd6a57988c SHA512 659b8c48f74ef34044c7b3d9a41d42338c9c90fa443bdf7766001ae570aab8ed61efa948d1d01c324b6f03a0d1bf3d3fb1483d40bfc3b7e67f768253e3638de5
-DIST cadvisor-0.34.0.tar.gz 5210189 BLAKE2B 48cf7ddc94e52f07a0e74868d00f4a45d45aa5233b518da46762743357c17cbe7f2971794deda9936a10c65724928a219c498bf6d2493266f5b0ea547d485cb6 SHA512 accb41afd4683413b846f9380229bfa54c88b3141be68492963444928e40e14fc28da3ce27b09746e29c4dfe6323cd6bea69181826367e830f284d6ab698c633
diff --git a/app-emulation/cadvisor/cadvisor-0.33.0-r1.ebuild b/app-emulation/cadvisor/cadvisor-0.33.0-r1.ebuild
deleted file mode 100644
index 2e4b131c1b4b..000000000000
--- a/app-emulation/cadvisor/cadvisor-0.33.0-r1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/google/cadvisor"
-
-inherit user golang-build golang-vcs-snapshot
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-COMMIT="511ec9e"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Analyzes resource usage and performance characteristics of running containers"
-HOMEPAGE="https://github.com/google/cadvisor"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-pkg_setup() {
- enewgroup ${PN}
- enewuser ${PN} -1 -1 /dev/null ${PN}
-}
-
-src_prepare() {
- sed -i -e "/go get/d" src/${EGO_PN}/build/assets.sh || die
- sed -i -e "s/git describe.*/echo ${PV} )/"\
- -e "s/git rev-parse --short HEAD.*/echo ${COMMIT} )/"\
- src/${EGO_PN}/build/build.sh || die
- default
-}
-
-src_compile() {
- pushd "src/${EGO_PN}"
- GO_FLAGS="-v -work -x" VERBOSE="true" GOPATH="${S}:$(get_golibdir_gopath)" emake build
- popd || die
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
- dobin src/${EGO_PN}/${PN}
- keepdir /var/log/${PN}
- fowners ${PN}:${PN} /var/log/${PN}
-}
diff --git a/app-emulation/cadvisor/cadvisor-0.33.1.ebuild b/app-emulation/cadvisor/cadvisor-0.33.1.ebuild
deleted file mode 100644
index 283eff3a8e7d..000000000000
--- a/app-emulation/cadvisor/cadvisor-0.33.1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/google/cadvisor"
-
-inherit user golang-build golang-vcs-snapshot
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-COMMIT="7e9ea00"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Analyzes resource usage and performance characteristics of running containers"
-HOMEPAGE="https://github.com/google/cadvisor"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-pkg_setup() {
- enewgroup ${PN}
- enewuser ${PN} -1 -1 /dev/null ${PN}
-}
-
-src_prepare() {
- sed -i -e "/go get/d" src/${EGO_PN}/build/assets.sh || die
- sed -i -e "s/git describe.*/echo ${PV} )/"\
- -e "s/git rev-parse --short HEAD.*/echo ${COMMIT} )/"\
- src/${EGO_PN}/build/build.sh || die
- default
-}
-
-src_compile() {
- pushd "src/${EGO_PN}"
- GO_FLAGS="-v -work -x" VERBOSE="true" GOPATH="${S}:$(get_golibdir_gopath)" emake build
- popd || die
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
- dobin src/${EGO_PN}/${PN}
- keepdir /var/log/${PN}
- fowners ${PN}:${PN} /var/log/${PN}
-}
diff --git a/app-emulation/cadvisor/cadvisor-0.34.0.ebuild b/app-emulation/cadvisor/cadvisor-0.34.0.ebuild
deleted file mode 100644
index 26280e2293af..000000000000
--- a/app-emulation/cadvisor/cadvisor-0.34.0.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/google/cadvisor"
-
-inherit user golang-build golang-vcs-snapshot
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-COMMIT="24a6a52"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Analyzes resource usage and performance characteristics of running containers"
-HOMEPAGE="https://github.com/google/cadvisor"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-pkg_setup() {
- enewgroup ${PN}
- enewuser ${PN} -1 -1 /dev/null ${PN}
-}
-
-src_prepare() {
- sed -i -e "/go get/d" src/${EGO_PN}/build/assets.sh || die
- sed -i -e "s/git describe.*/echo ${PV} )/"\
- -e "s/git rev-parse --short HEAD.*/echo ${COMMIT} )/"\
- src/${EGO_PN}/build/build.sh || die
- default
-}
-
-src_compile() {
- pushd "src/${EGO_PN}"
- GO_FLAGS="-v -work -x" VERBOSE="true" GOPATH="${S}:$(get_golibdir_gopath)" emake build
- popd || die
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
- dobin src/${EGO_PN}/${PN}
- keepdir /var/log/${PN}
- fowners ${PN}:${PN} /var/log/${PN}
-}
diff --git a/app-emulation/cadvisor/files/cadvisor.initd b/app-emulation/cadvisor/files/cadvisor.initd
deleted file mode 100644
index 19e36b2c81a5..000000000000
--- a/app-emulation/cadvisor/files/cadvisor.initd
+++ /dev/null
@@ -1,18 +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
-}
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 9685b121c378..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>mrueg@gentoo.org</email>
- <name>Manuel Rüger</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 4f2aa6f1599a..a1fdc85deb9c 100644
--- a/app-emulation/cloud-init/Manifest
+++ b/app-emulation/cloud-init/Manifest
@@ -1,3 +1,3 @@
-DIST cloud-init-17.2.tar.gz 810821 BLAKE2B df1a7c1ed1fc48a7801a53bd89839d963debca6abf7f892d61bf7ec9222ab33bf78221e65d79028e0445cac4c5fe1e0c1620d49aea26c036ee17933d9c1893f5 SHA512 ad1c7f6ca9762b70a1f06a6b538032a7de0c5371fd792260d5959df113f4f51509d184b2207ffa23b41f395c1903d551d66aaf2a2ad60af3594cf1f18d1e4a38
-DIST cloud-init-18.4.tar.gz 965112 BLAKE2B 2879aafedea877e4e406a5e837d100ba65e40c62660621f606e7a189af7b1ec8d98ba2c02ae5d253a0b4587502d3a636dec5c2772c968a9037b47e62a05656b4 SHA512 730aca6406f652f55afc2dd50c49eb6708584e0a96715606bcba05cb7f40e47c256faff1f9748f04674a8f941ec9435801c9ed2ac79adec8a6ef167d6b195103
-DIST cloud-init-18.5.tar.gz 990381 BLAKE2B 0dbbd5b2402d3a7742c46f8a37b0ea31f40ac16bdbfe49dca0056ab8f90c47dbf26e6d3f40f34275caf5102d0b9b8be4e2c28bfc2276e85a5aad11af20b08979 SHA512 f89ee636922e33b5b2dcb5230763404fbeee148e28b8f61bf5b2f1f07000f960f9d38545dfb7bcbe9afb8253f77d66c94b39e9a159715b44a440a7cbe1fe1aeb
+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-17.2.ebuild b/app-emulation/cloud-init/cloud-init-17.2.ebuild
deleted file mode 100644
index d6634eb5bb0c..000000000000
--- a/app-emulation/cloud-init/cloud-init-17.2.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 python3_5 python3_6 )
-
-inherit distutils-r1 eutils multilib systemd
-
-DESCRIPTION="cloud 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"
-RESTRICT="test"
-
-# remove pretytable in 17.2
-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/six[${PYTHON_USEDEP}]
-"
-DEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- 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}]
- )
-"
-RDEPEND="
- ${CDEPEND}
- net-analyzer/macchanger
- sys-apps/iproute2
- sys-fs/growpart
- virtual/logger
-"
-
-PATCHES=( )
-
-python_test() {
- emake test
-}
-
-python_install() {
- distutils-r1_python_install "--init-system=sysvinit_openrc,systemd"
-}
-
-python_install_all() {
- keepdir /etc/cloud
-
- distutils-r1_python_install_all
-
- # installs as non-executable
- chmod +x "${D}"/etc/init.d/*
-
- insinto /etc/cloud/templates
- doins "${FILESDIR}/hosts.gentoo.tmpl"
- insinto /etc/cloud
- doins "${FILESDIR}/cloud.cfg"
-}
-
-pkg_postinst() {
- 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-18.4-r1.ebuild b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
index 8065d2ed4720..a1d0ec08c413 100644
--- a/app-emulation/cloud-init/cloud-init-18.4-r1.ebuild
+++ b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
@@ -1,19 +1,30 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-PYTHON_COMPAT=( python2_7 python3_5 python3_6 )
+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 )
+
+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="
dev-python/jinja[${PYTHON_USEDEP}]
@@ -24,18 +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="
- dev-python/setuptools[${PYTHON_USEDEP}]
+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="
@@ -44,27 +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}"/${P}-fix-packages-module.patch
- "${FILESDIR}"/${P}-gentoo-support-upstream-templates.patch
- "${FILESDIR}"/${PV}-fix-filename-for-storing-locale.patch
- "${FILESDIR}"/${PV}-fix-update_package_sources-function.patch
- "${FILESDIR}"/${PV}-add-support-for-package_upgrade.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() {
@@ -77,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-18.5.ebuild b/app-emulation/cloud-init/cloud-init-22.4.ebuild
index 51b52e32d6e9..839d6105a832 100644
--- a/app-emulation/cloud-init/cloud-init-18.5.ebuild
+++ b/app-emulation/cloud-init/cloud-init-22.4.ebuild
@@ -1,19 +1,30 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-PYTHON_COMPAT=( python2_7 python3_5 python3_6 )
+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="
dev-python/jinja[${PYTHON_USEDEP}]
@@ -24,18 +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="
- dev-python/setuptools[${PYTHON_USEDEP}]
+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="
@@ -44,29 +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}-18.4-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
- # From master
- "${FILESDIR}"/${PV}-fix-invalid-string-format.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 b5415723a60e..7bb69ee6336a 100644
--- a/app-emulation/cloud-init/cloud-init-9999.ebuild
+++ b/app-emulation/cloud-init/cloud-init-9999.ebuild
@@ -1,19 +1,29 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-PYTHON_COMPAT=( python2_7 python3_5 python3_6 )
+EAPI=8
-inherit distutils-r1 git-r3
+# 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 )
+
+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"
+fi
DESCRIPTION="Cloud instance initialisation magic"
HOMEPAGE="https://launchpad.net/cloud-init"
-EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS=""
-IUSE="test"
+IUSE="selinux"
CDEPEND="
dev-python/jinja[${PYTHON_USEDEP}]
@@ -24,18 +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="
- dev-python/setuptools[${PYTHON_USEDEP}]
+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="
@@ -44,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}-18.4-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() {
@@ -78,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/18.5-fix-invalid-string-format.patch b/app-emulation/cloud-init/files/18.5-fix-invalid-string-format.patch
deleted file mode 100644
index 42030f57dc45..000000000000
--- a/app-emulation/cloud-init/files/18.5-fix-invalid-string-format.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 5b065316113b97aadb43e63cc31bb8639f6a6376 Mon Sep 17 00:00:00 2001
-From: Scott Moser <smoser@ubuntu.com>
-Date: Fri, 14 Dec 2018 03:24:26 +0000
-Subject: [PATCH] Update to pylint 2.2.2.
-
-The tip-pylint tox target correctly reported the invalid use of
-string formatting. The change here is to:
-
-a.) Fix the error that was caught.
-b.) move to pylint 2.2.2 for the default 'pylint' target.
----
- cloudinit/sources/DataSourceAzure.py | 4 ++--
- tox.ini | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
-index e076d5dc..46efca4a 100644
---- a/cloudinit/sources/DataSourceAzure.py
-+++ b/cloudinit/sources/DataSourceAzure.py
-@@ -980,8 +980,8 @@ def read_azure_ovf(contents):
- raise NonAzureDataSource("No LinuxProvisioningConfigurationSet")
- if len(lpcs_nodes) > 1:
- raise BrokenAzureDataSource("found '%d' %ss" %
-- ("LinuxProvisioningConfigurationSet",
-- len(lpcs_nodes)))
-+ (len(lpcs_nodes),
-+ "LinuxProvisioningConfigurationSet"))
- lpcs = lpcs_nodes[0]
-
- if not lpcs.hasChildNodes():
-diff --git a/tox.ini b/tox.ini
-index 2fb3209d..d983348b 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -21,7 +21,7 @@ setenv =
- basepython = python3
- deps =
- # requirements
-- pylint==1.8.1
-+ pylint==2.2.2
- # test-requirements because unit tests are now present in cloudinit tree
- -r{toxinidir}/test-requirements.txt
- commands = {envpython} -m pylint {posargs:cloudinit tests tools}
---
-2.20.0
-
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-18.4-gentoo-support-upstream-templates.patch b/app-emulation/cloud-init/files/cloud-init-18.4-gentoo-support-upstream-templates.patch
deleted file mode 100644
index 6f87399af94b..000000000000
--- a/app-emulation/cloud-init/files/cloud-init-18.4-gentoo-support-upstream-templates.patch
+++ /dev/null
@@ -1,91 +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 ["centos", "debian", "fedora", "rhel", "suse", "ubuntu", "freebsd"] %}
-+{% if variant in ["centos", "debian", "fedora", "rhel", "suse", "ubuntu", "freebsd", "gentoo"] %}
- 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 ["centos", "rhel", "fedora", "suse"] %}
-+{% elif variant in ["centos", "rhel", "fedora", "suse", "gentoo"] %}
- # Default user name + that default users groups (if added/used)
- default_user:
- name: {{ variant }}
-@@ -180,6 +180,10 @@ system_info:
- gecos: {{ variant }} Cloud User
- {% if variant == "suse" %}
- groups: [cdrom, users]
-+{% elif variant == "gentoo" %}
-+ groups: [users, wheel]
-+ primary_group: users
-+ no_user_group: true
- {% else %}
- groups: [wheel, adm, systemd-journal]
- {% endif %}
-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 = ["bsd", "centos", "fedora", "rhel", "suse", "ubuntu", "unknown"]
-+VARIANTS = ["bsd", "centos", "fedora", "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.cfg b/app-emulation/cloud-init/files/cloud.cfg
deleted file mode 100644
index d62e3a22241b..000000000000
--- a/app-emulation/cloud-init/files/cloud.cfg
+++ /dev/null
@@ -1,79 +0,0 @@
-# The top level settings are used as module
-# and system configuration.
-
-# A set of users which may be applied and/or used by various modules
-# when a 'default' entry is found it will reference the 'default_user'
-# from the distro configuration specified below
-users:
- - default
-
-# If this is set, 'root' will not be able to ssh in and they
-# will get a message to login instead as the above $user (ubuntu)
-disable_root: true
-ssh_pwauth: false
-
-# This will cause the set+update hostname module to not operate (if true)
-# preserve_hostname: false
-
-syslog_fix_perms: root:root
-
-ssh_deletekeys: false
-ssh_genkeytypes: [rsa, dsa]
-
-cloud_init_modules:
- - seed_random
- - bootcmd
- - write-files
- - growpart
- - resizefs
- - set_hostname
- - update_hostname
- - update_etc_hosts
- - ca-certs
- - users-groups
- - ssh
-
-cloud_config_modules:
- - disk_setup
- - mounts
- - ssh-import-id
- - set-passwords
- - timezone
- - puppet
- - chef
- - salt-minion
- - mcollective
- - disable-ec2-metadata
- - runcmd
-
-cloud_final_modules:
- - scripts-vendor
- - scripts-per-once
- - scripts-per-boot
- - scripts-per-instance
- - scripts-user
- - ssh-authkey-fingerprints
- - keys-to-console
- - phone-home
- - final-message
- - power-state-change
-
-# System and/or distro specific settings
-# (not accessible to handlers/transforms)
-system_info:
- # This will affect which distro class gets used
- distro: gentoo
- # Default user name + that default users groups (if added/used)
- default_user:
- name: gentoo
- lock_passwd: True
- gecos: Gentoo
- groups: [users, wheel]
- primary_group: users
- no-user-group: true
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
- shell: /bin/bash
- # Other config here will be given to the distro class and/or path classes
- paths:
- cloud_dir: /var/lib/cloud/
- templates_dir: /etc/cloud/templates/
diff --git a/app-emulation/cloud-init/files/hosts.gentoo.tmpl b/app-emulation/cloud-init/files/hosts.gentoo.tmpl
deleted file mode 100644
index bc0bca47c5ce..000000000000
--- a/app-emulation/cloud-init/files/hosts.gentoo.tmpl
+++ /dev/null
@@ -1,23 +0,0 @@
-## 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: template
--#}
-# Your system has configured 'manage_etc_hosts' as 'template'.
-# 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 \ No newline at end of file
diff --git a/app-emulation/cloud-init/metadata.xml b/app-emulation/cloud-init/metadata.xml
index ac6c94ad0679..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">
- Package provides configuration and customization of cloud instance.
+ 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 957c323f730a..000000000000
--- a/app-emulation/conmon/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST conmon-0.3.0.tar.gz 49021 BLAKE2B ca753f8fe0801cef4e392e2f60e58c51100628f0576c46d139c9c9827a927970ec63bb0aaebce6ac6ffaedae75b141730833b8adcafc8d9777900d96319edff3 SHA512 9a60f3eace596a8d12dc950597a9e3619a6728bf4555bb1636da3ac8ed8a6bc2ae28471cba9c7c3ad04b61a24aa4bbd28242a22940240bf27babb834031deea4
-DIST conmon-0.4.0.tar.gz 48889 BLAKE2B 50bfa534d04428b422902ab3cd4feec5cb1cf7a6411eb35fc2420680eccc95dd17d7cd1ed8af904f6d246f10511b23b69ff112fee70d3a734098fcd7f5d7d7e7 SHA512 6aa9e0f72231bd890df4f4fe96b8831ad0fcb3e1f0edef74af8471aa227aefc3d8ea20d8bf0d50a6c06913c6360970464ea1b44fb68c77dbcc2da55073704bdd
-DIST conmon-2.0.0.tar.gz 51805 BLAKE2B 4c9e89c7d2339c82eda41b35f014ef392e185a28e93e81770bb1b9c629709c9b20ce0e7d78a0a1e2a68193e791ec45e70d427d8f4533adf5817bf806e919b524 SHA512 0d903f1b83248a130fa6a5c212f96a5bcc37113cfb93c73847a3744b9da8ca355f93f16ca57f4bfb50bcba13b272f23970fdec8ab7ac1862e93b3057512e572b
-DIST conmon-2.0.1.tar.gz 52250 BLAKE2B 59d0786975d0332ce2eb68024bbfe4c3275388d1e12561a279918fb4d2fdc2c8fd24d5872b724ccbc32722b50debf2de5c9e904aa26e25c3363f0418f5f74f8d SHA512 ba7ccdb61b6092987a3fe0fbcf76c11edaf4e15e4af4d831a8e5fdd58202a81be4d9ddf5c1d71eba5824b284f3b4416a65864e19d65dec4dfd511210c75480b1
diff --git a/app-emulation/conmon/conmon-0.3.0.ebuild b/app-emulation/conmon/conmon-0.3.0.ebuild
deleted file mode 100644
index 0946d32bf2f1..000000000000
--- a/app-emulation/conmon/conmon-0.3.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="8455ce1ef385120deb827d0f0588c04357bad4c4"
-DESCRIPTION="An OCI container runtime monitor"
-HOMEPAGE="https://github.com/containers/conmon"
-SRC_URI="https://github.com/containers/conmon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="systemd"
-
-RDEPEND="dev-libs/glib:=
- systemd? ( sys-apps/systemd:= )"
-DEPEND="${RDEPEND}"
-
-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/conmon-0.4.0.ebuild b/app-emulation/conmon/conmon-0.4.0.ebuild
deleted file mode 100644
index 65866c0ffe79..000000000000
--- a/app-emulation/conmon/conmon-0.4.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="ba305505e9621fc0b4429287bfc2c2a7057af51a"
-DESCRIPTION="An OCI container runtime monitor"
-HOMEPAGE="https://github.com/containers/conmon"
-SRC_URI="https://github.com/containers/conmon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="systemd"
-
-RDEPEND="dev-libs/glib:=
- systemd? ( sys-apps/systemd:= )"
-DEPEND="${RDEPEND}"
-
-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/conmon-2.0.0.ebuild b/app-emulation/conmon/conmon-2.0.0.ebuild
deleted file mode 100644
index f204af5c41de..000000000000
--- a/app-emulation/conmon/conmon-2.0.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="e217fdff82e0b1a6184a28c43043a4065083407f"
-DESCRIPTION="An OCI container runtime monitor"
-HOMEPAGE="https://github.com/containers/conmon"
-SRC_URI="https://github.com/containers/conmon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="systemd"
-
-RDEPEND="dev-libs/glib:=
- systemd? ( sys-apps/systemd:= )"
-DEPEND="${RDEPEND}"
-
-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/conmon-2.0.1.ebuild b/app-emulation/conmon/conmon-2.0.1.ebuild
deleted file mode 100644
index 53fa885d0ae0..000000000000
--- a/app-emulation/conmon/conmon-2.0.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="4dc8bcfec41e10ca760c8e2089474c2843dfd066"
-DESCRIPTION="An OCI container runtime monitor"
-HOMEPAGE="https://github.com/containers/conmon"
-SRC_URI="https://github.com/containers/conmon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="systemd"
-
-RDEPEND="dev-libs/glib:=
- systemd? ( sys-apps/systemd:= )"
-DEPEND="${RDEPEND}"
-
-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 9fc74768dd32..000000000000
--- a/app-emulation/containerd/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST containerd-1.2.10.tar.gz 4923354 BLAKE2B 6727fde9949ca96f351964df3c0c7481cb5274895aa3b31552258d57cc5958bd2d3006cfe4d87088d24ac53de1c391b6029b3f800363ee743f08e1937f0d0fec SHA512 14d4f1cad1a68414915c1e98b64dfb6f3f29a0e86e18570d6cc138f4db14b56499b978135954198fe9e2a1363383694eed530b301a9dc699d28c305d4dbf3cd8
-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
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 95e25445893a..000000000000
--- a/app-emulation/containerd/containerd-1.2.10.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2019 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.tools"
-
-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 46e17e7be0b6..000000000000
--- a/app-emulation/containerd/containerd-1.2.6.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2019 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.tools"
-
-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 21f2f7301c8d..000000000000
--- a/app-emulation/containerd/containerd-1.2.7.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2019 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.tools"
-
-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 59441dac7e0b..000000000000
--- a/app-emulation/containerd/containerd-1.3.0.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2019 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.tools"
-
-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/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/metadata.xml b/app-emulation/containerd/metadata.xml
deleted file mode 100644
index a28d7bea81ae..000000000000
--- a/app-emulation/containerd/metadata.xml
+++ /dev/null
@@ -1,31 +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>mrueg@gentoo.org</email>
- <name>Manuel Rüger</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>
- </use>
- <upstream>
- <remote-id type="github">docker/containerd</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/containers-storage/Manifest b/app-emulation/containers-storage/Manifest
deleted file mode 100644
index 91bec43f25d6..000000000000
--- a/app-emulation/containers-storage/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST containers-storage-1.13.1.tar.gz 5983556 BLAKE2B 1d0b6aba0464603fb26c45beecdb9b4afe6566dff4698da980ad6f9736a6d810ec41334f181d5709f78bab986e704c965b1967ed591348cd687d9cb92875321d SHA512 9fa686f44dda3d363f7c623abc9baa0911e26eb5e7dbb7bc60da259fe8d52411cb25fb98e2c8db10a5a80ebf04d07af8390acd48d26706f913900b19e58eac9f
-DIST containers-storage-1.13.3.tar.gz 5983607 BLAKE2B 9e591873da4824a133e3818ba9a97074bca234c3154bef9c4febcfd559d0b2ab7462c7da24ce7d391bbdbe2d9a62cb9fd711624623ba28cd8e79d0ca7fcabb47 SHA512 83fd16cbe5821c68092845defc2c5b8407b03c3972b146f409be3444a114d357709fefc25206a1ca26e6ef4a5fc219f360bb0195ffdc1c6e9f79e90f07740820
-DIST containers-storage-1.13.5.tar.gz 5968281 BLAKE2B 9690ebc87ce32a82b7560d594e192e0ad4dc9e8885797593d8c9699c13b9ddf0814773bce081edafe3050aba5d2bc470855c0717874c091b1468d52f7ad08658 SHA512 7f9f65e3141b7843a42389c78b3fbcc55a205eb661968f85942ccc2751fa6eb3fdf1199e8d244264d1b8f392e290a1770f93d5a8fd58de98f9d9a277aa39155f
-DIST github.com-pquerna-ffjson-e517b90714f7c0eabe6d2e570a5886ae077d6db6.tar.gz 103470 BLAKE2B 81f0f6ea6648997cb61723d09d456802e60a3d1eb35134c4bbc8af5943b955b1402fe2b3f8d0d4d2d0293ab256a9be66d53262d5f79ca00bf8c18ded39dc44f4 SHA512 fadca5a7bd0c0578b23281720a08c505054f3497daeee8efa36b5acafa4118feb4b8a96c4acb4c279d72ebcd50846307cfbb846a355b62f350c961f9102c93a6
diff --git a/app-emulation/containers-storage/containers-storage-1.13.1.ebuild b/app-emulation/containers-storage/containers-storage-1.13.1.ebuild
deleted file mode 100644
index daa6f6e3484b..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.13.1.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_VENDOR=(
- "github.com/pquerna/ffjson e517b90714f7c0eabe6d2e570a5886ae077d6db6"
-)
-
-inherit golang-vcs-snapshot
-
-KEYWORDS="~amd64"
-DESCRIPTION="containers/storage library"
-HOMEPAGE="https://github.com/containers/storage"
-LICENSE="Apache-2.0 BSD BSD-2 ISC MIT"
-SLOT="0"
-IUSE="btrfs +device-mapper ostree test"
-EGO_PN="${HOMEPAGE#*//}"
-EGIT_COMMIT="v${PV}"
-SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- ${EGO_VENDOR_URI}"
-RDEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- ostree? (
- dev-libs/glib:=
- dev-util/ostree:=
- )"
-DEPEND="${RDEPEND}
- dev-go/go-md2man
- test? (
- sys-fs/btrfs-progs
- sys-fs/lvm2
- sys-apps/util-linux
- )"
-RESTRICT="test? ( userpriv ) !test? ( test )"
-
-src_unpack() {
- golang-vcs-snapshot_src_unpack
-}
-
-src_prepare() {
- default
-
- [[ -f ${S}/src/${EGO_PN}/hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "${S}/src/${EGO_PN}/hack/btrfs_tag.sh" || die; }
-
- [[ -f ${S}/src/${EGO_PN}/hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "${S}/src/${EGO_PN}/hack/libdm_tag.sh" || die; }
-
- [[ -f ${S}/src/${EGO_PN}/hack/ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\ntrue" > \
- "${S}/src/${EGO_PN}/hack/ostree_tag.sh" || die; }
-
- sed -e 's:TestChrootUntarPath(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/chrootarchive/archive_test.go" || die
- sed -e 's:TestTarUntar(:_\0:' \
- -e 's:TestTarWithOptionsChownOptsAlwaysOverridesIdPair(:_\0:' \
- -e 's:TestTarWithOptions(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -e 's:TestTarWithBlockCharFifo(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_unix_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestApplyLayer(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/changes_test.go" || die
- sed -e 's:TestApplyLayerInvalidFilenames(:_\0:' \
- -e 's:TestApplyLayerInvalidHardlink(:_\0:' \
- -e 's:TestApplyLayerInvalidSymlink(:_\0:' \
- -e 's:TestApplyLayerWhiteouts(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/diff_test.go" || die
- sed -e 's:TestCopyCaseE(:_\0:' \
- -e 's:TestCopyCaseEFSym(:_\0:' \
- -e 's:TestCopyCaseG(:_\0:' \
- -e 's:TestCopyCaseGFSym(:_\0:' \
- -e 's:TestCopyCaseH(:_\0:' \
- -e 's:TestCopyCaseHFSym(:_\0:' \
- -e 's:TestCopyCaseJ(:_\0:' \
- -e 's:TestCopyCaseJFSym(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/copy_unix_test.go" || die
- sed -e 's:TestMount(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/mount/mounter_linux_test.go" || die
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME #678856
- mkdir -p "${S}/src/github.com/pquerna" || die
- ln -s "${S}/src/${EGO_PN}/vendor/github.com/pquerna/ffjson" "${WORKDIR}/${P}/src/github.com/pquerna/ffjson" || die
- mkdir -p "${S}/bin" || die
- cd "${S}/bin" || die
- GOPATH="${S}" GOBIN="${S}/bin" \
- go build -v -work -x ${EGO_BUILD_FLAGS} "${S}/src/github.com/pquerna/ffjson/ffjson.go" || die
- GOPATH="${S}" GOBIN="${S}/bin" PATH="${S}/bin:${PATH}" \
- emake -C "${S}/src/${EGO_PN}" containers-storage docs
-}
-
-src_install() {
- dobin "${S}/src/${EGO_PN}/${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- GOPATH="${S}" unshare -m emake -C "${S}/src/${EGO_PN}" FLAGS="-v -work -x" local-test-unit || die
-}
diff --git a/app-emulation/containers-storage/containers-storage-1.13.3.ebuild b/app-emulation/containers-storage/containers-storage-1.13.3.ebuild
deleted file mode 100644
index 0e74471b34df..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.13.3.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_VENDOR=(
- "github.com/pquerna/ffjson e517b90714f7c0eabe6d2e570a5886ae077d6db6"
-)
-
-inherit golang-vcs-snapshot
-
-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 ostree test"
-EGO_PN="${HOMEPAGE#*//}"
-EGIT_COMMIT="v${PV}"
-SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- ${EGO_VENDOR_URI}"
-RDEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- ostree? (
- dev-libs/glib:=
- dev-util/ostree:=
- )"
-DEPEND="${RDEPEND}
- dev-go/go-md2man
- test? (
- sys-fs/btrfs-progs
- sys-fs/lvm2
- sys-apps/util-linux
- )"
-RESTRICT="test? ( userpriv ) !test? ( test )"
-
-src_unpack() {
- golang-vcs-snapshot_src_unpack
-}
-
-src_prepare() {
- default
-
- [[ -f ${S}/src/${EGO_PN}/hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "${S}/src/${EGO_PN}/hack/btrfs_tag.sh" || die; }
-
- [[ -f ${S}/src/${EGO_PN}/hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "${S}/src/${EGO_PN}/hack/libdm_tag.sh" || die; }
-
- [[ -f ${S}/src/${EGO_PN}/hack/ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\ntrue" > \
- "${S}/src/${EGO_PN}/hack/ostree_tag.sh" || die; }
-
- sed -e 's:TestChrootUntarPath(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/chrootarchive/archive_test.go" || die
- sed -e 's:TestTarUntar(:_\0:' \
- -e 's:TestTarWithOptionsChownOptsAlwaysOverridesIdPair(:_\0:' \
- -e 's:TestTarWithOptions(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -e 's:TestTarWithBlockCharFifo(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_unix_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestApplyLayer(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/changes_test.go" || die
- sed -e 's:TestApplyLayerInvalidFilenames(:_\0:' \
- -e 's:TestApplyLayerInvalidHardlink(:_\0:' \
- -e 's:TestApplyLayerInvalidSymlink(:_\0:' \
- -e 's:TestApplyLayerWhiteouts(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/diff_test.go" || die
- sed -e 's:TestCopyCaseE(:_\0:' \
- -e 's:TestCopyCaseEFSym(:_\0:' \
- -e 's:TestCopyCaseG(:_\0:' \
- -e 's:TestCopyCaseGFSym(:_\0:' \
- -e 's:TestCopyCaseH(:_\0:' \
- -e 's:TestCopyCaseHFSym(:_\0:' \
- -e 's:TestCopyCaseJ(:_\0:' \
- -e 's:TestCopyCaseJFSym(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/copy_unix_test.go" || die
- sed -e 's:TestMount(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/mount/mounter_linux_test.go" || die
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME #678856
- mkdir -p "${S}/src/github.com/pquerna" || die
- ln -s "${S}/src/${EGO_PN}/vendor/github.com/pquerna/ffjson" "${WORKDIR}/${P}/src/github.com/pquerna/ffjson" || die
- mkdir -p "${S}/bin" || die
- cd "${S}/bin" || die
- GOPATH="${S}" GOBIN="${S}/bin" \
- go build -v -work -x ${EGO_BUILD_FLAGS} "${S}/src/github.com/pquerna/ffjson/ffjson.go" || die
- GOPATH="${S}" GOBIN="${S}/bin" PATH="${S}/bin:${PATH}" \
- emake -C "${S}/src/${EGO_PN}" containers-storage docs
-}
-
-src_install() {
- dobin "${S}/src/${EGO_PN}/${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- GOPATH="${S}" unshare -m emake -C "${S}/src/${EGO_PN}" FLAGS="-v -work -x" local-test-unit || die
-}
diff --git a/app-emulation/containers-storage/containers-storage-1.13.5.ebuild b/app-emulation/containers-storage/containers-storage-1.13.5.ebuild
deleted file mode 100644
index abe57aef3e08..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.13.5.ebuild
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_VENDOR=(
- "github.com/pquerna/ffjson e517b90714f7c0eabe6d2e570a5886ae077d6db6"
-)
-
-inherit golang-vcs-snapshot
-
-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"
-EGO_PN="${HOMEPAGE#*//}"
-EGIT_COMMIT="v${PV}"
-SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- ${EGO_VENDOR_URI}"
-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? ( userpriv ) !test? ( test )"
-
-src_unpack() {
- golang-vcs-snapshot_src_unpack
-}
-
-src_prepare() {
- default
-
- [[ -f ${S}/src/${EGO_PN}/hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "${S}/src/${EGO_PN}/hack/btrfs_tag.sh" || die; }
-
- [[ -f ${S}/src/${EGO_PN}/hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "${S}/src/${EGO_PN}/hack/libdm_tag.sh" || die; }
-
- sed -e 's:TestChrootUntarPath(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/chrootarchive/archive_test.go" || die
- sed -e 's:TestTarUntar(:_\0:' \
- -e 's:TestTarWithOptionsChownOptsAlwaysOverridesIdPair(:_\0:' \
- -e 's:TestTarWithOptions(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -e 's:TestTarWithBlockCharFifo(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_unix_test.go" || die
- sed -e 's:TestTarUntarWithXattr(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/archive_test.go" || die
- sed -e 's:TestApplyLayer(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/changes_test.go" || die
- sed -e 's:TestApplyLayerInvalidFilenames(:_\0:' \
- -e 's:TestApplyLayerInvalidHardlink(:_\0:' \
- -e 's:TestApplyLayerInvalidSymlink(:_\0:' \
- -e 's:TestApplyLayerWhiteouts(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/diff_test.go" || die
- sed -e 's:TestCopyCaseE(:_\0:' \
- -e 's:TestCopyCaseEFSym(:_\0:' \
- -e 's:TestCopyCaseG(:_\0:' \
- -e 's:TestCopyCaseGFSym(:_\0:' \
- -e 's:TestCopyCaseH(:_\0:' \
- -e 's:TestCopyCaseHFSym(:_\0:' \
- -e 's:TestCopyCaseJ(:_\0:' \
- -e 's:TestCopyCaseJFSym(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/archive/copy_unix_test.go" || die
- sed -e 's:TestMount(:_\0:' \
- -i "${S}/src/${EGO_PN}/pkg/mount/mounter_linux_test.go" || die
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME #678856
- mkdir -p "${S}/src/github.com/pquerna" || die
- ln -s "${S}/src/${EGO_PN}/vendor/github.com/pquerna/ffjson" "${WORKDIR}/${P}/src/github.com/pquerna/ffjson" || die
- mkdir -p "${S}/bin" || die
- cd "${S}/bin" || die
- GOPATH="${S}" GOBIN="${S}/bin" \
- go build -v -work -x ${EGO_BUILD_FLAGS} "${S}/src/github.com/pquerna/ffjson/ffjson.go" || die
- GOPATH="${S}" GOBIN="${S}/bin" PATH="${S}/bin:${PATH}" \
- emake -C "${S}/src/${EGO_PN}" containers-storage docs
-}
-
-src_install() {
- dobin "${S}/src/${EGO_PN}/${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/src/${EGO_PN}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- GOPATH="${S}" unshare -m emake -C "${S}/src/${EGO_PN}" FLAGS="-v -work -x" 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 17371971e525..000000000000
--- a/app-emulation/containers-storage/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>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>
- <flag name="ostree">
- Enables dependencies for handling of OSTree images.
- </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 d271f088bf6c..000000000000
--- a/app-emulation/cri-o/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST cri-o-1.10.6.tar.gz 5161858 BLAKE2B bbfaf60c92dee3a9f42e9d4fc9b5482057a7a0ff2de36d74d434e2e60b53f92f70980c83825c18089c4a48bfa01c164b77aa01506c68c763f00265796e07d367 SHA512 b6a412cf5859dab79095732c2528e2ba373b3c21740203441fd3646862e2458e78e71f1895a5def05207964ef96a354c04395356e426600994bb39d3adfd0894
-DIST cri-o-1.13.9.tar.gz 6685519 BLAKE2B 5d9e68c7a0ae532e2406e5e47562693cddbc34a8b3ddcab0a7a34509dff8383d1fc255cba634efb186193e5784cc6a7638387ca29e68288af7621b8b25f1a71a SHA512 1541368955c62c697dbd6b850cdf6762a13a7a308f699e3a50dbfe29fbf991f4f47cfcce75bc41745e0c27acb29457ec86d3312ef13341a5d94526865e60eb3e
-DIST cri-o-1.15.1.tar.gz 11811389 BLAKE2B 2f6e223e2d3964f480e9739ee4808101ae2ca8c0a16eb589d2e3501d370c60694843309b602a4a4b8e16ed97094f97c81ff4f23b542a9536b38f9fe9a97bcd97 SHA512 2b9122692d84e8a6832d7172782c41d354185809cd3fa999951485f8df8fd1750dd15b2005fbb3bc422f5199daeb32a768e824402c9e95f25593e250bd7ecc07
-DIST cri-o-1.15.2.tar.gz 11861335 BLAKE2B 159bdf322540c3d49f44b1fc1106d1717706f7817e4621743078dfbb5d9088318d7dda5da54ff94ed43ea58204413d496ffda424ea94ed6fd0c6e090bbba37f0 SHA512 d30a27d98537cd73bf341267922b94434958bf5e5d3a26de3af2b7899fd9d860be12a194531f81fb704abed79eac1c5139271fab1e52b994b939dafab00f1cfd
diff --git a/app-emulation/cri-o/cri-o-1.10.6.ebuild b/app-emulation/cri-o/cri-o-1.10.6.ebuild
deleted file mode 100644
index a5292a57902f..000000000000
--- a/app-emulation/cri-o/cri-o-1.10.6.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-EGIT_COMMIT="56d7d9a0750d7deb06182361837b690683f13dfe"
-EGO_PN="github.com/kubernetes-incubator/${PN}"
-
-inherit golang-vcs-snapshot systemd
-
-DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface"
-HOMEPAGE="https://cri-o.io/"
-SRC_URI="https://github.com/kubernetes-incubator/${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 ostree seccomp selinux"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- 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
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- ostree? ( dev-util/ostree )
- seccomp? ( sys-libs/libseccomp:= )
- selinux? ( sys-libs/libselinux:= )"
-DEPEND="
- ${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
-
- sed -e '/^GIT_.*/d' \
- -e 's/$(GO) build -i/$(GO) build -v -work -x/' \
- -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \
- -i 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/ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\necho containers_image_ostree_stub" > \
- hack/ostree_tag.sh || die; }
-
- [[ -f hack/seccomp_tag.sh ]] || die
- use seccomp || { echo -e "#!/bin/sh\ntrue" > \
- hack/seccomp_tag.sh || die; }
-
- [[ -f hack/selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- hack/selinux_tag.sh || die; }
-
- mkdir -p bin || die
- GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/bin" \
- emake binaries docs
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install.bin install.man
-
- keepdir /etc/crio
- insinto /etc/crio
- use seccomp && doins seccomp.json
-
- "${ED}"/usr/bin/crio --config="" config --default > "${T}"/crio.conf.example || die
- doins "${T}/crio.conf.example"
-
- 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
-
- systemd_dounit contrib/systemd/*
-}
diff --git a/app-emulation/cri-o/cri-o-1.13.9.ebuild b/app-emulation/cri-o/cri-o-1.13.9.ebuild
deleted file mode 100644
index 3331e9719be1..000000000000
--- a/app-emulation/cri-o/cri-o-1.13.9.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="d70609afd5e933948284aebf15966bdc098d28b3"
-EGO_PN="github.com/kubernetes-sigs/${PN}"
-
-inherit golang-vcs-snapshot systemd
-
-DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface"
-HOMEPAGE="https://cri-o.io/"
-SRC_URI="https://github.com/kubernetes-sigs/${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 ostree seccomp selinux"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- 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
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- ostree? ( dev-util/ostree )
- seccomp? ( sys-libs/libseccomp:= )
- selinux? ( sys-libs/libselinux:= )"
-DEPEND="
- ${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-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}'/' \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -i Makefile.inc || 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/ostree_tag.sh ]] || die
- use ostree || { echo -e "#!/bin/sh\necho containers_image_ostree_stub" > \
- hack/ostree_tag.sh || die; }
-
- [[ -f hack/seccomp_tag.sh ]] || die
- use seccomp || { echo -e "#!/bin/sh\ntrue" > \
- hack/seccomp_tag.sh || die; }
-
- [[ -f hack/selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- hack/selinux_tag.sh || die; }
-
- mkdir -p bin || die
- GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/bin" \
- emake binaries docs
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install.bin install.man
-
- keepdir /etc/crio
- insinto /etc/crio
- use seccomp && doins seccomp.json
-
- "${ED}"/usr/bin/crio --config="" config --default > "${T}"/crio.conf.example || die
- doins "${T}/crio.conf.example"
-
- 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
-
- systemd_dounit contrib/systemd/*
-}
diff --git a/app-emulation/cri-o/cri-o-1.15.1.ebuild b/app-emulation/cri-o/cri-o-1.15.1.ebuild
deleted file mode 100644
index c439086a987c..000000000000
--- a/app-emulation/cri-o/cri-o-1.15.1.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="f0827bb332854ffcff2f4d9f64d68b8139970b3d"
-EGO_PN="github.com/cri-o/${PN}"
-
-inherit golang-vcs-snapshot
-
-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/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"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
-
- # Avoid network-sandbox violations since go-1.13
- rm go.mod || die
-
- 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}'/' \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -i Makefile.inc || die
-
- sed -e 's:/usr/local/bin:/usr/bin:' \
- -i contrib/systemd/* || die
-
- if ! use systemd; then
- sed -e 's| pkg-config --exists libsystemd-journal | false |' \
- -e 's| pkg-config --exists libsystemd | false |' \
- -i conmon/Makefile || die
- fi
-}
-
-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
- GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/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.15.2.ebuild b/app-emulation/cri-o/cri-o-1.15.2.ebuild
deleted file mode 100644
index c439086a987c..000000000000
--- a/app-emulation/cri-o/cri-o-1.15.2.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="f0827bb332854ffcff2f4d9f64d68b8139970b3d"
-EGO_PN="github.com/cri-o/${PN}"
-
-inherit golang-vcs-snapshot
-
-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/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"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
-
- # Avoid network-sandbox violations since go-1.13
- rm go.mod || die
-
- 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}'/' \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -i Makefile.inc || die
-
- sed -e 's:/usr/local/bin:/usr/bin:' \
- -i contrib/systemd/* || die
-
- if ! use systemd; then
- sed -e 's| pkg-config --exists libsystemd-journal | false |' \
- -e 's| pkg-config --exists libsystemd | false |' \
- -i conmon/Makefile || die
- fi
-}
-
-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
- GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/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 0ebb508fdee4..000000000000
--- a/app-emulation/cri-o/metadata.xml
+++ /dev/null
@@ -1,31 +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>
- <flag name="ostree">
- Enables dependencies for handling of OSTree images.
- </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 4e67c24c2448..000000000000
--- a/app-emulation/cri-tools/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST cri-tools-1.14.0.tar.gz 3647742 BLAKE2B 1a308c87e7be05dd71cf11d79c841a837156529d398f1475323ff9585f9080cd0356a007f8b8c505a02943ff479a7c26869f35288d178ac8187ca6766032c488 SHA512 c8978e4380ebb2dd59ce533ade94486ae1e4091fda7acd8cf5cce662034a1d34a1851c43bf766a723c5ba71c15972733a2e80c6e82fb1c27e5a1dfc2e85476bf
-DIST cri-tools-1.15.0.tar.gz 3672568 BLAKE2B d4e9a0b2ca43efdb61c7626de518801a124fb61991f1df6a7eac106f7516ab59effa70038db7c4cbfddaf1c345c648f359c86d298dae08abb34f4b801b82b2a1 SHA512 43115fad485c2c6603e724f3529371133bcea6de069dc58d36e7880f558fa1696244b6129fe3a96fd669b27a3d9bd07bda1219e89afa348e36a85087992adf7f
-DIST cri-tools-1.16.0.tar.gz 6912563 BLAKE2B 09ceaf0ebccfdd39d7a325989447ca8c4c9e94ec0f20e8c26a5c9447d1ad6591df1c237abf130edbc84b4b1b65f81f109976d20195b3b34afca1aac460ad48e2 SHA512 c577328e11e975b15302b49082592f065be389b384cebbaa4615ef5c4ea81a4bfc88e02de6ef2749beff75ea6a27bb9d72b30af47d0f9870b297e9da53b3e25f
-DIST cri-tools-1.16.1.tar.gz 6915584 BLAKE2B eb2bc397b3bbeadb64d4d13610189f18bbf49ff93be1b1f3edf504305ed1a2ca8e271d3c041f5af01117f6c7403671a29df30d7aaab270cdb7ab84ac921fa914 SHA512 df15e6f3c4fe697070547d804bfa6755f780b3f0562f06312f39d3ee8756931bbec7c07482e2ef73413d85c1e9ca58064a769a15b04b3832da17044d180e8b4c
diff --git a/app-emulation/cri-tools/cri-tools-1.14.0.ebuild b/app-emulation/cri-tools/cri-tools-1.14.0.ebuild
deleted file mode 100644
index 9c6fd7ec054c..000000000000
--- a/app-emulation/cri-tools/cri-tools-1.14.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2018 Sony Interactive Entertainment Inc.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot
-
-EGO_PN="github.com/kubernetes-sigs/cri-tools"
-MY_PV="v${PV/_beta/-beta.}"
-ARCHIVE_URI="https://${EGO_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="amd64"
-
-DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)"
-HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-src_compile() {
- GOPATH="${S}" go test -c -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/critest ${EGO_PN}/cmd/critest || die
- GOPATH="${S}" go build -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/crictl ${EGO_PN}/cmd/crictl || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/cri-tools/cri-tools-1.15.0.ebuild b/app-emulation/cri-tools/cri-tools-1.15.0.ebuild
deleted file mode 100644
index a298fcbf5cbf..000000000000
--- a/app-emulation/cri-tools/cri-tools-1.15.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2018 Sony Interactive Entertainment Inc.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot
-
-EGO_PN="github.com/kubernetes-sigs/cri-tools"
-MY_PV="v${PV/_beta/-beta.}"
-ARCHIVE_URI="https://${EGO_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)"
-HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-src_compile() {
- GOPATH="${S}" go test -c -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/critest ${EGO_PN}/cmd/critest || die
- GOPATH="${S}" go build -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/crictl ${EGO_PN}/cmd/crictl || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/cri-tools/cri-tools-1.16.0.ebuild b/app-emulation/cri-tools/cri-tools-1.16.0.ebuild
deleted file mode 100644
index a298fcbf5cbf..000000000000
--- a/app-emulation/cri-tools/cri-tools-1.16.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2018 Sony Interactive Entertainment Inc.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot
-
-EGO_PN="github.com/kubernetes-sigs/cri-tools"
-MY_PV="v${PV/_beta/-beta.}"
-ARCHIVE_URI="https://${EGO_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)"
-HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-src_compile() {
- GOPATH="${S}" go test -c -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/critest ${EGO_PN}/cmd/critest || die
- GOPATH="${S}" go build -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/crictl ${EGO_PN}/cmd/crictl || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/cri-tools/cri-tools-1.16.1.ebuild b/app-emulation/cri-tools/cri-tools-1.16.1.ebuild
deleted file mode 100644
index 2ffbd0494217..000000000000
--- a/app-emulation/cri-tools/cri-tools-1.16.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2018 Sony Interactive Entertainment Inc.
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot bash-completion-r1
-
-EGO_PN="github.com/kubernetes-sigs/cri-tools"
-MY_PV="v${PV/_beta/-beta.}"
-ARCHIVE_URI="https://${EGO_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)"
-HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-src_compile() {
- GOPATH="${S}" go test -c -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/critest ${EGO_PN}/cmd/critest || die
- GOPATH="${S}" go build -v -ldflags="-X ${EGO_PN}/pkg/version.Version=${MY_PV}" -o bin/crictl ${EGO_PN}/cmd/crictl || die
- bin/crictl completion bash > ${PN}.bash || die
- bin/crictl completion zsh > ${PN}.zsh || die
-}
-
-src_install() {
- dobin bin/*
-
- newbashcomp ${PN}.bash ${PN}
- insinto /usr/share/zsh/site-functions
- newins ${PN}.zsh _${PN}
-
- dodoc -r src/${EGO_PN}/{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 abacd7abac65..000000000000
--- a/app-emulation/cri-tools/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>mrueg@gentoo.org</email>
- <name>Manuel Rüger</name>
- </maintainer>
- <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 d870d906e22b..cdf8db6e0822 100644
--- a/app-emulation/crossover-bin/Manifest
+++ b/app-emulation/crossover-bin/Manifest
@@ -1,23 +1,4 @@
-DIST install-crossover-12.5.0.bin 55089470 BLAKE2B 13c30717c5dcfb802f97df5c5a83a4ba00b769bcc361ba24f9834910392b5ba3ad9eb0c03bea9ac827f1526078e1142aef5d36b76c6576a35edaf1f6f96e092f SHA512 85dbf37b76dd63ba761f6f8efc8c294f38bdb2a443fbed7a7f7f37652b377046f7bd27588600fc456e7fa8040d06a1673475bfc6a7b7a110a16a678efcc5c764
-DIST install-crossover-12.5.1.bin 56658131 BLAKE2B 540678f4905d012c45aee4033d5b056b3415535a05f3d9c0f7aba875ab2fb88fd311fec9b64085b57b07bf06bfd9b0f90e8c3bb0cfafde3f8ccbe114ae51ac82 SHA512 0f71a06f3a028698c4b076b205d807e193282c10c7cfb8e62e4697e9b3bd7549947c02c15f82d959d6963630677e6c72a5f8468d35d66ccb3ff6814ed2173c72
-DIST install-crossover-13.0.0.bin 58807581 BLAKE2B d93a92db09777c3108342428bcd0d4de59921a8e7569b8e501f7b706c462a39b5320d98e69fb3d97c215d290e0c1950f42586fefa37b50c6df29014607f42a6b SHA512 fcf5dde6da1f2fb1eb402bd588baab5e951f8a0ad7959b06a4b7a42f250beb74f9c8d95f26f6fcd4ced9ce0bc4b484ad9a045a485f82028bf8ab7f2abf7ace33
-DIST install-crossover-13.0.1.bin 58567182 BLAKE2B 49e0f7201b2501036883ff9b9ef81f997aaff781b8c01f4992243dc728c2298a3c9cfb2932dd7e4da8e6750e837394184b14e2828f0b763e86fcb5abe6955878 SHA512 e43e3e92d4ac36546fafdf68d61b4fd5af412f83e301b232230589247ed052cb958f0d4eb7667fd616797b8f8c3b4f7acbfa7a9f1206204c5a98e456113a380b
-DIST install-crossover-13.1.0.bin 58678679 BLAKE2B 910f7e7f630aee966d304d46755eb83e642a859b3feab7d08403f277fbd2d5458ec3e1150da8c5489e83b7a20992ebd7d51611a675baaf0944c3a637a8c2692f SHA512 1f2b5625c826bbf16231e1b3ea8694bcda24cf3a7a90347a29b9d97f654ce35df26aff2b8166e8c517e85785d4ea2b5fbdf1bcb82263fa0e8715846fd1668d15
-DIST install-crossover-13.1.2.bin 58730543 BLAKE2B dcd0eec9c0e2a8a4cd96dd8351c43402feac367eca731c5196d11f75ffc88606c199fb856d4df21aebd6d686831070df2cccaf5f3da4699cc8b8da9799218bd0 SHA512 5944db06162a67f68fa4a1ab14f7fbc41f114c63adebecf4c0c50967245f81bb42e58dbe66d33fbfaaeae232aacb2b534fc4367d592eaa6f1cc75e32ec0d23b3
-DIST install-crossover-13.1.3.bin 58768110 BLAKE2B 11406c1f1b53c5f97a566693c6bc588e72be71d9e20665723b44f3cc258416b0a27a4e51a9ea648da90e309656d5764f7d7bcca790f31eb52be8d9dbce8e08d3 SHA512 091a70e777f8311f818d227f26850f256d6acc7f50c93855f72857f2e21298524262d490fcc8a97342faea1a261ab042b0064d112aacb6c30e9ab5301f89eabe
-DIST install-crossover-13.2.0.bin 64625581 BLAKE2B a8f732a2091576d83ca5cf47b239c8bc3737336bbb4c8fb1f48631db63ba00a4dcb23217b8464d412298d546b4b1e03e676fc1805df042bb9297a923c9d60f34 SHA512 1f582eeca8db02c15d98d519b2d24f65b8dcddd90ff270915a4e6dbd24e135b074c5a20dd824c3d8c8f35cef79610c02423b5558db205a6e80630f69191e051b
-DIST install-crossover-14.0.3.bin 68080015 BLAKE2B 8fe46c3e61de02b03598320ba004ed11bde974d06d3cb97e61d63745ade919332acf321ae36e610f5fbfed9e963670a5fbf1912a5383eb08023b04f27a8ad587 SHA512 86855e112f5b5d7621e0d4c644abe570de0270e678dc9666482025c948733de02c66fcf67999079a8ba99537695b36d4fb61aee90a59c319edad5fb477a0f902
-DIST install-crossover-14.1.4.bin 68463678 BLAKE2B e5b718fb90a2812dded7aec0768175d1c78ba82ef84c6e5efc08fd79021c5899901bf2043a8d1643440cd52c3b071ef4059a5a106ec15ad98b158c7746381723 SHA512 2078d9e8fc10c526085aef0bfa0cedbcc1a96ec59ade934ea10e7f10062f1a58f5647e9aed59653d4a1253699a08e9ef6f01548010e960af24d0d3546549fb91
-DIST install-crossover-15.0.0.bin 80995834 BLAKE2B 63809a9f39e48cd51b9b0b97cdc1cebb8e99d992bdc8a9d3a0d5f48bab3c828d60b8aaf8e8829933a0d5fd1370d318395c01c708c3353597b74ce3ed6442a592 SHA512 597262b760c7cfc3c42cdb0b846802c6c47d4fcd5af06b53d0c63c80e4890e14af8ff0eaaac74a08f4f5d55e166a480d199b185efe685f7c42abca3d62fc2a0d
-DIST install-crossover-15.0.1.bin 81027541 BLAKE2B 2cb838aad4363d910897a76cf1d03f031d2a14f494fef3f4db082c303c46f5964fac20096bd1d596285a4bef152af1ba7864b3205a3ee35efc6ff6d5ac7565c7 SHA512 a35188ccebeee8d456e73fdcbb8e8d4f0aff41bb89d92767d2e2e78e7cb25c8e48a150393c1c9abeb9760fbc873314e301c0a364ba27acfe08e0980bb5eedb03
-DIST install-crossover-15.1.0.bin 80623685 BLAKE2B 77125ce567c997ee718f546c3b68077a3d59e6a0f5711968bb5cb72cc0b2c7dd22182d7e8c8864c5eef0b6e833159a4534fc81db7234ea8bf757b5a465df1abc SHA512 177e70baff3d99e808834c8e6f626f09d9c262babd6d5a3b51ea79a5a68a157cdfd4fd60ad6939d110f2300670e4973d9fd43a3a132ff9a2367dedb782e5c05c
-DIST install-crossover-15.2.0.bin 80734561 BLAKE2B e8b4ee0ab2c5a8463c2757a756a008886071a35114e5ee1b5590907ad42be3c6777bc024cb2c3c41f215e6e29b69d08d46c47dbea0629f542c098b957d124106 SHA512 9633e29b26f8fa99d1c34347b8e1f2e89b84370994a1ab3bba7061b75224f3a907d1c364207312dde1995e5a59180f8699558a96a4c99b157257ab9c21013b2e
-DIST install-crossover-15.3.0.bin 80774063 BLAKE2B 2f0aa184f77120c241656d8d9990c5cfe177ab847061e023f0f08b52d804a1f832a18b1f2e82fddf9dde8313e717d3c92104ab46d95dc50c5935c57f878b6716 SHA512 8e5a6fa40a0af0976d794436ac69edf61f73d4f1f128503a6372c4ae804eb977438a98062bc064f25dbb93015fa0776b9e5d572a98e887980214d3ccb93fd4c7
-DIST install-crossover-15.3.1.bin 80774288 BLAKE2B 3d3fd83ee426a66ead3c88f4ca584408117e9a0f9a1af6d2cfe0623db398caaeb2dc1b285f8edbf9a700c3281bd5bdd81542df9ef0457be036727b756121d99d SHA512 3f4da41a7b255263012e70ed833a134425e464847acc69ba79f73989c0bfc5f98869cf5858c1e2d16422a8220296695157b942f275b861b3ee0dcc2d90f7da7d
-DIST install-crossover-16.0.0.bin 197872657 BLAKE2B d500ed4f6a426154b376ead6c2b50eb21a403303561078dc51982a5147af23261dda9892717c16c6e2f3b2a30ffc84e73070cd330bea70ba89c79180c4933297 SHA512 184533679ddf3918ab5fc00b01452d868c694fbc7ccb5484c88822cc52da067fd1a0be0387e4050e40d9b367052158faec27dc06f6a371a044b5a1782950e780
-DIST install-crossover-16.2.5.bin 198336730 BLAKE2B a11252dab552846fe0a1527cd59cd62907142385062b744591cef6707213d03945879fc5da6bcfaaa315967c51ae15159ad14d8519407542b82f0eb53c5fd02e SHA512 17cb711e7257f094e9ccf939edc1ca6be362f18b86078fe307b7e1337850e182d02fde087789f13ea2bf96ca89736f941c1a7bd93ff1b37a78fe8f846a1d5e22
-DIST install-crossover-17.5.0.bin 198287744 BLAKE2B c594192927874e5a80626ad110f0089f2bf8b7385a16ff7755923d63ebb0559b1aa505ec4e8b6f85253ac13736b7f9af178c64ed042a515d31cd4565295db163 SHA512 8592d2c91c437d62d1fd5fecf6230eeabfe56c38f49ea795bf4d3b51d8ae4399f1b01801d60dcccb94caeb4dd662675c2739f730f39ef178db32dd4f72182197
-DIST install-crossover-17.5.1.bin 198278549 BLAKE2B e53504177eb4a4030a31ae73baf26144375dd559bcd58af3ef05364cfb7a00b8cd68d879e6ef31e92b165876e4c3f85ebcb823dd6585c3edcb8e4cafb76d8e59 SHA512 d1e41c5290c56bbb23a6317e91800d7c23d2b4389ebf08ef4416718103aa06b05b33c655d3ef413fe76773dd3599d8fe3d4ea64274fcc18518923990f980bf2a
-DIST install-crossover-18.0.0.bin 206792916 BLAKE2B d1784ddd2dc568d2b6f1fe60b7fad149e6128e61d2315b2179f4d87b7d49bc0166851df3fb3e39b911bfbbba6366f8c98f63e47e18abb173a1129f11795454c7 SHA512 3ad7393714a43e7323ad6e81ea8f165df9253dfdfff20fc68f5091e77b288b86c3a3e11883732dc73ec5c89e500005b6451899b7e43fc4900c6bd40445739281
-DIST install-crossover-18.1.0.bin 206784995 BLAKE2B 4e8ae8330373b505b2ed361e314bcdaf3564a0b846484d2708e64e94d3fe856c35e1d235fa474d4a079a8c0e88dade02bb1e93f0608d1ec99dca2a3a74f7865c SHA512 a679f0a801a6c2045a724ae5935745457689ae73ea4246daa1fc89a387f42c55ba0431db8fcdf48ba7253f616613adb51ca0402fe19480c0254f614fcb6884d8
-DIST install-crossover-18.5.0.bin 224996342 BLAKE2B 300141bcf7c54ab1ce8229c6930df783454d450aee7b1be3cc3a193d1501320dee3e6fdfb3f37c56ae76e97f83f1b45838f1d5b7ed9793888a51df0203fe6dfe SHA512 ce44d7f79280adb36ecbcbdee3fa743dcca47b629fd1cb0ae2afbca56514df96e78e1103f09f5059aaf971a3a561f992158104ffa30bdd28925b14e58bd96855
+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-12.5.0-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-12.5.0-r2.ebuild
deleted file mode 100644
index 15750dd80789..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-12.5.0-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support"
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild b/app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild
deleted file mode 100644
index c00511cf666c..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
- sed -e 's:/usr/local/etc/xdg /etc/xdg::' -i "${WORKDIR}/bin/locate_gui.sh" \
- || die "Could not patch ${WORKDIR}/bin/locate_gui.sh"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # Install requisite directories for menus
- dodir "/usr/share/applications"
- dodir "/etc/xdg/menus/applications-merged"
-
- # Install menus
- XDG_CONFIG_DIRS="${ED}etc/xdg" \
- XDG_DATA_DIRS="${ED}usr/share" \
- "${ED}opt/cxoffice/bin/cxmenu" --crossover --install \
- || die "Could not install menus"
-
- # Fix menus
- sed -e "s:${ED}:/:" -i "${ED}usr/share/applications/"* \
- || die "Could not fix menus"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild
deleted file mode 100644
index ba03accfe227..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- sed -i -e "s:\$link=\"\$xdgdir:\$link=\"${ED}\/\$xdgdir:" "${S}/lib/perl/CXMenu.pm"
- sed -i \
- -e "s:\"\(.*\)/applications:\"${ED}/\1/applications:" \
- -e "s:\"\(.*\)/desktop-directories:\"${ED}/\1/desktop-directories:" \
- "${S}/lib/perl/CXMenuXDG.pm"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop"
- sed -i -e "s:${ED}:/:" "${ED}usr/share/applications/"*.desktop
- sed -i -e "s:${ED}/::" \
- "${ED}/opt/cxoffice/lib/perl/CXMenu.pm" \
- "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild
deleted file mode 100644
index cf4b4f10d80d..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 unpacker
-
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
-HOMEPAGE="https://www.codeweavers.com/products/"
-SRC_URI="install-crossover-${PV}.bin"
-
-LICENSE="CROSSOVER-2"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="+capi +cups doc +gphoto2 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist fetch test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- sed -i -e "s:\$link=\"\$xdgdir:\$link=\"${ED}\/\$xdgdir:" "${S}/lib/perl/CXMenu.pm"
- sed -i \
- -e "s:\"\(.*\)/applications:\"${ED}/\1/applications:" \
- -e "s:\"\(.*\)/desktop-directories:\"${ED}/\1/desktop-directories:" \
- "${S}/lib/perl/CXMenuXDG.pm"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop"
- sed -i -e "s:${ED}:/:" "${ED}usr/share/applications/"*.desktop
- sed -i -e "s:${ED}/::" \
- "${ED}/opt/cxoffice/lib/perl/CXMenu.pm" \
- "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-15.0.0.ebuild
deleted file mode 100644
index c8154f99883d..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.0.0.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- sed -i \
- -e "s:\"\$xdgdir/icons/hicolor/\$size/apps\":\"${ED}/\$xdgdir/icons/hicolor/\$size/apps\":" \
- "${S}/lib/perl/CXMenu.pm"
- sed -i \
- -e "s:\"\(.*\)/applications:\"${ED}/\1/applications:" \
- -e "s:\"\(.*\)/desktop-directories:\"${ED}/\1/desktop-directories:" \
- "${S}/lib/perl/CXMenuXDG.pm"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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" \
- || die "Could not install into ${ED}opt/cxoffice"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop"
- sed -i -e "s:${ED}:/:" "${ED}usr/share/applications/"*.desktop
- sed -i -e "s:${ED}/::" \
- "${ED}/opt/cxoffice/lib/perl/CXMenu.pm" \
- "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.0.1.ebuild b/app-emulation/crossover-bin/crossover-bin-15.0.1.ebuild
deleted file mode 100644
index bdb0de9d05d2..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.0.1.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop"
- sed -i \
- -e "s:\"${ED}\".::" \
- -e "s:${ED}::" \
- "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
- sed -i -e "s:${ED}:/:" \
- "${ED}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.1.0.ebuild b/app-emulation/crossover-bin/crossover-bin-15.1.0.ebuild
deleted file mode 100644
index bdb0de9d05d2..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.1.0.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop"
- sed -i \
- -e "s:\"${ED}\".::" \
- -e "s:${ED}::" \
- "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
- sed -i -e "s:${ED}:/:" \
- "${ED}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.2.0.ebuild b/app-emulation/crossover-bin/crossover-bin-15.2.0.ebuild
deleted file mode 100644
index 79500b6a3914..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.2.0.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
- || die "Could not fix paths of *.desktop files"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.3.0.ebuild b/app-emulation/crossover-bin/crossover-bin-15.3.0.ebuild
deleted file mode 100644
index b3537aa9c934..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.3.0.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
- || die "Could not fix paths of *.desktop files"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-15.3.1.ebuild b/app-emulation/crossover-bin/crossover-bin-15.3.1.ebuild
deleted file mode 100644
index b3537aa9c934..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-15.3.1.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
- || die "Could not fix paths of *.desktop files"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-16.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-16.0.0.ebuild
deleted file mode 100644
index b3537aa9c934..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-16.0.0.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
- || die "Could not fix paths of *.desktop files"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-16.2.5.ebuild b/app-emulation/crossover-bin/crossover-bin-16.2.5.ebuild
deleted file mode 100644
index b3537aa9c934..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-16.2.5.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)] )
- opengl? (
- virtual/glu[abi_x86_32(-)]
- virtual/opengl[abi_x86_32(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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_DIRS="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
- "${ED}opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
- || die "Could not install menus"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- "${ED}opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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}/opt/cxoffice/support/desktopdata/cxoffice-0/cxmenu/Launchers/StartMenu/"*.desktop \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
- || die "Could not fix paths of *.desktop files"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-17.5.0-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-17.5.0-r1.ebuild
deleted file mode 100644
index 00827f7ddb60..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-17.5.0-r1.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-auth/nss-mdns[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-17.5.0.ebuild b/app-emulation/crossover-bin/crossover-bin-17.5.0.ebuild
deleted file mode 100644
index a160f02ad3ea..000000000000
--- a/app-emulation/crossover-bin/crossover-bin-17.5.0.ebuild
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
-RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
-S="${WORKDIR}"
-
-DEPEND="dev-lang/perl
- app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="${DEPEND}
- !prefix? ( sys-libs/glibc )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[abi_x86_32(-)] )
- lcms? ( media-libs/lcms:2 )
- ldap? ( net-nds/openldap[abi_x86_32(-)] )
- gphoto2? ( media-libs/libgphoto2[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(-)]
- )
- png? ( media-libs/libpng:0[abi_x86_32(-)] )
- scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( dev-libs/openssl:0[abi_x86_32(-)] )
- v4l? ( media-libs/libv4l[abi_x86_32(-)] )
- media-libs/alsa-lib[abi_x86_32(-)]
- >=media-libs/freetype-2.0.0[abi_x86_32(-)]
- media-libs/mesa[abi_x86_32(-)]
- sys-apps/util-linux[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/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(-)]"
-
-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}
-}
-
-src_prepare() {
- python_fix_shebang .
-
- 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
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
- # 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"
-
- # Install configuration file
- insinto /opt/cxoffice/etc
- doins share/crossover/data/cxoffice.conf
-
- # 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"
-
- rm "${ED}usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
- || die "Could not remove uninstall menus"
- 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"
-}
-
-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"
-}
diff --git a/app-emulation/crossover-bin/crossover-bin-17.5.1.ebuild b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
index 006df8e97168..8f1820b96a94 100644
--- a/app-emulation/crossover-bin/crossover-bin-17.5.1.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
@@ -1,53 +1,53 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
+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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
+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}"
+
RESTRICT="bindist test"
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="opt/cxoffice/lib/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- "
+QA_PREBUILT="*"
S="${WORKDIR}"
-DEPEND="dev-lang/perl
+DEPEND=""
+BDEPEND="${PYTHON_DEPS}
+ app-alternatives/cpio
app-arch/unzip
- ${PYTHON_DEPS}"
+ 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 )
- >=dev-python/pygtk-2.10[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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[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(-)] )
@@ -56,32 +56,45 @@ RDEPEND="${DEPEND}
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? ( dev-libs/openssl:0[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.0.0[abi_x86_32(-)]
- media-libs/mesa[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(-)]"
-
-pkg_nofetch() {
- einfo "Please visit ${HOMEPAGE}"
- einfo "and place ${A} into your DISTDIR directory"
-}
+ 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
@@ -89,20 +102,21 @@ src_unpack() {
}
src_prepare() {
- python_fix_shebang .
+ 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"
-
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
+ "${S}/lib/perl/CXMenuXDG.pm" || die
-src_install() {
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -112,18 +126,23 @@ src_install() {
# Install files
dodir /opt/cxoffice
- #cp -r ./* "${ED}opt/cxoffice" \
+ #cp -r ./* "${ED}/opt/cxoffice" \
find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
- || die "Could not install into ${ED}opt/cxoffice"
+ || 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" \
+ sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
|| die "Could not apply workaround for konqueror"
# Install menus
@@ -131,28 +150,45 @@ src_install() {
# 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 \
+ "${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" \
+ 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}:/:" \
- "${ED}usr/share/applications/"*"CrossOver.desktop" \
+ sed -i -e "s:${ED}::" \
+ "${ED}/usr/share/applications/"*"CrossOver.desktop" \
|| die "Could not fix paths of *.desktop files"
-}
-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"
+ # 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-18.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
index f2e4d02eaa7d..5639acd7f096 100644
--- a/app-emulation/crossover-bin/crossover-bin-18.0.0.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
@@ -1,65 +1,52 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
+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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-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
-"
+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}
- dev-lang/perl
+ 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 )
- >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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(-)] )
+ 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(-)] )
@@ -68,34 +55,43 @@ RDEPEND="${DEPEND}
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? ( dev-libs/openssl:0[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(-)]
+ 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]
"
-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}
@@ -103,20 +99,20 @@ src_unpack() {
src_prepare() {
default
- python_fix_shebang .
+ # 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"
+ "${S}/lib/perl/CXMenuXDG.pm" || die
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -130,9 +126,14 @@ 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
+ 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
@@ -152,21 +153,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"
-}
-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"
+ # 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-18.1.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild
index f2e4d02eaa7d..0d24c74fa191 100644
--- a/app-emulation/crossover-bin/crossover-bin-18.1.0.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild
@@ -1,65 +1,51 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
+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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-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
-"
+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}
- dev-lang/perl
+ 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 )
- >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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(-)] )
+ 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(-)] )
@@ -68,34 +54,43 @@ RDEPEND="${DEPEND}
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? ( dev-libs/openssl:0[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(-)]
+ 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]
"
-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}
@@ -103,20 +98,20 @@ src_unpack() {
src_prepare() {
default
- python_fix_shebang .
+ # 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"
+ "${S}/lib/perl/CXMenuXDG.pm" || die
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -130,9 +125,14 @@ 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
+ 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
@@ -152,21 +152,33 @@ 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"
-}
-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"
+ # 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-18.5.0.ebuild b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild
index f2e4d02eaa7d..1dac82ed70b9 100644
--- a/app-emulation/crossover-bin/crossover-bin-18.5.0.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild
@@ -1,65 +1,51 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
-DESCRIPTION="Commercial version of app-emulation/wine with paid support."
+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 +gsm +jpeg +lcms +ldap +mp3 +nls +openal +opencl +opengl +png +scanner +ssl +v4l"
-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
-"
+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}
- dev-lang/perl
+ 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 )
- >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
- dev-python/dbus-python[${PYTHON_USEDEP}]
- dev-util/desktop-file-utils
- !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(-)] )
+ 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(-)] )
@@ -68,34 +54,44 @@ RDEPEND="${DEPEND}
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? ( dev-libs/openssl:0[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(-)]
+ 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]
"
-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}
@@ -103,20 +99,20 @@ src_unpack() {
src_prepare() {
default
- python_fix_shebang .
+ # 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"
+ "${S}/lib/perl/CXMenuXDG.pm" || die
- # Remove unnecessary files
- rm -r license.txt guis/ || die "Could not remove files"
- use doc || rm -r doc/ || die "Could not remove files"
-}
-
-src_install() {
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -130,9 +126,14 @@ 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
+ 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
@@ -152,21 +153,22 @@ 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"
-}
-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"
+ # 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 fadaa124e17a..c176b5ef980c 100644
--- a/app-emulation/crossover-bin/metadata.xml
+++ b/app-emulation/crossover-bin/metadata.xml
@@ -1,12 +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="opencl">Enable OpenCL support</flag>
+ <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag>
+ <flag name="pcap">Support packet capture software (e.g. wireshark)</flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/dinero/dinero-4.7-r1.ebuild b/app-emulation/dinero/dinero-4.7-r1.ebuild
index 6a9d150497b6..6fe3a1546442 100644
--- a/app-emulation/dinero/dinero-4.7-r1.ebuild
+++ b/app-emulation/dinero/dinero-4.7-r1.ebuild
@@ -1,26 +1,35 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=4
+EAPI=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"
SLOT="0"
KEYWORDS="amd64 ppc x86"
-IUSE=""
src_prepare() {
+ default
+
+ # 331837
sed -e "s/\$(CC)/& \$(LDFLAGS)/" \
- -i Makefile.in || die #331837
+ -i Makefile.in || die
+
+ mv configure.{in,ac} || die
+
eautoreconf
+}
+
+src_configure() {
tc-export AR
+ default
}
src_install() {
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 a3aca93a45ab..6d2f7d256e5a 100644
--- a/app-emulation/diskimage-builder/Manifest
+++ b/app-emulation/diskimage-builder/Manifest
@@ -1,3 +1 @@
-DIST diskimage-builder-2.27.2.tar.gz 421433 BLAKE2B 089e68b07c6f79e54b8fb30e7a9328a6c55d1abb5f77b6592cc0b29b30a44a83803bdde93631e95e39d7fc82d9b5ff3fb425a7b94821b96f56421cbde9f8b078 SHA512 e2cc6f24d5bbfdf741d6b6e7e216d0e9631d6394cf3f3f4d34ce8a78ba2ba2ddbcb0b1434121f7ab1bd3600194777a5538651d9039c3bca06bb8cc621f06f037
-DIST diskimage-builder-2.28.0.tar.gz 425808 BLAKE2B f3cceec35f019b248df8aaa94f70231dc51a9fed06cf93b16366536cfcf45b4477b7aa09371bb3cffe95f51c74d0abf9065285b7b74c5d805604c2b00df8f38f SHA512 6eddef513e8550fb6f90e917a504bac1166ef4355791bd9b0c10addebb8f84b783bf4e53dd472e6ed9acb5d3dcd951e675f4e9983ec4170c31afdb257b84e24d
-DIST diskimage-builder-2.28.2.tar.gz 424565 BLAKE2B 77bad24f857de7fb17cb727f7f5168f86434e4cfeecef286da5b3351e9fdfeb0d1dc2472f800024a35adb40aa04155bb7cfa3a0772ed8186a21b31b582809312 SHA512 0bdce552a896834c97f2a982865a93f39f62d0ee68d001c60d320e831c25456a392b4510ed94d7123851dad262e5ccb38a541d0dda5d620f91cf9ab54776efaa
+DIST diskimage-builder-3.32.0.tar.gz 532942 BLAKE2B e436e5268b649dc5e050f66b098e527b79f172df00da93f23c115e3d88692c3f6546774c2046c8d4722cdd4139af4d05701725496f283b60e08ce0885b70de66 SHA512 6f5c2e0df428bf85b847fdc0ceebfdb66823b92b5b903de247d0e83ff2588c36e6f9786ea91f252c838cedeec22913f491d79643e77d83ad1fb690da7566af47
diff --git a/app-emulation/diskimage-builder/diskimage-builder-2.28.0.ebuild b/app-emulation/diskimage-builder/diskimage-builder-2.28.0.ebuild
deleted file mode 100644
index 86d3bb124b34..000000000000
--- a/app-emulation/diskimage-builder/diskimage-builder-2.28.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_6 python3_7 )
-
-inherit distutils-r1
-
-DESCRIPTION="Golden Disk Image builder."
-HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
-if [[ ${PV} == 9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
-else
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
- !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
-DEPEND="${CDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]"
-RDEPEND="${CDEPEND}
- >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
- !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/networkx-1.10[${PYTHON_USEDEP}]
- <dev-python/networkx-2.3[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/flake8-2.5.4[${PYTHON_USEDEP}]
- <dev-python/flake8-2.6.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
- app-emulation/qemu
- sys-block/parted
- sys-fs/multipath-tools
- sys-fs/dosfstools
- sys-apps/gptfdisk
- !dev-python/dib-utils[${PYTHON_USEDEP}]"
diff --git a/app-emulation/diskimage-builder/diskimage-builder-2.28.2.ebuild b/app-emulation/diskimage-builder/diskimage-builder-2.28.2.ebuild
deleted file mode 100644
index 86d3bb124b34..000000000000
--- a/app-emulation/diskimage-builder/diskimage-builder-2.28.2.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_6 python3_7 )
-
-inherit distutils-r1
-
-DESCRIPTION="Golden Disk Image builder."
-HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
-if [[ ${PV} == 9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
-else
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
- !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
-DEPEND="${CDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]"
-RDEPEND="${CDEPEND}
- >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
- !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/networkx-1.10[${PYTHON_USEDEP}]
- <dev-python/networkx-2.3[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/flake8-2.5.4[${PYTHON_USEDEP}]
- <dev-python/flake8-2.6.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
- app-emulation/qemu
- sys-block/parted
- sys-fs/multipath-tools
- sys-fs/dosfstools
- sys-apps/gptfdisk
- !dev-python/dib-utils[${PYTHON_USEDEP}]"
diff --git a/app-emulation/diskimage-builder/diskimage-builder-2.27.2.ebuild b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
index 20cf3dfed3ae..ee67baf77be4 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-2.27.2.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
@@ -1,18 +1,20 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_6 python3_7 )
+EAPI=8
+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
@@ -22,16 +24,13 @@ IUSE=""
CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
-DEPEND="${CDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}"
RDEPEND="${CDEPEND}
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
- <dev-python/networkx-2.3[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/flake8-2.5.4[${PYTHON_USEDEP}]
- <dev-python/flake8-2.6.0[${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 86d3bb124b34..f94dda84287d 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
@@ -1,18 +1,20 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_6 python3_7 )
+EAPI=8
+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
@@ -22,16 +24,13 @@ IUSE=""
CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
-DEPEND="${CDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${CDEPEND}"
RDEPEND="${CDEPEND}
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
- <dev-python/networkx-2.3[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/flake8-2.5.4[${PYTHON_USEDEP}]
- <dev-python/flake8-2.6.0[${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/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 677fb229edc3..000000000000
--- a/app-emulation/docker-compose/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST docker-compose-1.24.0.tar.gz 307601 BLAKE2B cb2a6f96e14c04d0279b25c075182d8f09e5a622e4cee2ce74995224e3a8634cc5f22ccc548b7754bbeb11630c1e638386cb1a6df927b3619cb6e7e3595aac6c SHA512 318c6bf9877147de09526b4d49c3fd86012d85626e7a9a15863ca55a60e10fa85b27429605045d0aaa993dddd3bc2e5f23cbb76856276a874e84793b878a3e86
-DIST docker-compose-1.24.1.tar.gz 307749 BLAKE2B 7ded0a4b82a7a9beb9de38752f38998ca4ea9421e5ed5630627820ec7e250ad6f03f6788bcbebe8bc0dd4c064d275bb4ca5a6055a95b6a0f72d7ae9038ec7f22 SHA512 9b8632ef263b8dfa678e8b99b46e00441f779716a524280ce25f62fcd2605f400723b7790c466338374c34653946dc2c5d7f09593ddd892fee3409c2a2fd1a5f
diff --git a/app-emulation/docker-compose/docker-compose-1.24.0.ebuild b/app-emulation/docker-compose/docker-compose-1.24.0.ebuild
deleted file mode 100644
index aacd6aa050a4..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.24.0.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2018-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_6} )
-
-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"
-
-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.18.1[${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}]
- $(python_gen_cond_dep '>=dev-python/enum34-1.0.4[${PYTHON_USEDEP}]' 'python2_7' )
- $(python_gen_cond_dep '>=dev-python/ipaddress-1.0.16[${PYTHON_USEDEP}]' 'python2_7' )
- $(python_gen_cond_dep '>=dev-python/backports-ssl-match-hostname-3.5[${PYTHON_USEDEP}]' 'python2_7' )"
-
-DEPEND="${RDEPEND}
- test? ( <dev-python/pytest-4[${PYTHON_USEDEP}]
- <dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' 'python2_7' ) )"
-
-S="${WORKDIR}/compose-${PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.24.0-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.24.1.ebuild b/app-emulation/docker-compose/docker-compose-1.24.1.ebuild
deleted file mode 100644
index a9866c0a92e6..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.24.1.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2018-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_6} )
-
-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"
-
-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.18.1[${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}]
- $(python_gen_cond_dep '>=dev-python/enum34-1.0.4[${PYTHON_USEDEP}]' 'python2_7' )
- $(python_gen_cond_dep '>=dev-python/ipaddress-1.0.16[${PYTHON_USEDEP}]' 'python2_7' )
- $(python_gen_cond_dep '>=dev-python/backports-ssl-match-hostname-3.5[${PYTHON_USEDEP}]' 'python2_7' )"
-
-DEPEND="${RDEPEND}
- test? ( <dev-python/pytest-4[${PYTHON_USEDEP}]
- <dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' 'python2_7' ) )"
-
-S="${WORKDIR}/compose-${PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.24.0-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/files/docker-compose-1.24.0-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.24.0-setup-py.patch
deleted file mode 100644
index 1632a018bd41..000000000000
--- a/app-emulation/docker-compose/files/docker-compose-1.24.0-setup-py.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 981faad5f67a843f2b6c44f40be4dc8d2c5156c7 Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Sat, 11 May 2019 00:32:22 +0200
-Subject: [PATCH] setup.py: Drop generic upper version boundaries
-
----
- setup.py | 26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 8371cc7..b9e5a80 100644
---- a/setup.py
-+++ b/setup.py
-@@ -30,16 +30,16 @@ def find_version(*file_paths):
-
-
- install_requires = [
-- 'cached-property >= 1.2.0, < 2',
-- 'docopt >= 0.6.1, < 0.7',
-- 'PyYAML >= 3.10, < 4.3',
-- 'requests >= 2.6.1, != 2.11.0, != 2.12.2, != 2.18.0, < 2.21',
-- 'texttable >= 0.9.0, < 0.10',
-- 'websocket-client >= 0.32.0, < 1.0',
-- 'docker[ssh] >= 3.7.0, < 4.0',
-- 'dockerpty >= 0.4.1, < 0.5',
-- 'six >= 1.3.0, < 2',
-- 'jsonschema >= 2.5.1, < 3',
-+ 'cached-property >= 1.2.0',
-+ 'docopt >= 0.6.1',
-+ 'PyYAML >= 3.10',
-+ 'requests >= 2.6.1, != 2.11.0, != 2.12.2, != 2.18.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',
- ]
-
-
-@@ -52,11 +52,11 @@ if sys.version_info[:2] < (3, 4):
- tests_require.append('mock >= 1.0.1')
-
- extras_require = {
-- ':python_version < "3.4"': ['enum34 >= 1.0.4, < 2'],
-+ ':python_version < "3.4"': ['enum34 >= 1.0.4'],
- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'],
- ':python_version < "3.3"': ['ipaddress >= 1.0.16'],
-- ':sys_platform == "win32"': ['colorama >= 0.4, < 0.5'],
-- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'],
-+ ':sys_platform == "win32"': ['colorama >= 0.4'],
-+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'],
- }
-
-
---
-2.21.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 8e9ab64e45b1..000000000000
--- a/app-emulation/docker-credential-helpers/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST docker-credential-helpers-0.6.0.tar.gz 27441 BLAKE2B 6517f069782d5a496d3f140d86e5b1f32f197e9209ed61f75bfb9ba29cf0e1fa509bdbbbce2defc14ad0abe316632683cfad25e7ac9a6a1d70c3289e0ad489f5 SHA512 359e8ec700f423ce0687f13ce02946007f90456abe86659a87c59419ebde5e79adb4d28ee5e6a9762a44cfd65648c247629a5273326abf18a8880bee637e74d8
-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.0.ebuild b/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.0.ebuild
deleted file mode 100644
index d1223733ba00..000000000000
--- a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.0.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2001-2018 Gentoo Foundation
-# 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"
- 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/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 3f46440c7bba..000000000000
--- a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2019 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"
- 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 509420dad7c1..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,10 +26,16 @@ 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
- emake build || die
+ emake build
}
src_install() {
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/docker-machine-0.13.0.ebuild b/app-emulation/docker-machine/docker-machine-0.13.0.ebuild
index 974d8a443e7f..1cfa0ea229cc 100644
--- a/app-emulation/docker-machine/docker-machine-0.13.0.ebuild
+++ b/app-emulation/docker-machine/docker-machine-0.13.0.ebuild
@@ -30,7 +30,7 @@ src_prepare() {
}
src_compile() {
- CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" GOPATH="${WORKDIR}/${P}" emake build || die
+ CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" GOPATH="${WORKDIR}/${P}" emake build
}
src_install() {
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 40b22745d58b..000000000000
--- a/app-emulation/docker-proxy/Manifest
+++ /dev/null
@@ -1,4 +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
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 dbfc6c6a965b..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.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="3eb39382bfa6a3c42f83674ab080ae13b0e34e5d"
- 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/metadata.xml b/app-emulation/docker-proxy/metadata.xml
deleted file mode 100644
index 8b8b32d1ade1..000000000000
--- a/app-emulation/docker-proxy/metadata.xml
+++ /dev/null
@@ -1,19 +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>mrueg@gentoo.org</email>
- <name>Manuel Rüger</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 23e7af931a1e..000000000000
--- a/app-emulation/docker-registry/docker-registry-2.7.1.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-vcs-snapshot systemd user
-
-KEYWORDS="~amd64"
-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-runc/Manifest b/app-emulation/docker-runc/Manifest
deleted file mode 100644
index 58fb310d5219..000000000000
--- a/app-emulation/docker-runc/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST docker-runc-1.0.0_rc4_p20180122.tar.gz 1184954 BLAKE2B faf07c06c12301588d9adb1bfd31d562b31cd1119f1247b06afb2d6eba077c37a8871bd32d48e20b79f1b91fd052ec54fe6da5ac8c51713c9757e1967db563c3 SHA512 c7b24ca6212ce500d1d4c3a1776be5ca116d4f005d71e5fe8f2228c26f039058f3dd1071e9e39aa9c93272a49f7ff2ac86e2fbbcf6115cc3de65a370127d8ea5
diff --git a/app-emulation/docker-runc/docker-runc-1.0.0_rc4_p20180122.ebuild b/app-emulation/docker-runc/docker-runc-1.0.0_rc4_p20180122.ebuild
deleted file mode 100644
index cf7b91c52a95..000000000000
--- a/app-emulation/docker-runc/docker-runc-1.0.0_rc4_p20180122.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/opencontainers/${PN/docker-}"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_/-}"
- EGIT_COMMIT="9f9c96235cc97674e935002fc3d78361b696a69e"
- RUNC_COMMIT="9f9c962" # Change this when you update the ebuild
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="runc container cli tools (docker fork)"
-HOMEPAGE="http://runc.io"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="+ambient apparmor hardened +seccomp"
-
-RDEPEND="
- apparmor? ( sys-libs/libapparmor )
- seccomp? ( sys-libs/libseccomp )
- !app-emulation/runc
-"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- sed -i -e "s/git rev-parse.*\$/echo gentoo)/" -e "/COMMIT :=/d" -e "/COMMIT_NO :=/d" Makefile || die
-}
-
-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' '')
- )
-
- GOPATH="${WORKDIR}/${P}" emake BUILDTAGS="${options[*]}" \
- COMMIT="${RUNC_COMMIT}"
-}
-
-src_install() {
- dobin runc
-}
diff --git a/app-emulation/docker-runc/metadata.xml b/app-emulation/docker-runc/metadata.xml
deleted file mode 100644
index 6e7ba248cbb2..000000000000
--- a/app-emulation/docker-runc/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>
- <longdescription lang="en">
- runc is a CLI tool for spawning and running containers according
- to the OCF (Open Container Format) specification.
- </longdescription>
- <!-- maintainer-needed -->
- <use>
- <flag name="ambient">Enable support for ambient capability</flag>
- <flag name="apparmor">Enable AppArmor support</flag>
- </use>
- <upstream>
- <remote-id type="github">docker/runc</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker-swarm/Manifest b/app-emulation/docker-swarm/Manifest
deleted file mode 100644
index 5c30c4fd9692..000000000000
--- a/app-emulation/docker-swarm/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-DIST docker-swarm-1.2.5.tar.gz 4619026 BLAKE2B cae94bcb1bbb1f495b18662ac62ad3295d22547b332d6b6c4e55c070650fc3a1c314ef1ef696787b3109c0c5dce3c48979adc85031c0d65834d3d8ff5bd417b3 SHA512 2684c1fbb8e01c062c62137c874825120d0f2da0ca13808c1558ef01680a6f4d77bbff3769d1f59d9bb8011066f202dbb89c23d25597283cc24245db70731992
-DIST gobrake-2.0.8.tar.gz 6392 BLAKE2B ec3eccd5a52442163108c9e8f83e2e7a19ed45438c91e541d75af5cd44f382899098cecc5130c5d36a62ca53f1dc2062a82ec9e04b17e2db835cecdfbaa3b565 SHA512 76d1dfc55ddcbfa0b719d9eb3a75a0c8bc9d2f0308fef391cc59efa7c6b7607860c61c1e77d609d3a2d2cad473da359d0f1df98775a6da791a70d81f98ce5e6c
-DIST gogo-protobuf-0.3.tar.gz 2116795 BLAKE2B 6b90ad97648e75724c69bb9b8d3cfb17b919a1121813c09ec463df99c290c117b0e0b87f43b285eb5147a205f2f926c223cc4b4d58205a286af2afa87dbd7f5b SHA512 57e1b1715d4811800da8cf9f2c72d202deae622d89715d7eff2ff0c406a0ea3778c187443abb17b072ae6fe57382844807f103837032759dab5420c860b99fb8
-DIST logrus-0.11.0.tar.gz 24165 BLAKE2B 5d71a4b78d5c46e71401a08d9b0228236f74e864d14206bd6450268a3a41d5f2ac7155c39f250b9906ec132fa63ace6e8888f0ec482ed4a0828696326bbba25e SHA512 ee0b813e277cef0533800a966e6e07884b8de64e75c200439979f00986d84f98cfc750f7d4cb2a2b57d6524941fbba0c6211ce37da50d9a8ca99274f81639620
-DIST logrus-airbrake-hook-2.1.1.tar.gz 3896 BLAKE2B a41877c8201d39f79fd0fabb7bba8d513c14931ab6a2d59b9dbe5907ce32a67d852f8cd25a2ed058ee95d321e430818d5258b4e047f3b809503da58a96bc8876 SHA512 8559f821731ee086a267f43f6e150e18b24a32a2556c45499b2ec42a85642a0581a862fc827b8b9a1949d003b5e36e69972df92a005111b94e2aa9678c336240
diff --git a/app-emulation/docker-swarm/docker-swarm-1.2.5.ebuild b/app-emulation/docker-swarm/docker-swarm-1.2.5.ebuild
deleted file mode 100644
index 95e2cbea5ca8..000000000000
--- a/app-emulation/docker-swarm/docker-swarm-1.2.5.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-KEYWORDS="~amd64"
-EGO_PN=github.com/docker/${PN##*-}/...
-SRC_URI="https://${EGO_PN%/*}/archive/${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/gogo/protobuf/archive/v0.3.tar.gz -> gogo-protobuf-0.3.tar.gz
- https://github.com/gemnasium/logrus-airbrake-hook/archive/v2.1.1.tar.gz -> logrus-airbrake-hook-2.1.1.tar.gz
- https://github.com/airbrake/gobrake/archive/v2.0.8.tar.gz -> gobrake-2.0.8.tar.gz
- https://github.com/Sirupsen/logrus/archive/v0.11.0.tar.gz -> logrus-0.11.0.tar.gz"
-DESCRIPTION="A Docker-native 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"
-DEPEND=">=dev-lang/go-1.6:=
- !!<app-admin/consul-0.6.3-r1"
-RDEPEND=""
-
-get_archive_go_package() {
- local archive=${1} uri x
- for x in ${SRC_URI}; do
- if [[ ${x} == http* ]]; then
- uri=${x}
- elif [[ ${x} == ${archive} ]]; then
- break
- fi
- done
- uri=${uri#https://}
- uri=${uri%/archive/*}
- case ${uri} in
- ${EGO_PN%/*}*)
- echo "${EGO_PN%/*}|swarm-*"
- ;;
- github.com/gemnasium/logrus-airbrake-hook)
- echo "gopkg.in/gemnasium/logrus-airbrake-hook.v2|logrus-airbrake-hook-*"
- ;;
- github.com/airbrake/gobrake)
- echo "gopkg.in/airbrake/gobrake.v2|gobrake-*"
- ;;
- *)
- echo "${uri}|${uri##*/}-*"
- ;;
- esac
-}
-
-unpack_go_packages() {
- local go_package x
- # Unpack packages to appropriate locations for GOPATH
- for x in ${A}; do
- unpack ${x}
- if [[ ${x} == *.tar.gz ]]; then
- go_package=$(get_archive_go_package ${x})
- x=${go_package#*|}
- go_package=${go_package%|*}
- mkdir -p src/${go_package%/*}
- mv ${x} src/${go_package} || die
- fi
- done
-}
-
-src_unpack() {
- mkdir "${S}" || die
- cd "${S}" || die
- unpack_go_packages
-}
-
-src_compile() {
- GOPATH="${S}" GOBIN="${S}/bin" \
- go install -v -work -x ${EGO_BUILD_FLAGS} "${EGO_PN}"
- [[ -x ${S}/bin/${PN#docker-} ]] || die
-}
-
-src_install() {
- dobin "${S}/bin/${PN#docker-}"
- dosym swarm /usr/bin/docker-swarm
- cd "${S}/src/${EGO_PN%/*}" || die
- dodoc CHANGELOG.md CONTRIBUTING.md logo.png README.md ROADMAP.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 a5fd02046d1d..000000000000
--- a/app-emulation/docker/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST docker-18.09.9.tar.gz 15299640 BLAKE2B 2a4fa670ddac0136e85300fd137a8ea91651c51c54fa3d52ddc5b1a640a1ee202a34f428fcf9eea286c581f49a2c28b711100e7541773e5bc1f2e37884cae2dc SHA512 d0235ae54e4d8d4d0893f6f35293f36177afabc71d0b3e6a74341260e52dcd9351a924efe8fa299cf9a51efdc68b6b284f6435d7210c44193a673f7fff71ce0b
-DIST docker-19.03.2.tar.gz 16657356 BLAKE2B 3e48ea67f1ef65786c30b4d47b29dbe92d7fb7b043d2c4f15c07cdc929554a07870ce5ade2c1fe26eebea74d28dc71752e9c96e86fe12e0d96608059b5c91f11 SHA512 6b594fdbb53dcc0228781375a3884eb370446738c44f7c1e42945c4ccc263e75f53d984bc8ea6a6a498446859e667305bd967299c12956f1cb925d868a4bf2b8
-DIST docker-19.03.3.tar.gz 16960782 BLAKE2B 8ce23ca22edf7c4435dbaca5a0321de52b108951b935d5ed82439c57409757cd054698934f9dbabbbbb0db74d5c9f6a6d04c5ca33e64212dedc0c9bf92d06ddb SHA512 251756ca8b5d8eb962fde447fdab8307ce8013e14dc3b955387af5d8bdfdee16ea170ecb37a59e5900fa5c2e366f0d4080e79c28e5b8ef945cc67cb959d88eef
-DIST docker-19.03.4.tar.gz 16961040 BLAKE2B 15d88d6f97ff70f6a0220f3d62b2040b4d859414b323b07e54802cb8e8dbb8d074562635bbfd9d00df529d0792fb5767d28548843ec73ad21cf7d7fcb1ac0c6e SHA512 bcf79f82eb8433b8c04ceb2fd90a80101b148dd819f5bbda83d535ff2fad65d08aee2f72ac41c38ce879f3970a087555bb7ab63c5bb071a3c1cd6aa177621cac
diff --git a/app-emulation/docker/docker-18.09.9.ebuild b/app-emulation/docker/docker-18.09.9.ebuild
deleted file mode 100644
index 86284c9e3965..000000000000
--- a/app-emulation/docker/docker-18.09.9.ebuild
+++ /dev/null
@@ -1,308 +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/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="039a7df"
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64"
- [ "$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 user
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://dockerproject.org"
-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
-CDEPEND="
- >=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="
- ${CDEPEND}
-
- 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="
- ${CDEPEND}
- >=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.6
- ~app-emulation/runc-1.0.0_rc8[apparmor?,seccomp?]
- ~app-emulation/docker-proxy-0.8.0_p20190513
- 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 ~NF_NAT_NEEDED
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
-
- ~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 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
-
- # create docker group for the code checking for it in /etc/group
- enewgroup docker
-}
-
-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 || die
-
- # 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 "$(readlink -f bundles/latest/dynbinary-daemon/dockerd)" 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.2.ebuild b/app-emulation/docker/docker-19.03.2.ebuild
deleted file mode 100644
index c501202e523f..000000000000
--- a/app-emulation/docker/docker-19.03.2.ebuild
+++ /dev/null
@@ -1,308 +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/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="6a30dfc"
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64"
- [ "$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 user
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://dockerproject.org"
-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
-CDEPEND="
- >=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="
- ${CDEPEND}
-
- 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="
- ${CDEPEND}
- >=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.6
- ~app-emulation/runc-1.0.0_rc8[apparmor?,seccomp?]
- ~app-emulation/docker-proxy-0.8.0_p20190604
- 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 ~NF_NAT_NEEDED
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
-
- ~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 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
-
- # create docker group for the code checking for it in /etc/group
- enewgroup docker
-}
-
-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 || die
-
- # 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 "$(readlink -f bundles/latest/dynbinary-daemon/dockerd)" 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.3.ebuild b/app-emulation/docker/docker-19.03.3.ebuild
deleted file mode 100644
index 1cbb014cfdde..000000000000
--- a/app-emulation/docker/docker-19.03.3.ebuild
+++ /dev/null
@@ -1,309 +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/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="1576bd7"
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64"
- [ "$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 user
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://dockerproject.org"
-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
-CDEPEND="
- >=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="
- ${CDEPEND}
-
- >=dev-lang/go-1.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="
- ${CDEPEND}
- >=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.10
- ~app-emulation/runc-1.0.0_rc9[apparmor?,seccomp?]
- ~app-emulation/docker-proxy-0.8.0_p20190807
- 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 ~NF_NAT_NEEDED
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
-
- ~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 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
-
- # create docker group for the code checking for it in /etc/group
- enewgroup docker
-}
-
-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 || die
-
- # 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.4.ebuild b/app-emulation/docker/docker-19.03.4.ebuild
deleted file mode 100644
index 8d52724b145c..000000000000
--- a/app-emulation/docker/docker-19.03.4.ebuild
+++ /dev/null
@@ -1,309 +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/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="9013bf5"
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64"
- [ "$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 user
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://dockerproject.org"
-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
-CDEPEND="
- >=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="
- ${CDEPEND}
-
- >=dev-lang/go-1.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="
- ${CDEPEND}
- >=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.10
- ~app-emulation/runc-1.0.0_rc9[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 ~NF_NAT_NEEDED
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
-
- ~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 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
-
- # create docker group for the code checking for it in /etc/group
- enewgroup docker
-}
-
-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 || die
-
- # 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/metadata.xml b/app-emulation/docker/metadata.xml
deleted file mode 100644
index 78d4e39af19c..000000000000
--- a/app-emulation/docker/metadata.xml
+++ /dev/null
@@ -1,51 +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>admwiggin@gmail.com</email>
- <name>Tianon</name>
- </maintainer>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <maintainer type="person">
- <email>mrueg@gentoo.org</email>
- <name>Manuel Rüger</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 6eb911c30a14..33bcb2602637 100644
--- a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
+++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 2002-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+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"
@@ -12,36 +12,38 @@ 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"
+SRC_URI="https://downloads.sourceforge.net/dosemu/${P_FD}.tgz
+ https://dev.gentoo.org/~sam/distfiles/${P}.zip"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="-* amd64 x86"
-IUSE="X svga gpm debug alsa sndfile fluidsynth"
+IUSE="X alsa debug fluidsynth gpm svga"
-RDEPEND="X? ( x11-libs/libX11
- x11-libs/libXxf86vm
- x11-libs/libXau
- x11-libs/libXext
- x11-libs/libXdmcp
- x11-apps/xset
- x11-apps/xlsfonts
+BDEPEND="app-arch/unzip
+ X? (
x11-apps/bdftopcf
- >=x11-apps/mkfontscale-1.2.0 )
- svga? ( media-libs/svgalib )
- gpm? ( sys-libs/gpm )
+ >=x11-apps/mkfontscale-1.2.0
+ )"
+COMMON_DEPEND="media-libs/libsdl
+ >=sys-libs/slang-1.4
+ X? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXxf86vm
+ )
alsa? ( media-libs/alsa-lib )
- sndfile? ( media-libs/libsndfile )
- fluidsynth? ( media-sound/fluidsynth
- media-sound/fluid-soundfont )
- media-libs/libsdl
- >=sys-libs/slang-1.4"
-
-DEPEND="${RDEPEND}
- app-arch/unzip
- X? ( x11-base/xorg-proto )
- >=sys-devel/autoconf-2.57"
+ fluidsynth? (
+ media-sound/fluid-soundfont
+ media-sound/fluidsynth
+ )
+ gpm? ( sys-libs/gpm )
+ svga? ( media-libs/svgalib )"
+# sndfile? ( media-libs/libsndfile )
+DEPEND="${COMMON_DEPEND}
+ X? ( x11-base/xorg-proto )"
+RDEPEND="${COMMON_DEPEND}
+ X? ( x11-apps/xset )"
S="${WORKDIR}/${PN}-code-${COMMIT}"
@@ -52,8 +54,17 @@ PATCHES=(
"${FILESDIR}"/${P}-flex-2.6.3.patch
"${FILESDIR}"/${P}-ia16-ldflags.patch
"${FILESDIR}"/${P}-fix-inline.patch
+ "${FILESDIR}"/${P}-lto.patch
+ "${FILESDIR}"/${P}-as.patch
+ "${FILESDIR}"/${P}-nm.patch
)
+pkg_pretend() {
+ if tc-is-clang; then
+ die "${P} does not work on clang due to missing 16-bit assembly support: https://bugs.gentoo.org/729240. Please try gcc."
+ fi
+}
+
src_prepare() {
default
@@ -79,21 +90,26 @@ src_configure() {
fi
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) \
$(use_with gpm) \
$(use_with alsa) \
- $(use_with sndfile) \
$(use_with fluidsynth) \
+ --without-sndfile \
--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() {
- 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-as.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-as.patch
new file mode 100644
index 000000000000..2db3048be391
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-as.patch
@@ -0,0 +1,12 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -503,8 +503,7 @@ dnl CPU emulator
+ AC_MSG_NOTICE(Compiling for native x86...);
+ fi
+
+-
+-if ! echo '.code16;.text;addr32 pushw 4(%esp)' | as -o dummy.o >/dev/null 2>&1; then
++if ! echo '.code16;.text;addr32 pushw 4(%esp)' | $CC -c -x assembler -o dummy.o - >/dev/null 2>&1; then
+ echo ''
+ echo '*** error:'
+ echo '*** Your system has no complete code16 functional gas,'
diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-lto.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-lto.patch
new file mode 100644
index 000000000000..730ad4e5d5fd
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-lto.patch
@@ -0,0 +1,27 @@
+'asmlinkage' macros are supposed to make symbol available
+for calling from inline (or not) assembly.
+
+'static' keyword is not compatible to it and breaks -flto
+when gcc's LTO partitioner separates assembly definitions
+from C definitions. This causes symbol resolution failures:
+
+ ld: /tmp/dosemu.bin.h8Y59G.ltrans0.ltrans.o: in function `stub_rep__':
+ <artificial>:(.text+0xe): undefined reference to `rep_movs_stos'
+
+The changes turns 'asmlinkage' into exported symbol.
+
+https://bugs.gentoo.org/700126
+--- a/src/emu-i386/simx86/cpatch.c
++++ b/src/emu-i386/simx86/cpatch.c
+@@ -37,9 +37,9 @@
+ #include "codegen-arch.h"
+
+ #ifdef __i386__
+-#define asmlinkage static __attribute__((used)) __attribute__((cdecl))
++#define asmlinkage __attribute__((used)) __attribute__((cdecl))
+ #else
+-#define asmlinkage static __attribute__((used))
++#define asmlinkage __attribute__((used))
+ #endif
+
+ int s_munprotect(unsigned int addr)
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..1469578046c4
--- /dev/null
+++ b/app-emulation/dxvk/Manifest
@@ -0,0 +1,6 @@
+DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3
+DIST dxvk-2.3.1.tar.gz 1005669 BLAKE2B d78448fcde9d600f7206dfa606fca4069e7563bb8b181fbc172691d6c45586904ae529550926a03612ed3cc1f2a2dff00990638125c1d7ce6179d3cd3ba8df04 SHA512 085567ac263872eb93d776ce7cf982690603e240a977dbb51ad69344af387fd745536ca62819afd4a809732a6f2d22b36c3df9538decf37dec527973d41e392f
+DIST libdisplay-info-275e6459c7ab1ddd4b125f28d0440716e4888078.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d
+DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121
+DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959
+DIST vulkan-headers-46dc0f6e514f5730784bb2cac2a7c731636839e8.tar.gz 2255426 BLAKE2B efaf09df3274586c4df2bdd0b1dd9dd43b3b6125e0033ae87af999aea64709e9758bc7b675398b480ae063e28273732d768062d97f6cd61d63ccc798ca7410a5 SHA512 7ea993f7c8ff72dc6bedbfdaced29782ab372228e9111f747d931955e832a7920114f5d1953ecd34d220634a53449ca2ed4c0ed28d3165e258c4d9fafd0aa4be
diff --git a/app-emulation/dxvk/dxvk-1.10.3-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.3.1-r1.ebuild b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild
new file mode 100644
index 000000000000..640326b8a12d
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild
@@ -0,0 +1,191 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764
+ HASH_VULKAN=46dc0f6e514f5730784bb2cac2a7c731636839e8
+ HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2
+ "
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )
+"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+ "${FILESDIR}"/${PN}-2.3.1-gcc14.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ --force-fallback-for=libdisplay-info # system's is ELF (unusable)
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/dxvk-9999.ebuild b/app-emulation/dxvk/dxvk-9999.ebuild
new file mode 100644
index 000000000000..9db73b208248
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-9999.ebuild
@@ -0,0 +1,191 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=
+ 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
+ "${FILESDIR}"/${PN}-2.3.1-gcc14.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ --force-fallback-for=libdisplay-info # system's is ELF (unusable)
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch
new file mode 100644
index 000000000000..580e412fcd6e
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch
@@ -0,0 +1,17 @@
+https://github.com/doitsujin/dxvk/commit/1a5afc77b1859e6c7e31b55e11ece899e3b5295a
+--- a/src/util/config/config.h
++++ b/src/util/config/config.h
+@@ -1,4 +1,5 @@
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+--- a/src/util/util_bit.h
++++ b/src/util/util_bit.h
+@@ -17,4 +17,5 @@
+ #include "util_math.h"
+
++#include <cstdint>
+ #include <cstring>
+ #include <iterator>
diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch
new file mode 100644
index 000000000000..707eba19b24b
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch
@@ -0,0 +1,14 @@
+Dirty workaround to try syswow64 if paths are the same. This can happen
+with USE=wow64 on wine where wine64 is a symlink to wine.
+
+TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged
+separately (shared) as upstream hardly support these (dxvk dropped altogether).
+--- a/setup_dxvk.sh
++++ b/setup_dxvk.sh
+@@ -89,2 +89,6 @@
+ win32_sys_path="${win32_sys_path/$'\r'/}"
++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then
++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null)
++ win32_sys_path="${win32_sys_path/$'\r'/}"
++ fi
+ fi
diff --git a/app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch b/app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch
new file mode 100644
index 000000000000..957735b1909e
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch
@@ -0,0 +1,7 @@
+for std::remove_if
+--- a/src/d3d9/d3d9_mem.cpp
++++ b/src/d3d9/d3d9_mem.cpp
+@@ -5,2 +5,3 @@
+ #include "../util/util_likely.h"
++#include <algorithm>
+ #include <utility>
diff --git a/app-emulation/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 26e0ee3e5ed7..d3d379eb9542 100644
--- a/app-emulation/dynamips/Manifest
+++ b/app-emulation/dynamips/Manifest
@@ -1 +1 @@
-DIST dynamips-0.2.18.tar.gz 833554 BLAKE2B 8152b436e8fc43061c5603a44ceae8feebdd4593649d2fb6a1814ca22cfce2f671f6f98df5f03ee6eeef10cf09fc444d406edd8d3b4a6037a89cf0e8301774ac SHA512 d66e32d72ecc9ebff5232377ac9aa5b966ceb08884cc7f8dc4a8cf3f56305e7cefd677624ba66278f6603a3b275c384bd0ff3905932461b1f8056106cd272a4c
+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.23.ebuild
index 1b58ec9cfdad..1a0741cc4406 100644
--- a/app-emulation/dynamips/dynamips-0.2.18.ebuild
+++ b/app-emulation/dynamips/dynamips-0.2.23.ebuild
@@ -1,40 +1,38 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+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"
-
-RDEPEND="dev-libs/elfutils
+RDEPEND="
+ dev-libs/elfutils
net-libs/libpcap"
-DEPEND="${RDEPEND}
- app-arch/unzip"
+DEPEND="${RDEPEND}"
-DOCS=( ChangeLog README.md RELEASE-NOTES )
+DOCS=( ChangeLog README.md README.hypervisor RELEASE-NOTES )
-PATCHES=( "${FILESDIR}/${P}-docs.patch" )
+PATCHES=( "${FILESDIR}/${PN}-0.2.18-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
+ 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 a7daaaa0bc6f..82c5a4ca25bc 100644
--- a/app-emulation/dynamips/metadata.xml
+++ b/app-emulation/dynamips/metadata.xml
@@ -1,11 +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>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>
+ <remote-id type="github">GNS3/dynamips</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/edumips64/Manifest b/app-emulation/edumips64/Manifest
deleted file mode 100644
index 9a2d05760441..000000000000
--- a/app-emulation/edumips64/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST edumips64-1.1.tar.bz2 551083 BLAKE2B c76b29d1fbcfe6b03afae11e5c99717db2ef2c3046b66411b0d98ffc3bb119aac147d2283c938ef9947d4737fde141bfd89cee6f46d5db72f75a949a25b74cff SHA512 ca4884bbdb5bb41fe96abca566500af7dc31b330390f352bc6413aacb0561f58b5e95a90e22f58d18065324c155c97bd4d79beb7769efdafc3541cc37145579c
-DIST edumips64-1.2.tar.bz2 551455 BLAKE2B 614bf851964ea32d6954fb5345f6b07b6292bf90e24dca5d3ea8d86c1b910e1e9ade6ebfece054922ad3506586e9f32c1f6570a7248023e6a867a8b5c09b1203 SHA512 93a5bcae3ab96c35688de7589b9ecb465fe841b007a50e1b04f8194d12a45a4e7134951584f4fbfad5cee51925d1d21b0f425f182999f66fe57a31adbd3f6602
diff --git a/app-emulation/edumips64/edumips64-1.1.ebuild b/app-emulation/edumips64/edumips64-1.1.ebuild
deleted file mode 100644
index 9a2d22592836..000000000000
--- a/app-emulation/edumips64/edumips64-1.1.ebuild
+++ /dev/null
@@ -1,46 +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/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}/${PN}-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/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 443bc87e55e8..8309fa7609e5 100644
--- a/app-emulation/faudio/Manifest
+++ b/app-emulation/faudio/Manifest
@@ -1,2 +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-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 5c40e2ec7566..000000000000
--- a/app-emulation/faudio/faudio-19.06.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2019 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"
-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)"
- "-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 5c40e2ec7566..000000000000
--- a/app-emulation/faudio/faudio-19.09.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2019 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"
-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)"
- "-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-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 5c40e2ec7566..000000000000
--- a/app-emulation/faudio/faudio-9999.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2019 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"
-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)"
- "-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 5b153131eaad..430772900c80 100644
--- a/app-emulation/faudio/metadata.xml
+++ b/app-emulation/faudio/metadata.xml
@@ -1,27 +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="ffmpeg">FAudio has optional support for decoding xWMA resources using FFmpeg, requiring:
- <pkg>media-video/ffmpeg</pkg> (note: this feature is not supported by <pkg>media-video/libav</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>
+ <flag name="dumpvoices">FAudio dumps buffer data to individual files with RIFF/XWMA headers, usable with players like ffplay/testxwma.</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
new file mode 100644
index 000000000000..f1969674bc5a
--- /dev/null
+++ b/app-emulation/firecracker-bin/Manifest
@@ -0,0 +1,6 @@
+DIST firecracker-v1.5.1-aarch64.tgz 9086440 BLAKE2B 30777522bdb23e80bc3a025691d50a14411c0ac72fd87e5b9b460f18d0873d0a6423e19e7810afe0ed1324b2b32fc615b525ad9561c1bfea48fc53bdfbb610a5 SHA512 61f7fcf427817eebcd6cb6f046dad29e3a39d382c087418379f4502ef715605e2bb9e3b647233680f44b7e0047a6ca00135011bb929b44c5340bb8b8649fde1a
+DIST firecracker-v1.5.1-x86_64.tgz 9411106 BLAKE2B 538b531ce5c8319dee042229a7cc7c44cdd2fc07c58c3089b6c2d29d10ad8a5a78f697b7781ac81bcf8b4127e778895ab72eed9e1e6febd410b6c0509c01ae1e SHA512 63a44fb79e9fb29abfbaa6c96550c5f2f361c3be5e188bb4562b089b4d3f1f4ab3ef60ad3ab163e961857e95090401dc4df859d2dd2a5f1a1372ed663188cfa3
+DIST firecracker-v1.6.0-aarch64.tgz 9105124 BLAKE2B bcc77e6701a4b9c7d80d7e60b13d4945d5f76918cc1741035f26df5af05c4c579802444c90c8972a7985d4df8e10f2b9954b5889eca92f5d95b02751481084db SHA512 71608a46bdb5be5240d4a88e812c13e753d81e4f4813a818ebfd782934add2c3769bd71788f5e2bed1a6e1d9bcfc3a914e018f1682cc6806012c3e283e44f401
+DIST firecracker-v1.6.0-x86_64.tgz 9425451 BLAKE2B bae5eb960c6d575724915cfd4cb50cdc85d6be44b47271a5d68662b7ce86a7356aad215097214b7d32dad9051f385188d83592588be1addc15727c633f10e4d1 SHA512 a00b0d1b8da02b167627169d316b6a88bd44b1f42eb2cbebad5c355485f2456288d2062cb63b1ddc4d636ae8f4fad3a15dc9404b5347e746a7b416758d6507d5
+DIST firecracker-v1.7.0-aarch64.tgz 8951358 BLAKE2B 813be9e38e318233b3b574e21e3f07e3eab82eba1a22ca2082a7e2b9312b8022fd288ac4b72dbfa82f8a8ab561e4877553c249913d290b0701773d53a28296a7 SHA512 1b78353e204569acace417a95bfd2075f909205d59c32cbce18438751d5aeaae8ac3e3d3791d153a30337037c01fd6622793aa200a7e21d51f98a886123c545d
+DIST firecracker-v1.7.0-x86_64.tgz 9038632 BLAKE2B 6473113f2cc8225fdf8fc6f8612874c46fda05c13ebda040b7998554fda3e9cc69fbfae9481dc9e5b3100f05b50a82525810deccebaf45665d67aca7ebc0dc23 SHA512 cca5390c81bb9b78865608729840f12a1e9b9ed072859853e1f2853312dc62a78f0206fa007174c5fc18a7bf7d6e4b905e954ecdf6c3b78782d65e9801a45a0b
diff --git a/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
new file mode 100644
index 000000000000..e280abe72c3d
--- /dev/null
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2021-2023 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/firecracker-bin-1.6.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild
new file mode 100644
index 000000000000..4e841c1ab26e
--- /dev/null
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.6.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/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
new file mode 100644
index 000000000000..60d11bb309b0
--- /dev/null
+++ b/app-emulation/firecracker-bin/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>gentoo-bugs@ares-macrotechnology.com</email>
+ <name>Sebastian Hamann</name>
+ </maintainer>
+ <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 1f9272e136bf..000000000000
--- a/app-emulation/firecracker/Manifest
+++ /dev/null
@@ -1,106 +0,0 @@
-DIST aho-corasick-0.6.10.crate 26122 BLAKE2B 752eccb2fbf36fbc73b8694033d2f80f6ab6d2a8c2ae023329b90bb252b537adb1e80a604b4266bfb1ccc2963fcaa6579be48ef011c9728734c7cb77fa3eab99 SHA512 4a21b0e68c416e5dcfe99ded917577abdbe7c92e50227b7906a2b3bd25105f8e7d03103514d388171a41090cc7bcb63bb5b4dc3c6847a9b4e09bb3856a1bbd9d
-DIST backtrace-0.3.35.crate 60047 BLAKE2B 716fc69b2a7999371d52792fae45fede5c3dc72c0522c0dacb275025cb97353aa0f8569ab8bad66105671babcd4e675fdf6f0d65153a83c5a0de9262cd275480 SHA512 bb4d50c57bda52b9f48772c1cdb1fb30c003a5c6d69cb5ae740115020600693b00aca7c89e8c76a5e3e0deb6e54a2ec4d68edcdebb85e3f35b8dbbaf23f88926
-DIST backtrace-sys-0.1.31.crate 518877 BLAKE2B 397f3c4053eeabd7216c4373e6457637e22ee124d8a864c2587a78ebd8d619745dece654357cb9cd970ee20d7c41d53c84ecb3ed92beefaacbcfddfaca804ce5 SHA512 6aa8c7a2694f4e953a0e9bbd07dc8b7e218719de5aef2adaecfae81beb919deffde6f184675dc6b6c1a330bb81dc9611c256f7f63caef5e301101dbe3bbaafe0
-DIST base64-0.9.3.crate 37993 BLAKE2B c0943b223d0d35438c647aa53fec5f85e65a78a5d272e4c65865bf182607b44c45b3ed1a0353e081a9dc5d9f4c9cda6cc6b8d68929a2676a512a7907cc94d8b6 SHA512 4790e4de201123e7b3e3c8a574c92089e38900a67f1bb4868987da4088785ea05e4258559c1c32be67341c2ba8a19deacd156492d8383949e1c9a6ae218b7eeb
-DIST bitflags-0.5.0.crate 10940 BLAKE2B 69d9f52d1dfbec986034981f4629022b25b94c01d54424ae2399a0749c51f0f1c725ca312cfb3f953efc95732b7ca32e432e29b1e5bbba416cb4e0c21a266546 SHA512 220511ed57391bbbd4c8828cf485aed25d078a1cad6305367939072383e48468d545550002398a288d30d8501b9232fb9a91e7a3651f67103991677b9f25de0c
-DIST bitflags-1.1.0.crate 16322 BLAKE2B 01931976111840ca69b58e77e2c18b26ebabe4ef71ebdbe83565fbef42ffbb9512ad376192c085070485cd344b8614f260aafe0614fb20342cca5a15e9616385 SHA512 e3e611cf35a1ed4930727d530e6c78add895bd96636ca1354f1269b3d0e36e77fbb9ec850fe1f448a10f09ea2b2f89c2b16bb96b7da585851ce4c29a308968e3
-DIST byteorder-1.2.1.crate 17841 BLAKE2B 2e61c88911454fb787ddc7601ae7530980e9dd6be55eb4605dc257b0753ce69be8e3cf05655e9bf118e3a3c25d709f674acb6162fcd6f08d6b73619f4d434a62 SHA512 3b8822286a3973ef80309f30e169dee5fd87d98a0b4f5a44da7e29c2f14f5ce47a9f109087c84cab09078ad0c3507bb459bac243528bf4d8eae7a958394a4041
-DIST bytes-0.4.12.crate 46361 BLAKE2B 991f1d9170e7d3438c7d74507e6274df551d483883b3be2d99f7bbc0611ee6bd3f8f45c0e086cfa5488e8fc00e36e9a549fc71a325ff62b9bb83bd8fd412b5df SHA512 5f603532ea2f04cbc53044422feed1667bf0486af398c9c8e2ce7b4601b37e1c47223201970fb0d17fed77fef7e89961e0ac05a30e6cc9bf13462d98bc587250
-DIST c2-chacha-0.2.2.crate 13766 BLAKE2B 0b963b7a4ac64d71d75ab542a23585cd7bb99995b923c52edf99c49a76222978d0a96c020a5a1199c971133fc1f8629b562088b34fd283b7b5da7800848f85ab SHA512 d8edeff2f4eefb9504160d7f4d3c450661d10905c23cc4950736ab76e73bd1e88127c006bc762d63694847f2cc981ceeb0727ecf18e8fad7c89209d7a9e70f14
-DIST cc-1.0.41.crate 48185 BLAKE2B 7fb7eba2079aed5bc7775e9e8585f9b1267066bf51cf7aa9f5ad25789f7b57021a457d2811f705d4e6bd0f38d033cea1c6be23894929df8df9f3bf1b2dcb6a20 SHA512 3a39bd28e16c3e7715e0588fb9eaef6b83075e68c1ad7aa0969d89baac1e2753f9e68b56492bf5df5b1a4882fd1b6a1df97ce559149873efacd5aa209a0bf352
-DIST cfg-if-0.1.9.crate 7353 BLAKE2B 5556f3fdbf49708e6e4f08f2c536ee093b5f04dcf1fe4f68355189d129c416c338820143b5cf5f215323b38175ee0fd34eef4b2ff58179b190a63a9728fe2839 SHA512 45f7322217d291b3905ffdc45cadd5a7a7baf440f9a82a5b5596192ed0ac54353a3ecae0326d5807aae99bc4d79e0406d71bd65745ec8d9f8815a7c9436d648c
-DIST clap-2.33.0.crate 196458 BLAKE2B 3bb62d817afc77b421a6282746b9b61367d224de6b614c7ed66bde452ce1046728077dab3368a46635b5c74d82ba3196586d87c0201478ce5b89638910dadb1a SHA512 f1075031414d48e4340bfe308904a95a31b72460724773c52a0bc8c004e625a04c904a39fc5420cb8c26a633321f9b5f4f69019c7aae5ed89900b63ed8c21a91
-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.0.1.crate 8195 BLAKE2B 1ac732ade3c441a27832ef5f7cd75a4f80dcfbf42d195433a7bca91dcebd4f6a8ad0198daa3e3e12ef5ce50615dd85ef0d4cfe6670907ad0a65d55055b25da86 SHA512 b672091bc0b051c22a6217c37bf3986b2e173a1bf5d773590a1e181c9c0981baac656278f90aaa98f7a092e636e3bf68e5ea7a9edb6120cb90636f8db7e953d9
-DIST firecracker-0.18.0.tar.gz 4064752 BLAKE2B 6d58ca099f5f891966e7ccf25e5f22836e4066847891cbacab328fcbbb44c5c9010dc47223a626cedfd1c9443a754fbcf1b333378f6947299d7abb745944f471 SHA512 af599401a9323219b9d07d7a146c382c1a7521e6dabd10d6a4282dcbb8ea7742268b7999ab6aedcdadfb5d7f07efbd03feb20ab225f5711abcd45121f4c89f09
-DIST fuchsia-zircon-0.3.3.crate 22565 BLAKE2B a4dac3457036efab8f79fe5d5b4545e4091e994d3dc63188f71fafbcc28bf98ef359dcd20add30ac1d990ab2e66159723302fb66697349c65fab0aa58d54535e SHA512 a43ee59452d49742111e506d6bdd8b8399a3a646e08648e25292864d7f71460c1dd1f2d77b8efa8ed09ac21fa4ff0442a2709f16d8833a3849bde0c388d83a93
-DIST fuchsia-zircon-sys-0.3.3.crate 7191 BLAKE2B 530bb5d475ac828843af248c6bbd24ca3b5dd8118c8884ccc6d7261818cff1c79038077114ffa04bc73a078177527824c4d9d20a9b022e4057afee3330258cff SHA512 978b7e8795a5877a68409ed3a1d7b4246263f8e7e7ce9ba8a022643be98f58f329cc1c234717df80a509db849da4394f39e90a8e2a6f56f8fa8dd3c07e7d4386
-DIST futures-0.1.18.crate 153738 BLAKE2B df33639193cdfdf7c5ae7323e5798cc6decfdbfb3f1d819caf794e68411241f25cc05c5eae09a09a1df6f3fa8ac5de7fce5af4536108e5b530dd639c18860679 SHA512 5782b37be2bcd4c9d0ddfafba7718a48144c0f8533acbfd0217e1bf25c3c04ba95320b35765f57224cdfe0ee3a7748d1109d6e680e64bdb1a16addeac422b12e
-DIST futures-cpupool-0.1.8.crate 10583 BLAKE2B 5832359dc451551a3cb77e48b73054ec1505e28e04b2307af5d8e17a3be9e0552941deaaa94d477082b924daade1a2aeb15a0e095629e29ce983b0788a15251a SHA512 49d7a75e2e0a6a6d2103212a9ad9474119f4f33cf3748b605dfbb461ec822330115cada6bbf6457f2093f4af4cc04b4db63dbab8c0faa8b25ee31fea29f660e6
-DIST getrandom-0.1.11.crate 23699 BLAKE2B 9239fb86a5d43a95821d5a378ef291842ac11616ebaa131130dad0bcc5edc632d9786f10c3a15654255461f9f6b221c70854c498ea82f7da24eba9074d49bdae SHA512 ddafcf536d72607edb1587e562dfe8d25091fb073377fe5dca2babfb56e6391b920c98c695ad74d5d2aabf6b28d50a4a54c305b41303250d58e01c4da46f210d
-DIST getrandom_package-0.1.20.crate 883 BLAKE2B b72ca1dac1e8745b3a8b49423c73340b0876eb507ecefb619bdc47c48b1320c2f2653bea9f370c0988b3103ff543ac6c22f915b7c48ab108af15126f8187047d SHA512 6152ce07fabbbb3176484e38493dc1099ebe4a56b573361a92fb624f8bb784ecd8f16f8ecdef988699156aace636548c8300b205371a90fbf14379cb257b41ae
-DIST glob-0.2.11.crate 18065 BLAKE2B 8531890ce378023f0119baccd5c556f297128d3f09c07d320d5cdc3c90032447f2e5a4f2fad0097bd3c6faf93b83256b387d232b3c9f9d3c40e54c48245321eb SHA512 91a1a751bc4ed3b13154aa056180f2b8123c33627cbe972bdd7986fb0b6f1ef90e59abd4128d6e4db5e69523d757440c7df9b9721a61f5ea5a091ffc9843e10e
-DIST httparse-1.3.4.crate 23739 BLAKE2B 3abeb8bd0ca381ec3e7ef73ae51e1ff803583094d0cb12f5f4641fc4b8a312c3e1bf176a5d500a9770057fc9f9e925d437ce5173d99052d97439e773b70773c4 SHA512 97ff294eaf55684412d4e5a00c4077bd517fb1d51c420231281af09cc1dfa65a64adb4a18441db426db41cca91bd7032fbeb9fda02c1b0343466caa9dea8d457
-DIST hyper-0.11.16.crate 139464 BLAKE2B 4317ba59a217d40c56f145712394a1088a8ea2fd7f5aa1bea9314e9e4fdd7122526dbd0d1158b106646003d4ee83a2268605b6409a2257cc36eed7de0ce2efe7 SHA512 ce47fdc4b0e222ac17a03fbd1609fe692c77f70725a4f29782a7366391e0d8cd07ac085413ec27aed15b73c9b510ef67841dd6613a668ff42463dddd012f0d4b
-DIST iovec-0.1.2.crate 8565 BLAKE2B c1ff225d7e8cb8b7efc2be01763740c4f0c1188a5f1f27c5fd3fc34104b2280bee59915d71812756bfd36832fb807374d531792936ed8a7228d52ab98d622a50 SHA512 3e523bcb8b9891be66398f44c97933d246b7a7fbfc4f315bfda6cdb22ca2786ccc82139ee1b646b4c24f6f50f57fba38f9b1fb7c75e859722e9e9c789b458223
-DIST ipnetwork-0.14.0.crate 12580 BLAKE2B 125321fa04e08983d94f80efc5ccf449214a119557d32e3188d861802e50746a490af3645db06e730b6c4bc97e359d9c1923020c0b7316e5e0fd9e6c669b9ce0 SHA512 28f9a73dd68c967ab285f4cc832011cd66b8e91dae8cfcd7938471c55a2fbeeb78a52778481fd62c8af22d1138c8bba32fd815f7cc8663998b401f329a178d47
-DIST itoa-0.4.4.crate 11147 BLAKE2B bb6f1caf1e58dc313bd3cfa2cf81252cb2ebc15e1f4c9adfcdedf46c5fa79811d5b0cbd58f1e91d1f62bf85d7b941b0dba535814fb43b5b70a38db791b45717c SHA512 f5e04bd908457e7592243ce64a99c5283428b767f4cc17d77946770411b06fccb0250625263c3e84a02a018ea7e8a0e4216e1929a71988bab8e1dbf603d3801d
-DIST kernel-0.1.0.crate 153163 BLAKE2B 5c1635a16f69567ceaed92c028ef92bac0a07d7dba9c4a4997710fdfa881e906a4756744b978240b35ed2ddc1ddeb0e4be3b375693c12a49e2f27dd1255afc0d SHA512 75c9dd43b9f00dacbb9a3771be458721498ef77dd74db4f2e5f116c761767a007730f028d0d7a137efb35917b264134bfdedeafb90b96d50461d98b0f11a93c5
-DIST kernel32-sys-0.2.2.crate 24537 BLAKE2B dfc4a1e31d3ec9e2ac62b890839919fb7fed1444070c1dcd75bb75acfb53556d6cf2eddf5a6639e7852a3df2a0cc715c5ce1d3fc898ef16a1687020d98f715bc SHA512 682bc7c629aefd035966a2873518fd60719121cca7d63d89d6c97ff5306f24d8b5055a3c91b4eedaec22b1d5dd3fb8b48ff7341a05bbd72d86e06c422dab473b
-DIST kvm-bindings-0.1.1.crate 130642 BLAKE2B 254231126ca10cb8d743363f0c20d93d99318caa0aae3f9cc23f4cbe921489f33b96511bead2491b73863e75302ffb380e455d927ae96d5789001b1e6cb05efa SHA512 5dcc1162d8533d4f004268c3f3206db4f2b3b44c7ad50eb42da2ee549346c730563449b7c6cfd9a19dd4748b76c1173fd017be131dc8948032290a6a71d20b14
-DIST kvm-ioctls-0.2.0.crate 41480 BLAKE2B 7653c991502bac32e63b6d127523cde375dfa5da0780055a707fda8ec4166b40b0f8791b09dd7a626f77eab8de44762ea67a56a1ef7e984eafefa66fadf8f755 SHA512 59257755ded5584a759cf553ab9dbf2fdd9c4488377758883d3da5e3b1860c4a729d83ca407e78c1c4fdb420d2c033fefff090c601a64a45d338c8f79dcb70ce
-DIST language-tags-0.2.2.crate 12754 BLAKE2B ea59a130fa723b1537e451d5a51914391fc0d375d40df1d8b3ccda64819e918332e344585523d3ba61bb0394899fc1663cf7a452aafd4a7e694f8d70627f1bc1 SHA512 54a6c7d1bc985860c194c842d7b5ec731d0e06f9c77ead8cb0156bd34addd957d0bbf8b6a9dfc6bef5ea31e39f84ab447d1ccec3c178a6c18c4a222a51e1abc6
-DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
-DIST libc-0.2.62.crate 433193 BLAKE2B cb6c3f6def6c33f0723ec3dcea2ec4b96f2a7a2e0bbe5ba0ed6a6cb69a43e64016bd05569c6d8e4701592a9d69f7b8a92213a25b5889f833f03bf2f7de9cf184 SHA512 93c178429a099606d4d61576d74204e87c042c4591b8472eb56eb3ddee883b135e28be09ff48e2718c4cdadbfc641e3a313665fe493d64b1820a7e6018f79d1e
-DIST log-0.3.9.crate 16686 BLAKE2B 543a8a2425c88bd3cf00d4cd2b4790ef344f9743b61776d65f1d8aaaa1ee1069933e33aec114a2dcaada5cf698bbd983fb22354aa50bca58b161a36b2f1efc47 SHA512 1d49a0dcff0a17c1238aba6a6cbc485a61986e8c4768805ded912c5014d0fba6ca38c9bd038f3f53900a6309d41fc0216682f137362e63715878195453d2de6f
-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.2.1.crate 20862 BLAKE2B 79c8b7772f6c4e76ef98e416cab1a87648fe1f78f77eb31a894a2b1611fcf2d8336e361ab3d692cd03579b33f6bc5adb20d42418475dac5441b8bf356e38e442 SHA512 0f5e11507a4235edaa8ef639753abf62f1c187c8c6e35b0c80c9306958e41893492d4995e28bf28e5710e8739c7e75bb75a515507ec87870741a3b426ba8f44d
-DIST mime-0.3.13.crate 14939 BLAKE2B e522741251fe764f685b5f240da3e32148e54bc0f94a2e234de477d792fb0652748410ae7e625a509706bf9ec635d2528fc14e5d58e576026d8706747fc68f8b SHA512 92805a4eaebb1f6146facf1edd0b9cc710731949141af6bfc2226edb7fbd749b04bd8a921e79c2f4a31b79d11053e36a4b7b9dba9be1405a1174a8600654e320
-DIST mio-0.6.19.crate 128192 BLAKE2B 26c821eef0aa49c80e4919d80a795971655b9726c24ce0a5b0716d89c0e254bfdf3a7d4e591ab70474dd9bdb92a48be9d74ff4d7beb3ae158accedcf780525cc SHA512 a6eeb93a34a4a4d486a821763cf660d6c5d3dcb08a7f1cd32a04d918d5196cd50cc29b30c5a97eeca68ab1cda50bf36a50c2c787e08ae3d2a2b9134350acd097
-DIST mio-uds-0.6.7.crate 14389 BLAKE2B b01fbe5ba2e2f58d2bc513ef577c70890ab0a556313dc8e980d4f51d4622be9180215e2e9655e3f02aced40823bdf69b94a8b63c6b2624e28cd24fb5dd89b0c4 SHA512 fe16c8702eef599c2379a2b72a0408970c3318e240d6ed59077c7fcae142bfcda4d9e342e3185338671b82719f7c2ab156bb28a54818a54c249216dbb0f8bb04
-DIST miow-0.2.1.crate 21133 BLAKE2B a60f04feb5bd98eaafe6123f7579ffb0287b0a3d1de0dbe1b504141d76dfbc247891eb6dd87753ce5d6e2ae0406387ccc8684a91980c5ef1ad6610c29ec9e3bc SHA512 b2639b1976274b7a01ec3ff7fd019087775e3bc5365101b24db480bf9c9b66e8a1aa34405d44db6c2be753265a5124054eb37870b84cae2c63fb6b36bd5c6d72
-DIST net2-0.2.33.crate 20936 BLAKE2B ddbc96e7cc4877b8a66d019e7e65a260379cce19c87bf507701ddf1b00208e7a321d34882282fa650a52f6b9d878605a6fc3be461fbb7e10182dda04a04e5806 SHA512 e522b399071daf1a9b913429e2eee52503d9604114feaf6987e97b85c128246b9137e3dcf03f45ca93d623ca6a4b295c9b703db4c319af47498e07d7714c07a9
-DIST num_cpus-1.10.1.crate 11151 BLAKE2B c1328d409d552c2323999a76ed5bed3382752c50091f68feae9b4cc56d28919a51672794122ba23d51a26e6241fe94d36a0a6c843e460ef9c36b734fe474fcc5 SHA512 f1f7408dc1cfe7c718928d8e3e219e3001ce4207467a0a129546f2729ba43a7bf334cd5d328a7f8f8b1c276382c8a0f9d7abf60a3ae2c32f4adafa96c6ea62cd
-DIST percent-encoding-1.0.1.crate 10057 BLAKE2B 6dbfea557cb7a604a99b6fa694ed24b1555fec34bfed54503d98fa4b285a91aab1405b7156bd00be0001b10bf15706878b7bfb4f73cc34560166e0e8f004d944 SHA512 6e884d7172e8cadcf6e39056c9f92b70252f56a8062af0e792179dcf990344f47553c04e2fce84841f20f5c28557d7768727f60c862b9876d29cabffd4ad19e9
-DIST pnet-0.22.0.crate 24740 BLAKE2B eb99d7de9f5952d89f0ede4d66666384cc2f6e914322a25ece97bf4ac8d794ad1adc21114c1b52e86e3e9637ed13a71363c923c5f5d75656ebf0c410569bd314 SHA512 8d708deb7c22ec45852be5e750c1561a3160bb379968fc2efa409f1bbb75eab6647b9fea870b42fdfbb61d450eb40bc482db4d366d531111adf18c6fadf94bca
-DIST pnet_base-0.22.0.crate 3941 BLAKE2B 142d69ac42371e59202a75f9944c026bfdf64436a68048925a04da612d60246259c6331823d4a1f9fa765c0a195bec9bc8b2da6e5acb33b4f2d1e5cbaf097de6 SHA512 d69a46da5f2e5873c7d5f752b0872f4cd2d1ce7967bdb3c21f6a3add001981cd689c453c8cda252c204df5f6c72f6335fe6e9d1eb6602031d089586072aa5ec6
-DIST pnet_datalink-0.22.0.crate 20961 BLAKE2B 0932fb341ab481184a73d0268634be9c7c4095c5c39910ef1b69e3c9d02e9fef0e6f364c353ce975ad0b85f7d72e3144740e684ee37a8f63d14c9b5c3160d48f SHA512 225232ac029cff051c63fcd485966e83fcc5bf3c1adfd9e5a91cfa7f3bdfcb9d0ae7af4302e755a0fbe9d0f7b0d149dcc4ce802d18a4921e89cb7aeaa71e3320
-DIST pnet_macros-0.22.0.crate 22531 BLAKE2B 9ffdafa6d0ef7c36b7f85494c28233a5bb29537647f2f96bd6d00ed38ba0cef0d67133d5e9ef4393ec74e9acfc74a067873a79227734e8d5c38c95d2d69d6878 SHA512 7bc6b638b79a75dad13f5ac4679ab5f90935c3c97ce083c5ba1eb5640e3d0bb69309f2c3c9ab1960ce4bb747317a36ab7d84fdc8af9aab7f2f856a8f976b97c2
-DIST pnet_macros_support-0.22.0.crate 4467 BLAKE2B a8cda3e4d91a52804f68779fd325e182d1721b26a0634fe52ef13d002634f45efad73080ec9b3af386153bca3aee200df257046abc710d3a87a5ff5968feefdd SHA512 2c0db253a1c00b5561a90bb88addd44ecc34772bc8802d843b9f921e939203fe2600295df3c0cfb37f5c66fa387734c714187dcc0e20e03f5de32a7ce6db0f21
-DIST pnet_packet-0.22.0.crate 24240 BLAKE2B d914322bad25fd73816020329f980325162a603bc4ee3c9fcaedd7e88a24190b5857766ccff3360970fd26509e02e52a109cb4ebe25c77ab9ba16ef92c0624f1 SHA512 1e1a95f3aac830159a25df1367fd64e65d7679fc7ab95f4674ae8a0a8ab4a44c75974ed2d3f171180d775e795ce9041f2402993e93ba41a0c0e895dccfb5cecf
-DIST pnet_sys-0.22.0.crate 3753 BLAKE2B c1e10c319d9bfc4152b8a2dc67d47afaf1609070f25ab0aa84ceb6b64ef99a1714c528eebe0e2bb75fe54b4bec1d779df1daabf5b7a0ac21342b86c368a9e3a8 SHA512 b1a9a1b708c98fff9cc52b5318d7beda08a3784a7a29b26d0752effd237ef6b82b3a05a848dff603c19952c4730c88bb232245f9bc31e9d1052b3b24186756cc
-DIST pnet_transport-0.22.0.crate 4549 BLAKE2B 38332a8d8e7e25a5ae43aef08980d85b5b897b07c79af144c6a04b274f0010c5117955c821c7ca10bfd2224e68fc5bc3374c81f52f66727e78ae8e06e115fa38 SHA512 7cc764f5ba037e209cf4976bc50f522f6e66f97996eb5ec60a7692ebb31adc17d725eddfcd0f819fea33dcb5c56b4572af6252d6f1cb4b0d77cd78b709e2070e
-DIST ppv-lite86-0.2.5.crate 20606 BLAKE2B aeded44b0a0fc59073d358b565c6241ce537a29967fe8f95eadc4cce420752e619023b0f813d1f157756dabc640351de61e7da9bd030c91a14b70d34e300a217 SHA512 281ea3479c4a8996aac643b707e75ca0a079681b1f182a074de0d9989ff9f1df6922cb8e4152af76025ebb4c2d00e6889aecc2a4f0fa66531eceb732aef62243
-DIST proc-macro2-1.0.2.crate 34779 BLAKE2B c99119a8c2158712f16524c568a03d60f0f4a72f79ea310c823c7bbf809f91f5836f4bc3388e2add1e202207fa91c24b64be438c7ee6d0eb0f27175b739382f8 SHA512 012ef53dd8f5abffa10490c95197bd0d303c681fe0da54adee75a9328a194cf827acaddc286b2237a6665a0bf9dd4c94250bce7919994412185c9de3828f733c
-DIST quote-1.0.2.crate 23023 BLAKE2B 4091809b4fc9b8d0b56be814b127d6ffd7c1507becba85dc905606cbe85f46233dc4b429c1e865e7c7de336cb936d956169ceb5dd45b489b7722022ccf818a3a SHA512 67778dff9dc5c4edcdd6454b74ad9353bb6c0c4e51c16cb82f2e393a7d7a0cde084d3c93279b718a8398c40af0a9377ebfae5321e69e635efd8390c125b75ce4
-DIST rand-0.7.0.crate 104208 BLAKE2B 61e0f8ba3a3be58fd43df55feae3bd571a2c758e6e36f7ffcb42af1ced067338b6baf9b9d3b097c3d9037a440ca961aec87267fa5147e59c1e34f3a8210e2a95 SHA512 20c82ed8edf0bd203ac6f04f746b80abf5ad5716b307cd76fda399f26519ccc3b757f390058e7d8826508ed8a2b524c49ebad56a79fa77416b386f2b9a854352
-DIST rand_chacha-0.2.1.crate 11475 BLAKE2B 698f830845e24b85fe52b11e9a1c621dcdbe4232bc22f3dc0b1d2fcd4427045f302f74134d9b451fc5b4f9ac559fb2bc06f3d0eec5eddb6fd6cf3e6d3030855e SHA512 30933fdb94ca8d4bf040a7e08a42944a0d7c2f3f6a9a3d547e74bc32f922b0eb79d85afb1f6c85c78dc115170e70bdf96b36f0478d61ba5651876d5350ad18f6
-DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf
-DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0
-DIST redox_syscall-0.1.56.crate 17117 BLAKE2B 57b1b01ef3cbc6f55def6c9a0dcde16bd98e83badcef993e26ae3ce849abcd1b1c10f4da931c605970d77f92471734764a537e7329291a221343fde23f3591eb SHA512 17a3044327aa733c830dd74e210d6bda32622617d1c5af9d70d7647232d8569ad0b04ccb14042cbabb5d97ad98e3f1f5a9968a75387354ffb4d175e9577115a1
-DIST regex-1.0.6.crate 239455 BLAKE2B 0e81b18a220c6e81fb9185391f15faba2451b0fdebc7facc06a3ea76534ae32a76a6c573a686a72c62b30399939529fde08e6c33c4fe0d126df9cf5e11204456 SHA512 4779fe3896c131b418b07ec2622888b2b8dc64172744e6ff91c46a957646c796c46fcc5b1c37b5349f0c7a5adccee2e7af1e07121dfd2b59976bd0fde5b60bb4
-DIST regex-syntax-0.6.11.crate 283238 BLAKE2B 37a535b47f90449f6d41d1a5a3de69ff21e74fd5268961ff9f7cffd620080fbb212a1bd315db9b25b20aaaaa4ecd4b1afbb88a45a96b7e23d4b9e4742c081aec SHA512 619e1118aaaab60dcfc653cdae8fe2a8dcf49f2b06e718710f30179b4c95f1e31c04b2289f1d05d0c88b1996a3d8a327180ccf13bbd1d0259a70af7c7f449651
-DIST relay-0.1.1.crate 7331 BLAKE2B ca5d025d76f85b05a8453e264045871a5d552632db7f8bc61428798bd5b539ad27eec191ac153addbc86c77ec771df6058ad84d29395ddfc39558c416d8d9d91 SHA512 81b2aa587529ebf364d4b1a566acfd867623a33d32fe20c94551dc248ef28950de61094d7e1acfca618205c731cb3cb955bc8106d9a4c5c7c84f9c38b35b2261
-DIST remove_dir_all-0.5.2.crate 8907 BLAKE2B 585f49f83db3ace90dd0b4fc77aab7525844194c82d36cc33ab8999aaa6226d24a130c30f55e2c46a08273cc554d9d4c8bc51958aa7dbf1045085b2e22639e4e SHA512 d19a45398a93adbcef9f233f6b3eaf4a63ae95f5bbae00c880b40c5edd34449e7f798ebcd4d11843c68ddfa15e11bed21d434b224e4a175dcb64ae011c13c8cd
-DIST rust-libcore-0.0.3.crate 4988 BLAKE2B 0d0e663d70a73afbd13f07bfe1072f76243561570ada2ee548f2811665326d530a02ed99dcaf047212efea6e451c49273d6795b56793d409a5eb5e09bb9d4616 SHA512 67c83402776606e5266c6cbba5eeb8e506a0aa8c6f5b5b310e3b289af453bdba80d32bf517a0d626405263622460fbedadbe7934836f6a0e51502d0957002db3
-DIST rustc-demangle-0.1.16.crate 19137 BLAKE2B 04226ff97786b81c90130b48cf6542ea448661af9ea7afed179e71d04abf52cfd3c53fab26d4d35bdf2c1d5a735882da7703527aa48ba7b77f337599c2324150 SHA512 36a63a28a72c710d08524adbb7d11def37db23fe123fb6ea848623b4207c7f80d8415bbbe951488ceccfb8f4f1cdb66a8edfc4c0eecdaa62c87df9e032f4c063
-DIST rustc-serialize-0.3.24.crate 45926 BLAKE2B 11dee8dac7eb007067ee0eb19d122bf45d912e6cefa95fd5ae3db7a4585a3f37e66b123c8c7bb761cc451b402cb9191dd5c974618331bb9aa9efbe9215115abc SHA512 60b40a0b41678287627cf5898e0ff6ac5668865f1ce5a482190ecd7539b59a955a73c675fedac76e68a5126efb92ff0cf1d1b4f24359a932463434bb76d9e884
-DIST ryu-1.0.0.crate 40170 BLAKE2B 5938a70fe991ac71974a38172acff9e559ec457aa12775ac53305742696a7ccf8f4619734b1d7b0e2db01b548ef2945aaebca605c186dd0b599f47dfb3fbf536 SHA512 b5dd360611fdf76ff13d377c1c79ce09a4fab90a8b7fc917a4424b8246c8a0da7d3ec515b8c69b695d936b1207072d173b9f40fd5cb218f1eab947862112caf0
-DIST safemem-0.3.2.crate 6858 BLAKE2B f5a1b44da1289775e380b109bd458b7bbb17cc04ed718434cf05fbb7d75387c70b51c5d8f9078aebeae7e98d1873b972a70d65a345f632f42f5c67cbe9a421c0 SHA512 6d886d8b96ada623436586ebbbb84d9eea34329bab3164d915a47e3e4de00b724928c6dc224c88541aeb0715de633d129949e7bcedcc2393b348a2692451ddda
-DIST scoped-tls-0.1.2.crate 9079 BLAKE2B 35e15480e05c48d5b886bf94f2fc58f79e7b5f6132c8e81ca8f37140f58d21e8a30dab56de35cc395b1878083f9e7b187af7e580bc61f8f38975b2e1193abb57 SHA512 9e1a517994f06dcdafa05f3ebe67958ed5bc751e6180cff6c891f48fbc143f3279aa841e6109be2c403b492162bdd90b23cf74aeb2154a34748c5d495789fd73
-DIST seccomp-0.1.0.crate 2750 BLAKE2B cac2a5b20e640d94474f4c3db5f6102f0c45a8211080e2cc806828d1c20220d847c8bd4cf770543be56a36de4f0486725241c63215e041d2a0c35b6523eead3a SHA512 a13d27ac138e6c9fe83d25f94dcf23ec5a2a326504290bc20efc379b05d24ea5dde06a371af7e52c62fec81b0c8dd26ffb3c0a0baa3b701ccfa4f09019c6e1c8
-DIST serde-1.0.99.crate 72436 BLAKE2B 564e206ea5363898300af959efda372115de54812553853679af173fa91562562f1508d4cb570d801ea657af3aabcf8c3bdb40b762d6dc1e6a24c4a02cb09021 SHA512 9e6e55fd38777ef238d7b6c0f9f74da1e0cdc204e4735f70e6644d81e615d90c5b245bb8f2edb88751d126b3d1ca3c1e9f6922dddb645b9a1bb40bb4a8c11a0d
-DIST serde_derive-1.0.99.crate 49786 BLAKE2B 1a8502b8c22053c54cae207dd283402a85a7eec630883de36df85d46bed4519d04c3b82baf660d4863324a3db9875ae62b9486383596487e9648533e05e685d2 SHA512 6b1b17207fb1e593bafc1162d84c6ced08e799aca9c07c32c399fb3c78662fab920ee35e99ea9462b21515b7c3d35e4e2a457cc0577dada51138f5e8a905dd9e
-DIST serde_json-1.0.40.crate 69695 BLAKE2B ad156577b557ffffac9a7f75e6e0f6f6b86c82e33db1e674fd00dffd6f9c33a13f838f062a4bb39ab9dfac63199717f96bbbd53e107ce8231aa88665fd7a2eda SHA512 d09bc95c963f510686106d9885f3420b9eabba8bf32626597dafd43ffbe91ea72ee4a3fedfca922794a727214d73929970acced8eccaa23616cde33dfde9f842
-DIST slab-0.4.2.crate 10136 BLAKE2B e30cad459bbbb69c4b56a573c47f4188714e0da298d87015c35a86c9315dc2d4308f27d7758846069b0cf94c93f10c44b0f8895427cdf1c93ae20adbb21b5977 SHA512 f9fd70d0cc5180393cebbe87fe984de0c103db1c2c2648fb7a0ee22cdabf37a7338fd511538f00e9a5564365cce2879afe19bf77c435870197bd6cafef5d6661
-DIST syn-1.0.5.crate 190286 BLAKE2B 7d5c813bb4cebbc104978181532a050b0a7f79963a539d69a253ebdb15a83c275a5d5b04dfbb66a426afec2c90a450ed7be595619a2b5a31b0725d904f5adb92 SHA512 4cc18966040b1f86916876aa5ad8029a126f7ab8db55408b3f4bc343dd82dc357899dd4a7afc514c65fd269245f8850f8f2834b08bc2ee6cf6774282f75feadc
-DIST syntex-0.42.2.crate 3173 BLAKE2B 40624fa9370cf2c5ef02c28fb158b34926c22942ace0855d284a2c8b0ebc968492b67440eb010df10fc3fc06ed01c894b2f5ac87456ef2b7cce933cff22f1764 SHA512 b03cf0edc5367e31215e187d5ab32b76d1e909e47a34b0b9f58fe620681b7d55eed0689eb6b6c9b7312bb791d03995ce60b7daa1035df87959aa2d3117aa82c1
-DIST syntex_errors-0.42.0.crate 14621 BLAKE2B b0a5e6c75f41b1967e980d0e3d06ea8ff13bc2da34496195ea429dfa8697abd676015039fccb8a182330eb7813c91ddb0d778184dd45bae205bda6a3dc6179ec SHA512 4e821e947190a2c5888ad73e6d1c40eee0821f8cc86f6adf404a033bb2429b772873d6a0a86f3eef323b2607e4a059addaa26eac66b4d0c4a14cdd8d64b03667
-DIST syntex_pos-0.42.0.crate 6727 BLAKE2B 2af3c7f8617483ab8289f380ee09155c21eb84b840edb9d442c53f2fd3c29c1ffc3565a182afef732713b3353e47e648c27f3ad71dad8c8d565642be32442de1 SHA512 64eae847e30b23f210b4dea68291094fbd29b3747539bda7c9b69d41d5a49a36a779c8a1d244be931fa317786129fa6c8a197b319bef14149541a447698fc77e
-DIST syntex_syntax-0.42.0.crate 256508 BLAKE2B 7717a5da3feb313fba7651eea9ccecddfce24671908cbada516bc5aa9184d80c22e08f119600e568f6358e7be8a5894e627dad117aa9c1932d8d522ac7c8f2fc SHA512 db2e1b2d90d91e5f695d0b65f06ef9cc64d51c23bd1907c1e5b3516cc38c33b471e5bc75f02426caca58d1dc8827fb5f9adcc21fb344005878d54c4d7e925ebf
-DIST sys_util-0.1.0.crate 50265 BLAKE2B 4c10ec916bcf9e211de2efe42ccdaade08091d84b26b3a135054e44052749dd7befa77dc604a35407a048a5f398e735fcf2a470c558d5671451711cf0eed1332 SHA512 17f587a891063e00ab69d0fdab3d19f2af6f5566d71ab32f56a093ddc941a1ef68a07c5d9f135a65eda7d74689c2daa5bb7798fd1a1bfa22ae064536509f29b4
-DIST tempfile-3.1.0.crate 25823 BLAKE2B a34721369923771d5f9a2fc64adaff2bff41da97a0ce79e01aaedb8d6670867220c671c0d23f7a8a9c71b09c0559efe4e7c9bab1f7f9d890866be1de1ce050a9 SHA512 a87ee51c36a81a8a8eb8f091eb57926682f38b707f7f641332d8752170e6c139a656ae49c6861f51e07c2fab5c86cc9b2ac158f5d89c6bff15d18934dd4e7ba5
-DIST term-0.4.6.crate 38250 BLAKE2B e4509c0754dc87e6048fdeb42f9d0e6e2c888c5e43fa3aed451ad21a88a399179a1f9935532f6483c3ec374b4676066125f2de35aa2805b1ed1908f45722cd82 SHA512 b88d9a93082521d12071148b98fc236ceba43d7a13bbaf5da679ca03ea9a6a95e38a14ea72e71fe108a5fc6deba1c8c8b25afe5abb511d19965f5e219e7c1cf1
-DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
-DIST thread_local-0.3.6.crate 12388 BLAKE2B 290c35e5327e80a5cdca5609252b1efd1b78a654fc9ab4ba68eeaa3c2769d844f725d17d91cbb15048dbaac84913c51edcb39bb402882c9e7b4d0c4e4811518d SHA512 cd783d3d9caec43868da1f6118d4c4d520e03b9f1049d8f15d2c12482989401d3aee748e04a149953d35e5d6487355c2891d44569ef688bc1d45f01b6461d253
-DIST time-0.1.42.crate 30005 BLAKE2B 6d85ae2e56612b5c6955921b671ac62ad10c174fa9fd382e2d76018fc2789253836397b980f8e6d0db4f1b19da244c64d3bffb4fa6c25ac0b66e7ba9876590d4 SHA512 4df662212377093b0fd8fcd88ddc30b20a8af7d989c2e100c0cf64f9741e88eea6e858e1aa4220be6b76b0cf8b62c8116b492010d74d1ebef197c66aa130aa83
-DIST timerfd-1.0.0.crate 5535 BLAKE2B 0b961061d55987361915036fb36b65fc4413bb69bc67937b20d6c9658ccda2ea916876ff23e1ecf0d2b4ae1d7eae7cd4a5368f3892aba48748c62eef4a16ecde SHA512 aebf8d04e4fc2b569ff56aa556864505ea71e674bda8fe209eaa4cdbac32e9540030ba308c3bb285323ce49ca5130f45cb2eade19345ab4029adb753396f7430
-DIST tokio-core-0.1.12.crate 75654 BLAKE2B 5def63ba5b22aaa5ee0cf094365a0aa652b104c5970c55bc3ec777d44e4d4d313d0a1c6861d0a3da251c082f98649bfbb367035dd5a83cd318e15f0b1a6a40b3 SHA512 1ca199ec3640906e0ca42414c12212d00c4c42ef690225f3449d35e81a22e39008ec03a3b7a5762d6f84fb8d64bf07bdc2182ca3defb8a77342e732d6a4a025b
-DIST tokio-io-0.1.5.crate 33064 BLAKE2B d519c56dd896e25fe8134a0e57682c148a78215b46cae08b4b0bae1f36a11f66c0c69605d11259f5ea2c0783cd45ec66a1fd205f79f2ae2b34c83db3aa6b3f6a SHA512 702e9caab81c7a22717b77dd6931d76fa5a1d9d447ee88ebd0beea8cdac1fd75b84c93f3924903cda9e9d30e53e2e729b080261c4a8e0bd234308202567f343f
-DIST tokio-service-0.1.0.crate 8376 BLAKE2B bb2193af371d14c19a7f79760d4544bc5ebcba46d38d9b2836e46b6041c4b0c68f7902af51dcd3c83970084f271b1f29591b1fa461b854cb1bcc46b4db2c4d4c SHA512 a22b5a33fc957abeb8556ad1f01c6574a855b24053f7bf1ec23376df42b1e83f2fa0a538828742f24f586456e0e1314abe74ca3ac62d364f905b74c2e45903c8
-DIST tokio-uds-0.1.7.crate 15094 BLAKE2B 82b9eb1726c3f5c6c52e70c40be42618bf0bb42eb61f045999af04809d98a40afb64f9e0b31097c6d6ade4d7a2239d72f28462a126a204b4a8c318c341374c50 SHA512 2d21490ceef08554e5633d602ba1c15751a9e36d3a51b58358bb99ee117de1cb029b262ec0174545ef5c88f7cf2e54823c678715e8b83ca91e6491213eeeb9eb
-DIST unicase-2.4.0.crate 20143 BLAKE2B c579faae980fc52693a229c2ca1fca62647b8dbd1566f58ed50726e3e31db238fb33da168527630c4e55a786e595ce62aaa0d0d0cdbff46d53b628d96b8d00eb SHA512 d4b7d0e217a8a9180cd01cbce4d1e2bc80a9dbeee735954968c0372c9679f4f84b73294952947890340f20f4f9158b70ec2c13adc11b1f0cb53aa893755cff22
-DIST unicode-width-0.1.6.crate 16394 BLAKE2B 8a4bd3dbe264635cbfe42c131f20a0e8f32989211434fbcc085abeb8b7fac841908e99c6130d626af363edf9b07fb82f6ddbc494812273521941d553980142c9 SHA512 d6c2e5a99ea359d866393a6b00e0e21e5d80e4e665e457c0f2f0bbebda53afeab75b1d9b6b79102339ee621bac5050e7d41621703a8fd9ffe1e74a5a4301aa05
-DIST unicode-xid-0.0.3.crate 15998 BLAKE2B 2e112dbd311399836dd12ee37bbe7b9d83ed6fba89549784f1bf2ca9479b3e3cedd1bc2b15bf5e21b0cdb30fd3b88b973aadf37cb634024316ac33fc77d98d11 SHA512 268c1f3ec79ed2255c4e3759e4526b4892cb04f54ced07afbfff0ff8dcdec953e5b540fcb58b30bfec01b6401b58ef3b21320a0c1bf3a43aec22f0715568dcc5
-DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359
-DIST utf8-ranges-1.0.4.crate 8575 BLAKE2B 686bfd854cdcb7510b07751630089f4f0cb0884017792288a63a4a8fa00e6cf1a10b38c39142e57d5b4d1f494c95f3445f343f1b34fc1883dbacfd708d8c13b6 SHA512 acd7008c92ed23cc0ad3fbacecfba2169781687c6aaa475ef5388fe416391cd209218a2cb19b9d4fc87a2a616f1dd67129d39978fe1b58be134a013f90cd53d4
-DIST version_check-0.1.5.crate 8173 BLAKE2B c1778a95fbc79e93bc25d6ee85c408cbcc2afc1a2317bd96b6d5e1c99862f26cc031e0a8b14451d7ea5a44d96c9b599c899bcebda36d3974effc51f9c236ca56 SHA512 cd3ca0b36108b0fe8e6a5c26614b4f3e3c36ffd13cd9eeb7693086b4a1f7b67c025613d90e79f4dd1bd3234a3e387b2ee890c6c410fe67d293b9b5503f5e9362
-DIST wasi-0.5.0.crate 31104 BLAKE2B 91bf384f8f9abbdd4f75d0690056568792b7aa6a16834b73e8a5fca98d12b008f2be8101cb4e55864d2e057ba8d169010785f2acd395b69d894f8c32a62ee1ea SHA512 3996da04af8d178a6a7a2129de59ca62e51e9ff0c4dc99000919489f258598c2d6c6264736588b711df22679e8aca103fcc9e13f5a429b33bb4a28f7b909c79e
-DIST winapi-0.2.8.crate 455145 BLAKE2B 50f3c2a0cf4eeedd6891b11392e520c1cca139a71f8f736eabaf43aa7e4b1b5d57697918978220459572d373940edf971eb8302f292cbff832283e905076319a SHA512 115e6f027cdd4a56f77ca24f4ab249d2a6cac1e1f955c826a9b6ee05db4861790a533f5e674aebbb540370fff52ed41618c2cd7c906e73200e92df213109cebe
-DIST winapi-0.3.8.crate 1128308 BLAKE2B e0e8ef6121f222b0500525192ebb69b26b71cc16f9ba92186f8ad6acc9de4cb8cc7c738f9c31f5bd223d2e34c93c496e8448c973d69797776004670c70abf69c SHA512 5a899ee5f09f30d742b8b8eba78da05cd9f4c664408fdeb9370373f8756a962a23e3f1c07619e745b3270138606c9a369076c02c3f5353f657df09d203d9a736
-DIST winapi-build-0.1.1.crate 669 BLAKE2B 6c8d8e0f81574c086f06fb3f234b0e6759d293d1d254857c3d491e4d43279e5c2f57f2fcfdc9d5d7b083280f4cc2a75a6ee9bc1541ec6ce8f8d904ded0567faf SHA512 8b0a239e205a5368892f41c870a8a7ea16e3468c364b03382bef7fa3a2e7159b09c07661e95b1227578f6d72c14879daa4444b28c51ae20ef15d985d59ca5a77
-DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
-DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
-DIST ws2_32-sys-0.2.1.crate 4697 BLAKE2B 52a7a3f57bcd73156730ada4d78fe12a54a498c9064e0928e09de13a95bd9237f884538e5f9368b47a7ac3c425f0f798c26bad85f20bed4ea26c2fa16c779b97 SHA512 18356861fc595efe7d0180afb8ce7649da35a4f9ba456271d2068679ab258a861af32a2e016e241fbfbf5f6ef0eb33127b26eabfc11428af39506538faa4821f
diff --git a/app-emulation/firecracker/firecracker-0.18.0.ebuild b/app-emulation/firecracker/firecracker-0.18.0.ebuild
deleted file mode 100644
index d8166ac49973..000000000000
--- a/app-emulation/firecracker/firecracker-0.18.0.ebuild
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CRATES="
-aho-corasick-0.6.10
-backtrace-0.3.35
-backtrace-sys-0.1.31
-base64-0.9.3
-bitflags-0.5.0
-bitflags-1.1.0
-byteorder-1.2.1
-bytes-0.4.12
-c2-chacha-0.2.2
-cc-1.0.41
-cfg-if-0.1.9
-clap-2.33.0
-cpuid-0.1.0
-device_tree-1.1.0
-epoll-4.0.1
-fuchsia-zircon-0.3.3
-fuchsia-zircon-sys-0.3.3
-futures-0.1.18
-futures-cpupool-0.1.8
-getrandom-0.1.11
-getrandom_package-0.1.20
-glob-0.2.11
-httparse-1.3.4
-hyper-0.11.16
-iovec-0.1.2
-ipnetwork-0.14.0
-itoa-0.4.4
-kernel-0.1.0
-kernel32-sys-0.2.2
-kvm-bindings-0.1.1
-kvm-ioctls-0.2.0
-language-tags-0.2.2
-lazy_static-1.4.0
-libc-0.2.62
-log-0.3.9
-log-0.4.8
-logger-0.1.0
-memchr-2.2.1
-mime-0.3.13
-mio-0.6.19
-mio-uds-0.6.7
-miow-0.2.1
-net2-0.2.33
-num_cpus-1.10.1
-percent-encoding-1.0.1
-pnet-0.22.0
-pnet_base-0.22.0
-pnet_datalink-0.22.0
-pnet_macros-0.22.0
-pnet_macros_support-0.22.0
-pnet_packet-0.22.0
-pnet_sys-0.22.0
-pnet_transport-0.22.0
-ppv-lite86-0.2.5
-proc-macro2-1.0.2
-quote-1.0.2
-rand-0.7.0
-rand_chacha-0.2.1
-rand_core-0.5.1
-rand_hc-0.2.0
-redox_syscall-0.1.56
-regex-1.0.6
-regex-syntax-0.6.11
-relay-0.1.1
-remove_dir_all-0.5.2
-rustc-demangle-0.1.16
-rustc-serialize-0.3.24
-ryu-1.0.0
-safemem-0.3.2
-scoped-tls-0.1.2
-seccomp-0.1.0
-serde-1.0.99
-serde_derive-1.0.99
-serde_json-1.0.40
-slab-0.4.2
-syn-1.0.5
-syntex-0.42.2
-syntex_errors-0.42.0
-syntex_pos-0.42.0
-syntex_syntax-0.42.0
-sys_util-0.1.0
-tempfile-3.1.0
-term-0.4.6
-textwrap-0.11.0
-thread_local-0.3.6
-time-0.1.42
-timerfd-1.0.0
-tokio-core-0.1.12
-tokio-io-0.1.5
-tokio-service-0.1.0
-tokio-uds-0.1.7
-unicase-2.4.0
-unicode-width-0.1.6
-unicode-xid-0.0.3
-unicode-xid-0.2.0
-utf8-ranges-1.0.4
-version_check-0.1.5
-wasi-0.5.0
-ws2_32-sys-0.2.1
-winapi-0.2.8
-winapi-0.3.8
-winapi-build-0.1.1
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
-ws2_32-sys-0.2.1
-rust-libcore-0.0.3
-"
-
-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"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-
-RESTRICT="test"
-
-BDEPEND="acct-group/kvm"
-
-set_target_arch() {
- case "$(tc-arch)" in
- amd64) target_arch=x86_64 ;;
- x86) target_arch=i686 ;;
- 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
-}
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 921d9cf19280..000000000000
--- a/app-emulation/flannel/flannel-0.11.0.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit golang-vcs-snapshot systemd user
-
-KEYWORDS="~amd64"
-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 cfe71d5ee793..000000000000
--- a/app-emulation/flannel/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="person">
- <email>zmedico@gentoo.org</email>
- </maintainer>
- <maintainer type="person">
- <email>mrueg@gentoo.org</email>
- <name>Manuel Rüger</name>
- </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 7221cf60d086..5df084dd5ee5 100644
--- a/app-emulation/free42/Manifest
+++ b/app-emulation/free42/Manifest
@@ -1,4 +1,4 @@
-DIST free42-nologo-2.0.20.tgz 7390214 BLAKE2B 306f3378bcbb44fa7982c5d9c29bfbea62e915ca50ca5e5216f46fbf483f110a1288d4800991a74622a042517496ff8dd94c3fa3249e8bb4181957e6b23d5ea3 SHA512 9b540fbc50df2f94b135b5e778354f330df77a54ef2ad99b257b5b91d1e3e8d1241e8a834522fc46fe33571ea2695ad8889b427dbcf653870672e89cd56d60f5
-DIST free42-nologo-2.5.10.tgz 7408769 BLAKE2B eec27805199b80ce659517479bbaefe871f8e4d2fc06c138e4741d63748acdef7e04b54324ff679a820ca451fcfa34e4202edf196e426679adabe397313f8f37 SHA512 309ee3779b792208ab887b91e43c4bf7a61862b02e3c250fd09367c154345878ad80c2c949138cb5d0c5d7031ebb0d4c6d192962866b6b68fce220ab2d651b42
-DIST free42-nologo-2.5.3.tgz 7406566 BLAKE2B a8fcad4738b46e5725e323eb7c16929c32fe0c72eccadf2f692950a3ee952f3b8f7e1e46d6e4eee4e822ca5a3b2c42adb09e2b43f0480c954aef87dc81b1edd3 SHA512 9a96bc5453f938ba806117ac3162db4f87d3584662c8a1aae370f17a06c1e92167adb2c2bb9bbd17b91473f272f8c031c7ffc1944247962571a94cb7063f0904
-DIST free42-nologo-2.5.9.tgz 7408535 BLAKE2B a64c925e5c93e396efc2a46f8d495201b039763269c9d326469f9b77435b6ef5a6b434f83a2c7017587ef7223724ed7986aafa60bcb542f79d20630eee0016fc SHA512 fba421b181649881092b398458e2065f9f133b76d88e140f046de805dd42a5ba513168cf2ecd4c94821e1b8374e596a2b696533d29c11ccae4106a14f1fdaba4
+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
+DIST free42-nologo-3.1.8.tgz 7464179 BLAKE2B 122175508b2da42f101fae37d7c1627ef802d6e21af9cfb4114b657591f0ba1011a109ec3d75823911d3342fdd02e84a58553e616cd0b4c6288b5d39d9648250 SHA512 ef350d963a11c1a195024f57532a22771a3d0d9b7058bf38557e81c943e7cbd8b500472275b7094be3f7f01c3edf557cf3a3ee2d493cb756d108211b7391a4bc
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-2.5.16-fix-makefile.patch b/app-emulation/free42/files/free42-2.5.16-fix-makefile.patch
new file mode 100644
index 000000000000..f59a700628dd
--- /dev/null
+++ b/app-emulation/free42/files/free42-2.5.16-fix-makefile.patch
@@ -0,0 +1,39 @@
+diff -Naur free42-nologo-2.5.16.orig/gtk/Makefile free42-nologo-2.5.16/gtk/Makefile
+--- free42-nologo-2.5.16.orig/gtk/Makefile 2020-01-25 05:16:45.000000000 +0100
++++ free42-nologo-2.5.16/gtk/Makefile 2020-02-02 20:18:50.460458652 +0100
+@@ -15,7 +15,7 @@
+ # along with this program; if not, see http://www.gnu.org/licenses/.
+ ###############################################################################
+
+-CFLAGS = -MMD \
++CFLAGS := -MMD \
+ -Wall \
+ -Wno-parentheses \
+ -Wno-write-strings \
+@@ -34,12 +34,14 @@
+ -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}
+
+ LIBS = gcc111libbid.a $(shell pkg-config --libs gtk+-3.0)
+
+@@ -114,7 +116,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-2.5.3-fix-makefile.patch b/app-emulation/free42/files/free42-2.5.3-fix-makefile.patch
deleted file mode 100644
index fc5abc33bfd0..000000000000
--- a/app-emulation/free42/files/free42-2.5.3-fix-makefile.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -Naur free42-nologo-2.5.3.orig/gtk/Makefile free42-nologo-2.5.3/gtk/Makefile
---- free42-nologo-2.5.3.orig/gtk/Makefile 2019-09-01 17:44:47.000000000 +0200
-+++ free42-nologo-2.5.3/gtk/Makefile 2019-09-04 00:27:16.761482125 +0200
-@@ -15,7 +15,7 @@
- # along with this program; if not, see http://www.gnu.org/licenses/.
- ###############################################################################
-
--CFLAGS = -MMD \
-+CFLAGS := -MMD \
- -Wall \
- -Wno-parentheses \
- -Wno-write-strings \
-@@ -34,15 +34,17 @@
- -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 $(shell pkg-config --libs gtk+-2.0) -lXmu -lX11
-+MYLDFLAGS = -L/usr/X11R6/lib
-+LIBS = gcc111libbid.a -ldl -lpthread -lX11 -lXmu $(shell pkg-config --libs gtk+-2.0)
-
- ifeq "$(shell uname -s)" "FreeBSD"
- ifdef AUDIO_ALSA
-@@ -54,6 +56,8 @@
- CFLAGS += -DF42_BIG_ENDIAN -DBID_BIG_ENDIAN
- 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 \
-@@ -95,7 +99,7 @@
- endif
-
- $(EXE): $(OBJS)
-- $(CXX) -o $(EXE) $(LDFLAGS) $(OBJS) $(LIBS)
-+ $(CXX) -o $(EXE) $(MYLDFLAGS) $(OBJS) $(LIBS)
-
- $(SRCS) skin2cc.cc keymap2cc.cc skin2cc.conf: symlinks
-
-@@ -119,7 +123,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..c9cde2fbda2c
--- /dev/null
+++ b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch
@@ -0,0 +1,64 @@
+diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh
+--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200
++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100
+@@ -10,13 +10,6 @@
+ fi
+ fi
+
+-which gcc >/dev/null
+-if [ $? -eq 0 ]; then
+- CC=gcc
+-else
+- CC=cc
+-fi
+-
+ # Hack to support FreeBSD; not 100% sure what this does, but it produces a
+ # library that passes all tests.
+
+@@ -64,8 +57,10 @@
+ ;;
+ esac
+
++patch -p0 <../intel-lib-custom-cc.patch
++
+ cd LIBRARY
+-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++$MK $OS_ARG A=a AR_CMD="${AR:-ar} rv" CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
+ mv libbid.a ../../gcc111libbid.a
+ cd ../..
+ ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc
+diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch
+--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100
++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100
+@@ -0,0 +1,31 @@
++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head
++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200
+++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100
++@@ -527,12 +527,8 @@
++ CC_TYPES := gcc cl
++ INTEL_CC_LIST := icc icl
++
++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
++-ifeq ($(CC_NAME_INDEX),)
++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST))
++-endif
++
++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
+++CC_INDEX := 3
++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST))
++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES))
++
++@@ -543,13 +539,6 @@
++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP)
++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo)
++
++-ifeq ($(origin CC),default)
++- CC := $(_CC)
++-endif
++-ifeq ($(origin CPP),default)
++- CPP := $(_CPP)
++-endif
++-
++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3))
++
++ QOPT := $(call CselCc, QOPT, -, /Q )
diff --git a/app-emulation/free42/free42-2.0.20.ebuild b/app-emulation/free42/free42-2.0.20.ebuild
deleted file mode 100644
index d9b18f97ed94..000000000000
--- a/app-emulation/free42/free42-2.0.20.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils toolchain-funcs
-
-MY_PV="${PN}-nologo-${PV}"
-
-DESCRIPTION="An HP-42S Calculator Simulator"
-HOMEPAGE="http://thomasokken.com/free42/"
-SRC_URI="http://thomasokken.com/free42/upstream/${MY_PV}.tgz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="alsa"
-
-DEPEND="dev-libs/atk
- x11-libs/cairo
- x11-libs/gdk-pixbuf
- x11-libs/gtk+:2
- x11-libs/pango
- alsa? ( media-libs/alsa-lib )"
-
-RDEPEND="${DEPEND}
- x11-libs/libX11
- x11-libs/libXmu"
-
-S="${WORKDIR}/${MY_PV}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.0.10-fix-makefile.patch"
- "${FILESDIR}/${PN}-2.0.10-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"
-}
-
-src_install() {
- dodoc CREDITS HISTORY README
- dobin gtk/free42dec
-}
diff --git a/app-emulation/free42/free42-2.5.9.ebuild b/app-emulation/free42/free42-2.5.24.ebuild
index 67e64a2dd933..a8ede08965a1 100644
--- a/app-emulation/free42/free42-2.5.9.ebuild
+++ b/app-emulation/free42/free42-2.5.24.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,30 +8,27 @@ inherit toolchain-funcs
MY_PV="${PN}-nologo-${PV}"
DESCRIPTION="An HP-42S Calculator Simulator"
-HOMEPAGE="http://thomasokken.com/free42/"
-SRC_URI="http://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+HOMEPAGE="https://thomasokken.com/free42/"
+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
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}
- x11-libs/libX11
- x11-libs/libXmu"
+RDEPEND="${DEPEND}"
DOCS=( CREDITS HISTORY README )
S="${WORKDIR}/${MY_PV}"
PATCHES=(
- "${FILESDIR}/${PN}-2.5.3-fix-makefile.patch"
+ "${FILESDIR}/${PN}-2.5.16-fix-makefile.patch"
"${FILESDIR}/${PN}-2.5.3-fix-build-intel-lib.patch"
)
diff --git a/app-emulation/free42/free42-2.5.10.ebuild b/app-emulation/free42/free42-3.1.3.ebuild
index 67e64a2dd933..1fd58bbcf2cf 100644
--- a/app-emulation/free42/free42-2.5.10.ebuild
+++ b/app-emulation/free42/free42-3.1.3.ebuild
@@ -1,44 +1,37 @@
-# Copyright 1999-2019 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
MY_PV="${PN}-nologo-${PV}"
DESCRIPTION="An HP-42S Calculator Simulator"
-HOMEPAGE="http://thomasokken.com/free42/"
-SRC_URI="http://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+HOMEPAGE="https://thomasokken.com/free42/"
+SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+alsa"
-DEPEND="dev-libs/atk
+DEPEND="app-accessibility/at-spi2-core
x11-libs/cairo
x11-libs/gdk-pixbuf
- x11-libs/gtk+:2
- x11-libs/pango
+ x11-libs/gtk+:3
alsa? ( media-libs/alsa-lib )"
-RDEPEND="${DEPEND}
- x11-libs/libX11
- x11-libs/libXmu"
+RDEPEND="${DEPEND}"
DOCS=( CREDITS HISTORY README )
S="${WORKDIR}/${MY_PV}"
PATCHES=(
- "${FILESDIR}/${PN}-2.5.3-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.5.3.ebuild b/app-emulation/free42/free42-3.1.7.ebuild
index 67e64a2dd933..063f0e457429 100644
--- a/app-emulation/free42/free42-2.5.3.ebuild
+++ b/app-emulation/free42/free42-3.1.7.ebuild
@@ -1,44 +1,36 @@
-# Copyright 1999-2019 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
MY_PV="${PN}-nologo-${PV}"
DESCRIPTION="An HP-42S Calculator Simulator"
-HOMEPAGE="http://thomasokken.com/free42/"
-SRC_URI="http://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+HOMEPAGE="https://thomasokken.com/free42/"
+SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+S=${WORKDIR}/${MY_PV}
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+alsa"
-DEPEND="dev-libs/atk
+DEPEND="app-accessibility/at-spi2-core
x11-libs/cairo
x11-libs/gdk-pixbuf
- x11-libs/gtk+:2
- x11-libs/pango
+ x11-libs/gtk+:3
alsa? ( media-libs/alsa-lib )"
-
-RDEPEND="${DEPEND}
- x11-libs/libX11
- x11-libs/libXmu"
+RDEPEND="${DEPEND}"
DOCS=( CREDITS HISTORY README )
-S="${WORKDIR}/${MY_PV}"
PATCHES=(
- "${FILESDIR}/${PN}-2.5.3-fix-makefile.patch"
- "${FILESDIR}/${PN}-2.5.3-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
)
-src_prepare() {
- default
-}
-
src_compile() {
local myconf
use alsa && myconf="AUDIO_ALSA=yes"
diff --git a/app-emulation/free42/free42-3.1.8.ebuild b/app-emulation/free42/free42-3.1.8.ebuild
new file mode 100644
index 000000000000..063f0e457429
--- /dev/null
+++ b/app-emulation/free42/free42-3.1.8.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV="${PN}-nologo-${PV}"
+
+DESCRIPTION="An HP-42S Calculator Simulator"
+HOMEPAGE="https://thomasokken.com/free42/"
+SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+S=${WORKDIR}/${MY_PV}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa"
+
+DEPEND="app-accessibility/at-spi2-core
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ alsa? ( media-libs/alsa-lib )"
+RDEPEND="${DEPEND}"
+
+DOCS=( CREDITS HISTORY README )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
+)
+
+src_compile() {
+ local myconf
+ use alsa && myconf="AUDIO_ALSA=yes"
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk
+ emake -C gtk clean
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk
+}
+
+src_install() {
+ default
+ dobin gtk/free42bin gtk/free42dec
+}
diff --git a/app-emulation/free42/metadata.xml b/app-emulation/free42/metadata.xml
index 2346aff6c159..ce1f4dd6dc88 100644
--- a/app-emulation/free42/metadata.xml
+++ b/app-emulation/free42/metadata.xml
@@ -1,19 +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>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
- <longdescription lang="en">
- An HP-42S Calculator Simulator
- </longdescription>
- <longdescription lang="es">
- Un simulador de la calculadora HP-42S
- </longdescription>
- <use>
- <flag name="alsa">
- Adds support for Advanced Linux Sound Architecture
- </flag>
- </use>
+ <upstream>
+ <remote-id type="github">thomasokken/free42</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/fs-uae-launcher/Manifest b/app-emulation/fs-uae-launcher/Manifest
index 2f9ff45fdb82..42be2cdab6a4 100644
--- a/app-emulation/fs-uae-launcher/Manifest
+++ b/app-emulation/fs-uae-launcher/Manifest
@@ -1 +1 @@
-DIST fs-uae-launcher-3.0.0.tar.gz 9631352 BLAKE2B dc2f940cbde1fe9d2386e512bf5c0ca9a4ea19332826095cc5ba95e90c7f6cfaf0cd5dbaa692c192ac7d74a3ddf245062a0faeeccc9d8a135e544d304119e239 SHA512 76f9c48d2a46ece38aebb318a6d684ff40e85fef76bcc6ac57c7f397c828dae45541ba458a7792f102a8afc69a4183b9932b637318716a8b40ff3dbd3b37cad7
+DIST fs-uae-launcher-3.1.70.tar.xz 7707368 BLAKE2B fce6e47b1e09fbfae4959cffe55fec5803aa4dca511af76d621fba2156eee5d76164c0ff5dfad75864b3c2fd5c0a8b5968181538d37b9a039ffd8ab037eeafa2 SHA512 6a4eca273ebd21f64ee0a863497fb39c8b17b6dba0b99a0122f33ea688fb2b341998280b3d0ab4cac2d913bc15834dfec3a1662331dea48933135a82e29f5a83
diff --git a/app-emulation/fs-uae-launcher/files/fs-uae-launcher-2.8.3-QApplication.patch b/app-emulation/fs-uae-launcher/files/fs-uae-launcher-2.8.3-QApplication.patch
deleted file mode 100644
index 446bfd835912..000000000000
--- a/app-emulation/fs-uae-launcher/files/fs-uae-launcher-2.8.3-QApplication.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/684948
-
---- fs-uae-launcher-2.8.3/fsui/qt/qt.py 2017-01-08 19:48:56.000000000 +0000
-+++ fs-uae-launcher-2.8.3/fsui/qt/qt.py 2019-05-03 22:28:16.979041988 +0100
-@@ -60,7 +60,7 @@
- # fix_qt_for_maverick()
-
- fsbc.desktop.set_open_url_in_browser_function(open_url_in_browser)
-- qapplication = QtBaseApplication([])
-+ qapplication = QtBaseApplication([''])
- initialize_qt_style(qapplication)
- return qapplication
-
diff --git a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.0.ebuild b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
index 62652d3eb997..d76e5f987497 100644
--- a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.0.ebuild
+++ b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
@@ -1,61 +1,53 @@
-# Copyright 1999-2019 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_{5,6,7} )
-DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python3_{9..12} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_SINGLE_IMPL=yes
-inherit distutils-r1 xdg-utils
+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
- 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}] )
+ $(python_gen_cond_dep '
+ dev-python/PyQt5[${PYTHON_USEDEP},declarative,gui,network,opengl,widgets]
+ dev-python/pyopengl[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ lha? ( dev-python/python-lhafile[${PYTHON_USEDEP}] )
+ ')
"
-DEPEND="
+BDEPEND="
sys-devel/gettext
"
PATCHES=(
- "${FILESDIR}"/${P}-ROMs.patch
- "${FILESDIR}"/${PN}-2.8.3-QApplication.patch
+ "${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
-}
-
-src_compile() {
- emake
+python_compile_all() {
+ emake mo
}
-src_install() {
- local dir=${EPREFIX}/usr/share/${PN}
- distutils-r1_python_install --install-lib="${dir}" --install-scripts="${dir}"
- dosym ../share/${PN}/${PN} /usr/bin/${PN}
-
+python_install_all() {
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!"
@@ -72,6 +64,3 @@ pkg_postinst() {
elog " Alternatively, you can start FS-UAE and/or FS-UAE Launcher with"
elog " --base-dir=/path/to/desired/dir"
}
-
-pkg_postinst() { xdg_icon_cache_update; }
-pkg_postrm() { xdg_icon_cache_update; }
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 778992906c02..e1401ffee363 100644
--- a/app-emulation/fs-uae/Manifest
+++ b/app-emulation/fs-uae/Manifest
@@ -1 +1 @@
-DIST fs-uae-3.0.0.tar.gz 4841427 BLAKE2B 318bf457cca60e763a938d3d1a846e72a50f9b899dd8eefd79bc331f385a3529cb2bf2adc1616c1c5a04c1a1c92d4257c88593ada103d3e05847656a26a1c435 SHA512 3ceee2434b3aa3f545370a17149b3cda8d2eeb1bd093a45869a897a00b82ae4395efc52c129124e44262b47b7f56337e1adb9f58b0a1562efa73ee3ea3915b68
+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.0.ebuild b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
index 6d0c2446b7e8..a8e64081c609 100644
--- a/app-emulation/fs-uae/fs-uae-3.0.0.ebuild
+++ b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
@@ -1,23 +1,24 @@
-# Copyright 1999-2019 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-utils
+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)
}
@@ -105,15 +116,6 @@ src_install() {
}
pkg_postinst() {
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
- xdg_icon_cache_update
-
+ xdg_pkg_postinst
elog "Install app-emulation/fs-uae-launcher for a better graphical interface."
}
-
-pkg_postrm() {
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
- xdg_icon_cache_update
-}
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/Manifest b/app-emulation/fuse-utils/Manifest
index 07551dd4b4c6..c4b333ee2e70 100644
--- a/app-emulation/fuse-utils/Manifest
+++ b/app-emulation/fuse-utils/Manifest
@@ -1,2 +1 @@
-DIST fuse-utils-1.4.1.tar.gz 500533 BLAKE2B 58d75c336e0b46b500b614ce858978391986c0950f011986860c86ce153227a5116859aafb26ffbef8f5989e32e7df6fe77974943277e83c64ccee1217409b54 SHA512 973ae172fa38dab27da4b305bbcaad95ba8d2c3d60a9a1e7d8032113b66536506a458fc0ef5d1faf3b2082255a0d54d6bbbf7eaac4c2981b6a77bc7afae9974b
DIST fuse-utils-1.4.3.tar.gz 501006 BLAKE2B 0637fe05b71416e89eb61e3618ff45bd71250201924fb3741a4c5b9898d09b30acecba9957baeaa864c2c9cfe1bcb9cb38a2af83368bc5729221cec36a1eda47 SHA512 13404d1be81a2de9262cd79cce9dd8dc3f17238fdbb75da8a724b76b0976c03f34da9978af36b808103fedcf3f5d5da4bb10f251c5510127d59ca8de5607b99e
diff --git a/app-emulation/fuse-utils/files/remove-local-prefix.patch b/app-emulation/fuse-utils/files/remove-local-prefix.patch
new file mode 100644
index 000000000000..41daba71cdd9
--- /dev/null
+++ b/app-emulation/fuse-utils/files/remove-local-prefix.patch
@@ -0,0 +1,22 @@
+diff -Naur fuse-utils-1.4.3/configure.ac fuse-utils-1.4.3-patched/configure.ac
+--- fuse-utils-1.4.3/configure.ac 2018-07-01 02:09:55.000000000 +0200
++++ fuse-utils-1.4.3-patched/configure.ac 2020-07-28 17:02:05.287721692 +0200
+@@ -92,18 +92,6 @@
+ )
+ fi
+
+-dnl Allow the user to say that various libraries are in one place
+-AC_ARG_WITH(local-prefix,
+-[ --with-local-prefix=PFX local libraries installed in PFX (optional)],
+-CPPFLAGS="$CPPFLAGS -I$withval/include";
+-CXXFLAGS="$CXXFLAGS -I$withval/include";
+-LDFLAGS="$LDFLAGS -L$withval/lib",
+-if test "$prefix" != "NONE"; then
+- CPPFLAGS="$CPPFLAGS -I$prefix/include";
+- CXXFLAGS="$CXXFLAGS -I$prefix/include";
+- LDFLAGS="$LDFLAGS -L$prefix/lib"
+-fi)
+-
+ dnl Check if libjpeg is available and supports jpeg_write_scanlines
+ AC_MSG_CHECKING(whether to use libjpeg)
+ AC_ARG_WITH(libjpeg,
diff --git a/app-emulation/fuse-utils/fuse-utils-1.4.1.ebuild b/app-emulation/fuse-utils/fuse-utils-1.4.1.ebuild
deleted file mode 100644
index 67c293014ef9..000000000000
--- a/app-emulation/fuse-utils/fuse-utils-1.4.1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Utils for the Free Unix Spectrum Emulator by Philip Kendall"
-HOMEPAGE="http://fuse-emulator.sourceforge.net"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="audiofile gcrypt jpeg png zlib"
-
-RDEPEND=">=app-emulation/libspectrum-1.4.2[gcrypt?,zlib?]
- audiofile? ( >=media-libs/audiofile-0.3.6 )
- jpeg? ( virtual/jpeg:0 )
- png? ( media-libs/libpng:0 )
- zlib? ( sys-libs/zlib )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-src_configure() {
- local myconf=(
- $(use_with audiofile)
- $(use_with gcrypt libgcrypt)
- $(use_with jpeg libjpeg)
- $(use_with png libpng)
- $(use_with zlib)
- )
- econf "${myconf[@]}"
-}
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 fb8728c0836b..151ccbc9e61a 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,24 +1,36 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
+
+inherit autotools
DESCRIPTION="Utils for the Free Unix Spectrum Emulator by Philip Kendall"
HOMEPAGE="http://fuse-emulator.sourceforge.net"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/fuse-emulator/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~riscv ~x86"
IUSE="audiofile gcrypt jpeg png zlib"
-RDEPEND=">=app-emulation/libspectrum-1.4.4[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
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
src_configure() {
local myconf=(
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 c9848fd8b81b..127daceb5a37 100644
--- a/app-emulation/fuse/Manifest
+++ b/app-emulation/fuse/Manifest
@@ -1,2 +1 @@
-DIST fuse-1.5.6.tar.gz 1634711 BLAKE2B a581c106c668f0342b4a3b4ebbc0e92e750806e59d067798e23da02284cbb9a17cf580c5b6369144863fbf64b12326ea2982e4d83e87354d62ff51926e3293de SHA512 84312e4f83883b36d06f2b96ded1bfc71675cba71a0848f4cbb5a233a1d1c06466013d2655d759397f32d6d67d6ba26b2b6a5041796cb9143cd0b354a88fd589
-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/remove-local-prefix.patch b/app-emulation/fuse/files/remove-local-prefix.patch
new file mode 100644
index 000000000000..61bf33a1adc7
--- /dev/null
+++ b/app-emulation/fuse/files/remove-local-prefix.patch
@@ -0,0 +1,18 @@
+diff -Naur fuse-1.5.7/configure.ac fuse-1.5.7-patched/configure.ac
+--- fuse-1.5.7/configure.ac 2018-12-09 13:06:11.000000000 +0100
++++ fuse-1.5.7-patched/configure.ac 2020-07-28 17:02:33.678546857 +0200
+@@ -110,14 +110,6 @@
+ AX_STRINGS_STRCASECMP
+ fi
+
+-dnl Allow the user to say that various libraries are in one place
+-AC_ARG_WITH(local-prefix,
+-[ --with-local-prefix=PFX local libraries installed in PFX (optional)],
+-CPPFLAGS="$CPPFLAGS -I$withval/include"; LDFLAGS="$LDFLAGS -L$withval/lib",
+-if test "$prefix" != "NONE"; then
+- CPPFLAGS="$CPPFLAGS -I$prefix/include"; LDFLAGS="$LDFLAGS -L$prefix/lib"
+-fi)
+-
+ dnl Check that libspectrum is available and that it is new enough
+ PKG_CHECK_MODULES([LIBSPECTRUM], [libspectrum >= 1.4.0])
+
diff --git a/app-emulation/fuse/fuse-1.5.6.ebuild b/app-emulation/fuse/fuse-1.5.6.ebuild
deleted file mode 100644
index 0e1754ea0792..000000000000
--- a/app-emulation/fuse/fuse-1.5.6.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-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? ( 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 )
-
-src_configure() {
- local myconf=(
- --without-win32
- $(use_with alsa)
- $(use_with ao libao)
- $(use_with gpm)
- $(use_with joystick)
- $(use_enable joystick ui-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
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- emake test
-}
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 0e1754ea0792..000000000000
--- a/app-emulation/fuse/fuse-1.5.7.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-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? ( 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 )
-
-src_configure() {
- local myconf=(
- --without-win32
- $(use_with alsa)
- $(use_with ao libao)
- $(use_with gpm)
- $(use_with joystick)
- $(use_enable joystick ui-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
-
- 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..0099b7ffcc40
--- /dev/null
+++ b/app-emulation/fuse/fuse-1.6.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
+
+inherit autotools flag-o-matic xdg
+
+DESCRIPTION="Free Unix Spectrum Emulator by Philip Kendall"
+HOMEPAGE="http://fuse-emulator.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/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 83e47d1230ae..90d5abcd33ea 100644
--- a/app-emulation/gallium-nine-standalone/Manifest
+++ b/app-emulation/gallium-nine-standalone/Manifest
@@ -1 +1,2 @@
-DIST gallium-nine-standalone-0.5.tar.gz 69056 BLAKE2B 6acfd500a31e480e2e09e751097beaa2bc94c574edd2b313adb707dc65447be1868ed190bf13549cc38eae945d421242a5d3b2c068486ad35347903e27e0bf80 SHA512 6223a851536c67d32e3a834d7a3c7b93fb59c226b127e1ee1b5a72a7cc93172173f5004ca4944a842015650ef80e8427a684109ae5a4a9e9ef838961e0767c78
+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.5-flags.patch b/app-emulation/gallium-nine-standalone/files/0.5-flags.patch
deleted file mode 100644
index 7c0e883d697d..000000000000
--- a/app-emulation/gallium-nine-standalone/files/0.5-flags.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -Naur a/tools/cross-wine32.in b/tools/cross-wine32.in
---- a/tools/cross-wine32.in 2019-09-25 13:25:24.000000000 +0100
-+++ b/tools/cross-wine32.in 2019-09-30 23:05:00.121344967 +0100
-@@ -5,8 +5,8 @@
- 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
-
- [host_machine]
-diff -Naur a/tools/cross-wine64.in b/tools/cross-wine64.in
---- a/tools/cross-wine64.in 2019-09-25 13:25:24.000000000 +0100
-+++ b/tools/cross-wine64.in 2019-09-30 23:04:57.340283350 +0100
-@@ -5,8 +5,8 @@
- 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
-
- [host_machine]
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.5.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
index 1358e3c9e1ce..fdf6d7e33058 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.5.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
@@ -1,15 +1,15 @@
-# Copyright 1999-2019 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,20 +25,20 @@ 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[${MULTILIB_USEDEP}]
+ virtual/pkgconfig
virtual/wine[${MULTILIB_USEDEP}]
- >=dev-util/meson-0.50.1
+ >=dev-build/meson-0.50.1
"
PATCHES=(
- "${FILESDIR}"/0.5-flags.patch
+ "${FILESDIR}"/0.8-cross-files.patch
"${FILESDIR}"/0.3-nine-dll-path.patch
)
@@ -67,6 +67,7 @@ src_prepare() {
-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!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \
${file}.in > ${file} || die
}
@@ -84,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 1358e3c9e1ce..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-2019 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[${MULTILIB_USEDEP}]
virtual/wine[${MULTILIB_USEDEP}]
- >=dev-util/meson-0.50.1
+"
+
+BDEPEND="
+ dev-build/meson-format-array
+ virtual/pkgconfig
"
PATCHES=(
- "${FILESDIR}"/0.5-flags.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,13 @@ 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
}
@@ -84,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-instance-debootstrap/Manifest b/app-emulation/ganeti-instance-debootstrap/Manifest
deleted file mode 100644
index cfe93ff79c2b..000000000000
--- a/app-emulation/ganeti-instance-debootstrap/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST ganeti-instance-debootstrap-0.11.tar.gz 67946 BLAKE2B 0dbf3d16ae4058f0093adcd0a33c473719cf6de267dbc4e99e3326a2885d57693e2d0408b1079681056be88c7db23ab168e38f38d4051e8847d3b552fa42d4a1 SHA512 d39ae29b49e3e0e25e9052ee5201d5aeeedfa229cc0b8674ea01a26b1b615b262c1464ca16b5268884a0fa28981e5126eec084d7bb9298a4b405574925b85b4e
-DIST ganeti-instance-debootstrap-0.16.tar.gz 23020 BLAKE2B 8e96597ee94e5806de78ade571f5287e68c5442a91fb8ef3f6e2dbb95301e036fa79225b3c8a2517b05ff14eba0fb541c792556218d0f9a9346f1ebe524a6b38 SHA512 43197d034d719b81ea8737ea60763d43bf71bc9b15b0fbee60bd42e5b0c0f3821805986d4f564db91207a83c2396e87fe081180eec3a5da77d18f2d510fbff1f
diff --git a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11-r1.ebuild b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11-r1.ebuild
deleted file mode 100644
index 1a4184f43e45..000000000000
--- a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11-r1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Scripts to build Ganeti VMs with debootstrap"
-HOMEPAGE="http://www.ganeti.org/"
-SRC_URI="https://ganeti.googlecode.com/files/ganeti-instance-debootstrap-${PV}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="app-arch/dpkg
- app-arch/dump
- app-emulation/ganeti
- dev-util/debootstrap
- >=sys-apps/coreutils-6.10-r1
- sys-apps/util-linux
- sys-fs/e2fsprogs"
-
-src_configure() {
- econf --docdir=/usr/share/doc/${P}
-}
-
-src_install() {
- default
- insinto /etc/ganeti/instance-debootstrap/hooks
- doins examples/hooks/*
-}
diff --git a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.16.ebuild b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.16.ebuild
deleted file mode 100644
index 7bea16989fde..000000000000
--- a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.16.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit autotools
-
-DESCRIPTION="Scripts to build Ganeti VMs with debootstrap"
-HOMEPAGE="http://www.ganeti.org/"
-SRC_URI="http://downloads.ganeti.org/instance-debootstrap/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- ${DEPEND}
- >=sys-apps/coreutils-6.10-r1
- app-arch/dpkg
- app-arch/dump
- app-emulation/ganeti
- dev-util/debootstrap
- sys-apps/util-linux
- sys-fs/e2fsprogs
- sys-fs/multipath-tools
-"
-
-src_prepare() {
- default
-
- sed -i -e 's|AC_MSG_ERROR|AC_MSG_WARN|g' configure.ac || die
- sed -i -e 's|COPYING||g' Makefile.am || die
-
- eautoreconf
-}
-
-src_configure() {
- econf --docdir=/usr/share/doc/${P}
-}
-
-src_install() {
- default
-
- insinto /etc/ganeti/instance-debootstrap/hooks
- doins examples/hooks/*
-}
diff --git a/app-emulation/ganeti-instance-debootstrap/metadata.xml b/app-emulation/ganeti-instance-debootstrap/metadata.xml
deleted file mode 100644
index 26710bfe632c..000000000000
--- a/app-emulation/ganeti-instance-debootstrap/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="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <longdescription lang="en">This is a guest OS definition for Ganeti (https://code.google.com/p/ganeti).
- It will install a minimal version of Debian or Ubuntu via debootstrap (thus
- it requires network access). This only works if you have a Debian-based node
- or you have debootstrap installed by hand on another distribution.</longdescription>
- <upstream>
- <remote-id type="google-code">ganeti</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/ganeti-instance-image/Manifest b/app-emulation/ganeti-instance-image/Manifest
deleted file mode 100644
index 247a6065f197..000000000000
--- a/app-emulation/ganeti-instance-image/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST ganeti-instance-image-0.6.tar.gz 82534 BLAKE2B 8a16f1ead6307400031425c60dae2585ea9ad53e55276a73177b46652c9054c6c24ea7068347ecaeafa77cea27b1b97350420bd6cf0e69e5ac18692cede47bbc SHA512 92b5048fe8c40692e8e7c4cb73b21e764660d7cb5f585a8489fc4338eef7df8aae1147d38a849103585a884a0216a0bfb42473d5c1922130e5aada31f5d580c3
diff --git a/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6-r2.ebuild b/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6-r2.ebuild
deleted file mode 100644
index 9e62e96a8908..000000000000
--- a/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6-r2.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="git://git.osuosl.org/${PN}.git"
- EGIT_BRANCH="master"
- inherit git-r3 autotools
-else
- SRC_URI="http://ftp.osuosl.org/pub/osl/ganeti-instance-image/${P}.tar.gz"
-fi
-
-DESCRIPTION="Scripts to build out CD or image based VMs using Ganeti"
-HOMEPAGE="http://code.osuosl.org/projects/ganeti-image"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="app-arch/dump
- >=app-emulation/ganeti-2.15.2-r7
- app-emulation/qemu
- sys-apps/util-linux
- sys-fs/multipath-tools
- sys-fs/e2fsprogs"
-
-src_prepare() {
- default
- if [[ ${PV} == "9999" ]]; then
- eautoreconf
- fi
-}
-
-src_configure() {
- econf --with-default-dir=/etc/ganeti
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "install failed"
-
- rm -rf "${D}"/usr/share/doc/${PN}
- dodoc README.markdown NEWS ChangeLog
- insinto /etc/ganeti
- newins defaults ${PN}
-}
diff --git a/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild b/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild
deleted file mode 100644
index 760dd5928a14..000000000000
--- a/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=4
-
-inherit eutils
-
-if [[ ${PV} == "9999" ]]; then
- EGIT_REPO_URI="git://git.osuosl.org/${PN}.git"
- EGIT_BRANCH="master"
- inherit git-2 autotools
-else
- SRC_URI="http://ftp.osuosl.org/pub/osl/ganeti-instance-image/${P}.tar.gz"
-fi
-
-DESCRIPTION="Scripts to build out CD or image based VMs using Ganeti"
-HOMEPAGE="http://code.osuosl.org/projects/ganeti-image"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="app-arch/dump
- >=app-emulation/ganeti-2.0.3
- app-emulation/qemu
- sys-apps/util-linux
- sys-fs/multipath-tools
- sys-fs/e2fsprogs"
-
-src_prepare() {
- if [[ ${PV} == "9999" ]]; then
- eautoreconf
- fi
-}
-
-src_configure() {
- econf --with-default-dir=/etc/ganeti
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "install failed"
-
- rm -rf "${D}"/usr/share/doc/${PN}
- dodoc README.markdown NEWS ChangeLog
- insinto /etc/ganeti
- newins defaults ${PN}
-}
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/ganeti/Manifest b/app-emulation/ganeti/Manifest
deleted file mode 100644
index df3d85b7bc51..000000000000
--- a/app-emulation/ganeti/Manifest
+++ /dev/null
@@ -1,6 +0,0 @@
-DIST ganeti-2.15.2.tar.gz 4723007 BLAKE2B d49d2ed9df515514a99d42303799e5ffc751eb8e6b397f86174cb3d48ec846fd3d146737240eea9ec0ce6fd9d07e04a27831a45a4354d3d49597b9f5cff33d7b SHA512 e0707aa535857779622e0eb18cccb89bc34fe4acf373628c30524e3f7e572c4b3d628946ad219149c14615d6471c4d72dbd0c6e3e1855a9f3644b4605544df85
-DIST ganeti-2.15_2.15.2-11.debian.tar.xz 67652 BLAKE2B d10f83a59a1c2d05fa6704dfdc46867f0e3eed276086de9ad2e86def1e7894012b89f3f9c111076c37ef37b857967e4bae5cf769eaabf5907b3a42bc806b4472 SHA512 1c992b9842f1a8492eeaaab8950939c96cc03abf679234211753b92f4753278b086a0a77e2e32b912d4a69635c11e8305d350cda8285734d706cce741d897aa3
-DIST ganeti-2.16.0~rc1.tar.gz 4794934 BLAKE2B 867d7d48e98d4490db8279b83b44006e0afc1a421592d523db2d04b4b04636090686773ef890c89df41f0311cbf3c4d5a2c314c39c4429f50b07a7a6d1a9616f SHA512 a4bed40e48ecd8ee1f3f8137faf28aea38ffb8955f48bbd233be17660035679fa27d0ef6f8fe20507d34ca9e1dd594e564c9c53412364b6cc05dc8ed2f5602be
-DIST ganeti-2.17.0~beta1.tar.gz 4880091 BLAKE2B bd094ac421b8b49abcd7643641aa4c2d62aa2f8a4ab55289711cef8c47cc32634bf06b99adbf9383de3945766112a1838d2191dfb51013dc4fba81676e264e64 SHA512 d836444ea5696c9689ee0fae56192720ef79b2a4a8962c031abacc7ef02ebbb9e9cdadd15aa5d315c2d3da6cbe5043b6c22b9ed94fd13883b5dfa23e08a2867e
-DIST ganeti_2.15.2-4.debian.tar.xz 42440 BLAKE2B 5c329baa90bd801a3e4b550da0a4c8bb59f3d17801ff0d66a35ae0383f34a5c1cc7f3d6d67a5e07157085290019b22c6b5349224ed43b5ec40fbdc37ded77e88 SHA512 e405f54996236fe5166c89190c529256899458594d30e4daee85a9381400e618bc8cc578c43a166ed6d868ed3c5118e4bddc5103b596db89a504de3ba3a1f403
-DIST ganeti_2.16.0~rc1-1.debian.tar.xz 41892 BLAKE2B 3220b9a071259cee3a86771b6f4d312c23392f428e1e0452f17f48140b6df5193447dd0fa1b5185d6866cfe48c8eb3dd6d22f01f930499471eab7044ca9b7268 SHA512 4501bc058b65adee6285c3d0dcf76ee8bfc4759af6bb11b0414503c6990c7d09942f3cc8e08d270e76bcf13211cc113f44304393dadd2bb8588d9b15230538af
diff --git a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch
deleted file mode 100644
index 460636fa6340..000000000000
--- a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From c3697936405ed8c95b674a7d412886e364306f5f Mon Sep 17 00:00:00 2001
-Message-Id: <c3697936405ed8c95b674a7d412886e364306f5f.1483650125.git.robbat2@gentoo.org>
-From: "Robin H. Johnson" <robbat2@gentoo.org>
-Date: Thu, 29 Sep 2016 08:57:28 -0700
-Subject: [PATCH-2.15] kvm: use_guest_agent: QEMU Guest Agent support
-
-Implement the QEMU Guest Agent sockets, so that code/scripts on the
-hypervisors can communicate with guest operating systems easily.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
----
- lib/hypervisor/hv_kvm/__init__.py | 23 +++++++++++++++++++++++
- man/gnt-instance.rst | 7 +++++++
- src/Ganeti/Constants.hs | 5 +++++
- 3 files changed, 35 insertions(+)
-
-diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py
-index cd29baa38..89bc18b85 100644
---- a/lib/hypervisor/hv_kvm/__init__.py
-+++ b/lib/hypervisor/hv_kvm/__init__.py
-@@ -351,6 +351,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK,
- constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK,
- constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK,
-+ constants.HV_USE_GUEST_AGENT: hv_base.NO_CHECK,
- constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
- constants.HV_DISK_CACHE:
- hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES),
-@@ -581,6 +582,13 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- """
- return utils.PathJoin(cls._CTRL_DIR, "%s.qmp" % instance_name)
-
-+ @classmethod
-+ def _InstanceQemuGuestAgentMonitor(cls, instance_name):
-+ """Returns the instance serial QEMU Guest Agent socket name
-+
-+ """
-+ return utils.PathJoin(cls._CTRL_DIR, "%s.qga" % instance_name)
-+
- @classmethod
- def _InstanceKvmdMonitor(cls, instance_name):
- """Returns the instance kvm daemon socket name
-@@ -667,6 +675,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- utils.RemoveFile(cls._InstanceMonitor(instance_name))
- utils.RemoveFile(cls._InstanceSerial(instance_name))
- utils.RemoveFile(cls._InstanceQmpMonitor(instance_name))
-+ utils.RemoveFile(cls._InstanceQemuGuestAgentMonitor(instance_name))
- utils.RemoveFile(cls._InstanceKVMRuntime(instance_name))
- utils.RemoveFile(cls._InstanceKeymapFile(instance_name))
- uid_file = cls._InstanceUidFile(instance_name)
-@@ -1376,6 +1385,20 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- if self._UUID_RE.search(kvmhelp):
- kvm_cmd.extend(["-uuid", instance.uuid])
-
-+ # Add guest agent socket
-+ if hvp[constants.HV_USE_GUEST_AGENT]:
-+ qga_addr = utils.GetFreeSlot(pci_reservations, reserve=True)
-+ qga_pci_info = "bus=%s,addr=%s" % ('pci.0', hex(qga_addr))
-+ qga_path = self._InstanceQemuGuestAgentMonitor(instance.name)
-+ logging.info("KVM: Guest Agent available at %s", qga_path)
-+ # The 'qga0' identified can change, but the 'org.qemu.guest_agent.0' string is
-+ # the default expected by the Guest Agent.
-+ kvm_cmd.extend([
-+ "-chardev", "socket,path=%s,server,nowait,id=qga0" % qga_path,
-+ "-device", "virtio-serial,id=qga0,%s" % qga_pci_info,
-+ "-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0",
-+ ])
-+
- if hvp[constants.HV_KVM_EXTRA]:
- kvm_cmd.extend(hvp[constants.HV_KVM_EXTRA].split(" "))
-
-diff --git a/man/gnt-instance.rst b/man/gnt-instance.rst
-index a29fd7972..433b1f3b1 100644
---- a/man/gnt-instance.rst
-+++ b/man/gnt-instance.rst
-@@ -526,6 +526,13 @@ viridian
- viridian (Hyper-V) for this instance. The default is false,
- disabling viridian support.
-
-+use\_guest\_agent
-+ Valid for the KVM hypervisor.
-+
-+ A boolean option that specifies if the hypervisor should enable
-+ the QEMU Guest Agent protocol for this instance. By default, the
-+ Guest Agent is disabled.
-+
- use\_localtime
- Valid for the Xen HVM and KVM hypervisors.
-
-diff --git a/src/Ganeti/Constants.hs b/src/Ganeti/Constants.hs
-index 09783d4bf..cf5421946 100644
---- a/src/Ganeti/Constants.hs
-+++ b/src/Ganeti/Constants.hs
-@@ -1806,6 +1806,9 @@ hvUsbMouse = "usb_mouse"
- hvUseBootloader :: String
- hvUseBootloader = "use_bootloader"
-
-+hvUseGuestAgent :: String
-+hvUseGuestAgent = "use_guest_agent"
-+
- hvUseLocaltime :: String
- hvUseLocaltime = "use_localtime"
-
-@@ -1938,6 +1941,7 @@ hvsParameterTypes = Map.fromList
- , (hvUsbDevices, VTypeString)
- , (hvUsbMouse, VTypeString)
- , (hvUseBootloader, VTypeBool)
-+ , (hvUseGuestAgent, VTypeBool)
- , (hvUseLocaltime, VTypeBool)
- , (hvVga, VTypeString)
- , (hvVhostNet, VTypeBool)
-@@ -3996,6 +4000,7 @@ hvcDefaults =
- , (hvMigrationBandwidth, PyValueEx (32 :: Int))
- , (hvMigrationDowntime, PyValueEx (30 :: Int))
- , (hvMigrationMode, PyValueEx htMigrationLive)
-+ , (hvUseGuestAgent, PyValueEx False)
- , (hvUseLocaltime, PyValueEx False)
- , (hvDiskCache, PyValueEx htCacheDefault)
- , (hvSecurityModel, PyValueEx htSmNone)
---
-2.11.0.rc2
-
diff --git a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch b/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch
deleted file mode 100644
index 6bca593a08d6..000000000000
--- a/app-emulation/ganeti/files/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 16a08ecb268062a2634dbfc081b4729cb749b7b4 Mon Sep 17 00:00:00 2001
-Message-Id: <16a08ecb268062a2634dbfc081b4729cb749b7b4.1483650125.git.robbat2@gentoo.org>
-From: "Robin H. Johnson" <robbat2@gentoo.org>
-Date: Thu, 29 Sep 2016 08:57:28 -0700
-Subject: [PATCH-2.16] kvm: use_guest_agent: QEMU Guest Agent support
-
-Implement the QEMU Guest Agent sockets, so that code/scripts on the
-hypervisors can communicate with guest operating systems easily.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
----
- lib/hypervisor/hv_kvm/__init__.py | 23 +++++++++++++++++++++++
- man/gnt-instance.rst | 7 +++++++
- src/Ganeti/Constants.hs | 5 +++++
- 3 files changed, 35 insertions(+)
-
-diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py
-index ac02ff56c..b865d6f3a 100644
---- a/lib/hypervisor/hv_kvm/__init__.py
-+++ b/lib/hypervisor/hv_kvm/__init__.py
-@@ -497,6 +497,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK,
- constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK,
- constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK,
-+ constants.HV_USE_GUEST_AGENT: hv_base.NO_CHECK,
- constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
- constants.HV_DISK_CACHE:
- hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES),
-@@ -750,6 +751,13 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- """
- return utils.PathJoin(cls._CTRL_DIR, "%s.qmp" % instance_name)
-
-+ @classmethod
-+ def _InstanceQemuGuestAgentMonitor(cls, instance_name):
-+ """Returns the instance serial QEMU Guest Agent socket name
-+
-+ """
-+ return utils.PathJoin(cls._CTRL_DIR, "%s.qga" % instance_name)
-+
- @classmethod
- def _InstanceKvmdMonitor(cls, instance_name):
- """Returns the instance kvm daemon socket name
-@@ -836,6 +844,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- utils.RemoveFile(cls._InstanceMonitor(instance_name))
- utils.RemoveFile(cls._InstanceSerial(instance_name))
- utils.RemoveFile(cls._InstanceQmpMonitor(instance_name))
-+ utils.RemoveFile(cls._InstanceQemuGuestAgentMonitor(instance_name))
- utils.RemoveFile(cls._InstanceKVMRuntime(instance_name))
- utils.RemoveFile(cls._InstanceKeymapFile(instance_name))
- uid_file = cls._InstanceUidFile(instance_name)
-@@ -1544,6 +1553,20 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- if self._UUID_RE.search(kvmhelp):
- kvm_cmd.extend(["-uuid", instance.uuid])
-
-+ # Add guest agent socket
-+ if hvp[constants.HV_USE_GUEST_AGENT]:
-+ qga_addr = utils.GetFreeSlot(bus_slots[_PCI_BUS], reserve=True)
-+ qga_pci_info = "bus=%s,addr=%s" % (_PCI_BUS, hex(qga_addr))
-+ qga_path = self._InstanceQemuGuestAgentMonitor(instance.name)
-+ logging.info("KVM: Guest Agent available at %s", qga_path)
-+ # The 'qga0' identified can change, but the 'org.qemu.guest_agent.0' string is
-+ # the default expected by the Guest Agent.
-+ kvm_cmd.extend([
-+ "-chardev", "socket,path=%s,server,nowait,id=qga0" % qga_path,
-+ "-device", "virtio-serial,id=qga0,%s" % qga_pci_info,
-+ "-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0",
-+ ])
-+
- if hvp[constants.HV_KVM_EXTRA]:
- kvm_cmd.extend(hvp[constants.HV_KVM_EXTRA].split(" "))
-
-diff --git a/man/gnt-instance.rst b/man/gnt-instance.rst
-index 283392cc8..493ae929d 100644
---- a/man/gnt-instance.rst
-+++ b/man/gnt-instance.rst
-@@ -545,6 +545,13 @@ viridian
- viridian (Hyper-V) for this instance. The default is false,
- disabling viridian support.
-
-+use\_guest\_agent
-+ Valid for the KVM hypervisor.
-+
-+ A boolean option that specifies if the hypervisor should enable
-+ the QEMU Guest Agent protocol for this instance. By default, the
-+ Guest Agent is disabled.
-+
- use\_localtime
- Valid for the Xen HVM and KVM hypervisors.
-
-diff --git a/src/Ganeti/Constants.hs b/src/Ganeti/Constants.hs
-index 420ccb6cd..4aa5edf63 100644
---- a/src/Ganeti/Constants.hs
-+++ b/src/Ganeti/Constants.hs
-@@ -1814,6 +1814,9 @@ hvUsbMouse = "usb_mouse"
- hvUseBootloader :: String
- hvUseBootloader = "use_bootloader"
-
-+hvUseGuestAgent :: String
-+hvUseGuestAgent = "use_guest_agent"
-+
- hvUseLocaltime :: String
- hvUseLocaltime = "use_localtime"
-
-@@ -1948,6 +1951,7 @@ hvsParameterTypes = Map.fromList
- , (hvUsbDevices, VTypeString)
- , (hvUsbMouse, VTypeString)
- , (hvUseBootloader, VTypeBool)
-+ , (hvUseGuestAgent, VTypeBool)
- , (hvUseLocaltime, VTypeBool)
- , (hvVga, VTypeString)
- , (hvVhostNet, VTypeBool)
-@@ -4099,6 +4103,7 @@ hvcDefaults =
- , (hvMigrationBandwidth, PyValueEx (32 :: Int))
- , (hvMigrationDowntime, PyValueEx (30 :: Int))
- , (hvMigrationMode, PyValueEx htMigrationLive)
-+ , (hvUseGuestAgent, PyValueEx False)
- , (hvUseLocaltime, PyValueEx False)
- , (hvDiskCache, PyValueEx htCacheDefault)
- , (hvSecurityModel, PyValueEx htSmNone)
---
-2.11.0.rc2
-
diff --git a/app-emulation/ganeti/files/fix_ftbfs_with_sphinx_1.4 b/app-emulation/ganeti/files/fix_ftbfs_with_sphinx_1.4
deleted file mode 100644
index 0050203bf223..000000000000
--- a/app-emulation/ganeti/files/fix_ftbfs_with_sphinx_1.4
+++ /dev/null
@@ -1,47 +0,0 @@
-Copied from 2.15.2 Debian Patches, as it was missed in the 2.16.0~rc1 debian patches.
-
-Author: Apollon Oikonomopoulos <apoikos@debian.org>
-Description: Fix FTBFS with sphinx 1.4
- Suppress app.add_role warnings, as upstream knowingly overrides sphinx's
- built-in manpage role. Without this, a warning is emitted which then turns to
- an error when sphinx is run with the `-W' switch.
- .
- Also replace unicode ellipses in doc/design-query2.rst with three ascii dots,
- as sphinx emits another warning for not being able to properly highlight these
- lines as Python code.
-Last-Update: 2016-07-09
-Forwarded: no
---- a/doc/conf.py
-+++ b/doc/conf.py
-@@ -229,3 +229,8 @@
-
- # If false, no module index is generated.
- latex_use_modindex = False
-+
-+# We override the manpage role and sphinx issues a warning, which is treated as
-+# error. Suppress role_add warnings to avoid FTBFS.
-+
-+suppress_warnings = ["app.add_role"]
---- a/doc/design-query2.rst
-+++ b/doc/design-query2.rst
-@@ -129,16 +129,16 @@
- specific names, the filter must be specified as follows, with the
- inner part repeated for each name::
-
-- ["|", ["=", "name", "node1"], ["=", "name", "node2"], …]
-+ ["|", ["=", "name", "node1"], ["=", "name", "node2"], ...]
-
-- Filters consist of S-expressions (``["operator", <operants…>]``) and
-+ Filters consist of S-expressions (``["operator", <operants...>]``) and
- extensions will be made in the future to allow for more operators and
- fields. Such extensions might include a Python-style "in" operator,
- but for simplicity only "=" is supported in this implementation.
-
- To reiterate: Filters for this implementation must consist of exactly
-- one OR expression (``["|", …]``) and one or more name equality filters
-- (``["=", "name", "…"]``).
-+ one OR expression (``["|", ...]``) and one or more name equality filters
-+ (``["=", "name", "..."]``).
-
- Support for synchronous queries, currently available in the interface
- but disabled in the master daemon, will be dropped. Direct calls to
diff --git a/app-emulation/ganeti/files/ganeti-2.10-rundir.patch b/app-emulation/ganeti/files/ganeti-2.10-rundir.patch
deleted file mode 100644
index a723f2b63d85..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.10-rundir.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index df62fdf..b034d32 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1865,7 +1865,7 @@ $(SHELL_ENV_INIT): Makefile stamp-directories
- echo; \
- echo 'readonly PKGLIBDIR=$(libdir)/ganeti'; \
- echo 'readonly LOG_DIR="$$LOCALSTATEDIR/log/ganeti"'; \
-- echo 'readonly RUN_DIR="$$LOCALSTATEDIR/run/ganeti"'; \
-+ echo 'readonly RUN_DIR="/run/ganeti"'; \
- echo 'readonly DATA_DIR="$$LOCALSTATEDIR/lib/ganeti"'; \
- echo 'readonly CONF_DIR="$$SYSCONFDIR/ganeti"'; \
- } > $@
-@@ -2208,7 +2208,7 @@ dist-release: dist
- install-exec-local:
- @mkdir_p@ "$(DESTDIR)${localstatedir}/lib/ganeti" \
- "$(DESTDIR)${localstatedir}/log/ganeti" \
-- "$(DESTDIR)${localstatedir}/run/ganeti"
-+ "$(DESTDIR)/run/ganeti"
- for dir in $(SYMLINK_TARGET_DIRS); do \
- @mkdir_p@ $(DESTDIR)$$dir; \
- done
-diff --git a/lib/pathutils.py b/lib/pathutils.py
-index f075e22..38b02e9 100644
---- a/lib/pathutils.py
-+++ b/lib/pathutils.py
-@@ -62,7 +62,7 @@ ETC_HOSTS = vcluster.ETC_HOSTS
- DATA_DIR = LOCALSTATEDIR + "/lib/ganeti"
- LOCK_DIR = LOCALSTATEDIR + "/lock"
- LOG_DIR = LOCALSTATEDIR + "/log/ganeti"
--RUN_DIR = LOCALSTATEDIR + "/run/ganeti"
-+RUN_DIR = "/run/ganeti"
-
- #: Script to configure master IP address
- DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
diff --git a/app-emulation/ganeti/files/ganeti-2.11-add-pgrep.patch b/app-emulation/ganeti/files/ganeti-2.11-add-pgrep.patch
deleted file mode 100644
index b0a8bd99cc0a..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.11-add-pgrep.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
-index 656dc95..01f2cbb 100644
---- a/daemons/daemon-util.in
-+++ b/daemons/daemon-util.in
-@@ -246,12 +246,14 @@ start() {
- @PKGLIBDIR@/ensure-dirs
-
- if type -p start-stop-daemon >/dev/null; then
-- start-stop-daemon --start --quiet \
-- --pidfile $pidfile \
-- --exec $daemonexec \
-- --user $usergroup \
-- --wait 300 \
-- -- $args "$@"
-+ if ! ret=$(/usr/bin/pgrep $name) ; then
-+ start-stop-daemon --start --quiet \
-+ --pidfile $pidfile \
-+ --exec $daemonexec \
-+ --user $usergroup \
-+ --wait 300 \
-+ -- $args "$@"
-+ fi
- else
- # TODO: Find a way to start daemon with a group, until then the group must
- # be removed
diff --git a/app-emulation/ganeti/files/ganeti-2.11-daemon-util-tests.patch b/app-emulation/ganeti/files/ganeti-2.11-daemon-util-tests.patch
deleted file mode 100644
index b60a85057761..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.11-daemon-util-tests.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/test/py/daemon-util_unittest.bash b/test/py/daemon-util_unittest.bash
-index faacaed..002bfb4 100755
---- a/test/py/daemon-util_unittest.bash
-+++ b/test/py/daemon-util_unittest.bash
-@@ -72,21 +72,21 @@ done
- $daemon_util check-exitcode 11 >/dev/null 2>&1 ||
- err "check-exitcode 11 (not master) didn't return 0"
-
--tmp=$(echo $($daemon_util list-start-daemons))
--test "$tmp" == "$DAEMONS" ||
-- err "list-start-daemons didn't return correct list of daemons"
-+#tmp=$(echo $($daemon_util list-start-daemons))
-+#test "$tmp" == "$DAEMONS" ||
-+# err "list-start-daemons didn't return correct list of daemons"
-
--tmp=$(echo $($daemon_util list-stop-daemons))
--test "$tmp" == "$STOPDAEMONS" ||
-- err "list-stop-daemons didn't return correct list of daemons"
-+#tmp=$(echo $($daemon_util list-stop-daemons))
-+#test "$tmp" == "$STOPDAEMONS" ||
-+# err "list-stop-daemons didn't return correct list of daemons"
-
--$daemon_util is-daemon-name >/dev/null 2>&1 &&
-- err "is-daemon-name didn't require daemon name"
-+#$daemon_util is-daemon-name >/dev/null 2>&1 &&
-+# err "is-daemon-name didn't require daemon name"
-
--for i in '' '.' '..' '-' 'not-a-daemon'; do
-- $daemon_util is-daemon-name "$i" >/dev/null 2>&1 &&
-- err "is-daemon-name thinks '$i' is a daemon name"
--done
-+#for i in '' '.' '..' '-' 'not-a-daemon'; do
-+# $daemon_util is-daemon-name "$i" >/dev/null 2>&1 &&
-+# err "is-daemon-name thinks '$i' is a daemon name"
-+#done
-
- for i in $DAEMONS; do
- $daemon_util is-daemon-name $i >/dev/null 2>&1 ||
diff --git a/app-emulation/ganeti/files/ganeti-2.11-dont-nest-libdir.patch b/app-emulation/ganeti/files/ganeti-2.11-dont-nest-libdir.patch
deleted file mode 100644
index 134b9d7bcac2..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.11-dont-nest-libdir.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 66ad714..5bd2e9c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -67,7 +67,7 @@ defaultversionedsharedir = $(prefix)/share/ganeti/default
-
- # Note: these are automake-specific variables, and must be named after
- # the directory + 'dir' suffix
--pkglibdir = $(versiondir)$(libdir)/ganeti
-+pkglibdir = $(versiondir)/ganeti
- myexeclibdir = $(pkglibdir)
- bindir = $(versiondir)/$(BINDIR)
- sbindir = $(versiondir)$(SBINDIR)
-@@ -1025,7 +1025,7 @@ bin_SCRIPTS = $(HS_BIN_PROGS)
- install-exec-hook:
- @mkdir_p@ $(DESTDIR)$(iallocatorsdir)
- # FIXME: this is a hardcoded logic, instead of auto-resolving
-- $(LN_S) -f ../../../bin/htools \
-+ $(LN_S) -f ../../usr/bin/htools \
- $(DESTDIR)$(iallocatorsdir)/hail
- for role in $(HS_BIN_ROLES); do \
- $(LN_S) -f htools $(DESTDIR)$(bindir)/$$role ; \
-@@ -2297,7 +2297,7 @@ install-exec-local:
- for prog in $(HS_BIN_ROLES); do \
- $(LN_S) -f $(defaultversiondir)$(BINDIR)/$$prog $(DESTDIR)$(BINDIR)/$$prog; \
- done
-- $(LN_S) -f $(defaultversiondir)$(libdir)/ganeti/iallocators/hail $(DESTDIR)$(libdir)/ganeti/iallocators/hail
-+ $(LN_S) -f $(defaultversiondir)/ganeti/iallocators/hail $(DESTDIR)$(libdir)/ganeti/iallocators/hail
- for prog in $(all_sbin_scripts); do \
- $(LN_S) -f $(defaultversiondir)$(SBINDIR)/$$prog $(DESTDIR)$(SBINDIR)/$$prog; \
- done
-@@ -2311,7 +2311,7 @@ install-exec-local:
- $(LN_S) -f $(defaultversionedsharedir)/$$prog $(DESTDIR)$(libdir)/ganeti/tools/$$prog; \
- done
- for prog in $(tools_basenames); do \
-- $(LN_S) -f $(defaultversiondir)/$(libdir)/ganeti/tools/$$prog $(DESTDIR)$(libdir)/ganeti/tools/$$prog; \
-+ $(LN_S) -f $(defaultversiondir)/ganeti/tools/$$prog $(DESTDIR)$(libdir)/ganeti/tools/$$prog; \
- done
- if ! test -n '$(ENABLE_MANPAGES)'; then \
- for man in $(manfullpath); do \
-@@ -2319,7 +2319,7 @@ install-exec-local:
- done; \
- fi
- for prog in $(myexeclib_scripts_basenames); do \
-- $(LN_S) -f $(defaultversiondir)$(libdir)/ganeti/$$prog $(DESTDIR)$(libdir)/ganeti/$$prog; \
-+ $(LN_S) -f $(defaultversiondir)/ganeti/$$prog $(DESTDIR)$(libdir)/ganeti/$$prog; \
- done
- if INSTALL_SYMLINKS
- $(LN_S) -f $(versionedsharedir) $(DESTDIR)$(sysconfdir)/ganeti/share
diff --git a/app-emulation/ganeti/files/ganeti-2.11-dont-print-man-help.patch b/app-emulation/ganeti/files/ganeti-2.11-dont-print-man-help.patch
deleted file mode 100644
index 42b90deb6596..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.11-dont-print-man-help.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index dcb8aa0..7d7ab76 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -796,7 +796,7 @@ fi
-
- AC_SUBST(SOCAT_USE_COMPRESS)
-
--if man --help | grep -q -e --warnings
-+if man --help |& grep -q -e --warnings
- then
- MAN_HAS_WARNINGS=1
- else
diff --git a/app-emulation/ganeti/files/ganeti-2.11-tests.patch b/app-emulation/ganeti/files/ganeti-2.11-tests.patch
deleted file mode 100644
index fd0a9f606718..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.11-tests.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/test/py/ganeti-cleaner_unittest.bash b/test/py/ganeti-cleaner_unittest.bash
-index bf57b76..ee3b90d 100755
---- a/test/py/ganeti-cleaner_unittest.bash
-+++ b/test/py/ganeti-cleaner_unittest.bash
-@@ -219,7 +219,7 @@ count_and_check_certs 10
- run_cleaner master
- count_and_check_certs 10
- run_cleaner node
--count_and_check_certs 5
-+count_and_check_certs 10
-
- check_logfiles $maxlog node
- check_logfiles $maxlog master
diff --git a/app-emulation/ganeti/files/ganeti-2.12-qemu-enable-kvm.patch b/app-emulation/ganeti/files/ganeti-2.12-qemu-enable-kvm.patch
deleted file mode 100644
index b199ff09367c..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.12-qemu-enable-kvm.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py
-index d0c42c4..e6d3bcf 100644
---- a/lib/hypervisor/hv_kvm/__init__.py
-+++ b/lib/hypervisor/hv_kvm/__init__.py
-@@ -1061,6 +1061,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- pidfile = self._InstancePidFile(instance.name)
- kvm = hvp[constants.HV_KVM_PATH]
- kvm_cmd = [kvm]
-+ kvm_cmd.extend(["-enable-kvm"])
- # used just by the vnc server, if enabled
- kvm_cmd.extend(["-name", instance.name])
- kvm_cmd.extend(["-m", instance.beparams[constants.BE_MAXMEM]])
diff --git a/app-emulation/ganeti/files/ganeti-2.12-start-stop-daemon-args.patch b/app-emulation/ganeti/files/ganeti-2.12-start-stop-daemon-args.patch
deleted file mode 100644
index 463ff26095a2..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.12-start-stop-daemon-args.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
-index 6a47253..11eb9d1 100644
---- a/daemons/daemon-util.in
-+++ b/daemons/daemon-util.in
-@@ -294,10 +294,11 @@ start() {
- @PKGLIBDIR@/ensure-dirs
-
- if type -p start-stop-daemon >/dev/null; then
-- start-stop-daemon --start --quiet --oknodo \
-+ start-stop-daemon --start --quiet \
- --pidfile $pidfile \
-- --startas $daemonexec \
-- --chuid $usergroup \
-+ --exec $daemonexec \
-+ --user $usergroup \
-+ --wait 300 \
- -- $args "$@"
- else
- # TODO: Find a way to start daemon with a group, until then the group must
-@@ -323,7 +324,7 @@ stop() {
- if use_systemctl; then
- systemctl stop "${name}.service"
- elif type -p start-stop-daemon >/dev/null; then
-- start-stop-daemon --stop --quiet --oknodo --retry 30 \
-+ start-stop-daemon --stop --quiet --retry 30 \
- --pidfile $pidfile
- else
- _ignore_error killproc -p $pidfile $name
-@@ -409,8 +410,8 @@ rotate_logs() {
- local daemonexec=$(_daemon_executable $name)
-
- if type -p start-stop-daemon >/dev/null; then
-- start-stop-daemon --stop --signal HUP --quiet \
-- --oknodo --pidfile $pidfile
-+ start-stop-daemon --signal HUP --quiet \
-+ --pidfile $pidfile
- else
- _ignore_error killproc \
- -p $pidfile \
diff --git a/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch b/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch
deleted file mode 100644
index 4001ac5aa4de..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/test/py/ganeti.utils.process_unittest.py b/test/py/ganeti.utils.process_unittest.py
-index 2cfb841..a5876a5 100755
---- a/test/py/ganeti.utils.process_unittest.py
-+++ b/test/py/ganeti.utils.process_unittest.py
-@@ -284,7 +284,7 @@ class TestRunCmd(testutils.GanetiTestCase):
- result = utils.RunCmd(["/bin/sh", "-c", cmd], timeout=0.2,
- noclose_fds=[self.proc_ready_helper.write_fd],
- postfork_fn=self.proc_ready_helper.Ready)
-- self.assertEqual(result.exit_code, 0)
-+ self.assertEqual(result.exit_code, None)
-
- def testTimeoutKill(self):
- cmd = ["/bin/sh", "-c", "trap '' TERM; echo >&%d; read < %s" %
-@@ -306,7 +306,6 @@ class TestRunCmd(testutils.GanetiTestCase):
- noclose_fds=[self.proc_ready_helper.write_fd],
- postfork_fn=self.proc_ready_helper.Ready)
- self.assert_(result.failed)
-- self.assertEqual(result.stdout, "sigtermed\n")
-
- def testListRun(self):
- """Test list runs"""
diff --git a/app-emulation/ganeti/files/ganeti-2.15-daemon-util.patch b/app-emulation/ganeti/files/ganeti-2.15-daemon-util.patch
deleted file mode 100644
index 25233c37a455..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-daemon-util.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
-index 7636fc9..9c681ab 100644
---- a/daemons/daemon-util.in
-+++ b/daemons/daemon-util.in
-@@ -31,25 +31,26 @@ set -e
-
- @SHELL_ENV_INIT@
-
--readonly defaults_file="$SYSCONFDIR/default/ganeti"
--
--# This is a list of all daemons and the order in which they're started. The
--# order is important as there are dependencies between them. On shutdown,
--# they're stopped in reverse order.
--DAEMONS=(
-- ganeti-noded
-- ganeti-confd
-- ganeti-wconfd
-- ganeti-rapi
-- ganeti-luxid
-- ganeti-kvmd
-- )
-+readonly defaults_file="$SYSCONFDIR/conf.d/ganeti"
-
- # This is the list of daemons that are loaded on demand; they should only be
- # stopped, not started.
- ON_DEMAND_DAEMONS=(
- ganeti-metad
- )
-+DAEMONS=( ganeti-noded ganeti-confd )
-+
-+_is_master() {
-+ [ -z "${GANETI_MASTER}" ] && GANETI_MASTER="$(gnt-cluster getmaster)"
-+ [ -z "${LOCAL_HOSTNAME}" ] && LOCAL_HOSTNAME="$(hostname -f)"
-+ [ "${GANETI_MASTER}" = "${LOCAL_HOSTNAME}" ]
-+}
-+
-+if _is_master; then
-+ DAEMONS+=( ganeti-wconfd ganeti-rapi ganeti-luxid )
-+fi
-+
-+DAEMONS+=( ganeti-kvmd )
-
- _mond_enabled() {
- [[ "@CUSTOM_ENABLE_MOND@" == True ]]
-@@ -246,7 +247,7 @@ check() {
- return 1
- fi
- elif type -p start-stop-daemon >/dev/null; then
-- start-stop-daemon --stop --signal 0 --quiet \
-+ start-stop-daemon --signal 0 --quiet \
- --pidfile $pidfile
- else
- _ignore_error status \
diff --git a/app-emulation/ganeti/files/ganeti-2.15-dont-invert-return-values-for-man-warnings.patch b/app-emulation/ganeti/files/ganeti-2.15-dont-invert-return-values-for-man-warnings.patch
deleted file mode 100644
index 37a687530873..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-dont-invert-return-values-for-man-warnings.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/autotools/check-man-warnings 2015-12-03 19:50:34.000000000 +0000
-+++ b/autotools/check-man-warnings 2016-05-22 11:19:31.678635696 +0000
-@@ -35,6 +35,6 @@
- loc="en_US.UTF-8"
- fi
-
--! LANG="$loc" LC_ALL="$loc" MANWIDTH=80 \
-+LANG="$loc" LC_ALL="$loc" MANWIDTH=80 \
- man --warnings --encoding=utf8 --local-file "$1" 2>&1 >/dev/null | \
- grep -v -e "cannot adjust line" -e "can't break line" | \
diff --git a/app-emulation/ganeti/files/ganeti-2.15-kvmd-run-as-daemon-user.patch b/app-emulation/ganeti/files/ganeti-2.15-kvmd-run-as-daemon-user.patch
deleted file mode 100644
index ce347ceaad84..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-kvmd-run-as-daemon-user.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 8910b08..1bbe5fd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2452,12 +2452,14 @@ $(REPLACE_VARS_SED): $(SHELL_ENV_INIT) Makefile stamp-directories
- echo 's#@''PKGLIBDIR@#$(libdir)/ganeti#g'; \
- echo 's#@''GNTMASTERUSER@#$(MASTERD_USER)#g'; \
- echo 's#@''GNTRAPIUSER@#$(RAPI_USER)#g'; \
-+ echo 's#@''GNTKVMDUSER@#$(KVMD_USER)#g'; \
- echo 's#@''GNTCONFDUSER@#$(CONFD_USER)#g'; \
- echo 's#@''GNTWCONFDUSER@#$(WCONFD_USER)#g'; \
- echo 's#@''GNTLUXIDUSER@#$(LUXID_USER)#g'; \
- echo 's#@''GNTNODEDUSER@#$(NODED_USER)#g'; \
- echo 's#@''GNTMONDUSER@#$(MOND_USER)#g'; \
- echo 's#@''GNTRAPIGROUP@#$(RAPI_GROUP)#g'; \
-+ echo 's#@''GNTKVMDGROUP@#$(KVMD_GROUP)#g'; \
- echo 's#@''GNTADMINGROUP@#$(ADMIN_GROUP)#g'; \
- echo 's#@''GNTCONFDGROUP@#$(CONFD_GROUP)#g'; \
- echo 's#@''GNTNODEDGROUP@#$(NODED_GROUP)#g'; \
-diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
-index 7636fc9..91ea20b 100644
---- a/daemons/daemon-util.in
-+++ b/daemons/daemon-util.in
-@@ -102,6 +102,9 @@ _daemon_usergroup() {
- rapi)
- echo "@GNTRAPIUSER@:@GNTRAPIGROUP@"
- ;;
-+ kvmd)
-+ echo "@GNTKVMDUSER@:@GNTKVMDGROUP@"
-+ ;;
- noded)
- echo "@GNTNODEDUSER@:@GNTNODEDGROUP@"
- ;;
diff --git a/app-emulation/ganeti/files/ganeti-2.15-noded-must-run-as-root.patch b/app-emulation/ganeti/files/ganeti-2.15-noded-must-run-as-root.patch
deleted file mode 100644
index 22413e3e2ea5..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-noded-must-run-as-root.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 9b5d06f..d099bd2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -343,8 +343,8 @@ AC_ARG_WITH([user-prefix],
- user_wconfd="${withval}masterd";
- user_kvmd="$user_default";
- user_luxid="${withval}masterd";
-- user_noded="$user_default";
-- user_mond="$user_default"],
-+ user_noded="root";
-+ user_mond="root"],
- [user_masterd="$user_default";
- user_metad="$user_default";
- user_rapi="$user_default";
-@@ -352,8 +352,8 @@ AC_ARG_WITH([user-prefix],
- user_wconfd="$user_default";
- user_kvmd="$user_default";
- user_luxid="$user_default";
-- user_noded="$user_default";
-- user_mond="$user_default"])
-+ user_noded="root";
-+ user_mond="root"])
- AC_SUBST(MASTERD_USER, $user_masterd)
- AC_SUBST(METAD_USER, $user_metad)
- AC_SUBST(RAPI_USER, $user_rapi)
-@@ -379,9 +379,9 @@ AC_ARG_WITH([group-prefix],
- group_luxid="${withval}luxid";
- group_masterd="${withval}masterd";
- group_metad="$group_default";
-- group_noded="$group_default";
-+ group_noded="root";
- group_daemons="${withval}daemons";
-- group_mond="$group_default"],
-+ group_mond="root"],
- [group_rapi="$group_default";
- group_admin="$group_default";
- group_confd="$group_default";
-@@ -390,9 +390,9 @@ AC_ARG_WITH([group-prefix],
- group_luxid="$group_default";
- group_masterd="$group_default";
- group_metad="$group_default";
-- group_noded="$group_default";
-+ group_noded="root";
- group_daemons="$group_default";
-- group_mond="$group_default"])
-+ group_mond="root"])
- AC_SUBST(RAPI_GROUP, $group_rapi)
- AC_SUBST(ADMIN_GROUP, $group_admin)
- AC_SUBST(CONFD_GROUP, $group_confd)
diff --git a/app-emulation/ganeti/files/ganeti-2.15-python-mock.patch b/app-emulation/ganeti/files/ganeti-2.15-python-mock.patch
deleted file mode 100644
index e51525b89cd7..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-python-mock.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/test/py/cmdlib/test_unittest.py b/test/py/cmdlib/test_unittest.py
-index f93f99d..2d0d083 100644
---- a/test/py/cmdlib/test_unittest.py
-+++ b/test/py/cmdlib/test_unittest.py
-@@ -85,7 +85,7 @@ class TestLUTestDelay(CmdlibTestCase):
-
- self.ExecOpCode(op)
-
-- self.rpc.call_test_delay.assert_called_once()
-+ assert self.rpc.call_test_delay.called
-
- def testFailingRpc(self):
- op = opcodes.OpTestDelay(duration=DELAY_DURATION,
-diff --git a/test/py/testutils/__init__.py b/test/py/testutils/__init__.py
-index 27ca425..04ea0ee 100644
---- a/test/py/testutils/__init__.py
-+++ b/test/py/testutils/__init__.py
-@@ -242,7 +242,7 @@ def patch_object(*args, **kwargs):
- This function unifies the different variations.
-
- """
-- import mock
-+ from mock import mock
- try:
- # pylint: disable=W0212
- return mock._patch_object(*args, **kwargs)
diff --git a/app-emulation/ganeti/files/ganeti-2.15-respect-HFLAGS.patch b/app-emulation/ganeti/files/ganeti-2.15-respect-HFLAGS.patch
deleted file mode 100644
index ffab1838bf1c..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-respect-HFLAGS.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index a04b95ae3..e26508ad9 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -803,6 +803,7 @@ HFLAGS = \
- -fwarn-tabs \
- -optP-include -optP$(HASKELL_PACKAGE_VERSIONS_FILE) \
- -hide-all-packages \
-+ $(HCFLAGS) \
- `cat $(HASKELL_PACKAGE_IDS_FILE)` \
- $(GHC_BYVERSION_FLAGS)
- if DEVELOPER_MODE
diff --git a/app-emulation/ganeti/files/ganeti-2.15-use-balloon-device.patch b/app-emulation/ganeti/files/ganeti-2.15-use-balloon-device.patch
deleted file mode 100644
index ae57a213fc00..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15-use-balloon-device.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py
-index 174621fcc..1f598e7ef 100644
---- a/lib/hypervisor/hv_kvm/__init__.py
-+++ b/lib/hypervisor/hv_kvm/__init__.py
-@@ -1094,7 +1094,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
- # Add id to ballon and place to the first available slot (3 or 4)
- addr = utils.GetFreeSlot(pci_reservations, reserve=True)
- pci_info = ",bus=pci.0,addr=%s" % hex(addr)
-- kvm_cmd.extend(["-balloon", "virtio,id=balloon%s" % pci_info])
-+ kvm_cmd.extend(["-device", "virtio-balloon,id=balloon%s" % pci_info])
- kvm_cmd.extend(["-daemonize"])
- if not instance.hvparams[constants.HV_ACPI]:
- kvm_cmd.extend(["-no-acpi"])
diff --git a/app-emulation/ganeti/files/ganeti-2.15.2-bdev_py.patch b/app-emulation/ganeti/files/ganeti-2.15.2-bdev_py.patch
deleted file mode 100644
index a1fea1665804..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15.2-bdev_py.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/lib/storage/bdev.py 2018-09-06 19:20:03.970318746 +0000
-+++ b/lib/storage/bdev.py 2018-09-06 19:18:59.799346241 +0000
-@@ -413,6 +413,16 @@
- if not self.minor and not self.Attach():
- # the LV does not exist
- return
-+
-+ import glob
-+
-+ for partdev in glob.glob("/dev/mapper/%s-%sp*" % (self._vg_name, self._lv_name.replace("-", "--"))):
-+ result = utils.RunCmd(["dmsetup", "remove", partdev])
-+
-+ if result.failed:
-+ base.ThrowError("Can't dmsetup remove %s: %s-%s",
-+ partdev, result.fail_reason, result.output)
-+
diff --git a/app-emulation/ganeti/files/ganeti-2.15.2-remove-sandbox-failing-tests.patch b/app-emulation/ganeti/files/ganeti-2.15.2-remove-sandbox-failing-tests.patch
deleted file mode 100644
index bc79bbbcad29..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.15.2-remove-sandbox-failing-tests.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/test/py/ganeti.hooks_unittest.py b/test/py/ganeti.hooks_unittest.py
-index 19d41bb..3382c7f 100755
---- a/test/py/ganeti.hooks_unittest.py
-+++ b/test/py/ganeti.hooks_unittest.py
-@@ -193,17 +193,17 @@ class TestHooksRunner(unittest.TestCase):
- expect.sort()
- self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), expect)
-
-- def testEnv(self):
-- """Test environment execution"""
-- for phase in (constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST):
-- fbase = "success"
-- fname = "%s/%s" % (self.ph_dirs[phase], fbase)
-- os.symlink("/usr/bin/env", fname)
-- self.torm.append((fname, False))
-- env_snt = {"PHASE": phase}
-- env_exp = "PHASE=%s" % phase
-- self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, env_snt),
-- [(self._rname(fname), HKR_SUCCESS, env_exp)])
-+ #def testEnv(self):
-+ # """Test environment execution"""
-+ # for phase in (constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST):
-+ # fbase = "success"
-+ # fname = "%s/%s" % (self.ph_dirs[phase], fbase)
-+ # os.symlink("/usr/bin/env", fname)
-+ # self.torm.append((fname, False))
-+ # env_snt = {"PHASE": phase}
-+ # env_exp = "PHASE=%s" % phase
-+ # self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, env_snt),
-+ # [(self._rname(fname), HKR_SUCCESS, env_exp)])
-
-
- def FakeHooksRpcSuccess(node_list, hpath, phase, env):
-diff --git a/test/py/ganeti.utils.process_unittest.py b/test/py/ganeti.utils.process_unittest.py
-index 82fc81e..4a59aa4 100755
---- a/test/py/ganeti.utils.process_unittest.py
-+++ b/test/py/ganeti.utils.process_unittest.py
-@@ -358,13 +358,13 @@ class TestRunCmd(testutils.GanetiTestCase):
- cwd = os.getcwd()
- self.failUnlessEqual(utils.RunCmd(["pwd"], cwd=cwd).stdout.strip(), cwd)
-
-- def testResetEnv(self):
-- """Test environment reset functionality"""
-- self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True).stdout.strip(),
-- "")
-- self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True,
-- env={"FOO": "bar",}).stdout.strip(),
-- "FOO=bar")
-+ #def testResetEnv(self):
-+ # """Test environment reset functionality"""
-+ # self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True).stdout.strip(),
-+ # "")
-+ # self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True,
-+ # env={"FOO": "bar",}).stdout.strip(),
-+ # "FOO=bar")
-
- def testNoFork(self):
- """Test that nofork raise an error"""
diff --git a/app-emulation/ganeti/files/ganeti-2.16-kvmd-run-as-daemon-user.patch b/app-emulation/ganeti/files/ganeti-2.16-kvmd-run-as-daemon-user.patch
deleted file mode 100644
index d74a6ca59b50..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.16-kvmd-run-as-daemon-user.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- ganeti-2.16.0~rc1.orig/Makefile.am 2017-01-05 10:09:56.568213273 -0800
-+++ ganeti-2.16.0~rc1/Makefile.am 2017-01-05 10:10:51.260260697 -0800
-@@ -2477,6 +2477,7 @@
- echo 's#@''PKGLIBDIR@#$(libdir)/ganeti#g'; \
- echo 's#@''GNTMASTERUSER@#$(MASTERD_USER)#g'; \
- echo 's#@''GNTRAPIUSER@#$(RAPI_USER)#g'; \
-+ echo 's#@''GNTKVMDUSER@#$(KVMD_USER)#g'; \
- echo 's#@''GNTCONFDUSER@#$(CONFD_USER)#g'; \
- echo 's#@''GNTWCONFDUSER@#$(WCONFD_USER)#g'; \
- echo 's#@''GNTLUXIDUSER@#$(LUXID_USER)#g'; \
-@@ -2484,6 +2485,7 @@
- echo 's#@''GNTMONDUSER@#$(MOND_USER)#g'; \
- echo 's#@''GNTMETADUSER@#$(METAD_USER)#g'; \
- echo 's#@''GNTRAPIGROUP@#$(RAPI_GROUP)#g'; \
-+ echo 's#@''GNTKVMDGROUP@#$(KVMD_GROUP)#g'; \
- echo 's#@''GNTADMINGROUP@#$(ADMIN_GROUP)#g'; \
- echo 's#@''GNTCONFDGROUP@#$(CONFD_GROUP)#g'; \
- echo 's#@''GNTNODEDGROUP@#$(NODED_GROUP)#g'; \
---- ganeti-2.16.0~rc1.orig/daemons/daemon-util.in 2017-01-05 10:09:56.450211013 -0800
-+++ ganeti-2.16.0~rc1/daemons/daemon-util.in 2017-01-05 10:11:17.804769059 -0800
-@@ -103,6 +103,9 @@
- rapi)
- echo "@GNTRAPIUSER@:@GNTRAPIGROUP@"
- ;;
-+ kvmd)
-+ echo "@GNTKVMDUSER@:@GNTKVMDGROUP@"
-+ ;;
- noded)
- echo "@GNTNODEDUSER@:@GNTNODEDGROUP@"
- ;;
diff --git a/app-emulation/ganeti/files/ganeti-2.16-noded-must-run-as-root.patch b/app-emulation/ganeti/files/ganeti-2.16-noded-must-run-as-root.patch
deleted file mode 100644
index d6c440b51ee6..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.16-noded-must-run-as-root.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- ganeti-2.16.0~rc1.orig/configure.ac 2017-01-05 10:09:56.480211588 -0800
-+++ ganeti-2.16.0~rc1/configure.ac 2017-01-05 10:15:34.462684390 -0800
-@@ -380,9 +380,9 @@
- group_luxid="${withval}luxid";
- group_masterd="${withval}masterd";
- group_metad="${withval}metad";
-- group_noded="$group_default";
-+ group_noded="root";
- group_daemons="${withval}daemons";
-- group_mond="$group_default"],
-+ group_mond="root"],
- [group_rapi="$group_default";
- group_admin="$group_default";
- group_confd="$group_default";
-@@ -391,9 +391,9 @@
- group_luxid="$group_default";
- group_masterd="$group_default";
- group_metad="$group_default";
-- group_noded="$group_default";
-+ group_noded="root";
- group_daemons="$group_default";
-- group_mond="$group_default"])
-+ group_mond="root"])
- AC_SUBST(RAPI_GROUP, $group_rapi)
- AC_SUBST(ADMIN_GROUP, $group_admin)
- AC_SUBST(CONFD_GROUP, $group_confd)
diff --git a/app-emulation/ganeti/files/ganeti-2.17-relax-deps.patch b/app-emulation/ganeti/files/ganeti-2.17-relax-deps.patch
deleted file mode 100644
index ef4be0869560..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.17-relax-deps.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- ganeti-2.17.0~beta1/cabal/ganeti.template.cabal 2017-01-05 10:29:49.936067812 -0800
-+++ ganeti-2.17.0~beta1/cabal/ganeti.template.cabal 2017-01-05 10:33:03.248770000 -0800
-@@ -54,15 +54,15 @@
- , transformers >= 0.3.0.0
- , unix >= 2.5.1.0
-
-- , attoparsec >= 0.10.1.1 && < 0.13
-+ , attoparsec >= 0.10.1.1 && < 0.14
- , base64-bytestring >= 1.0.0.1 && < 1.1
- , case-insensitive >= 0.4.0.1 && < 1.3
- , Crypto >= 4.2.4 && < 4.3
- , curl >= 1.3.7 && < 1.4
- , hinotify >= 0.3.2 && < 0.4
- , hslogger >= 1.1.4 && < 1.3
-- , json >= 0.5 && < 1.0
-- , lens >= 3.10 && < 4.13
-+ , json >= 0.5
-+ , lens >= 3.10
- , lifted-base >= 0.2.0.3 && < 0.3
- , monad-control >= 0.3.1.3 && < 1.1
- , MonadCatchIO-transformers >= 0.3.0.0 && < 0.4
diff --git a/app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch b/app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch
deleted file mode 100644
index 932258b93a3d..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile.am 2013-11-13 01:48:34.733493100 +0000
-+++ b/Makefile.am 2013-11-13 01:48:46.623657315 +0000
-@@ -1245,7 +1245,6 @@
- test/py/cfgupgrade_unittest.py \
- test/py/docs_unittest.py \
- test/py/ganeti.asyncnotifier_unittest.py \
-- test/py/ganeti.backend_unittest-runasroot.py \
- test/py/ganeti.backend_unittest.py \
- test/py/ganeti.bootstrap_unittest.py \
- test/py/ganeti.cli_unittest.py \
-@@ -1308,7 +1307,6 @@
- test/py/ganeti.utils.algo_unittest.py \
- test/py/ganeti.utils.filelock_unittest.py \
- test/py/ganeti.utils.hash_unittest.py \
-- test/py/ganeti.utils.io_unittest-runasroot.py \
- test/py/ganeti.utils.io_unittest.py \
- test/py/ganeti.utils.log_unittest.py \
- test/py/ganeti.utils.lvm_unittest.py \
diff --git a/app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch b/app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch
deleted file mode 100644
index c0977cae8b17..000000000000
--- a/app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile.am.orig 2013-11-13 02:19:49.198992622 +0000
-+++ b/Makefile.am 2013-11-13 02:20:12.709305182 +0000
-@@ -1332,7 +1332,6 @@
- test/py/daemon-util_unittest.bash \
- test/py/ganeti-cleaner_unittest.bash \
- test/py/import-export_unittest.bash \
-- test/py/cli-test.bash \
- test/py/bash_completion.bash
-
- if PY_UNIT
-@@ -1397,7 +1396,6 @@
- test/py/daemon-util_unittest.bash \
- test/py/ganeti-cleaner_unittest.bash \
- test/py/import-export_unittest.bash \
-- test/py/cli-test.bash \
- test/py/bash_completion.bash \
- test/hs/offline-test.sh \
- test/hs/cli-tests-defs.sh \
diff --git a/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd b/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd
deleted file mode 100644
index 6ab21c3709a5..000000000000
--- a/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-# /etc/conf.d/ganeti-kvm-poweroff: config file for /etc/init.d/ganeti-kvm-poweroff
-
-# Maximum time in seconds to wait until KVM VMs shutdown before giving up.
-# GANETI_KVM_TIMEOUT="60"
diff --git a/app-emulation/ganeti/files/ganeti-kvm-poweroff.initd b/app-emulation/ganeti/files/ganeti-kvm-poweroff.initd
deleted file mode 100644
index 44fc861d1601..000000000000
--- a/app-emulation/ganeti/files/ganeti-kvm-poweroff.initd
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- after ganeti
- after bootmisc
-}
-
-CONTROL_PATH="/var/run/ganeti/kvm-hypervisor/ctrl"
-GANETI_KVM_TIMEOUT=${GANETI_KVM_TIMEOUT:-60}
-
-start() {
- return 0
-}
-
-# Taken from doc/examples/ganeti-kvm-poweroff.initd.in in ganeti package
-stop() {
- ebegin "Stopping Ganeti KVM VMs"
- # shutdown VMs and remove sockets of those not running
- for vm_monitor in $(find $CONTROL_PATH -type s -name '*.monitor') ; do
- if ! echo system_powerdown | \
- socat -U UNIX:$vm_monitor STDIO > /dev/null 2>&1; then
- # remove disconnected socket
- rm -f $vm_monitor
- fi
- done
-
- einfo " Waiting for VMs to poweroff"
- waiting=true
- remaining=$GANETI_KVM_TIMEOUT
- while $waiting && [ $remaining -ne 0 ]; do
- if [ -z "$(find $CONTROL_PATH -type s -name '*.monitor')" ] ; then
- break
- fi
-
- printf "."
- for vm_monitor in $(find $CONTROL_PATH -type s -name '*.monitor') ; do
- if ! echo | socat -U UNIX:$vm_monitor STDIO > /dev/null 2>&1; then
- rm -rf $vm_monitor
- fi
- done
-
- sleep 5
- remaining=$((remaining - 5))
- done
-
- if [ -n "$(find $CONTROL_PATH -type s -name '*.monitor')" ] ; then
- eerror " Some ganeti VMs did not shutdown"
- fi
- echo
- eend $?
-}
-
-restart() {
- eerror "restart not supported"
-}
diff --git a/app-emulation/ganeti/files/ganeti-lockdir.patch b/app-emulation/ganeti/files/ganeti-lockdir.patch
deleted file mode 100644
index dad084fa4306..000000000000
--- a/app-emulation/ganeti/files/ganeti-lockdir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/lib/pathutils.py b/lib/pathutils.py
-index db860ff..53a9cc4 100644
---- a/lib/pathutils.py
-+++ b/lib/pathutils.py
-@@ -63,9 +63,9 @@ ETC_HOSTS = vcluster.ETC_HOSTS
-
- # Top-level paths
- DATA_DIR = LOCALSTATEDIR + "/lib/ganeti"
--LOCK_DIR = LOCALSTATEDIR + "/lock"
-+LOCK_DIR = "/run/lock"
- LOG_DIR = LOCALSTATEDIR + "/log/ganeti"
- RUN_DIR = "/run/ganeti"
-
- #: Script to configure master IP address
- DEFAULT_MASTER_SETUP_SCRIPT = TOOLSDIR + "/master-ip-setup"
diff --git a/app-emulation/ganeti/files/ganeti.confd-r2 b/app-emulation/ganeti/files/ganeti.confd-r2
deleted file mode 100644
index 0f2e69f3d5ea..000000000000
--- a/app-emulation/ganeti/files/ganeti.confd-r2
+++ /dev/null
@@ -1,19 +0,0 @@
-# /etc/conf.d/ganeti: config file for /etc/init.d/ganeti
-
-# Extra options to pass to all of the ganeti daemons
-# GANETI_OPTS="-d"
-
-# Options to pass to ganeti-masterd
-# GANETI_MASTERD_OPTS=""
-
-# Options to pass to ganeti-rapi
-# GANETI_RAPI_OPTS=""
-
-# Options to pass to ganeti-noded
-# GANETI_NODED_OPTS=""
-
-# Options to pass to ganeti-confd
-# GANETI_CONFD_OPTS=""
-
-# Options to pass to ganeti-luxid
-# GANETI_LUXID_OPTS=""
diff --git a/app-emulation/ganeti/files/ganeti.initd-r3 b/app-emulation/ganeti/files/ganeti.initd-r3
deleted file mode 100644
index 18b3116a517f..000000000000
--- a/app-emulation/ganeti/files/ganeti.initd-r3
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-extra_commands="forcestart is_master"
-
-depend() {
- need localmount logger
- after bootmisc sshd
- use net
-}
-
-DAEMON_UTIL="/usr/lib/ganeti/daemon-util"
-
-is_master() {
- [ -z "${ganeti_master}" ] && ganeti_master="$(gnt-cluster getmaster)"
- [ -z "${local_hostname}" ] && local_hostname="$(hostname -f)"
- [ "${ganeti_master}" = "${local_hostname}" ]
-}
-
-# This exists specifically for restarting a 2-node cluster where quorum might
-# not be available.
-forcestart() {
- ewarn "Forcing non-quorum Ganeti master start"
- GANETI_WCONFD_OPTS="${GANETI_WCONFD_OPTS} --no-voting --yes-do-it"
- GANETI_LUXID_OPTS="${GANETI_LUXID_OPTS} --no-voting --yes-do-it"
- GANETI_MASTERD_OPTS="${GANETI_LUXID_OPTS} --no-voting --yes-do-it"
- export GANETI_WCONFD_OPTS GANETI_LUXID_OPTS GANETI_MASTERD_OPTS
- start
-}
-
-start() {
- if ! [ -e ${DAEMON_UTIL} ]; then
- eerror "Could not find daemon utility at ${DAEMON_UTIL}"
- return 1
- elif ! ${DAEMON_UTIL} check-config ; then
- eerror "Incomplete configuration, will not run."
- return 1
- fi
-
- local daemon retval=0 optsvar started_daemons daemon_opts
-
- for daemon in $(${DAEMON_UTIL} list-start-daemons); do
- optsvar="$(printf "${daemon}_OPTS" | tr - _ | LC_ALL=C tr '[:lower:]' '[:upper:]')"
-
- case "${daemon#ganeti-}" in
- masterd|rapi|luxid) is_master || continue;;
- esac
-
- eval daemon_opts=\"\$\{${optsvar}\}\"
-
- ebegin "Starting ${daemon}"
- eindent
- veinfo ${DAEMON_UTIL} start ${daemon} ${GANETI_OPTS} ${daemon_opts}
- ${DAEMON_UTIL} start ${daemon} ${GANETI_OPTS} ${daemon_opts} || retval=${?}
-
- if [ ${retval} != 0 ] && [ -n "${started_daemons}" ]; then
- case ${daemon} in
- *-kvmd) retval=0; ewarn "Failed to start kvmd, continuing anyway";;
- *)
- eerror "Stopping already started daemons"
- eindent
- eend ${code} "$(${DAEMON_UTIL} check-exitcode ${code})"
-
- for daemon in ${started_daemons}; do
- ebegin "Stopping ${daemon}"
- ${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
- eend ${?}
- done
- eoutdent; eoutdent
- return ${retval}
- ;;
- esac
- fi
- eoutdent
- started_daemons="${started_daemons} ${daemon}"
- done
-}
-
-stop() {
- if ! [ -e ${DAEMON_UTIL} ]; then
- eerror "Could not find daemon utility at ${DAEMON_UTIL}"
- return 1
- fi
-
- local daemon
-
- for daemon in $(${DAEMON_UTIL} list-stop-daemons) ; do \
- case "${daemon#ganeti-}" in
- masterd|rapi|luxid) is_master || continue;;
- esac
- ${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
- done
-}
-
-# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet:
diff --git a/app-emulation/ganeti/files/ganeti.initd-r4 b/app-emulation/ganeti/files/ganeti.initd-r4
deleted file mode 100644
index 6393de8e2803..000000000000
--- a/app-emulation/ganeti/files/ganeti.initd-r4
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-extra_commands="forcestart is_master"
-
-depend() {
- need localmount logger
- after bootmisc sshd
- use net
-}
-
-DAEMON_UTIL="/usr/%LIBDIR%/ganeti/daemon-util"
-
-is_master() {
- [ -z "${ganeti_master}" ] && ganeti_master="$(gnt-cluster getmaster)"
- [ -z "${local_hostname}" ] && local_hostname="$(hostname -f)"
- [ "${ganeti_master}" = "${local_hostname}" ]
-}
-
-# This exists specifically for restarting a 2-node cluster where quorum might
-# not be available.
-forcestart() {
- ewarn "Forcing non-quorum Ganeti master start"
- GANETI_WCONFD_OPTS="${GANETI_WCONFD_OPTS} --no-voting --yes-do-it"
- GANETI_LUXID_OPTS="${GANETI_LUXID_OPTS} --no-voting --yes-do-it"
- GANETI_MASTERD_OPTS="${GANETI_LUXID_OPTS} --no-voting --yes-do-it"
- export GANETI_WCONFD_OPTS GANETI_LUXID_OPTS GANETI_MASTERD_OPTS
- start
-}
-
-start() {
- if ! [ -e ${DAEMON_UTIL} ]; then
- eerror "Could not find daemon utility at ${DAEMON_UTIL}"
- return 1
- elif ! ${DAEMON_UTIL} check-config ; then
- eerror "Incomplete configuration, will not run."
- return 1
- fi
-
- local daemon retval=0 optsvar started_daemons daemon_opts
-
- for daemon in $(${DAEMON_UTIL} list-start-daemons); do
- optsvar="$(printf "${daemon}_OPTS" | tr - _ | LC_ALL=C tr '[:lower:]' '[:upper:]')"
-
- case "${daemon#ganeti-}" in
- masterd|rapi|luxid) is_master || continue;;
- esac
-
- eval daemon_opts=\"\$\{${optsvar}\}\"
-
- ebegin "Starting ${daemon}"
- eindent
- veinfo ${DAEMON_UTIL} start ${daemon} ${GANETI_OPTS} ${daemon_opts}
- ${DAEMON_UTIL} start ${daemon} ${GANETI_OPTS} ${daemon_opts} || retval=${?}
-
- if [ ${retval} != 0 ] && [ -n "${started_daemons}" ]; then
- case ${daemon} in
- *-kvmd) retval=0; ewarn "Failed to start kvmd, continuing anyway";;
- *)
- eerror "Stopping already started daemons"
- eindent
- eend ${code} "$(${DAEMON_UTIL} check-exitcode ${code})"
-
- for daemon in ${started_daemons}; do
- ebegin "Stopping ${daemon}"
- ${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
- eend ${?}
- done
- eoutdent; eoutdent
- return ${retval}
- ;;
- esac
- fi
- eoutdent
- started_daemons="${started_daemons} ${daemon}"
- done
-}
-
-stop() {
- if ! [ -e ${DAEMON_UTIL} ]; then
- eerror "Could not find daemon utility at ${DAEMON_UTIL}"
- return 1
- fi
-
- local daemon
-
- for daemon in $(${DAEMON_UTIL} list-stop-daemons) ; do \
- case "${daemon#ganeti-}" in
- masterd|rapi|luxid) is_master || continue;;
- esac
- ${DAEMON_UTIL} stop ${daemon} ${GANETI_OPTS}
- done
-}
-
-# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet:
diff --git a/app-emulation/ganeti/ganeti-2.15.2-r5.ebuild b/app-emulation/ganeti/ganeti-2.15.2-r5.ebuild
deleted file mode 100644
index c1a37b6d764d..000000000000
--- a/app-emulation/ganeti/ganeti-2.15.2-r5.ebuild
+++ /dev/null
@@ -1,331 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1 versionator
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(get_version_component_range 1-2)"
-
-DEBIAN_PATCH=4
-SRC_URI="
- http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz
- mirror://ubuntu/pool/universe/${PN:0:1}/${PN}/${PN}_${PV}-${DEBIAN_PATCH}.debian.tar.xz
-"
-KEYWORDS="amd64 x86"
-PATCHES=(
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- "${WORKDIR}"/debian/patches/relax-deps
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- "${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4
-)
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- sys-fs/lvm2
- >=sys-apps/baselayout-2.0
- dev-lang/ghc:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-0.3.1.3:0=
- <dev-haskell/monad-control-1.1:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4.1:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-0.8.1:0=
- <dev-haskell/snap-core-0.10:0=
- >=dev-haskell/snap-server-0.8.1:0=
- <dev-haskell/snap-server-0.10:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- <=dev-python/sphinx-1.3.5[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.15-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.15-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/ganeti-2.15.2-r6.ebuild b/app-emulation/ganeti/ganeti-2.15.2-r6.ebuild
deleted file mode 100644
index 646ff4ff3a53..000000000000
--- a/app-emulation/ganeti/ganeti-2.15.2-r6.ebuild
+++ /dev/null
@@ -1,340 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1 versionator
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(get_version_component_range 1-2)"
-
-DEBIAN_PATCH=4
-SRC_URI="
- http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz
- mirror://ubuntu/pool/universe/${PN:0:1}/${PN}/${PN}_${PV}-${DEBIAN_PATCH}.debian.tar.xz
-"
-KEYWORDS="~amd64 ~x86"
-PATCHES=(
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- "${WORKDIR}"/debian/patches/relax-deps
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- "${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4
-)
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- sys-fs/lvm2
- >=sys-apps/baselayout-2.0
- dev-lang/ghc:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-0.3.1.3:0=
- <dev-haskell/monad-control-1.1:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4.1:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-0.8.1:0=
- <dev-haskell/snap-core-0.10:0=
- >=dev-haskell/snap-server-0.8.1:0=
- <dev-haskell/snap-server-0.10:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- dev-python/sphinx[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.15-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.15-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
- "${FILESDIR}/${PN}-2.15-respect-HFLAGS.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- if use experimental; then
- ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!"
- PATCHES+=(
- # QEMU Agent accepted upstream for 2.16, not yet in a tagged release
- # backport available for 2.15, but refused upstream due to RPC breakage.
- "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/ganeti-2.15.2-r7.ebuild b/app-emulation/ganeti/ganeti-2.15.2-r7.ebuild
deleted file mode 100644
index 22e58cde08e7..000000000000
--- a/app-emulation/ganeti/ganeti-2.15.2-r7.ebuild
+++ /dev/null
@@ -1,365 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(ver_cut 1-2)"
-
-DEBIAN_PATCH=11
-SRC_URI="
- http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz
- mirror://debian/pool/main/g/ganeti-${SERIES}/ganeti-${SERIES}_${PV}-${DEBIAN_PATCH}.debian.tar.xz
-"
-KEYWORDS="~amd64 ~x86"
-PATCHES=(
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- "${WORKDIR}"/debian/patches/relax-deps
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- "${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4
- "${WORKDIR}"/debian/patches/use-proper-cabal-dev.patch
- "${WORKDIR}"/debian/patches/0001-Drop-dependency-on-MonadCatchIO-transformers.patch
- "${WORKDIR}"/debian/patches/0001-GHC-8-support.patch
- "${WORKDIR}"/debian/patches/ghc8-fixes
- "${WORKDIR}"/debian/patches/snap-server-1.0-compat
- "${WORKDIR}"/debian/patches/non-DSA-SSH-key-support.patch
- "${WORKDIR}"/debian/patches/fix-ssh-key-renewal-on-single-node-clusters.patch
- "${WORKDIR}"/debian/patches/set-defaults-for-ssh-type-bits.patch
- "${WORKDIR}"/debian/patches/use-hv-class-to-check-for-migration.patch
- "${WORKDIR}"/debian/patches/do-not-specify-socat-ssl-method.patch
- "${WORKDIR}"/debian/patches/fix-ftbfs-with-sphinx-1.5.patch
- "${WORKDIR}"/debian/patches/fix-failover-from-dead-node.patch
- "${WORKDIR}"/debian/patches/fix-cpu-affinity.patch
- "${WORKDIR}"/debian/patches/fix-fcntl-i386.patch
- "${WORKDIR}"/debian/patches/fix-ovf-test-path.patch
- "${WORKDIR}"/debian/patches/fix-qa-ssconf-race.patch
- "${WORKDIR}"/debian/patches/relax-sphinx-version-check.patch
- #"${WORKDIR}"/debian/patches/THH-2.12.patch
- "${WORKDIR}"/debian/patches/sphinx-1.7.patch
- "${WORKDIR}"/debian/patches/ca-use-sha256-md.patch
- "${WORKDIR}"/debian/patches/impexpd-fix-certificate-verification-with-new-socat.patch
- "${WORKDIR}"/debian/patches/impexpd-fix-certificate-verification-with-new-socat-2.patch
-)
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- >=sys-fs/lvm2-2.02.181
- >=sys-apps/baselayout-2.0
- >=dev-lang/ghc-8.0:0=
- <dev-lang/ghc-8.1:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- !<app-emulation/ganeti-instance-image-0.6-r1
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-1.0.1.0:0=
- <dev-haskell/monad-control-1.0.2:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-1.0.1:0=
- <dev-haskell/snap-core-1.1:0=
- >=dev-haskell/snap-server-1.0.1:0=
- <dev-haskell/snap-server-1.1:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- dev-python/sphinx[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.15-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.15-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
- "${FILESDIR}/${PN}-2.15-respect-HFLAGS.patch"
- "${FILESDIR}/ganeti-2.15.2-bdev_py.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- if use experimental; then
- ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!"
- PATCHES+=(
- # QEMU Agent accepted upstream for 2.16, not yet in a tagged release
- # backport available for 2.15, but refused upstream due to RPC breakage.
- "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/ganeti-2.15.2-r8.ebuild b/app-emulation/ganeti/ganeti-2.15.2-r8.ebuild
deleted file mode 100644
index 579f39cb3711..000000000000
--- a/app-emulation/ganeti/ganeti-2.15.2-r8.ebuild
+++ /dev/null
@@ -1,378 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(ver_cut 1-2)"
-
-DEBIAN_PATCH=11
-SRC_URI="
- http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz
- mirror://debian/pool/main/g/ganeti-${SERIES}/ganeti-${SERIES}_${PV}-${DEBIAN_PATCH}.debian.tar.xz
-"
-KEYWORDS="amd64 ~x86"
-PATCHES=(
- "${FILESDIR}"/ganeti-2.15-use-balloon-device.patch
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- "${WORKDIR}"/debian/patches/relax-deps
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- "${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4
- "${WORKDIR}"/debian/patches/use-proper-cabal-dev.patch
- "${WORKDIR}"/debian/patches/0001-Drop-dependency-on-MonadCatchIO-transformers.patch
- "${WORKDIR}"/debian/patches/0001-GHC-8-support.patch
- "${WORKDIR}"/debian/patches/ghc8-fixes
- "${WORKDIR}"/debian/patches/snap-server-1.0-compat
- "${WORKDIR}"/debian/patches/non-DSA-SSH-key-support.patch
- "${WORKDIR}"/debian/patches/fix-ssh-key-renewal-on-single-node-clusters.patch
- "${WORKDIR}"/debian/patches/set-defaults-for-ssh-type-bits.patch
- "${WORKDIR}"/debian/patches/use-hv-class-to-check-for-migration.patch
- "${WORKDIR}"/debian/patches/do-not-specify-socat-ssl-method.patch
- "${WORKDIR}"/debian/patches/fix-ftbfs-with-sphinx-1.5.patch
- "${WORKDIR}"/debian/patches/fix-failover-from-dead-node.patch
- "${WORKDIR}"/debian/patches/fix-cpu-affinity.patch
- "${WORKDIR}"/debian/patches/fix-fcntl-i386.patch
- "${WORKDIR}"/debian/patches/fix-ovf-test-path.patch
- "${WORKDIR}"/debian/patches/fix-qa-ssconf-race.patch
- "${WORKDIR}"/debian/patches/relax-sphinx-version-check.patch
- #"${WORKDIR}"/debian/patches/THH-2.12.patch
- "${WORKDIR}"/debian/patches/sphinx-1.7.patch
- "${WORKDIR}"/debian/patches/ca-use-sha256-md.patch
- "${WORKDIR}"/debian/patches/impexpd-fix-certificate-verification-with-new-socat.patch
- "${WORKDIR}"/debian/patches/impexpd-fix-certificate-verification-with-new-socat-2.patch
-)
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- >=sys-fs/lvm2-2.02.181
- >=sys-apps/baselayout-2.0
- >=dev-lang/ghc-8.0:0=
- <dev-lang/ghc-8.1:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- !<app-emulation/ganeti-instance-image-0.6-r1
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-1.0.1.0:0=
- <dev-haskell/monad-control-1.0.2:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-1.0.1:0=
- <dev-haskell/snap-core-1.1:0=
- >=dev-haskell/snap-server-1.0.1:0=
- <dev-haskell/snap-server-1.1:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- dev-python/sphinx[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.15-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.15-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
- "${FILESDIR}/${PN}-2.15-respect-HFLAGS.patch"
- "${FILESDIR}/ganeti-2.15.2-bdev_py.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-# haskell...
-QA_FLAGS_IGNORED="
- /usr/lib64/ganeti/2.15/usr/sbin/ganeti-metad
- /usr/lib64/ganeti/2.15/usr/sbin/ganeti-wconfd
- /usr/lib64/ganeti/2.15/usr/sbin/ganeti-confd
- /usr/lib64/ganeti/2.15/usr/sbin/ganeti-luxid
- /usr/lib64/ganeti/2.15/usr/sbin/ganeti-kvmd
- /usr/lib64/ganeti/2.15/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- if use experimental; then
- ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!"
- PATCHES+=(
- # QEMU Agent accepted upstream for 2.16, not yet in a tagged release
- # backport available for 2.15, but refused upstream due to RPC breakage.
- "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.15.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- sed "s:%LIBDIR%:$(get_libdir):g" "${FILESDIR}/ganeti.initd-r4" \
- > "${T}/ganeti.initd"
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${T}"/ganeti.initd ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild b/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild
deleted file mode 100644
index 7902fba92c36..000000000000
--- a/app-emulation/ganeti/ganeti-2.16.0_rc1.ebuild
+++ /dev/null
@@ -1,349 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1 versionator
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(get_version_component_range 1-2)"
-
-if [[ ${PV} =~ [9]{4,} ]] ; then
- EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
- inherit git-2
- KEYWORDS=""
- PATCHES=()
-else
- DEBIAN_PV=${MY_PV}
- DEBIAN_PATCH=1
- SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz"
- [[ -n "${DEBIAN_PATCH}" ]] && SRC_URI="${SRC_URI}
- mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${DEBIAN_PV}-${DEBIAN_PATCH}.debian.tar.xz
- "
- KEYWORDS="~amd64 ~x86"
- PATCHES=(
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- "${WORKDIR}"/debian/patches/relax-deps
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- #"${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4 # ported manually
- )
-fi
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- sys-fs/lvm2
- >=sys-apps/baselayout-2.0
- dev-lang/ghc:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-0.3.1.3:0=
- <dev-haskell/monad-control-1.1:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4.1:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-0.8.1:0=
- <dev-haskell/snap-core-0.10:0=
- >=dev-haskell/snap-server-0.8.1:0=
- <dev-haskell/snap-server-0.10:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- dev-python/sphinx[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.16-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.16-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
- "${FILESDIR}/fix_ftbfs_with_sphinx_1.4"
- "${FILESDIR}/${PN}-2.15-respect-HFLAGS.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- if use experimental; then
- ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!"
- PATCHES+=(
- # QEMU Agent accepted upstream for 2.16, not yet in a tagged release
- # backport available for 2.15, but refused upstream due to RPC breakage.
- "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild b/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild
deleted file mode 100644
index 053c5aff28a1..000000000000
--- a/app-emulation/ganeti/ganeti-2.17.0_beta1.ebuild
+++ /dev/null
@@ -1,349 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=(python2_7)
-PYTHON_REQ_USE="ipv6(+)?"
-
-inherit user autotools bash-completion-r1 python-single-r1 versionator
-
-MY_PV="${PV/_rc/~rc}"
-MY_PV="${MY_PV/_beta/~beta}"
-MY_P="${PN}-${MY_PV}"
-SERIES="$(get_version_component_range 1-2)"
-
-if [[ ${PV} =~ [9]{4,} ]] ; then
- EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
- inherit git-2
- KEYWORDS=""
- PATCHES=()
-else
- DEBIAN_PV='2.16.0~rc1'
- DEBIAN_PATCH=1
- SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz"
- [[ -n "${DEBIAN_PATCH}" ]] && SRC_URI="${SRC_URI}
- mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${DEBIAN_PV}-${DEBIAN_PATCH}.debian.tar.xz
- "
- KEYWORDS="~amd64 ~x86"
- PATCHES=(
- "${WORKDIR}"/debian/patches/do-not-backup-export-dir.patch
- "${WORKDIR}"/debian/patches/Makefile.am-use-C.UTF-8
- #"${WORKDIR}"/debian/patches/relax-deps # Ported manually
- "${WORKDIR}"/debian/patches/zlib-0.6-compatibility
- "${WORKDIR}"/debian/patches/fix_FTBFS_with_sphinx-1.3.5
- #"${WORKDIR}"/debian/patches/fix_ftbfs_with_sphinx_1.4 # ported manually
- )
-fi
-
-DESCRIPTION="Ganeti is a virtual server management software tool"
-HOMEPAGE="http://www.ganeti.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="drbd experimental haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen restricted-commands"
-
-REQUIRED_USE="|| ( kvm xen lxc )
- test? ( ipv6 )
- kvm? ( || ( amd64 x86 ) )
- ${PYTHON_REQUIRED_USE}"
-
-USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
-GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
-
-DEPEND="
- dev-libs/openssl:0
- dev-python/paramiko[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/simplejson[${PYTHON_USEDEP}]
- dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/pyinotify[${PYTHON_USEDEP}]
- dev-python/pycurl[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/bitarray[${PYTHON_USEDEP}]
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/fdsend[${PYTHON_USEDEP}]
- || (
- net-misc/iputils[arping]
- net-analyzer/arping
- )
- net-analyzer/fping
- net-misc/bridge-utils
- net-misc/curl[ssl]
- net-misc/openssh
- net-misc/socat
- sys-apps/iproute2
- sys-fs/lvm2
- >=sys-apps/baselayout-2.0
- dev-lang/ghc:0=
- dev-haskell/cabal:0=
- dev-haskell/cabal-install:0=
- >=dev-haskell/mtl-2.1.1:0=
- >=dev-haskell/old-time-1.1.0.0:0=
- >=dev-haskell/random-1.0.1.1:0=
- haskell-daemons? ( >=dev-haskell/text-0.11.1.13:0= )
- >=dev-haskell/transformers-0.3.0.0:0=
-
- >=dev-haskell/attoparsec-0.10.1.1:0=
- <dev-haskell/attoparsec-0.14:0
- >=dev-haskell/base64-bytestring-1.0.0.1:0=
- <dev-haskell/base64-bytestring-1.1:0=
- >=dev-haskell/crypto-4.2.4:0=
- <dev-haskell/crypto-4.3:0=
- >=dev-haskell/curl-1.3.7:0=
- <dev-haskell/curl-1.4:0=
- >=dev-haskell/hinotify-0.3.2:0=
- <dev-haskell/hinotify-0.4:0=
- >=dev-haskell/hslogger-1.1.4:0=
- <dev-haskell/hslogger-1.3:0=
- >=dev-haskell/json-0.5:0=
- >=dev-haskell/lens-3.10:0=
- >=dev-haskell/lifted-base-0.2.0.3:0=
- <dev-haskell/lifted-base-0.3:0=
- >=dev-haskell/monad-control-0.3.1.3:0=
- <dev-haskell/monad-control-1.1:0=
- >=dev-haskell/network-2.3.0.13:0=
- <dev-haskell/network-2.7:0=
- >=dev-haskell/parallel-3.2.0.2:3=
- <dev-haskell/parallel-3.3:3=
- >=dev-haskell/temporary-1.1.2.3:0=
- <dev-haskell/temporary-1.3:0=
- >=dev-haskell/regex-pcre-0.94.2:0=
- <dev-haskell/regex-pcre-0.95:0=
- >=dev-haskell/transformers-base-0.4.1:0=
- <dev-haskell/transformers-base-0.5:0=
- >=dev-haskell/utf8-string-0.3.7:0=
- >=dev-haskell/zlib-0.5.3.3:0=
- <dev-haskell/zlib-0.7:0=
-
- >=dev-haskell/psqueue-1.1:0=
- <dev-haskell/psqueue-1.2:0=
- >=dev-haskell/snap-core-0.8.1:0=
- <dev-haskell/snap-core-0.10:0=
- >=dev-haskell/snap-server-0.8.1:0=
- <dev-haskell/snap-server-0.10:0=
- >=dev-haskell/case-insensitive-0.4.0.1
-
- dev-haskell/vector:0=
- xen? ( >=app-emulation/xen-3.0 )
- kvm? (
- dev-python/psutil
- app-emulation/qemu
- )
- lxc? ( app-emulation/lxc )
- drbd? ( sys-cluster/drbd-utils )
- rbd? ( sys-cluster/ceph )
- ipv6? ( net-misc/ndisc6 )
- ${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !app-emulation/ganeti-htools"
-DEPEND+="
- sys-devel/m4
- app-text/pandoc
- <=dev-python/sphinx-1.3.5[${PYTHON_USEDEP}]
- media-fonts/urw-fonts
- media-gfx/graphviz
- >=dev-haskell/test-framework-0.6:0=
- <dev-haskell/test-framework-0.9:0=
- >=dev-haskell/test-framework-hunit-0.2.7:0=
- <dev-haskell/test-framework-hunit-0.4:0=
- >=dev-haskell/test-framework-quickcheck2-0.2.12.1:0=
- <dev-haskell/test-framework-quickcheck2-0.4:0=
- test? (
- dev-python/mock
- dev-python/pyyaml
- dev-haskell/haddock:0=
- >=dev-haskell/hunit-1.2.4.2:0=
- <dev-haskell/hunit-1.3:0=
- >=dev-haskell/quickcheck-2.4.2:2=
- <dev-haskell/quickcheck-2.8.3:2=
- sys-apps/fakeroot
- >=net-misc/socat-1.7
- dev-util/shelltestrunner
- )"
-
-PATCHES+=(
- "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
- "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
- "${FILESDIR}/${PN}-2.15-daemon-util.patch"
- "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
- "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
- "${FILESDIR}/${PN}-2.10-rundir.patch"
- "${FILESDIR}/${PN}-2.12-qemu-enable-kvm.patch"
- "${FILESDIR}/${PN}-2.11-tests.patch"
- "${FILESDIR}/${PN}-lockdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-nest-libdir.patch"
- "${FILESDIR}/${PN}-2.11-dont-print-man-help.patch"
- "${FILESDIR}/${PN}-2.11-daemon-util-tests.patch"
- "${FILESDIR}/${PN}-2.13-process_unittest.patch"
- "${FILESDIR}/${PN}-2.15-python-mock.patch"
- "${FILESDIR}/${PN}-2.15.2-remove-sandbox-failing-tests.patch"
- "${FILESDIR}/${PN}-2.16-noded-must-run-as-root.patch"
- "${FILESDIR}/${PN}-2.16-kvmd-run-as-daemon-user.patch"
- "${FILESDIR}/${PN}-2.15-dont-invert-return-values-for-man-warnings.patch"
- "${FILESDIR}/fix_ftbfs_with_sphinx_1.4"
- "${FILESDIR}/${PN}-2.17-relax-deps.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-QA_WX_LOAD="
- usr/lib*/${PN}/${SERIES}/usr/sbin/ganeti-*d
- usr/lib*/${PN}/${SERIES}/usr/bin/htools
-"
-
-pkg_setup () {
- local user
- python-single-r1_pkg_setup
-
- if use multiple-users; then
- for user in gnt-{masterd,confd,luxid,rapi,daemons,admin}; do
- enewgroup ${user}
- enewuser ${user} -1 -1 -1 ${user}
- done
- fi
-}
-
-src_prepare() {
- local testfile
- if has_version '>=dev-lang/ghc-7.10'; then
- # Breaks the build on 7.8
- PATCHES+=(
- "${WORKDIR}"/debian/patches/ghc-7.10-compatibility.patch
- )
- fi
- if use experimental; then
- ewarn "Experimental patches have been applied! RPC between daemons with different patches applied may cause breakage!"
- PATCHES+=(
- # QEMU Agent accepted upstream for 2.16, not yet in a tagged release
- # backport available for 2.15, but refused upstream due to RPC breakage.
- "${FILESDIR}"/0001-kvm-use_guest_agent-QEMU-Guest-Agent-sup.stable-2.16.patch
- )
- fi
- eapply "${PATCHES[@]}"
- # Upstream commits:
- # 4c3c2ca2a97a69c0287a3d23e064bc17978105eb
- # 24618882737fd7c189adf99f4acc767d48f572c3
- sed -i \
- -e '/QuickCheck/s,< 2.8,< 2.8.3,g' \
- cabal/ganeti.template.cabal
- # Neuter -Werror
- sed -i \
- -e '/^if DEVELOPER_MODE/,/^endif/s/-Werror//' \
- Makefile.am
-
- # not sure why these tests are failing
- # should remove this on next version bump if possible
- for testfile in test/py/import-export_unittest.bash; do
- printf '#!/bin/bash\ntrue\n' > "${testfile}"
- done
-
- # take the sledgehammer approach to bug #526270
- grep -lr '/bin/sh' "${S}" | xargs -r -- sed -i 's:/bin/sh:/bin/bash:g'
-
- eapply_user
-
- [[ ${PV} =~ [9]{4,} ]] && ./autogen.sh
- rm autotools/missing
- eautoreconf
-}
-
-src_configure () {
- # this is kind of a hack to work around the removal of the qemu-kvm wrapper
- local kvm_arch
-
- if use amd64; then
- kvm_arch=x86_64
- elif use x86; then
- kvm_arch=i386
- elif use kvm; then
- die "Could not determine qemu system to use for kvm"
- fi
-
- econf --localstatedir=/var \
- --sharedstatedir=/var \
- --disable-symlinks \
- --with-ssh-initscript=/etc/init.d/sshd \
- --with-export-dir=/var/lib/ganeti-storage/export \
- --with-os-search-path=/usr/share/${PN}/os \
- $(use_enable restricted-commands) \
- $(use_enable test haskell-tests) \
- $(usex multiple-users "--with-default-user=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
- $(usex multiple-users "--with-default-group=" "" "gnt-daemons" "") \
- $(usex multiple-users "--with-group-prefix=" "" "${GROUP_PREFIX}" "") \
- $(use_enable syslog) \
- $(use_enable monitoring) \
- $(usex kvm '--with-kvm-path=' '' "/usr/bin/qemu-system-${kvm_arch}" '') \
- $(usex haskell-daemons "--enable-confd=haskell" '' '' '') \
- --with-haskell-flags="-optl -Wl,-z,relro -optl -Wl,--as-needed" \
- --enable-socat-escape \
- --enable-socat-compress
-}
-
-src_install () {
- emake V=1 DESTDIR="${D}" install
-
- newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
- newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
-
- if use kvm; then
- newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
- newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
- fi
-
- # ganeti installs it's own docs in a generic location
- rm -rf "${D}"/{usr/share/doc/${PN},run}
-
- sed -i "s:/usr/$(get_libdir)/${PN}/tools/burnin:burnin:" doc/examples/bash_completion
- newbashcomp doc/examples/bash_completion gnt-instance
- bashcomp_alias gnt-instance burnin ganeti-{cleaner,confd} \
- h{space,check,scan,info,ail,arep,roller,squeeze,bal} \
- gnt-{os,job,filter,debug,storage,group,node,network,backup,cluster}
-
- use monitoring && bashcomp_alias gnt-instance mon-collector
-
- dodoc INSTALL UPGRADE NEWS README doc/*.rst
-
- docinto html
- dodoc -r doc/html/* doc/css/*.css
-
- docinto examples
- dodoc doc/examples/{ganeti.cron,gnt-config-backup} doc/examples/*.ocf
-
- docinto examples/hooks
- dodoc doc/examples/hooks/{ipsec,ethers}
-
- insinto /etc/cron.d
- newins doc/examples/ganeti.cron ${PN}
-
- insinto /etc/logrotate.d
- newins doc/examples/ganeti.logrotate ${PN}
-
- # need to dodir rather than keepdir here (bug #552482)
- dodir /var/lib/${PN}
-
- keepdir /var/log/${PN}/
- keepdir /usr/share/${PN}/${SERIES}/os/
- keepdir /var/lib/ganeti-storage/{export,file,shared}/
-
- dosym ${SERIES} "/usr/share/${PN}/default"
- dosym ${SERIES} "/usr/$(get_libdir)/${PN}/default"
-
- python_fix_shebang "${ED}" "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
-}
-
-pkg_postinst() {
- if use multiple-users; then
- elog "You have enable multiple user support, the users for this must"
- elog "be created. You can use the provided tool for this, which is"
- elog "located at:"
- elog " /usr/$(get_libdir)/${PN}/tools/users-setup"
- fi
-}
-
-src_test () {
- PATH="${S}/scripts:${S}/src:${PATH}" \
- TMPDIR="/tmp" \
- GANETI_MASTER="$(hostname -f)" \
- emake check || die "emake check failed"
-}
diff --git a/app-emulation/ganeti/metadata.xml b/app-emulation/ganeti/metadata.xml
deleted file mode 100644
index d591fbcc6e46..000000000000
--- a/app-emulation/ganeti/metadata.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>chutzpah@gentoo.org</email>
- <name>Patrick McLean</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <longdescription lang="en">
- Ganeti is a cluster virtual server management software tool built on top of
- existing virtualization technologies such as Xen or KVM and other Open
- Source software.
-
- Ganeti requires pre-installed virtualization software on your servers in
- order to function. Once installed, the tool will take over the management
- part of the virtual instances (Xen DomU), e.g. disk creation management,
- operating system installation for these instances (in co-operation with
- OS-specific install scripts), and startup, shutdown, failover between
- physical systems. It has been designed to facilitate cluster management of
- virtual servers and to provide fast and simple recovery after physical
- failures using commodity hardware.
- </longdescription>
- <use>
- <flag name="drbd">Enable DRBD support</flag>
- <flag name="haskell-daemons">Build haskell daemons instead of python</flag>
- <flag name="htools">Enable htools support</flag>
- <flag name="kvm">Enable KVM support</flag>
- <flag name="lxc">Enable Linux Countainers support</flag>
- <flag name="multiple-users">Enable support for running VMs as different users</flag>
- <flag name="monitoring">Enable the ganeti monitoring daemon</flag>
- <flag name="restricted-commands">Enable restricted commands in the node daemon</flag>
- <flag name="rbd">Enable rados block device support via sys-cluster/ceph</flag>
- <flag name="xen">Enable Xen support</flag>
- <flag name="experimental">Enable experimental patches. Warning! This will break RPC within major versions if the patches applied differ!</flag>
- </use>
-</pkgmetadata>
diff --git a/app-emulation/genymotion-bin/Manifest b/app-emulation/genymotion-bin/Manifest
index 2b2ccdbf2581..573dc28b4118 100644
--- a/app-emulation/genymotion-bin/Manifest
+++ b/app-emulation/genymotion-bin/Manifest
@@ -1 +1 @@
-DIST genymotion-3.0.2-linux_x64.bin 38744066 BLAKE2B 4c98cdc8d5a5cd98192260893b39dd838bba5903d590268d53223c1ebe712296cf25aa638c16de39ea4f83a5fd8717edbab7c043ff6a12e6455862ecd25ca7cc SHA512 5075d9a9c6c5e84ff90e05e4fa70db98cf89ad25e8765566176b94559f60cc170e383a02f50c752fb63859b757645390d977081d2f79ce0fab8607ebf3e08e01
+DIST genymotion-3.6.0-linux_x64.bin 103911915 BLAKE2B 2c7174404b29a71174fc04de96285475e1800880f79fb70c455539c2a658a305a4cd8a541c545024c3130458081b5a94e493478a47126905fae5e104afbd3efd SHA512 ff05bb91edf05c38d68e3dec16dd21f6fcc50bf31e03411f46b9a3a71ca3f9139705e54b8650c8ab44295a2ebb49aa262e169faecea1f6bb8dd385785440f245
diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
deleted file mode 100644
index c43122636cd3..000000000000
--- a/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2019 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"
-
-DEPEND=""
-RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28 >=app-emulation/virtualbox-bin-5.0.28 )
- virtual/opengl
- || (
- dev-libs/openssl-compat:1.0.0
- =dev-libs/openssl-1.0*:0
- )
- dev-libs/hiredis:0/0.14
- sys-apps/util-linux
-"
-BDEPEND=">=dev-util/patchelf-0.9_p20180129"
-
-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}"/qt.conf
- doins "${MY_PN}"/libicu*
-
- doexe "${MY_PN}"/{libcom,librendering}.so*
- # android library
- doexe "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender}.so*
-
- find "${ED}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed"
-
- doexe "${MY_PN}"/{genymotion,genyshell,player,genymotionadbtunneld,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 e9f14177af8b..3a8cffe9e55b 100644
--- a/app-emulation/glean/Manifest
+++ b/app-emulation/glean/Manifest
@@ -1 +1 @@
-DIST glean-1.10.3.tar.gz 51898 BLAKE2B 95bcee5caae1bdcdc586c8d8ab8097b1dfaa35c521d7b90d128db14f496d4d31e1d0d4c540c4205861e5c7fa87d0e7038227ae9db0e898e3bf43b8b9b989e766 SHA512 27d4f29bf35585f73813e9efdea0253f0be3a8fa059c6ce524fbdd37b865d9c9e10d29bb8f970317ffe772c110cc76f10ae7debce5f7433461639dc63b9349db
+DIST glean-1.23.0.tar.gz 76426 BLAKE2B bca6d2da0393bb28392d3c9ab7708cf4b053e4736203b9c26bc278a52c6a829abead13ecb63ebb60ade9a4127ebba9dd560b75b765c3a168ea389025b07638a0 SHA512 4eca5ccd18bd7864fdecd35b483e5da6a0854c076d0266f802b70b7838de61790c9237f8928807a45d6845fa8ca9a37e2228653326759204483803b28de191ee
diff --git a/app-emulation/glean/glean-1.10.3.ebuild b/app-emulation/glean/glean-1.10.3.ebuild
deleted file mode 100644
index 51ca92a7a2a4..000000000000
--- a/app-emulation/glean/glean-1.10.3.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-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/setuptools[${PYTHON_USEDEP}]
- 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.23.0-r1.ebuild b/app-emulation/glean/glean-1.23.0-r1.ebuild
new file mode 100644
index 000000000000..d5c813a3e0ad
--- /dev/null
+++ b/app-emulation/glean/glean-1.23.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple program to write static config from config-drive"
+HOMEPAGE="https://opendev.org/opendev/glean"
+
+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/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 3414fcec300a..000000000000
--- a/app-emulation/go-secbench/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>
- <longdescription lang="en">
- This tool runs and evaluates the docker security benchmark.
- </longdescription>
-</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/ganeti-instance-image/metadata.xml b/app-emulation/guestfs-tools/metadata.xml
index 7a38bb900964..115e9d64a669 100644
--- a/app-emulation/ganeti-instance-image/metadata.xml
+++ b/app-emulation/guestfs-tools/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/gxemul/Manifest b/app-emulation/gxemul/Manifest
index f2f18056330a..4d1ab5f52d49 100644
--- a/app-emulation/gxemul/Manifest
+++ b/app-emulation/gxemul/Manifest
@@ -1 +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/0.6.0-fix-mkstemp-test.patch b/app-emulation/gxemul/files/0.6.0-fix-mkstemp-test.patch
deleted file mode 100644
index 88883309b909..000000000000
--- a/app-emulation/gxemul/files/0.6.0-fix-mkstemp-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure 2012-11-03 09:08:09.373041529 +0000
-+++ configure.new 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/0.6.0-fix-mymkstemp.patch b/app-emulation/gxemul/files/0.6.0-fix-mymkstemp.patch
deleted file mode 100644
index 80d69f92c827..000000000000
--- a/app-emulation/gxemul/files/0.6.0-fix-mymkstemp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/old_main/misc.cc 2012-11-03 08:47:34.309732354 +0000
-+++ src/old_main/misc.cc.new 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/files/0.6.0-gcc46.patch b/app-emulation/gxemul/files/gxemul-0.6.0-gcc46.patch
index eb0ce26b6e1c..eb0ce26b6e1c 100644
--- a/app-emulation/gxemul/files/0.6.0-gcc46.patch
+++ b/app-emulation/gxemul/files/gxemul-0.6.0-gcc46.patch
diff --git a/app-emulation/gxemul/files/gxemul-0.6.0-no-doxygen.patch b/app-emulation/gxemul/files/gxemul-0.6.0-no-doxygen.patch
new file mode 100644
index 000000000000..ea0a20cba061
--- /dev/null
+++ b/app-emulation/gxemul/files/gxemul-0.6.0-no-doxygen.patch
@@ -0,0 +1,21 @@
+We already have pre-generated docs. Don't bother looking for Doxygen.
+----
+diff --git a/configure b/configure
+index c366701..3895d4f 100755
+--- a/configure
++++ b/configure
+@@ -1106,13 +1106,7 @@ rm -f _test_end*
+
+ printf "checking for Doxygen... "
+
+-if (doxygen --version); then
+- # Version is printed, if found.
+- DOXYGEN=doxygen
+-else
+- # Not found is already printed, if doxygen is not found.
+- DOXYGEN="\#"
+-fi
++DOXYGEN="\#"
+
+
+ ###############################################################################
diff --git a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild b/app-emulation/gxemul/gxemul-0.6.2.ebuild
index c928aefaf117..fbe24c090e49 100644
--- a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild
+++ b/app-emulation/gxemul/gxemul-0.6.2.ebuild
@@ -1,13 +1,13 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="4"
+EAPI=7
-inherit eutils toolchain-funcs
+inherit toolchain-funcs
DESCRIPTION="A Machine Emulator, Mainly emulates MIPS, but supports other CPU types"
HOMEPAGE="http://gxemul.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/gxemul/GXemul/${PV}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/project/gxemul/GXemul/${PV}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
@@ -18,10 +18,14 @@ RDEPEND="X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}
X? ( x11-base/xorg-proto )"
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6.0-gcc46.patch
+ "${FILESDIR}"/${PN}-0.6.0-no-doxygen.patch
+)
+
src_prepare() {
- epatch "${FILESDIR}"/${PV}-gcc46.patch
- epatch "${FILESDIR}"/${PV}-fix-mymkstemp.patch # Bug 441558
- epatch "${FILESDIR}"/${PV}-fix-mkstemp-test.patch # Bug 441558
+ default
+
sed -i configure -e 's|-O3||g' || die "sed configure"
tc-export CC CXX
}
@@ -31,12 +35,14 @@ src_configure() {
./configure \
--disable-valgrind \
$(use debug && echo --debug) \
- $(use X || echo --disable-x) || die "configure failed"
+ $(use X || echo --disable-x) \
+ || die "configure failed"
}
src_install() {
dobin gxemul
doman man/gxemul.1
dodoc HISTORY README
- dohtml -r doc/*
+ 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-sdl-crypto/Manifest b/app-emulation/hercules-sdl-crypto/Manifest
new file mode 100644
index 000000000000..88168d5a0844
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/Manifest
@@ -0,0 +1 @@
+DIST crypto-a5096e5dd79f46b568806240c0824cd8cb2fcda2.tar.gz 81482 BLAKE2B 4e414c66ee3716c17217ac85b658171907b1018bb8b7306c2b040957cb15723f77c32d5b04c5ff12c346e2ac464d16e805c036b7408755a7f1ca40174c031296 SHA512 d55e73d7dfa90da53c173159e32cb733a44780cd8606d539351371e61910f3a82312b8ab9f858b293c89c8f7cc4fe74da86825db2f9a6e73391d95c3f903d94e
diff --git a/app-emulation/hercules-sdl-crypto/files/cmakefix.patch b/app-emulation/hercules-sdl-crypto/files/cmakefix.patch
new file mode 100644
index 000000000000..dd8f1840a7d9
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/files/cmakefix.patch
@@ -0,0 +1,155 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,8 +2,8 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "crypto.LICENSE.txt" DESTINATION . )
+-install( FILES "crypto.README.txt" DESTINATION . )
++install( FILES "crypto.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "crypto.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild
new file mode 100644
index 000000000000..b3f5be08e2fa
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="a5096e5dd79f46b568806240c0824cd8cb2fcda2"
+
+DESCRIPTION="Simple AES/DES encryption and SHA1/SHA2 hashing library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/crypto"
+SRC_URI="https://github.com/SDL-Hercules-390/crypto/archive/${COMMIT}.tar.gz -> crypto-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/crypto-${COMMIT}"
+LICENSE="public-domain MIT BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild
new file mode 100644
index 000000000000..0bfa5e44ea13
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Simple AES/DES encryption and SHA1/SHA2 hashing library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/crypto"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/crypto"
+
+LICENSE="public-domain MIT BSD"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-crypto/metadata.xml b/app-emulation/hercules-sdl-crypto/metadata.xml
new file mode 100644
index 000000000000..8e22c018c0ee
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Simple AES/DES encryption and SHA1/SHA2 hashing library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/crypto</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-decnumber/Manifest b/app-emulation/hercules-sdl-decnumber/Manifest
new file mode 100644
index 000000000000..a6446cde0c06
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/Manifest
@@ -0,0 +1 @@
+DIST decNumber-3aa2f4531b5fcbd0478ecbaf72ccc47079c67280.tar.gz 785702 BLAKE2B c7348c33dfdad046f79fc8112800e31b8010a0aa0acbca0e84d21e0f4ba366969a4c453d07ed8a3fdb79735850f17d71e66731a9b2db6d64781309f2c2861f8e SHA512 dad1c2d271f5739ac99850ac90ad45209e8efc80c20d29210f2f5b911b10ffc12a039e1bf6a7b8a171869a63ecad9bc8dfcf95161273385974b03221bd538a74
diff --git a/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch b/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch
new file mode 100644
index 000000000000..42e461d92e24
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch
@@ -0,0 +1,159 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,10 +2,10 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "decnumber.ICU-license.html" DESTINATION . )
+-install( FILES "decnumber.pdf" DESTINATION . )
+-install( FILES "decnumber.readme.txt" DESTINATION . )
+-install( FILES "decnumber.ERRATA" DESTINATION . )
++install( FILES "decnumber.ICU-license.html" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.pdf" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.readme.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.ERRATA" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild
new file mode 100644
index 000000000000..1b93ffd36baf
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="3aa2f4531b5fcbd0478ecbaf72ccc47079c67280"
+
+DESCRIPTION="ANSI C General Decimal Arithmetic Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/decNumber"
+SRC_URI="https://github.com/SDL-Hercules-390/decNumber/archive/${COMMIT}.tar.gz -> decNumber-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/decNumber-${COMMIT}"
+LICENSE="icu"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild
new file mode 100644
index 000000000000..6c8be1db358a
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="ANSI C General Decimal Arithmetic Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/decNumber"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/decNumber"
+
+LICENSE="icu"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-decnumber/metadata.xml b/app-emulation/hercules-sdl-decnumber/metadata.xml
new file mode 100644
index 000000000000..54d5e56d442d
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ ANSI C General Decimal Arithmetic Library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/decNumber</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-softfloat/Manifest b/app-emulation/hercules-sdl-softfloat/Manifest
new file mode 100644
index 000000000000..f2f732c98ab5
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/Manifest
@@ -0,0 +1 @@
+DIST SoftFloat-4b0c326008e174610969c92e69178939ed80653d.tar.gz 237236 BLAKE2B 4d29161ebdb1b659a61a7c83cb2c5eee1b0874455d0e6f634d2fb70a4dd0200c0bd46961edf9e7f41fd84695278653e1073c2b0fe39bf252ca7242bafdcf6adc SHA512 549b144c63fdbbb0815650dfe9fb443a92fb8baeff33baeca1d25fa6226705ef149a1bdb80236c5debeb161bfaecd4cffe9f8d74298a83175c2ddeebb735c48c
diff --git a/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch b/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch
new file mode 100644
index 000000000000..21796e3cda00
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch
@@ -0,0 +1,159 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,10 +2,10 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "softfloat.LICENSE.txt" DESTINATION . )
+-install( FILES "softfloat.README.txt" DESTINATION . )
+-install( FILES "softfloat.README.html" DESTINATION . )
+-install( DIRECTORY "doc/" DESTINATION doc )
++install( FILES "softfloat.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "softfloat.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "softfloat.README.html" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( DIRECTORY "doc/" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild
new file mode 100644
index 000000000000..562f9aca52d4
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="4b0c326008e174610969c92e69178939ed80653d"
+
+DESCRIPTION="Berkeley IEEE Binary Floating-Point Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/SoftFloat"
+SRC_URI="https://github.com/SDL-Hercules-390/SoftFloat/archive/${COMMIT}.tar.gz -> SoftFloat-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/SoftFloat-${COMMIT}"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild
new file mode 100644
index 000000000000..aa8e20b71b90
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Berkeley IEEE Binary Floating-Point Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/SoftFloat"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/SoftFloat"
+
+LICENSE="BSD"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-softfloat/metadata.xml b/app-emulation/hercules-sdl-softfloat/metadata.xml
new file mode 100644
index 000000000000..36219eca3e6d
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Berkeley IEEE Binary Floating-Point Library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/SoftFloat</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-telnet/Manifest b/app-emulation/hercules-sdl-telnet/Manifest
new file mode 100644
index 000000000000..a5e4cdf3a866
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/Manifest
@@ -0,0 +1 @@
+DIST telnet-729f0b688c1426018112c1e509f207fb5f266efa.tar.gz 67277 BLAKE2B 720b292adbe6c1273221d57f74018c08c529b5766dbe623f04af5b14ec3fa9c56f749395aa0f365da97b90a08549e378afbbd3634e4e11cd0418fa0f80d85a9c SHA512 e44df68cfba85b4f2e235c6b830cf89a10d66c635cfec933843c1695bdac33bf307b2e66c965a8b853723c2fd02419c40f80bcf6098be98f01472d9c3cebf1dd
diff --git a/app-emulation/hercules-sdl-telnet/files/cmakefix.patch b/app-emulation/hercules-sdl-telnet/files/cmakefix.patch
new file mode 100644
index 000000000000..76fd8513213a
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/files/cmakefix.patch
@@ -0,0 +1,155 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,8 +2,8 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "telnet.LICENSE.txt" DESTINATION . )
+-install( FILES "telnet.README.txt" DESTINATION . )
++install( FILES "telnet.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "telnet.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild
new file mode 100644
index 000000000000..edd973959b15
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="729f0b688c1426018112c1e509f207fb5f266efa"
+
+DESCRIPTION="Simple RFC-complient TELNET implementation"
+HOMEPAGE="https://github.com/SDL-Hercules-390/telnet"
+SRC_URI="https://github.com/SDL-Hercules-390/telnet/archive/${COMMIT}.tar.gz -> telnet-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/telnet-${COMMIT}"
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild
new file mode 100644
index 000000000000..f819096dd87c
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Simple RFC-complient TELNET implementation"
+HOMEPAGE="https://github.com/SDL-Hercules-390/telnet"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/telnet"
+
+LICENSE="public-domain"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-telnet/metadata.xml b/app-emulation/hercules-sdl-telnet/metadata.xml
new file mode 100644
index 000000000000..7514393f2230
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Simple RFC-complient TELNET implementation for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/telnet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl/Manifest b/app-emulation/hercules-sdl/Manifest
new file mode 100644
index 000000000000..ef0e4456cb66
--- /dev/null
+++ b/app-emulation/hercules-sdl/Manifest
@@ -0,0 +1 @@
+DIST hercules-sdl-4.7.tar.gz 25439384 BLAKE2B 78a8d2df947c80e23d0e956a25a4f009dd32b09f2834cc06373f685badf9f1e657bf0f4e4408c7085371c46085718998076f3a6063caf80c9161b1fa7caa91eb SHA512 9d7060c4e2687358b9547b59b47362d642cbf2bf009085fdd41e485170d0f81029ee3d04d12b905a3a266cd26a9087e92c231c3f4600c32a8535a6140656b7b0
diff --git a/app-emulation/hercules-sdl/files/gen_hashes.sh b/app-emulation/hercules-sdl/files/gen_hashes.sh
new file mode 100644
index 000000000000..bb499392a4a5
--- /dev/null
+++ b/app-emulation/hercules-sdl/files/gen_hashes.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+[[ -z "${1}" ]] && exit 1
+[[ "${1}" =~ [0-9]+\.[0-9]+\.[0-9]+ ]] || exit 1
+
+CLONEDIR="$(mktemp -d)"
+for f in "hyperion" "crypto" "decNumber" "SoftFloat" "telnet"
+do
+ git -C "${CLONEDIR}" clone --tags "https://github.com/SDL-Hercules-390/${f}"
+done
+
+VERSIONARR=( ${1//./ })
+VERSIONTAG="Release_${VERSIONARR[0]}.${VERSIONARR[1]}"
+[[ "${VERSIONARR[2]}" == "0" ]] || VERSIONTAG=".${VERSIONARR[2]}"
+RELEASEDATE="$(git -C "${CLONEDIR}/hyperion" show -s --format="%ci" "${VERSIONTAG}")"
+
+echo
+for f in "crypto" "decNumber" "SoftFloat" "telnet"
+do
+ echo -n "${f,,}: "
+ git -C "${CLONEDIR}/${f}" rev-list -n 1 --first-parent --before="${RELEASEDATE}" master
+done
+
+rm -rf "${CLONEDIR}"
diff --git a/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch b/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch
new file mode 100644
index 000000000000..50b30cca91dd
--- /dev/null
+++ b/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch
@@ -0,0 +1,29 @@
+diff --git a/html/Makefile.am b/html/Makefile.am
+index b4d21d0..1e5af4c 100644
+--- a/html/Makefile.am
++++ b/html/Makefile.am
+@@ -1,5 +1,5 @@
+
+-dist_pkgdata_DATA = \
++dist_html_DATA = \
+ cckddasd.html \
+ fishgui.html \
+ hercconf.html \
+@@ -62,7 +62,7 @@ include_sources = \
+ include/footer.htmlpart \
+ include/header.htmlpart
+
+-include_pkgdatadir = $(pkgdatadir)/include
++include_pkgdatadir = $(htmldir)/include
+
+ dist_include_pkgdata_DATA = $(include_sources)
+
+@@ -120,7 +120,7 @@ images_sources = \
+ images/waitoffu.gif \
+ images/waitonu.gif
+
+-images_pkgdatadir = $(pkgdatadir)/images
++images_pkgdatadir = $(htmldir)/images
+
+ dist_images_pkgdata_DATA = $(images_sources)
+
diff --git a/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild b/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild
new file mode 100644
index 000000000000..336396af8692
--- /dev/null
+++ b/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="The SoftDevLabs (SDL) version of the Hercules 4.x Hyperion Emulator"
+HOMEPAGE="https://sdl-hercules-390.github.io/html/"
+SRC_URI="https://github.com/SDL-Hercules-390/hyperion/archive/refs/tags/Release_${PV/.0/}.tar.gz -> ${P/.0/}.tar.gz"
+
+S="${WORKDIR}/hyperion-Release_${PV/.0/}"
+LICENSE="QPL-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+# In theory USE=object-rexx and USE=regina-rexx are not mutually-exclusive.
+# In practice they functionally are as the Gentoo packages conflict, and
+# additionally Hercules only supports calling out to one of them at runtime,
+# controlled by the HREXX_PACKAGE environment variable.
+IUSE="bzip2 debug object-rexx regina-rexx test"
+RESTRICT="!test? ( test )"
+FILECAPS=(
+ -M 755 cap_sys_nice\=eip usr/bin/hercules --
+ -M 755 cap_sys_nice\=eip usr/bin/herclin --
+ -M 755 cap_net_admin+ep usr/bin/hercifc
+)
+
+RDEPEND="
+ dev-libs/libltdl
+ net-libs/libnsl:0
+ sys-libs/zlib
+ bzip2? ( app-arch/bzip2 )
+ object-rexx? ( dev-lang/oorexx )
+ regina-rexx? ( dev-lang/regina-rexx )"
+DEPEND="${RDEPEND}
+ ~app-emulation/hercules-sdl-crypto-${PV}
+ ~app-emulation/hercules-sdl-decnumber-${PV}
+ ~app-emulation/hercules-sdl-softfloat-${PV}
+ ~app-emulation/hercules-sdl-telnet-${PV}"
+# Neither package support needs to be compiled-in for tests,
+# but the "rexx" command needs to be available
+BDEPEND="${RDEPEND}
+ test? ( || ( dev-lang/regina-rexx dev-lang/oorexx ) )"
+
+PATCHES=( "${FILESDIR}/${PN}-4.4.1-htmldir.patch" )
+
+src_prepare() {
+ rm -rf crypto decNumber SoftFloat telnet || die
+ sed -i 's#/lib${hc_cv_pkg_lib_subdir}#/lib#g' configure.ac || die
+ sed -i 's#_pkgname}${hc_cv_pkg_lib_suffix}#_pkgname}#g' configure.ac || die
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2)
+ econf \
+ $(use_enable bzip2 cckd-bzip2) \
+ $(use_enable bzip2 het-bzip2) \
+ $(use_enable object-rexx) \
+ $(use_enable regina-rexx) \
+ $(use_enable debug) \
+ --enable-custom="Gentoo ${PF}.ebuild" \
+ --disable-optimization \
+ --disable-setuid-hercifc \
+ --disable-capabilities \
+ --enable-ipv6 \
+ --enable-enhanced-configincludes \
+ --disable-fthreads \
+ --enable-shared \
+ --enable-automatic-operator \
+ --enable-extpkgs="${SYSROOT}/usr/$(get_libdir)/${PN}"
+}
+
+src_install() {
+ default
+ dodoc RELEASE.NOTES
+
+ insinto /usr/share/hercules
+ doins hercules.cnf
+
+ # No static archives. Have to leave .la files for modules. #720342
+ find "${ED}/usr/$(get_libdir)" -name "*.la" -delete || die
+}
diff --git a/app-emulation/hercules-sdl/metadata.xml b/app-emulation/hercules-sdl/metadata.xml
new file mode 100644
index 000000000000..c7d581937769
--- /dev/null
+++ b/app-emulation/hercules-sdl/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ This version of Hercules 4.x Hyperion is a SoftDevLabs maintained version of the Hercules emulator containing fixes made by David B. Trout and others for bugs that may still exist in the original hercules-390 version of Hercules 4.0 Hyperion, as well as enhancements and improvements to the overall functionality above and beyond what is provided by the hercules-390 version of Hercules.
+ </longdescription>
+ <use>
+ <flag name="object-rexx">Enable REXX support via Open Object Rexx (<pkg>dev-lang/oorexx</pkg>)</flag>
+ <flag name="regina-rexx">Enable REXX support via Regina Rexx (<pkg>dev-lang/regina-rexx</pkg>)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/hyperion</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules/Manifest b/app-emulation/hercules/Manifest
index 773ff82ff9da..9d2aef8825b5 100644
--- a/app-emulation/hercules/Manifest
+++ b/app-emulation/hercules/Manifest
@@ -1,2 +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-htmldir.patch b/app-emulation/hercules/files/hercules-3.13-htmldir.patch
new file mode 100644
index 000000000000..962611b87edd
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.13-htmldir.patch
@@ -0,0 +1,25 @@
+--- a/html/Makefile.am
++++ b/html/Makefile.am
+@@ -1,4 +1,4 @@
+-dist_pkgdata_DATA = cckddasd.html fishgui.html hercconf.html hercfaq.html \
++dist_html_DATA = cckddasd.html fishgui.html hercconf.html hercfaq.html \
+ hercinst.html herclic.html hercload.html hercmsca.html hercmscf.html \
+ hercmscp.html hercmsct.html hercmscu.html hercmsda.html hercmsdc.html \
+ hercmsdg.html hercmsdi.html hercmsdl.html hercmsds.html hercmsdt.html \
+@@ -12,7 +12,7 @@
+
+ include_sources = include/header.htmlpart include/footer.htmlpart
+
+-include_pkgdatadir = $(pkgdatadir)/include
++include_pkgdatadir = $(htmldir)/include
+
+ dist_include_pkgdata_DATA = $(include_sources)
+
+@@ -33,6 +33,6 @@
+ images/interruptu.gif images/redu.gif images/waitonu.gif \
+ images/loadd.gif images/restartd.gif
+
+-images_pkgdatadir = $(pkgdatadir)/images
++images_pkgdatadir = $(htmldir)/images
+
+ dist_images_pkgdata_DATA = $(images_sources)
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
new file mode 100644
index 000000000000..c96831d96ad2
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch
@@ -0,0 +1,379 @@
+--- a/bootstrap.c
++++ b/bootstrap.c
+@@ -11,7 +11,7 @@
+ #include "hstdinc.h"
+ #include "hercules.h"
+ #if defined(HDL_USE_LIBTOOL)
+-#include "ltdl.h"
++#include <ltdl.h>
+ #endif
+
+ #if !defined( _MSVC_ )
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,7 +12,7 @@
+ AC_REVISION($Revision$) # (the version of this configure.ac)
+ AC_CONFIG_AUX_DIR(autoconf) # (directory containing auxillary build tools)
+ AM_INIT_AUTOMAKE(hercules,3.13) # (the version of our software package)
+-AM_CONFIG_HEADER(config.h) # (the file the resulting configure script will produce)
++AC_CONFIG_HEADERS(config.h) # (the file the resulting configure script will produce)
+ AM_MAINTAINER_MODE()
+ AC_CANONICAL_HOST() # (sets $host_cpu, $host_vendor, and $host_os)
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+@@ -38,154 +38,8 @@
+ modexecdir='$(libdir)/$(PACKAGE)'
+ AC_SUBST(modexecdir)
+
+-
+-# -----------------------------------------------------------------------------
+-#
+-# AC_LIBTOOL_DLOPEN
+-#
+-# Enable checking for dlopen support. This macro should be used if the
+-# package makes use of the '-dlopen' and '-dlpreopen' flags, otherwise
+-# libtool will assume that the system does not support dlopening. The
+-# macro must be called before AC_PROG_LIBTOOL.
+-#
+-# -----------------------------------------------------------------------------
+-
+-AC_LIBTOOL_DLOPEN() # (we need libtool's dlopen support)
+-
+-
+-# -----------------------------------------------------------------------------
+-#
+-# AC_LIBTOOL_WIN32_DLL
+-#
+-# This macro should be used if the package has been ported to build
+-# clean dlls on win32 platforms. Usually this means that any library
+-# data items are exported with __declspec(dllexport) and imported with
+-# __declspec(dllimport). If this macro is not used, libtool will assume
+-# that the package libraries are not dll clean and will build only static
+-# libraries on win32 hosts.
+-#
+-# This macro must be called before AC_PROG_LIBTOOL, and provision must
+-# be made to pass '-no-undefined' to libtool in link mode from the package
+-# Makefile. Naturally, if you pass '-no-undefined', you must ensure that
+-# all the library symbols really are defined at link time!
+-#
+-# -----------------------------------------------------------------------------
+-
+-AC_LIBTOOL_WIN32_DLL() # (we need Win32 support in libtool)
+-
+-
+-# -----------------------------------------------------------------------------
+-# See: 'AC_PROG_LIBTOOL' below.
+-# -----------------------------------------------------------------------------
+-
+-AC_DISABLE_STATIC() # (forces libtool to build shared
+-
+- # libraries instead of static ones)
+-# -----------------------------------------------------------------------------
+-# AC_PROG_LIBTOOL
+-#
+-# Add support for the '--enable-shared' and '--disable-shared'
+-# configure flags. By default, this macro turns on shared libraries
+-# if they are available, and also enables static libraries if they
+-# don't conflict with the shared libraries. You can modify these
+-# defaults by calling either the AC_DISABLE_SHARED or AC_DISABLE_STATIC
+-# macros.
+-#
+-# Hercules REQUIRES shared libraries (i.e. DLLs), so we do indeed use
+-# the AC_DISABLE_STATIC macro above.
+-#
+-# -----------------------------------------------------------------------------
+-
+-AC_PROG_LIBTOOL() # (we build libtool for ourselves)
+-
+-
+-# -----------------------------------------------------------------------------
+-#
+-# AC_LIB_LTDL
+-#
+-# Even though libltdl is installed together with libtool, you may wish
+-# to include libltdl in the distribution of your package, for the convenience
+-# of users of your package that don't have libtool or libltdl installed.
+-#
+-# The most simplistic way to add libltdl to your package is to copy the
+-# source files, 'ltdl.c' and 'ltdl.h', to a source directory withing your
+-# package and to build and link them along with the rest of your sources.
+-#
+-# To do this, you must add a call to the 'AC_LIB_LTDL' macro to your package's
+-# 'configure.in' to perform the required configure time checks in order that
+-# 'ltdl.o' is built correctly.
+-#
+-# This method does have its problems though: if you try to link the package
+-# binaries with an installed libltdl, or a library which depends on libltdl,
+-# you may have problems with duplicate symbol definitions.
+-#
+-# In order to enable this flavor of libltdl, you should add the line
+-# 'AC_LIBLTDL_CONVENIENCE' to your `configure.in', before 'AC_PROG_LIBTOOL'.
+-#
+-# In order to select the installable version of libltdl, you should add a
+-# call of the macro 'AC_LIBLTDL_INSTALLABLE' to your 'configure.in' before
+-# 'AC_PROG_LIBTOOL'. This macro will check whether libltdl is already
+-# installed and, if not, request the libltdl embedded in your package to be
+-# built and installed.
+-#
+-# Whatever macro you use, it is up to you to ensure that your 'configure.in'
+-# will configure libltdl, using 'AC_CONFIG_SUBDIRS', and that your 'Makefile's
+-# will start sub-makes within libltdl's directory, using automake's SUBDIRS,
+-# for example. Both macros define the shell variables LIBLTDL, to the link flag
+-# that you should use to link with libltdl, and LTDLINCL, to the preprocessor
+-# flag that you should use to compile with programs that include 'ltdl.h'. It
+-# is up to you to use 'AC_SUBST' to ensure that this variable will be available
+-# in 'Makefile's, or add them to variables that are 'AC_SUBST'ed by default,
+-# such as LIBS and CPPFLAGS.
+-#
+-# So, when you want to link a program with libltdl, be it a convenience,
+-# installed or installable library, just compile with '$(LTDLINCL)' and link
+-# it with '$(LIBLTDL)', using libtool.
+-#
+-# You should probably also add 'AC_LIBTOOL_DLOPEN' to your 'configure.in' before
+-# 'AC_PROG_LIBTOOL', otherwise libtool will assume no dlopening mechanism is
+-# supported, and revert to dlpreopening, which is probably not what you want.
+-#
+-# The following example shows you how to embed the convenience libltdl
+-# in your package. In order to use the installable variant just replace
+-# 'AC_LIBLTDL_CONVENIENCE' with 'AC_LIBLTDL_INSTALLABLE'. We assume that libltdl
+-# was embedded using 'libtoolize --ltdl':
+-#
+-# configure.in:
+-#
+-# ...
+-# dnl Enable building of the convenience library
+-# dnl and set LIBLTDL accordingly
+-# AC_LIBLTDL_CONVENIENCE
+-# dnl Substitute LTDLINCL and LIBLTDL in the Makefiles
+-# AC_SUBST(LTDLINCL)
+-# AC_SUBST(LIBLTDL)
+-# dnl Check for dlopen support
+-# AC_LIBTOOL_DLOPEN
+-# dnl Configure libtool
+-# AC_PROG_LIBTOOL
+-# dnl Configure libltdl
+-# AC_CONFIG_SUBDIRS(libltdl)
+-# ...
+-#
+-# Makefile.am:
+-#
+-# ...
+-# SUBDIRS = libltdl
+-#
+-# INCLUDES = $(LTDLINCL)
+-#
+-# myprog_LDFLAGS = -export-dynamic
+-# # The quotes around -dlopen below fool automake <= 1.4 into accepting it
+-# myprog_LDADD = $(LIBLTDL) "-dlopen" self "-dlopen" foo1.la
+-# myprog_DEPENDENCIES = $(LIBLTDL) foo1.la
+-# ...
+-#
+-# -----------------------------------------------------------------------------
+-
+-AC_LIB_LTDL() # (we need the ltdl libtool library)
+-AC_SUBST([LIBTOOL_DEPS]) # (see PROGRAMMING NOTE above)
+-
++LT_PREREQ([2.2.6])
++LT_INIT([dlopen win32-dll disable-static])
+
+ # -----------------------------------------------------------------------------
+ # (See comments in the 'AC_CHECK_LIB' Libraries section further below)
+--- a/crypto/Makefile.am
++++ b/crypto/Makefile.am
+@@ -23,7 +23,6 @@
+
+ if OPTION_DYNAMIC_LOAD
+ DYNSRC =
+- LTDL = ../ltdl.c
+
+ DYNMOD_LD_FLAGS = -module \
+ -no-undefined \
+@@ -31,7 +30,7 @@
+ -export-dynamic \
+ -avoid-version
+
+- DYNMOD_LD_ADD = $(LDADD)
++ DYNMOD_LD_ADD = $(LDADD) -lltdl
+
+ LIB_LD_FLAGS = -export-dynamic \
+ $(XSTATIC) \
+@@ -39,7 +38,6 @@
+ -avoid-version
+ else
+ DYNSRC = $(dyndev_SRC)
+- LTDL =
+ DYNMOD_LD_FLAGS =
+ DYNMOD_LD_ADD =
+ LIB_LD_FLAGS = $(XSTATIC) \
+--- a/decNumber/Makefile.am
++++ b/decNumber/Makefile.am
+@@ -37,13 +37,13 @@
+ endif
+
+ if OPTION_DYNAMIC_LOAD
+- LTDL = ../ltdl.c
++ LIB_LD_ADD = -lltdl
+ LIB_LD_FLAGS = -export-dynamic \
+ $(XSTATIC) \
+ -no-undefined \
+ -avoid-version
+ else
+- LTDL =
++ LIB_LD_ADD =
+ LIB_LD_FLAGS = $(XSTATIC) \
+ -no-undefined \
+ -avoid-version
+@@ -56,7 +56,7 @@
+
+ libdecNumber_la_SOURCES = $(decNumber_SRC)
+ libdecNumber_la_LDFLAGS = $(LIB_LD_FLAGS)
+- libdecNumber_la_LIBADD = $(LDADD)
++ libdecNumber_la_LIBADD = $(LDADD) $(LIB_LD_ADD)
+
+ noinst_HEADERS = decContext.h \
+ decDPD.h \
+--- a/fillfnam.c
++++ b/fillfnam.c
+@@ -5,6 +5,8 @@
+ #include "hercules.h"
+ #include "fillfnam.h"
+
++#include <dirent.h>
++
+ /* On Solaris 2.9 (SunOS 5.9) and earlier, there is no scandir
+ and alphasort function. In this case fillfnam does nothing
+ and the tab command is effectively a no-operation */
+--- a/herclin.c
++++ b/herclin.c
+@@ -26,7 +26,7 @@
+ /* This must be included if HDL uses the */
+ /* libtool ltdl convenience library */
+
+-#include "ltdl.h"
++#include <ltdl.h>
+ #endif
+
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -98,7 +98,7 @@
+
+ if OPTION_DYNAMIC_LOAD
+ DYNSRC =
+- LTDL = ltdl.c
++ LIB_LD_ADD = -lltdl
+
+ DYNMOD_LD_FLAGS = -module \
+ -no-undefined \
+@@ -109,7 +109,8 @@
+ DYNMOD_LD_ADD = libherc.la \
+ libhercs.la \
+ libhercu.la \
+- $(LDADD)
++ $(LDADD) \
++ $(LIB_LD_ADD)
+
+ LIB_LD_FLAGS = -export-dynamic \
+ $(XSTATIC) \
+@@ -117,7 +118,6 @@
+ -avoid-version
+ else
+ DYNSRC = $(dyndev_SRC)
+- LTDL =
+ DYNMOD_LD_FLAGS =
+ DYNMOD_LD_ADD =
+ LIB_LD_FLAGS = $(XSTATIC) \
+@@ -295,12 +295,11 @@
+ memrchr.c \
+ parser.c \
+ pttrace.c \
+- $(FTHREADS) \
+- $(LTDL)
++ $(FTHREADS)
+
+ 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) \
+ $(extra_SRC) \
+- $(dyndev_SRC) \
+- ltdl.c
++ $(dyndev_SRC)
+
+ libherc_la_LDFLAGS = $(LIB_LD_FLAGS)
+
+@@ -383,7 +381,8 @@
+ libhercd.la \
+ decNumber/libdecNumber.la \
+ softfloat/libsoftfloat.la \
+- $(LDADD)
++ $(LDADD) \
++ $(LIB_LD_ADD)
+
+ #
+ # THIS is the hercules executable.
+@@ -440,7 +439,7 @@
+ hercules_SOURCES = bootstrap.c \
+ hdlmain.c
+
+- hercules_LDADD = libherc.la libhercs.la $(LDADD)
++ hercules_LDADD = libherc.la libhercs.la $(LDADD) $(LIB_LD_ADD)
+
+ hercules_LDFLAGS = $(HLDFLAGS)
+
+@@ -656,7 +655,6 @@
+ hdl.h \
+ crypto.h \
+ sockdev.h \
+- ltdl.h \
+ herc_getopt.h \
+ service.h \
+ chsc.h \
+--- a/softfloat/Makefile.am
++++ b/softfloat/Makefile.am
+@@ -22,13 +22,11 @@
+ endif
+
+ if OPTION_DYNAMIC_LOAD
+- LTDL = ../ltdl.c
+ LIB_LD_FLAGS = -export-dynamic \
+ $(XSTATIC) \
+ -no-undefined \
+ -avoid-version
+ else
+- LTDL =
+ 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.10.ebuild b/app-emulation/hercules/hercules-3.10.ebuild
deleted file mode 100644
index 605f69a08dbb..000000000000
--- a/app-emulation/hercules/hercules-3.10.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="4"
-
-inherit flag-o-matic eutils
-
-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}"
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-3.09-aliasing.patch
-
- # 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
-}
-
-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
- dohtml -r html
-}
diff --git a/app-emulation/hercules/hercules-3.12.ebuild b/app-emulation/hercules/hercules-3.13-r1.ebuild
index b9b49d82dbf8..608739f4b314 100644
--- a/app-emulation/hercules/hercules-3.12.ebuild
+++ b/app-emulation/hercules/hercules-3.13-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="5"
+EAPI="7"
-inherit flag-o-matic eutils
+inherit autotools flag-o-matic
DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
HOMEPAGE="http://www.hercules-390.eu/"
@@ -11,26 +11,39 @@ 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.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() {
- epatch "${FILESDIR}"/${PN}-3.09-aliasing.patch
+ 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
- echo "install-modexecLTLIBRARIES: install-libLTLIBRARIES" >> Makefile.in
+ echo "install-modexecLTLIBRARIES: install-libLTLIBRARIES" >> Makefile.in || die
}
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) \
@@ -41,8 +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
- dohtml -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/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.ebuild b/app-emulation/img/img-0.5.7.ebuild
deleted file mode 100644
index 21373b5f486d..000000000000
--- a/app-emulation/img/img-0.5.7.ebuild
+++ /dev/null
@@ -1,31 +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/genuinetools/img"
-GIT_COMMIT="d14bb92b69804443263d647647b0833013b8df91"
-ARCHIVE_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Standalone daemon-less unprivileged Dockerfile and OCI container image builder"
-HOMEPAGE="https://github.com/genuinetools/img"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="MIT"
-SLOT="0"
-IUSE="seccomp"
-
-RESTRICT="test"
-
-src_compile() {
- local TAGS=$(usex seccomp 'seccomp' '')
- pushd src/${EGO_PN} || die
- GOPATH="${S}" go build -mod vendor -tags "noembed ${TAGS}" -v -ldflags "-X ${EGO_PN}/version.GITCOMMIT=${GIT_COMMIT} -X ${EGO_PN}/version.VERSION=${PV}" -o "${S}"/bin/img . || die
- popd || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/README.md
-}
diff --git a/app-emulation/img/metadata.xml b/app-emulation/img/metadata.xml
deleted file mode 100644
index 7213eb804f94..000000000000
--- a/app-emulation/img/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">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 6262daaf7558..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,ROADMAP,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/kompose/metadata.xml b/app-emulation/kompose/metadata.xml
deleted file mode 100644
index b51c11e319ef..000000000000
--- a/app-emulation/kompose/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/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-0.1.2-underlinking.patch b/app-emulation/libcacard/files/libcacard-0.1.2-underlinking.patch
deleted file mode 100644
index 086508fca2c1..000000000000
--- a/app-emulation/libcacard/files/libcacard-0.1.2-underlinking.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-Fix underlinking issues caused by missing -pthread flag:
-* libtool: link: x86_64-pc-linux-gnu-gcc -O2 -pipe -march=sandybridge --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=4096 -Wl,-O1 -Wl,--as-needed -o .libs/vscclient vscclient.o ./.libs/libcacard.so -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4
-* vscclient.o:vscclient.c:function main: error: undefined reference to 'pthread_create'
-See also: https://bugs.gentoo.org/show_bug.cgi?id=494450
-
---- libcacard-0.1.2/configure.ac
-+++ libcacard-0.1.2/configure.ac
-@@ -69,6 +69,11 @@
- fi
- ])
-
-+dnl Pthread handling
-+AX_PTHREAD
-+CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}"
-+LIBS="${LIBS} ${PTHREAD_CFLAGS} ${PTHREAD_LIBS}"
-+
- dnl handle the passthru option. passthru allows you to access the cards directly
- AC_ARG_ENABLE(passthru,
- AC_HELP_STRING([--enable-passthru], [allow passthru mode]),
---- libcacard-0.1.2/m4/ax_pthread.m4
-+++ libcacard-0.1.2/m4/ax_pthread.m4
-@@ -0,0 +1,332 @@
-+# ===========================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-+#
-+# DESCRIPTION
-+#
-+# This macro figures out how to build C programs using POSIX threads. It
-+# sets the PTHREAD_LIBS output variable to the threads library and linker
-+# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
-+# flags that are needed. (The user can also force certain compiler
-+# flags/libs to be tested by setting these environment variables.)
-+#
-+# Also sets PTHREAD_CC to any special C compiler that is needed for
-+# multi-threaded programs (defaults to the value of CC otherwise). (This
-+# is necessary on AIX to use the special cc_r compiler alias.)
-+#
-+# NOTE: You are assumed to not only compile your program with these flags,
-+# but also link it with them as well. e.g. you should link with
-+# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
-+#
-+# If you are only building threads programs, you may wish to use these
-+# variables in your default LIBS, CFLAGS, and CC:
-+#
-+# LIBS="$PTHREAD_LIBS $LIBS"
-+# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+# CC="$PTHREAD_CC"
-+#
-+# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-+# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
-+# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
-+#
-+# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
-+# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
-+# PTHREAD_CFLAGS.
-+#
-+# ACTION-IF-FOUND is a list of shell commands to run if a threads library
-+# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
-+# is not found. If ACTION-IF-FOUND is not specified, the default action
-+# will define HAVE_PTHREAD.
-+#
-+# Please let the authors know if this macro fails on any platform, or if
-+# you have any other suggestions or comments. This macro was based on work
-+# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
-+# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
-+# Alejandro Forero Cuervo to the autoconf macro repository. We are also
-+# grateful for the helpful feedback of numerous users.
-+#
-+# Updated for Autoconf 2.68 by Daniel Richard G.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-+# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
-+#
-+# This program 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, either version 3 of the License, or (at your
-+# option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-+# Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License along
-+# with this program. If not, see <http://www.gnu.org/licenses/>.
-+#
-+# As a special exception, the respective Autoconf Macro's copyright owner
-+# gives unlimited permission to copy, distribute and modify the configure
-+# scripts that are the output of Autoconf when processing the Macro. You
-+# need not follow the terms of the GNU General Public License when using
-+# or distributing such scripts, even though portions of the text of the
-+# Macro appear in them. The GNU General Public License (GPL) does govern
-+# all other use of the material that constitutes the Autoconf Macro.
-+#
-+# This special exception to the GPL applies to versions of the Autoconf
-+# Macro released by the Autoconf Archive. When you make and distribute a
-+# modified version of the Autoconf Macro, you may extend this special
-+# exception to the GPL to apply to your modified version as well.
-+
-+#serial 21
-+
-+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
-+AC_DEFUN([AX_PTHREAD], [
-+AC_REQUIRE([AC_CANONICAL_HOST])
-+AC_LANG_PUSH([C])
-+ax_pthread_ok=no
-+
-+# We used to check for pthread.h first, but this fails if pthread.h
-+# requires special compiler flags (e.g. on True64 or Sequent).
-+# It gets checked for in the link test anyway.
-+
-+# First of all, check if the user has set any of the PTHREAD_LIBS,
-+# etcetera environment variables, and if threads linking works using
-+# them:
-+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-+ save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+ save_LIBS="$LIBS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
-+ AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
-+ AC_MSG_RESULT([$ax_pthread_ok])
-+ if test x"$ax_pthread_ok" = xno; then
-+ PTHREAD_LIBS=""
-+ PTHREAD_CFLAGS=""
-+ fi
-+ LIBS="$save_LIBS"
-+ CFLAGS="$save_CFLAGS"
-+fi
-+
-+# We must check for the threads library under a number of different
-+# names; the ordering is very important because some systems
-+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-+# libraries is broken (non-POSIX).
-+
-+# Create a list of thread flags to try. Items starting with a "-" are
-+# C compiler flags, and other items are library names, except for "none"
-+# which indicates that we try without any flags at all, and "pthread-config"
-+# which is a program returning the flags for the Pth emulation library.
-+
-+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-+
-+# The ordering *is* (sometimes) important. Some notes on the
-+# individual items follow:
-+
-+# pthreads: AIX (must check this before -lpthread)
-+# none: in case threads are in libc; should be tried before -Kthread and
-+# other compiler flags to prevent continual compiler warnings
-+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-+# -pthreads: Solaris/gcc
-+# -mthreads: Mingw32/gcc, Lynx/gcc
-+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-+# doesn't hurt to check since this sometimes defines pthreads too;
-+# also defines -D_REENTRANT)
-+# ... -mt is also the pthreads flag for HP/aCC
-+# pthread: Linux, etcetera
-+# --thread-safe: KAI C++
-+# pthread-config: use pthread-config program (for GNU Pth library)
-+
-+case ${host_os} in
-+ solaris*)
-+
-+ # On Solaris (at least, for some versions), libc contains stubbed
-+ # (non-functional) versions of the pthreads routines, so link-based
-+ # tests will erroneously succeed. (We need to link with -pthreads/-mt/
-+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
-+ # a function called by this macro, so we could check for that, but
-+ # who knows whether they'll stub that too in a future libc.) So,
-+ # we'll just look for -pthreads and -lpthread first:
-+
-+ ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
-+ ;;
-+
-+ darwin*)
-+ ax_pthread_flags="-pthread $ax_pthread_flags"
-+ ;;
-+esac
-+
-+# Clang doesn't consider unrecognized options an error unless we specify
-+# -Werror. We throw in some extra Clang-specific options to ensure that
-+# this doesn't happen for GCC, which also accepts -Werror.
-+
-+AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
-+save_CFLAGS="$CFLAGS"
-+ax_pthread_extra_flags="-Werror"
-+CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
-+ [AC_MSG_RESULT([yes])],
-+ [ax_pthread_extra_flags=
-+ AC_MSG_RESULT([no])])
-+CFLAGS="$save_CFLAGS"
-+
-+if test x"$ax_pthread_ok" = xno; then
-+for flag in $ax_pthread_flags; do
-+
-+ case $flag in
-+ none)
-+ AC_MSG_CHECKING([whether pthreads work without any flags])
-+ ;;
-+
-+ -*)
-+ AC_MSG_CHECKING([whether pthreads work with $flag])
-+ PTHREAD_CFLAGS="$flag"
-+ ;;
-+
-+ pthread-config)
-+ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
-+ if test x"$ax_pthread_config" = xno; then continue; fi
-+ PTHREAD_CFLAGS="`pthread-config --cflags`"
-+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
-+ ;;
-+
-+ *)
-+ AC_MSG_CHECKING([for the pthreads library -l$flag])
-+ PTHREAD_LIBS="-l$flag"
-+ ;;
-+ esac
-+
-+ save_LIBS="$LIBS"
-+ save_CFLAGS="$CFLAGS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
-+
-+ # Check for various functions. We must include pthread.h,
-+ # since some functions may be macros. (On the Sequent, we
-+ # need a special flag -Kthread to make this header compile.)
-+ # We check for pthread_join because it is in -lpthread on IRIX
-+ # while pthread_create is in libc. We check for pthread_attr_init
-+ # due to DEC craziness with -lpthreads. We check for
-+ # pthread_cleanup_push because it is one of the few pthread
-+ # functions on Solaris that doesn't have a non-functional libc stub.
-+ # We try pthread_create on general principles.
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
-+ static void routine(void *a) { a = 0; }
-+ static void *start_routine(void *a) { return a; }],
-+ [pthread_t th; pthread_attr_t attr;
-+ pthread_create(&th, 0, start_routine, 0);
-+ pthread_join(th, 0);
-+ pthread_attr_init(&attr);
-+ pthread_cleanup_push(routine, 0);
-+ pthread_cleanup_pop(0) /* ; */])],
-+ [ax_pthread_ok=yes],
-+ [])
-+
-+ LIBS="$save_LIBS"
-+ CFLAGS="$save_CFLAGS"
-+
-+ AC_MSG_RESULT([$ax_pthread_ok])
-+ if test "x$ax_pthread_ok" = xyes; then
-+ break;
-+ fi
-+
-+ PTHREAD_LIBS=""
-+ PTHREAD_CFLAGS=""
-+done
-+fi
-+
-+# Various other checks:
-+if test "x$ax_pthread_ok" = xyes; then
-+ save_LIBS="$LIBS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+ save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+
-+ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-+ AC_MSG_CHECKING([for joinable pthread attribute])
-+ attr_name=unknown
-+ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
-+ [int attr = $attr; return attr /* ; */])],
-+ [attr_name=$attr; break],
-+ [])
-+ done
-+ AC_MSG_RESULT([$attr_name])
-+ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-+ AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
-+ [Define to necessary symbol if this constant
-+ uses a non-standard name on your system.])
-+ fi
-+
-+ AC_MSG_CHECKING([if more special flags are required for pthreads])
-+ flag=no
-+ case ${host_os} in
-+ aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
-+ osf* | hpux*) flag="-D_REENTRANT";;
-+ solaris*)
-+ if test "$GCC" = "yes"; then
-+ flag="-D_REENTRANT"
-+ else
-+ # TODO: What about Clang on Solaris?
-+ flag="-mt -D_REENTRANT"
-+ fi
-+ ;;
-+ esac
-+ AC_MSG_RESULT([$flag])
-+ if test "x$flag" != xno; then
-+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
-+ fi
-+
-+ AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
-+ [ax_cv_PTHREAD_PRIO_INHERIT], [
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
-+ [[int i = PTHREAD_PRIO_INHERIT;]])],
-+ [ax_cv_PTHREAD_PRIO_INHERIT=yes],
-+ [ax_cv_PTHREAD_PRIO_INHERIT=no])
-+ ])
-+ AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
-+ [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
-+
-+ LIBS="$save_LIBS"
-+ CFLAGS="$save_CFLAGS"
-+
-+ # More AIX lossage: compile with *_r variant
-+ if test "x$GCC" != xyes; then
-+ case $host_os in
-+ aix*)
-+ AS_CASE(["x/$CC"],
-+ [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
-+ [#handle absolute path differently from PATH based program lookup
-+ AS_CASE(["x$CC"],
-+ [x/*],
-+ [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
-+ [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
-+ ;;
-+ esac
-+ fi
-+fi
-+
-+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
-+
-+AC_SUBST([PTHREAD_LIBS])
-+AC_SUBST([PTHREAD_CFLAGS])
-+AC_SUBST([PTHREAD_CC])
-+
-+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-+if test x"$ax_pthread_ok" = xyes; then
-+ ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
-+ :
-+else
-+ ax_pthread_ok=no
-+ $2
-+fi
-+AC_LANG_POP
-+])dnl AX_PTHREAD
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 dbf88978709d..000000000000
--- a/app-emulation/libcacard/libcacard-2.6.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2019 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 392361c2ccf6..6f9b2b913935 100644
--- a/app-emulation/libguestfs-appliance/Manifest
+++ b/app-emulation/libguestfs-appliance/Manifest
@@ -1,2 +1 @@
-DIST appliance-1.36.1.tar.xz 91514476 BLAKE2B 4cb328178e93b2430c85d1eb23450633220cabfa16e4dbbb11e0e5b75f7fc4c33daabc171dd19aee46ce385ec06665010e52d8dafac7581695cf40ff5d194dcb SHA512 2af550078a0e6b37e97988018f579df0e19072d06cbb53eccd85c2873850b472cabf34bbfb4e0ef5f43b5a1af4155f014eeefb85a1b05035d7916c7b1187d722
-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.38.0.ebuild
deleted file mode 100644
index 31e8b16bfd51..000000000000
--- a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-CHECKREQS_DISK_USR=500M
-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"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND="app-arch/xz-utils"
-# Mixing libguestfs versions causes weird problems. #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.
- :
-}
-
-src_install() {
- dodir /usr/share/guestfs
- cd "${ED}"/usr/share/guestfs
- unpack ${A}
- cd appliance || die
- dodoc README*
- # Don't rm README.* here, at least README.fixed is needed for libguestfs, see
- # https://bugzilla.redhat.com/show_bug.cgi?id=1183780
- chmod 755 . || die
- chmod 644 * || die
-
- newenvd "${FILESDIR}"/env.file 99"${PN}"
-}
diff --git a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.36.1.ebuild b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
index 7f91b08c3f97..b688b1daac9c 100644
--- a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.36.1.ebuild
+++ b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2017 Gentoo Foundation
+# 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 b379d7e79050..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.36.13.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_{5,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"
-
-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 ab7741e5f117..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.36.15.ebuild
+++ /dev/null
@@ -1,178 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_{5,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"
-
-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 0bf4ce35fd39..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.38.6.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_{5,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"
-
-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 5978f915af33..67f481aca2fb 100644
--- a/app-emulation/libguestfs/metadata.xml
+++ b/app-emulation/libguestfs/metadata.xml
@@ -1,26 +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>
-<maintainer type="person">
- <email>eva@gentoo.org</email>
- <name>Gilles Dartiguelongue</name>
-</maintainer>
-<longdescription>Libguestfs is a library and tool set for accessing and
-modifying virtual machine (VM) disk images</longdescription>
-<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 240231492099..000000000000
--- a/app-emulation/libpod/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST libpod-1.5.1.tar.gz 8010274 BLAKE2B 4928b45a6d86fe14ff7359c856da664d14fc578dcff095c984eb0fa3b4aed42576cf610f19a9015064f406109d79cd6df60eb0b2990e5058de1e4f9f7d9ae7ee SHA512 d9d422c4189adb840cfe3dd8b7e8278412f0ea17e4ccd2cdf4f4b134a87b1add61bbdca1c8d9db3db846c272e2ab3f624bf9e4aac005b78d0c7e161af898dc02
-DIST libpod-1.6.2.tar.gz 8270781 BLAKE2B 5d86533ddc821f731292e126102a31d651956c275a22c5c4ab3c57b9351832a1d85d75be877343c60af47716f9d1776315b3bf41fb17037d02fee10cf88efba3 SHA512 68192dda019623e3f3af9f82f946be8efbaf3e2c54acf23f62af67ac1ca093dd4dba11d2a7c1c950b99060393ed7e945752c1eaa9eada0dfc30f3dcaac8e1c04
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-1.5.1-r1.ebuild b/app-emulation/libpod/libpod-1.5.1-r1.ebuild
deleted file mode 100644
index f1061d08281f..000000000000
--- a/app-emulation/libpod/libpod-1.5.1-r1.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="00057929f5acfd98341964d85722383363376d52"
-EGO_PN="github.com/containers/${PN}"
-
-inherit bash-completion-r1 flag-o-matic golang-vcs-snapshot
-
-DESCRIPTION="Library and podman tool for running OCI-based containers in Pods"
-HOMEPAGE="https://github.com/containers/libpod/"
-SRC_URI="https://github.com/containers/libpod/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="apparmor btrfs ostree +rootless selinux"
-REQUIRED_USE="!selinux? ( !ostree )"
-RESTRICT="test"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- >=app-emulation/conmon-2.0.0
- >=app-emulation/runc-1.0.0_rc6
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- sys-fs/lvm2
- sys-libs/libseccomp:=
-
- apparmor? ( sys-libs/libapparmor )
- btrfs? ( sys-fs/btrfs-progs )
- ostree? (
- dev-libs/glib:=
- dev-util/ostree:=
- )
- rootless? ( app-emulation/slirp4netns )
- selinux? ( sys-libs/libselinux:= )
-"
-DEPEND="
- ${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
-
- # Disable installation of python modules here, since those are
- # installed by separate ebuilds.
- sed -e '/^GIT_.*/d' \
- -e 's/$(GO) build/$(GO) build -v -work -x/' \
- -e 's/^\(install:.*\) install\.python$/\1/' \
- -i Makefile || 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/ostree_tag.sh ]] || die
- if use ostree; then
- echo -e "#!/bin/sh\necho ostree" > hack/ostree_tag.sh || die
- else
- echo -e "#!/bin/sh\necho containers_image_ostree_stub" > hack/ostree_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
-
- env -u GOCACHE -u XDG_CACHE_HOME GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/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
-
- 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/libpod-1.6.2.ebuild b/app-emulation/libpod/libpod-1.6.2.ebuild
deleted file mode 100644
index 9c1a41555c18..000000000000
--- a/app-emulation/libpod/libpod-1.6.2.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="f3ffda1e08f19e9a6a88484136b5eed76533f21a"
-EGO_PN="github.com/containers/${PN}"
-
-inherit bash-completion-r1 flag-o-matic golang-vcs-snapshot
-
-DESCRIPTION="Library and podman tool for running OCI-based containers in Pods"
-HOMEPAGE="https://github.com/containers/libpod/"
-SRC_URI="https://github.com/containers/libpod/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="apparmor btrfs ostree +rootless selinux"
-REQUIRED_USE="!selinux? ( !ostree )"
-RESTRICT="test"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- >=app-emulation/conmon-2.0.0
- >=app-emulation/runc-1.0.0_rc6
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- sys-fs/lvm2
- sys-libs/libseccomp:=
-
- apparmor? ( sys-libs/libapparmor )
- btrfs? ( sys-fs/btrfs-progs )
- ostree? (
- dev-libs/glib:=
- dev-util/ostree:=
- )
- rootless? ( app-emulation/slirp4netns )
- selinux? ( sys-libs/libselinux:= )
-"
-DEPEND="
- ${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
-
- # Disable installation of python modules here, since those are
- # installed by separate ebuilds.
- sed -e '/^GIT_.*/d' \
- -e 's/$(GO) build/$(GO) build -v -work -x/' \
- -e 's/^\(install:.*\) install\.python$/\1/' \
- -i Makefile || 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/ostree_tag.sh ]] || die
- if use ostree; then
- echo -e "#!/bin/sh\necho ostree" > hack/ostree_tag.sh || die
- else
- echo -e "#!/bin/sh\necho containers_image_ostree_stub" > hack/ostree_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
-
- env -u GOCACHE -u XDG_CACHE_HOME GOPATH="${WORKDIR}/${P}" GOBIN="${WORKDIR}/${P}/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
-
- 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 b488c7d9282c..000000000000
--- a/app-emulation/libpod/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>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="ostree">
- Enables dependencies for handling of OSTree images.
- </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 281432136097..9ac9f648158c 100644
--- a/app-emulation/libspectrum/Manifest
+++ b/app-emulation/libspectrum/Manifest
@@ -1,2 +1 @@
-DIST libspectrum-1.4.2.tar.gz 568052 BLAKE2B 84ffa5b2ac376c72d309c623610e5e30ebc98ab81a4505ffd88c8fc88145c6d63a112c60a57585c827b352e0a73ec330fc9f3601a714d1a6ad522cc40105d171 SHA512 391eb6fd805ab5a7ba5186ced8aa06be8b25973512860bfd0680585120a9617a1406f9327a7acb3ad7b7e473be8214c9b228d8b4adcf45a8bf3d3b6d27ee4d6f
-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/files/remove-local-prefix.patch b/app-emulation/libspectrum/files/remove-local-prefix.patch
new file mode 100644
index 000000000000..23e2b5dd041c
--- /dev/null
+++ b/app-emulation/libspectrum/files/remove-local-prefix.patch
@@ -0,0 +1,18 @@
+diff -Naur libspectrum-1.4.4/configure.ac libspectrum-1.4.4-patched/configure.ac
+--- libspectrum-1.4.4/configure.ac 2018-07-01 02:07:44.000000000 +0200
++++ libspectrum-1.4.4-patched/configure.ac 2020-07-28 16:38:22.636459194 +0200
+@@ -113,14 +113,6 @@
+ dnl Check for functions
+ AC_CHECK_FUNCS(_snprintf _stricmp _strnicmp snprintf strcasecmp strncasecmp)
+
+-dnl Allow the user to say that various libraries are in one place
+-AC_ARG_WITH(local-prefix,
+-[ --with-local-prefix=PFX local libraries installed in PFX (optional)],
+-CPPFLAGS="$CPPFLAGS -I$withval/include"; LDFLAGS="$LDFLAGS -L$withval/lib",
+-if test "$prefix" != "NONE"; then
+- CPPFLAGS="$CPPFLAGS -I$prefix/include"; LDFLAGS="$LDFLAGS -L$prefix/lib"
+-fi)
+-
+ dnl Check whether to use zlib (the UNIX version is called z, Win32 zdll)
+ AC_MSG_CHECKING(whether to use zlib)
+ AC_ARG_WITH(zlib,
diff --git a/app-emulation/libspectrum/libspectrum-1.4.2.ebuild b/app-emulation/libspectrum/libspectrum-1.4.2.ebuild
deleted file mode 100644
index 75e11f4bc844..000000000000
--- a/app-emulation/libspectrum/libspectrum-1.4.2.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Spectrum emulation library"
-HOMEPAGE="http://fuse-emulator.sourceforge.net/libspectrum.php"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="audiofile bzip2 gcrypt zlib"
-
-RDEPEND="dev-libs/glib:2
- audiofile? ( >=media-libs/audiofile-0.3.6 )
- bzip2? ( >=app-arch/bzip2-1.0 )
- gcrypt? ( dev-libs/libgcrypt:0 )
- zlib? ( sys-libs/zlib )"
-DEPEND="${RDEPEND}
- dev-lang/perl
- virtual/pkgconfig"
-
-src_configure() {
- local myconf=(
- $(use_with audiofile libaudiofile)
- $(use_with bzip2)
- $(use_with gcrypt libgcrypt)
- $(use_with zlib)
- )
- econf "${myconf[@]}"
-}
-
-src_test() {
- # check only builds test executable but doesn't run it
- emake check
- ./test/test || die
-}
-
-src_install() {
- default
- dodoc doc/*.txt *.txt
-}
diff --git a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
index 75e11f4bc844..7221cd869171 100644
--- a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild
+++ b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
@@ -1,15 +1,17 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
+
+inherit autotools
DESCRIPTION="Spectrum emulation library"
HOMEPAGE="http://fuse-emulator.sourceforge.net/libspectrum.php"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/fuse-emulator/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
IUSE="audiofile bzip2 gcrypt zlib"
RDEPEND="dev-libs/glib:2
@@ -17,10 +19,19 @@ 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=(
+ "${FILESDIR}"/remove-local-prefix.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
src_configure() {
local myconf=(
$(use_with audiofile libaudiofile)
@@ -40,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 09832689389c..7d53986ff7c6 100644
--- a/app-emulation/libvirt-glib/Manifest
+++ b/app-emulation/libvirt-glib/Manifest
@@ -1,2 +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-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 c18bd71005a4..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 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-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 acd00be69f92..000000000000
--- a/app-emulation/libvirt-snmp/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>dev-zero@gentoo.org</email>
- <name>Tiziano Müller</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest
index 244f6d53a413..65274d07ac80 100644
--- a/app-emulation/libvirt/Manifest
+++ b/app-emulation/libvirt/Manifest
@@ -1,4 +1,12 @@
-DIST libvirt-5.2.0.tar.xz 14992888 BLAKE2B d68aedb634a70063a116e112689f252d3fc2fe5369a4cdde8cacd392e806203bf277406bb10c751bae27f34f27a38355fde84573b6221fc4843393f9ae60ae5c SHA512 378dc1552263cce746117487abc0a1f3411e5be149331717158ba23825734ceae7ca474290264d71de798fdd089ad9672026bcb242fa5b3aef87294284d06f04
-DIST libvirt-5.5.0.tar.xz 12930224 BLAKE2B 4add0b727e4754bd1b2b4e9020942b17872533737e496ddf7976bf86a0fd3bcfbebd83387a8f3bab8dcc9afb05755b245e55682ed17d6094085d3dc96d94eefe SHA512 47923aaca605fb43a53238ac535abc1f88f73435336b8f3e88cb01df277ed205d99c586991e523aa32b50c832a0a7c949ab5f84dc78eb8d18a4951cfc791448d
-DIST libvirt-5.6.0.tar.xz 13147976 BLAKE2B dbfc997123f43fcf9d635b59fffa00d96826e673c4037105151bde2c4a0fb3015a0e458e8e67969b5513a4ddbf41d062feb91e6a86054ddcc1d661f0554fd1f7 SHA512 95fe931394fb31288faf73349bb298f08f63cf062f851b9935303145f8166f69128be9360757f0e1845256c14f4d7672843dba0dc6c086b1c3c8bfc035cc8986
-DIST libvirt-5.8.0.tar.xz 13129328 BLAKE2B ff49b0b6dca86f35c68edfb880677c88e0aed8021ed01ebd145922821914edd70c355ca777fe470e2b0e4baf36f2813c1100be9377344f81c9df374068307da1 SHA512 73d18fdf307b8029921a9f1a0c84ca31c50c662a3c0339e3850d6d2f31574168807a6f34943b286ed86a44031decbbc1339f27366da7269e29d38c7094503113
+DIST libvirt-10.0.0.tar.xz 9395076 BLAKE2B bfbea7805a949999481293a31e52a5511bcf86db2c96486cbc3b9cb776719ec973b1208cfcb4a8ae2c9220d1d68053980eaf68893f7919c3ef354efbd1abf642 SHA512 4ab28539ff0e9a78ac231b11b4ec88b91d76ff2607cabd0226f04aaece73b05cab4aa9cfcf05073cd257ea270a377cd5d2cb915971583dbec04dadf2cf7ad252
+DIST libvirt-10.0.0.tar.xz.asc 833 BLAKE2B e6377fe80a96025fe643d9bb14b3d64da3cf7f53000d8ee55606b4bc635d735943c4a7baa3796cbb7ce5812f03e2efd700aeef72e5bfcce68938b873aeca3f1f SHA512 08681d45c39695b07c88b27fddc471284ed66caa091a73ea3957e42ec92776d435ecb4dc71b6bb18a825322468fccb09263f612aa1bde53deea3d6c5305313d8
+DIST libvirt-10.1.0.tar.xz 9444244 BLAKE2B bfdce9d067e3a319b81d867d27f1a6b4e724ab6aaa25d19d7383c9be26ad7dc92b3c0aaa92894b772f09e20c3c2eb0ea0a8707feee4c63be58578fa22854305f SHA512 08e73ae15de5681430b62db85ec9901242dca5e9a4ca9685614f4a67092c6e28f27f9187144b3ceb18ad6b40e6eb1a90b1a4b056b0888724d04a62002ee2bc48
+DIST libvirt-10.1.0.tar.xz.asc 833 BLAKE2B 1046403fb6ee084eb68e081a0fa4a1cfbf30378faf2f54591917ab6a4648a4c2a23da055cfe2577ec7ec80922c29ca7a918386259f747f052abfdfc420ff7749 SHA512 40ec184b4c33f21bf99d38fec0722e165854f723017f3cddaef63120cdf8dcf6df0c03b7e4aea5c3706f65d46f5335db667321b1ece1c123d9517fcd303b2bd8
+DIST libvirt-10.2.0.tar.xz 9466588 BLAKE2B 7ee6f4bdbb6a22f1b3c5c0326d41e269e8a5a07e41bc4f9a17fd023f3e33e46735066656dffa3004e1f36d46324270351593c89f60106933042e8a19a2aa64e6 SHA512 65faf2346e66bdba606ba99b9e4da2be8bd94ef42ac49c2801f9e9253ceea10f5fe772d5c7ada59f48aa34ff528726719b690c3acfd3e63a5c3580db17b023ae
+DIST libvirt-10.2.0.tar.xz.asc 833 BLAKE2B 34031ed3c1896d3bb86d05b3efc158a48a70084bd6ea0308df779c351142e0f04395f62d62b4bb225c731a6f259f7ccb950428292691a656799eed06ecb2c3b2 SHA512 d366b0b64642f3358bdaee0ed5e06c4c3eba8b5ce2d1791f3d83d74c139a00282e45d7382af26706657c18e32ab956761d26f5b8595e32ad545c2f27f214fb76
+DIST libvirt-10.3.0.tar.xz 9476852 BLAKE2B 8c47840113904d72aeb1e9bf900a99a8b0e3d41391c9a8fee4277f2793f18fefc50d113e8cbea52dedfd03b93f430416bcd25fe90ee6820c95ac6f468b84212f SHA512 dd2b151a19877e57e11b582b1c11542319f8b7b7cd3d7d51304442aa7d5eb1a8490d2887d340191c3ecc561320ea453773763083364579de0a40ada9c244fc59
+DIST libvirt-10.3.0.tar.xz.asc 833 BLAKE2B 4d54a3701a15383464e1be5155344f783cd2fe297f2a7cfd4ef9ead7cef9267122e91e16d08329e2448ffe77f10625a3fa3443bbeab97ba8fc83ec6e4ec250dd SHA512 d32bbc2a36b03eccfc931c3e5accae2d4ed5a59e4d40fc44f8fb269684201097ea03e0afcf6eae124efac7b8c43d32e4e79d276c13ea81809acd40b97ef3ceb9
+DIST libvirt-9.8.0.tar.xz 9307064 BLAKE2B aae47e8d4eeaf97532a0356de23ed5a9eea71b369d025eda95b5fd74576779eb4b843d05df6c87b79a14f218c341953749e319ee7244846a2db410a74a746880 SHA512 0118725073de33eec3fa3e4616d3154707f9828fdb9ec973f503fe68f18eab72b9704da660f281152630ddc95e605c786673af9d23dc9bdfc0108422e0efbd41
+DIST libvirt-9.8.0.tar.xz.asc 833 BLAKE2B 3ecd0a925992eeadd50675f7ad8e815bde532c0f66e331ea766fff8e613b6a60b002bedee82fd03684e703057bc13d4e92191268dcd5efe2611ce9bd3cf6b505 SHA512 e041db13281eae9323c22189b7a258caf8d0e2a350cbd31b6cbed7054ccaf09d05c155c3c09daea07940affdf15e8d42bb2339945480cd141a6e8cb417a78536
+DIST libvirt-9.9.0.tar.xz 9321556 BLAKE2B 21eae5a95feaf7f5c6ba8dd48732c08212904882a11c48eccfa827d85ddc3df7e064503f21710dbe1b678670e02f003674de915a43a7403fbf85685c4832e21d SHA512 77cea28acf4f3e8c92fbd5bd72ad084be183c07f14e3a9ce35d6d9d62d36ee97a30cef55fb204b3e43f282890ecd7d5827a784a517e7f4ed8b22ee502c3f09d7
+DIST libvirt-9.9.0.tar.xz.asc 833 BLAKE2B 3de3674d33c595692e71eeb9c312de76e865d3859d2482ec5b4d29d3cd7644cde080cba0001668efe7876b462f78c0233ab76076ef32943e118b34cca8c1ab4d SHA512 357fc2d1bdbbc26c6e0119a1b5c42e86a116f94bb714da855ab27ca83da0e50c7239d1b8abde3cee8a460ac537f63d518f43470d8329b727b39491771ad191e5
diff --git a/app-emulation/libvirt/files/README.gentoo-r2 b/app-emulation/libvirt/files/README.gentoo-r3
index 6d6fb18ed3c8..0eab21d3a006 100644
--- a/app-emulation/libvirt/files/README.gentoo-r2
+++ 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
@@ -36,8 +36,8 @@ For openrc users:
For systemd users:
- Please use /etc/systemd/system/libvirtd.service.d/00gentoo.conf
- to control the '--listen' parameter for libvirtd.
+ The '--listen' parameter is unavailable when libvirtd is run as a
+ systemd unit.
The configuration for the 'libvirt-guests.service' is found under
/etc/libvirt/libvirt-guests.conf"
diff --git a/app-emulation/libvirt/files/libvirt-1.2.16-fix_paths_in_libvirt-guests_sh.patch b/app-emulation/libvirt/files/libvirt-1.2.16-fix_paths_in_libvirt-guests_sh.patch
deleted file mode 100644
index ddedb1f90cd3..000000000000
--- a/app-emulation/libvirt/files/libvirt-1.2.16-fix_paths_in_libvirt-guests_sh.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
-index 7f74b85..ea58119 100644
---- a/tools/libvirt-guests.sh.in
-+++ b/tools/libvirt-guests.sh.in
-@@ -41,11 +41,11 @@ CONNECT_RETRIES=10
- RETRIES_SLEEP=1
- SYNC_TIME=0
-
--test -f "$sysconfdir"/sysconfig/libvirt-guests &&
-- . "$sysconfdir"/sysconfig/libvirt-guests
-+test -f "$sysconfdir"/libvirt/libvirt-guests.conf &&
-+ . "$sysconfdir"/libvirt/libvirt-guests.conf
-
- LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
--VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
-+VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/libvirt-guests
-
- RETVAL=0
-
diff --git a/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
new file mode 100644
index 000000000000..7ef0652faa38
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
@@ -0,0 +1,42 @@
+From 2127032ed8cd49001465dc0dce9f842e13467bc2 Mon Sep 17 00:00:00 2001
+Message-ID: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+From: Martin Kletzander <mkletzan@redhat.com>
+Date: Tue, 27 Feb 2024 16:20:12 +0100
+Subject: [PATCH 1/2] Fix off-by-one error in udevListInterfacesByStatus
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ever since this function was introduced in 2012 it could've tried
+filling in an extra interface name. That was made worse in 2019 when
+the caller functions started accepting NULL arrays of size 0.
+
+This is assigned CVE-2024-1441.
+
+Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
+Reported-by: Alexander Kuznetsov <kuznetsovam@altlinux.org>
+Fixes: 5a33366f5c0b18c93d161bd144f9f079de4ac8ca
+Fixes: d6064e2759a24e0802f363e3a810dc5a7d7ebb15
+Reviewed-by: Ján Tomko <jtomko@redhat.com>
+(cherry picked from commit c664015fe3a7bf59db26686e9ed69af011c6ebb8)
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/interface/interface_backend_udev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
+index fb6799ed94..4091483060 100644
+--- a/src/interface/interface_backend_udev.c
++++ b/src/interface/interface_backend_udev.c
+@@ -222,7 +222,7 @@ udevListInterfacesByStatus(virConnectPtr conn,
+ g_autoptr(virInterfaceDef) def = NULL;
+
+ /* Ensure we won't exceed the size of our array */
+- if (count > names_len)
++ if (count >= names_len)
+ break;
+
+ path = udev_list_entry_get_name(dev_entry);
+--
+2.43.2
+
diff --git a/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
new file mode 100644
index 000000000000..3e0426634f42
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
@@ -0,0 +1,222 @@
+From 10fa5f6ba64b354b99b0f7b372e66e45bb4d9379 Mon Sep 17 00:00:00 2001
+Message-ID: <10fa5f6ba64b354b99b0f7b372e66e45bb4d9379.1713033988.git.mprivozn@redhat.com>
+In-Reply-To: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+References: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Fri, 15 Mar 2024 10:47:50 +0000
+Subject: [PATCH 2/2] remote: check for negative array lengths before
+ allocation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While the C API entry points will validate non-negative lengths
+for various parameters, the RPC server de-serialization code
+will need to allocate memory for arrays before entering the C
+API. These allocations will thus happen before the non-negative
+length check is performed.
+
+Passing a negative length to the g_new0 function will usually
+result in a crash due to the negative length being treated as
+a huge positive number.
+
+This was found and diagnosed by ALT Linux Team with AFLplusplus.
+
+CVE-2024-2494
+Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
+Found-by: Alexandr Shashkin <dutyrok@altlinux.org>
+Co-developed-by: Alexander Kuznetsov <kuznetsovam@altlinux.org>
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+(cherry picked from commit 8a3f8d957507c1f8223fdcf25a3ff885b15557f2)
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/remote/remote_daemon_dispatch.c | 65 +++++++++++++++++++++++++++++
+ src/rpc/gendispatch.pl | 5 +++
+ 2 files changed, 70 insertions(+)
+
+diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
+index 7daf503b51..7542caa952 100644
+--- a/src/remote/remote_daemon_dispatch.c
++++ b/src/remote/remote_daemon_dispatch.c
+@@ -2291,6 +2291,10 @@ remoteDispatchDomainGetSchedulerParameters(virNetServer *server G_GNUC_UNUSED,
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2339,6 +2343,10 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServer *server G_GNUC_UNUS
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2497,6 +2505,10 @@ remoteDispatchDomainBlockStatsFlags(virNetServer *server G_GNUC_UNUSED,
+ goto cleanup;
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLOCK_STATS_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2717,6 +2729,14 @@ remoteDispatchDomainGetVcpuPinInfo(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->ncpumaps < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps must be non-negative"));
++ goto cleanup;
++ }
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative"));
++ goto cleanup;
++ }
+ if (args->ncpumaps > REMOTE_VCPUINFO_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps > REMOTE_VCPUINFO_MAX"));
+ goto cleanup;
+@@ -2811,6 +2831,11 @@ remoteDispatchDomainGetEmulatorPinInfo(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative"));
++ goto cleanup;
++ }
++
+ /* Allocate buffers to take the results */
+ if (args->maplen > 0)
+ cpumaps = g_new0(unsigned char, args->maplen);
+@@ -2858,6 +2883,14 @@ remoteDispatchDomainGetVcpus(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->maxinfo < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative"));
++ goto cleanup;
++ }
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative"));
++ goto cleanup;
++ }
+ if (args->maxinfo > REMOTE_VCPUINFO_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo > REMOTE_VCPUINFO_MAX"));
+ goto cleanup;
+@@ -3096,6 +3129,10 @@ remoteDispatchDomainGetMemoryParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_MEMORY_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3156,6 +3193,10 @@ remoteDispatchDomainGetNumaParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_NUMA_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3216,6 +3257,10 @@ remoteDispatchDomainGetBlkioParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLKIO_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3277,6 +3322,10 @@ remoteDispatchNodeGetCPUStats(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_CPU_STATS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3339,6 +3388,10 @@ remoteDispatchNodeGetMemoryStats(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_MEMORY_STATS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3514,6 +3567,10 @@ remoteDispatchDomainGetBlockIoTune(virNetServer *server G_GNUC_UNUSED,
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLOCK_IO_TUNE_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -5079,6 +5136,10 @@ remoteDispatchDomainGetInterfaceParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_INTERFACE_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -5299,6 +5360,10 @@ remoteDispatchNodeGetMemoryParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_MEMORY_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl
+index fa45d15a92..294e21f8a1 100755
+--- a/src/rpc/gendispatch.pl
++++ b/src/rpc/gendispatch.pl
+@@ -1070,6 +1070,11 @@ elsif ($mode eq "server") {
+ print "\n";
+
+ if ($single_ret_as_list) {
++ print " if (args->$single_ret_list_max_var < 0) {\n";
++ print " virReportError(VIR_ERR_RPC,\n";
++ print " \"%s\", _(\"max$single_ret_list_name must be non-negative\"));\n";
++ print " goto cleanup;\n";
++ print " }\n";
+ print " if (args->$single_ret_list_max_var > $single_ret_list_max_define) {\n";
+ print " virReportError(VIR_ERR_RPC,\n";
+ print " \"%s\", _(\"max$single_ret_list_name > $single_ret_list_max_define\"));\n";
+--
+2.43.2
+
diff --git a/app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch b/app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch
new file mode 100644
index 000000000000..b151e3134e63
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch
@@ -0,0 +1,84 @@
+From cab1e71f0161fd24c5d6ff4c379d3a242ea8c2d9 Mon Sep 17 00:00:00 2001
+Message-ID: <cab1e71f0161fd24c5d6ff4c379d3a242ea8c2d9.1714995961.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sat, 4 May 2024 05:12:54 +0200
+Subject: [PATCH] vsh: Don't init history in cmdComplete()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Recent rework of virshtest uncovered a subtle bug that was
+dormant in now vsh but before that even in monolithic virsh.
+
+In vsh.c there's this vshReadlineInit() function that's supposed
+to initialize readline library, i.e. set those global rl_*
+pointers. But it also initializes history library. Then, when
+virsh/virt-admin quits, vshReadlineDeinit() is called which
+writes history into a file (ensuring the parent directory
+exists). So far no problem.
+
+Problem arises when cmdComplete() is called (from a bash
+completer, for instance). It does not guard call to
+vshReadlineInit() with check for interactive shell (and it should
+not), but it sets ctl->historyfile which signals to
+vshReadlineDeinit() the history should be written.
+
+Now, no real history is written, because nothing was entered on
+the stdin, but the parent directory is created nevertheless. With
+recent movement in virshtest.c this means some test cases might
+create virsh history file which breaks our promise of not
+touching user's data in test suite.
+
+Resolves: https://bugs.gentoo.org/931109
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+Reviewed-by: Ján Tomko <jtomko@redhat.com>
+---
+ tools/vsh.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/tools/vsh.c b/tools/vsh.c
+index 58855f63ba..e74045c24e 100644
+--- a/tools/vsh.c
++++ b/tools/vsh.c
+@@ -2973,7 +2973,7 @@ vshReadlineInit(vshControl *ctl)
+ const char *quote_characters = "\"'";
+
+ /* initialize readline stuff only once */
+- if (ctl->historydir)
++ if (autoCompleteOpaque)
+ return 0;
+
+ /* Opaque data for autocomplete callbacks. */
+@@ -2989,6 +2989,11 @@ vshReadlineInit(vshControl *ctl)
+ rl_completer_quote_characters = quote_characters;
+ rl_char_is_quoted_p = vshReadlineCharIsQuoted;
+
++ /* Stuff below is needed only for interactive mode. */
++ if (!ctl->imode) {
++ return 0;
++ }
++
+ histsize_env = g_strdup_printf("%s_HISTSIZE", ctl->env_prefix);
+
+ /* Limit the total size of the history buffer */
+@@ -3149,7 +3154,7 @@ vshInit(vshControl *ctl, const vshCmdGrp *groups)
+ cmdGroups = groups;
+
+ if (vshInitDebug(ctl) < 0 ||
+- (ctl->imode && vshReadlineInit(ctl) < 0))
++ vshReadlineInit(ctl) < 0)
+ return false;
+
+ return true;
+@@ -3168,7 +3173,7 @@ vshInitReload(vshControl *ctl)
+
+ if (ctl->imode)
+ vshReadlineDeinit(ctl);
+- if (ctl->imode && vshReadlineInit(ctl) < 0)
++ if (vshReadlineInit(ctl) < 0)
+ return false;
+
+ return true;
+--
+2.43.2
+
diff --git a/app-emulation/libvirt/files/libvirt-5.2.0-do-not-use-sysconf.patch b/app-emulation/libvirt/files/libvirt-5.2.0-do-not-use-sysconf.patch
deleted file mode 100644
index 292af16b4915..000000000000
--- a/app-emulation/libvirt/files/libvirt-5.2.0-do-not-use-sysconf.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From 525d89d39f78a4099508f47a58c4ab65d1e59c0a Mon Sep 17 00:00:00 2001
-Message-Id: <525d89d39f78a4099508f47a58c4ab65d1e59c0a.1552736006.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Sat, 16 Mar 2019 12:33:00 +0100
-Subject: [PATCH] gentoo: do not use sysconf
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/Makefile.am | 21 ++-------------------
- src/locking/virtlockd.service.in | 3 +--
- src/logging/virtlogd.service.in | 3 +--
- src/remote/libvirtd.service.in | 3 +--
- tools/Makefile.am | 13 ++-----------
- tools/libvirt-guests.service.in | 2 +-
- tools/libvirt-guests.sysconf | 7 +++++++
- 7 files changed, 15 insertions(+), 37 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index a73f43c483..47dd55c112 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -747,23 +747,6 @@ endif WITH_SETUID_RPC_CLIENT
-
- EXTRA_DIST += $(SYSCONF_FILES)
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- $(INSTALL_DATA) $(srcdir)/$$f.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
--
--uninstall-sysconfig:
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
--
- LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
-
- EXTRA_DIST += $(LOGROTATE_FILES_IN)
-@@ -822,14 +805,14 @@ SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
- BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
- DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
-
--install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
-+install-systemd: $(SYSTEMD_UNIT_FILES)
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- for f in $(SYSTEMD_UNIT_FILES); \
- do \
- $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
- done
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
-
-diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
-index 3c9d587032..2449b201d9 100644
---- a/src/locking/virtlockd.service.in
-+++ b/src/locking/virtlockd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlockd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
-index 3d9ae36150..43736191d5 100644
---- a/src/logging/virtlogd.service.in
-+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
-index 7f689e08a8..239beeced9 100644
---- a/src/remote/libvirtd.service.in
-+++ b/src/remote/libvirtd.service.in
-@@ -22,8 +22,7 @@ Documentation=https://libvirt.org
-
- [Service]
- Type=notify
--EnvironmentFile=-/etc/sysconfig/libvirtd
--ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
-+ExecStart=@sbindir@/libvirtd
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
- Restart=on-failure
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index c6064dee08..40f41ddb38 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -333,15 +333,6 @@ install-data-local: install-systemd install-nss \
- uninstall-local: uninstall-systemd uninstall-nss \
- uninstall-bash-completion
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
--
--uninstall-sysconfig:
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||:
--
- EXTRA_DIST += libvirt-guests.sh.in
-
- libvirt-guests.sh: libvirt-guests.sh.in $(top_builddir)/config.status
-@@ -361,12 +352,12 @@ EXTRA_DIST += libvirt-guests.service.in
- SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
-
- if LIBVIRT_INIT_SCRIPT_SYSTEMD
--install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh
-+install-systemd: libvirt-guests.service libvirt-guests.sh
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- $(INSTALL_DATA) libvirt-guests.service \
- $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||:
-
-diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
-index 491ca62138..f0f417bffb 100644
---- a/tools/libvirt-guests.service.in
-+++ b/tools/libvirt-guests.service.in
-@@ -10,7 +10,7 @@ Documentation=man:libvirtd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf
-index 669b046507..45b0b9ea46 100644
---- a/tools/libvirt-guests.sysconf
-+++ b/tools/libvirt-guests.sysconf
-@@ -1,3 +1,10 @@
-+#
-+# 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
-+#
-+
-+
- # URIs to check for running guests
- # example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
- #URIS=default
---
-2.19.2
-
diff --git a/app-emulation/libvirt/files/libvirt-5.2.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-5.2.0-fix-paths-for-apparmor.patch
deleted file mode 100644
index 866c6357b6e4..000000000000
--- a/app-emulation/libvirt/files/libvirt-5.2.0-fix-paths-for-apparmor.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 563706143779166624812b3faf498d869f5dd383 Mon Sep 17 00:00:00 2001
-Message-Id: <563706143779166624812b3faf498d869f5dd383.1547196492.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Fri, 11 Jan 2019 09:41:06 +0100
-Subject: [PATCH] gentoo: fix paths for apparmor
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/security/Makefile.inc.am | 10 +++++-----
- src/security/apparmor/libvirt-qemu | 2 ++
- ...bvirt.virt-aa-helper => usr.libexec.virt-aa-helper} | 4 ++--
- src/security/apparmor/usr.sbin.libvirtd | 6 ++++--
- 4 files changed, 13 insertions(+), 9 deletions(-)
- rename src/security/apparmor/{usr.lib.libvirt.virt-aa-helper => usr.libexec.virt-aa-helper} (93%)
-
-diff --git a/src/security/Makefile.inc.am b/src/security/Makefile.inc.am
-index b24cdfd083..ae8e979b84 100644
---- a/src/security/Makefile.inc.am
-+++ b/src/security/Makefile.inc.am
-@@ -36,7 +36,7 @@ EXTRA_DIST += \
- security/apparmor/TEMPLATE.lxc \
- security/apparmor/libvirt-qemu \
- security/apparmor/libvirt-lxc \
-- security/apparmor/usr.lib.libvirt.virt-aa-helper \
-+ security/apparmor/usr.libexec.virt-aa-helper \
- security/apparmor/usr.sbin.libvirtd \
- $(NULL)
-
-@@ -90,7 +90,7 @@ endif WITH_SECDRIVER_APPARMOR
- if WITH_APPARMOR_PROFILES
- apparmordir = $(sysconfdir)/apparmor.d/
- apparmor_DATA = \
-- security/apparmor/usr.lib.libvirt.virt-aa-helper \
-+ security/apparmor/usr.libexec.virt-aa-helper \
- security/apparmor/usr.sbin.libvirtd \
- $(NULL)
-
-@@ -110,11 +110,11 @@ APPARMOR_LOCAL_DIR = "$(DESTDIR)$(apparmordir)/local"
- install-apparmor-local:
- $(MKDIR_P) "$(APPARMOR_LOCAL_DIR)"
- echo "# Site-specific additions and overrides for \
-- 'usr.lib.libvirt.virt-aa-helper'" \
-- >"$(APPARMOR_LOCAL_DIR)/usr.lib.libvirt.virt-aa-helper"
-+ 'usr.libexec.virt-aa-helper'" \
-+ >"$(APPARMOR_LOCAL_DIR)/usr.libexec.virt-aa-helper"
-
- uninstall-apparmor-local:
-- rm -f "$(APPARMOR_LOCAL_DIR)/usr.lib.libvirt.virt-aa-helper"
-+ rm -f "$(APPARMOR_LOCAL_DIR)/usr.libexec.virt-aa-helper"
- rmdir "$(APPARMOR_LOCAL_DIR)" || :
-
- INSTALL_DATA_LOCAL += install-apparmor-local
-diff --git a/src/security/apparmor/libvirt-qemu b/src/security/apparmor/libvirt-qemu
-index eaa5167525..9be50bbbe0 100644
---- a/src/security/apparmor/libvirt-qemu
-+++ b/src/security/apparmor/libvirt-qemu
-@@ -87,6 +87,8 @@
- /usr/share/AAVMF/** r,
- /usr/share/qemu-efi/** r,
- /usr/share/slof/** r,
-+ /usr/share/seavgabios/** r,
-+ /usr/share/edk2-ovmf/** r,
-
- # pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140)
- /etc/pki/CA/ r,
-diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper b/src/security/apparmor/usr.libexec.virt-aa-helper
-similarity index 93%
-rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper
-rename to src/security/apparmor/usr.libexec.virt-aa-helper
-index de9436872c..99ab4ea527 100644
---- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper
-+++ b/src/security/apparmor/usr.libexec.virt-aa-helper
-@@ -1,7 +1,7 @@
- # Last Modified: Mon Apr 5 15:10:27 2010
- #include <tunables/global>
-
--profile virt-aa-helper /usr/{lib,lib64}/libvirt/virt-aa-helper {
-+profile virt-aa-helper /usr/libexec/virt-aa-helper {
- #include <abstractions/base>
-
- # needed for searching directories
-@@ -36,7 +36,7 @@
- deny /dev/mapper/ r,
- deny /dev/mapper/* r,
-
-- /usr/{lib,lib64}/libvirt/virt-aa-helper mr,
-+ /usr/libexec/virt-aa-helper mr,
- /{usr/,}sbin/apparmor_parser Ux,
-
- /etc/apparmor.d/libvirt/* r,
-@@ -66,5 +66,5 @@
- /**.[iI][sS][oO] r,
- /**/disk{,.*} r,
-
-- #include <local/usr.lib.libvirt.virt-aa-helper>
-+ #include <local/usr.libexec.virt-aa-helper>
- }
-diff --git a/src/security/apparmor/usr.sbin.libvirtd b/src/security/apparmor/usr.sbin.libvirtd
-index f0ffc53008..8a402bd6ec 100644
---- a/src/security/apparmor/usr.sbin.libvirtd
-+++ b/src/security/apparmor/usr.sbin.libvirtd
-@@ -98,8 +98,10 @@
- audit deny /sys/kernel/security/apparmor/.* rwxl,
- /sys/kernel/security/apparmor/profiles r,
- /usr/{lib,lib64}/libvirt/* PUxr,
-- /usr/{lib,lib64}/libvirt/libvirt_parthelper ix,
-- /usr/{lib,lib64}/libvirt/libvirt_iohelper ix,
-+ /usr/libexec/virt-aa-helper PUxr,
-+ /usr/libexec/libvirt_lxc PUxr,
-+ /usr/libexec/libvirt_parthelper ix,
-+ /usr/libexec/libvirt_iohelper ix,
- /etc/libvirt/hooks/** rmix,
- /etc/xen/scripts/** rmix,
-
---
-2.19.2
diff --git a/app-emulation/libvirt/files/libvirt-5.2.0-md-clear.patch b/app-emulation/libvirt/files/libvirt-5.2.0-md-clear.patch
deleted file mode 100644
index cd14d0d539ae..000000000000
--- a/app-emulation/libvirt/files/libvirt-5.2.0-md-clear.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 538d873571d7a682852dc1d70e5f4478f4d64e85 Mon Sep 17 00:00:00 2001
-From: Jiri Denemark <jdenemar@redhat.com>
-Date: Fri, 5 Apr 2019 15:11:20 +0200
-Subject: [PATCH] cpu_map: Define md-clear CPUID bit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091
-
-The bit is set when microcode provides the mechanism to invoke a flush
-of various exploitable CPU buffers by invoking the VERW instruction.
-
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
----
- src/cpu_map/x86_features.xml | 3 +++
-
-diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
-index efcc10b1ae..370807f88e 100644
---- a/src/cpu_map/x86_features.xml
-+++ b/src/cpu_map/x86_features.xml
-@@ -320,6 +320,9 @@
- <feature name='avx512-4fmaps'>
- <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000008'/>
- </feature>
-+ <feature name='md-clear'> <!-- md_clear -->
-+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/>
-+ </feature>
- <feature name='pconfig'>
- <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
- </feature>
---
-2.21.0
-
diff --git a/app-emulation/libvirt/files/libvirt-5.6.0-do-not-use-sysconf.patch b/app-emulation/libvirt/files/libvirt-5.6.0-do-not-use-sysconf.patch
deleted file mode 100644
index b847392cc13d..000000000000
--- a/app-emulation/libvirt/files/libvirt-5.6.0-do-not-use-sysconf.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From 8b27863cd4bd4eebefe6f39b42c181d073b457ff Mon Sep 17 00:00:00 2001
-Message-Id: <8b27863cd4bd4eebefe6f39b42c181d073b457ff.1564650738.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Sat, 16 Mar 2019 12:33:00 +0100
-Subject: [PATCH] gentoo: do not use sysconf
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/Makefile.am | 21 ++-------------------
- src/locking/virtlockd.service.in | 3 +--
- src/logging/virtlogd.service.in | 3 +--
- src/remote/libvirtd.service.in | 3 +--
- tools/Makefile.am | 13 ++-----------
- tools/libvirt-guests.service.in | 2 +-
- tools/libvirt-guests.sysconf | 7 +++++++
- 7 files changed, 15 insertions(+), 37 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 4a8cae11dc..6c93435066 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -750,23 +750,6 @@ endif WITH_SETUID_RPC_CLIENT
-
- EXTRA_DIST += $(SYSCONF_FILES)
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- $(INSTALL_DATA) $(srcdir)/$$f.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
--
--uninstall-sysconfig:
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
--
- LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
-
- EXTRA_DIST += $(LOGROTATE_FILES_IN)
-@@ -825,14 +808,14 @@ SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
- BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
- DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
-
--install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
-+install-systemd: $(SYSTEMD_UNIT_FILES)
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- for f in $(SYSTEMD_UNIT_FILES); \
- do \
- $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
- done
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
-
-diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
-index 3c9d587032..2449b201d9 100644
---- a/src/locking/virtlockd.service.in
-+++ b/src/locking/virtlockd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlockd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
-index 3d9ae36150..43736191d5 100644
---- a/src/logging/virtlogd.service.in
-+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
-index 3ddf0e229b..a38f2b08fa 100644
---- a/src/remote/libvirtd.service.in
-+++ b/src/remote/libvirtd.service.in
-@@ -20,12 +20,11 @@ Documentation=https://libvirt.org
-
- [Service]
- Type=notify
--EnvironmentFile=-/etc/sysconfig/libvirtd
- # libvirtd.service is set to run on boot so that autostart of
- # VMs can be performed. We don't want it to stick around if
- # unused though, so we set a timeout. The socket activation
- # then ensures it gets started again if anything needs it
--ExecStart=@sbindir@/libvirtd --timeout 120 $LIBVIRTD_ARGS
-+ExecStart=@sbindir@/libvirtd --timeout 120
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
- Restart=on-failure
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2807b9f6fd..cde5dba193 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -334,15 +334,6 @@ install-data-local: install-systemd install-nss \
- uninstall-local: uninstall-systemd uninstall-nss \
- uninstall-bash-completion
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
--
--uninstall-sysconfig:
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||:
--
- EXTRA_DIST += libvirt-guests.sh.in
-
- libvirt-guests.sh: libvirt-guests.sh.in $(top_builddir)/config.status
-@@ -362,12 +353,12 @@ EXTRA_DIST += libvirt-guests.service.in
- SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
-
- if LIBVIRT_INIT_SCRIPT_SYSTEMD
--install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh
-+install-systemd: libvirt-guests.service libvirt-guests.sh
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- $(INSTALL_DATA) libvirt-guests.service \
- $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||:
-
-diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
-index 491ca62138..f0f417bffb 100644
---- a/tools/libvirt-guests.service.in
-+++ b/tools/libvirt-guests.service.in
-@@ -10,7 +10,7 @@ Documentation=man:libvirtd(8)
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-/etc/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
-diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf
-index 669b046507..45b0b9ea46 100644
---- a/tools/libvirt-guests.sysconf
-+++ b/tools/libvirt-guests.sysconf
-@@ -1,3 +1,10 @@
-+#
-+# 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
-+#
-+
-+
- # URIs to check for running guests
- # example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
- #URIS=default
---
-2.21.0
-
diff --git a/app-emulation/libvirt/files/libvirt-5.7.0-do-not-use-sysconf.patch b/app-emulation/libvirt/files/libvirt-5.7.0-do-not-use-sysconf.patch
deleted file mode 100644
index 2ffffe492db3..000000000000
--- a/app-emulation/libvirt/files/libvirt-5.7.0-do-not-use-sysconf.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From e387be8671d0de88632d063e2ecd2c12eb1b2fdf Mon Sep 17 00:00:00 2001
-Message-Id: <e387be8671d0de88632d063e2ecd2c12eb1b2fdf.1567522968.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Sat, 16 Mar 2019 12:33:00 +0100
-Subject: [PATCH] gentoo: do not use sysconf
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/Makefile.am | 21 ++-------------------
- src/locking/virtlockd.service.in | 3 +--
- src/logging/virtlogd.service.in | 3 +--
- src/remote/libvirtd.service.in | 3 +--
- tools/Makefile.am | 13 ++-----------
- tools/libvirt-guests.service.in | 2 +-
- tools/libvirt-guests.sysconf | 7 +++++++
- 7 files changed, 15 insertions(+), 37 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index f5093b9c90..e2ebc51c87 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -672,23 +672,6 @@ libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
-
- EXTRA_DIST += $(SYSCONF_FILES)
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- $(INSTALL_DATA) $(srcdir)/$$f.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
--
--uninstall-sysconfig:
-- for f in $(SYSCONF_FILES:%.sysconf=%) ; \
-- do \
-- tgt=`basename $$f`; \
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
-- done
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
--
- LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
-
- EXTRA_DIST += $(LOGROTATE_FILES_IN)
-@@ -746,14 +729,14 @@ SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
- BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
- DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
-
--install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
-+install-systemd: $(SYSTEMD_UNIT_FILES)
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- for f in $(SYSTEMD_UNIT_FILES); \
- do \
- $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
- done
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
-
-diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
-index e7f8057c06..2449b201d9 100644
---- a/src/locking/virtlockd.service.in
-+++ b/src/locking/virtlockd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlockd(8)
- 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
-diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
-index daff48e67d..43736191d5 100644
---- a/src/logging/virtlogd.service.in
-+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
- Documentation=https://libvirt.org
-
- [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
-diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
-index 9c8c54a2ef..a042280cef 100644
---- a/src/remote/libvirtd.service.in
-+++ b/src/remote/libvirtd.service.in
-@@ -25,8 +25,7 @@ Documentation=https://libvirt.org
-
- [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
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 29fdbfe846..04b21eb54a 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -360,15 +360,6 @@ install-data-local: install-systemd install-nss \
- uninstall-local: uninstall-systemd uninstall-nss \
- uninstall-bash-completion
-
--install-sysconfig:
-- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
-- $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
-- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
--
--uninstall-sysconfig:
-- rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
-- rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||:
--
- EXTRA_DIST += libvirt-guests.sh.in
-
- libvirt-guests.sh: libvirt-guests.sh.in $(top_builddir)/config.status
-@@ -388,12 +379,12 @@ EXTRA_DIST += libvirt-guests.service.in
- SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
-
- if LIBVIRT_INIT_SCRIPT_SYSTEMD
--install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh
-+install-systemd: libvirt-guests.service libvirt-guests.sh
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
- $(INSTALL_DATA) libvirt-guests.service \
- $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
-
--uninstall-systemd: uninstall-sysconfig
-+uninstall-systemd:
- rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
- rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||:
-
-diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
-index 10c664016a..f0f417bffb 100644
---- a/tools/libvirt-guests.service.in
-+++ b/tools/libvirt-guests.service.in
-@@ -10,7 +10,7 @@ Documentation=man:libvirtd(8)
- 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
-diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf
-index 669b046507..45b0b9ea46 100644
---- a/tools/libvirt-guests.sysconf
-+++ b/tools/libvirt-guests.sysconf
-@@ -1,3 +1,10 @@
-+#
-+# 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
-+#
-+
-+
- # URIs to check for running guests
- # example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
- #URIS=default
---
-2.21.0
-
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-9.4.0-fix_paths_in_libvirt-guests_sh.patch b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch
new file mode 100644
index 000000000000..d40d2f1b63ec
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch
@@ -0,0 +1,32 @@
+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] Fix paths in libvirt-guests.sh.in
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ tools/libvirt-guests.sh.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
+index 016014215f..24dd706d6f 100644
+--- a/tools/libvirt-guests.sh.in
++++ b/tools/libvirt-guests.sh.in
+@@ -40,11 +40,11 @@ START_DELAY=0
+ BYPASS_CACHE=0
+ SYNC_TIME=0
+
+-test -f "$initconfdir"/libvirt-guests &&
+- . "$initconfdir"/libvirt-guests
++test -f "$sysconfdir"/libvirt/libvirt-guests.conf &&
++ . "$sysconfdir"/libvirt/libvirt-guests.conf
+
+ LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
+-VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
++VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/libvirt-guests
+
+ RETVAL=0
+
+--
+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/libvirt-guests.init-r3 b/app-emulation/libvirt/files/libvirt-guests.init-r3
deleted file mode 100644
index 10797e1b8075..000000000000
--- a/app-emulation/libvirt/files/libvirt-guests.init-r3
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/sbin/openrc-run
-
-description="Virtual Machine Management (libvirt) Guests"
-
-depend() {
- use libvirtd
-}
-
-# set the default to QEMU
-[ -z "${LIBVIRT_URIS}" ] && LIBVIRT_URIS="qemu:///system"
-
-# default to suspending the VM via managedsave
-case "${LIBVIRT_SHUTDOWN}" in
- managedsave|shutdown|destroy) ;;
- *) LIBVIRT_SHUTDOWN="managedsave" ;;
-esac
-
-# default to 500 seconds
-[ -z ${LIBVIRT_MAXWAIT} ] && LIBVIRT_MAXWAIT=500
-
-gueststatefile="/var/lib/libvirt/libvirt-guests.state"
-netstatefile="/var/lib/libvirt/libvirt-net.state"
-
-do_virsh() {
- local hvuri=$1
- shift
-
- # if unset, default to qemu
- [ -z ${hvuri} ] && hvuri="qemu:///system"
- # if only qemu was supplied then correct the value
- [ "xqemu" = x${hvuri} ] && hvuri="qemu:///system"
-
- # Silence errors because virsh always throws an error about
- # not finding the hypervisor version when connecting to libvirtd
- # lastly strip the blank line at the end
- LC_ALL=C virsh -c ${hvuri} "$@" 2>/dev/null | head -n -1
-}
-
-libvirtd_dom_list() {
- # Only work with domains by their UUIDs
- local hvuri=$1
- shift
-
- # The grep is to remove dom0 for xen domains. Otherwise we never hit 0
- do_virsh "${hvuri}" list --uuid $@ | grep -v 00000000-0000-0000-0000-000000000000
-}
-
-libvirtd_dom_count() {
- local hvuri=$1
- shift
-
- libvirtd_dom_list "${hvuri}" $@ | wc -l
-}
-
-libvirtd_net_list() {
- # Only work with networks by their UUIDs
- local hvuri=$1
- shift
-
- do_virsh "${hvuri}" net-list --uuid $@
-}
-
-libvirtd_net_count() {
- local hvuri=$1
- shift
-
- libvirtd_net_list "${hvuri}" $@ | wc -l
-}
-
-libvirtd_dom_stop() {
- # stops all persistent or transient domains for a given URI
- # $1 - uri
- # $2 - persisent/transient
-
- local uri=$1
- local persist=$2
- local shutdown_type=${LIBVIRT_SHUTDOWN}
- local counter=${LIBVIRT_MAXWAIT}
- local dom_name=
- local dom_as=
- local dom_ids=
- local uuid=
- local dom_count=
-
- [ "${persist}" = "--transient" ] && shutdown_type="shutdown"
- [ -n "${counter}" ] || counter=500
-
- einfo " Shutting down domain(s) ..."
-
- # grab all persistent or transient domains running
- dom_ids=$(libvirtd_dom_list ${uri} ${persist})
-
- for uuid in ${dom_ids}; do
- # Get the name
- dom_name=$(do_virsh ${uri} domname ${uuid})
- einfo " ${dom_name}"
- # Get autostart state
- dom_as=$(do_virsh ${uri} dominfo ${uuid} | \
- awk '$1 == "Autostart:" { print $2 }')
-
- if [ "${persist}" = "--persistent" ]; then
- # Save our running state only if LIBVIRT_IGNORE_AUTOSTART != yes
- if [ "x${LIBVIRT_IGNORE_AUTOSTART}" = "xyes" ] && \
- [ ${dom_as} = "enabled" ]; then
- :
- else
- echo "${uri} ${uuid}" >> ${gueststatefile}
- fi
-
- fi
-
- # Now let's stop it
- do_virsh "${uri}" ${shutdown_type} ${uuid} > /dev/null
-
- done
-
- dom_count="$(libvirtd_dom_count ${uri} ${persist})"
- while [ ${dom_count} -gt 0 ] && [ ${counter} -gt 0 ] ; do
- dom_count="$(libvirtd_dom_count ${uri} ${persist})"
- sleep 1
- if [ "${shutdown_type}" = "shutdown" ]; then
- counter=$((${counter} - 1))
- fi
- printf "."
- done
-
- if [ "${shutdown_type}" = "shutdown" ]; then
- # grab all domains still running
- dom_ids=$(libvirtd_dom_list ${uri} ${persist})
- for uuid in ${dom_ids}; do
- dom_name=$(do_virsh ${uri} domname ${uuid})
- eerror " ${dom_name} forcibly stopped"
- do_virsh "${uri}" destroy ${uuid} > /dev/null
- done
- fi
-}
-
-libvirtd_net_stop() {
- # stops all persistent or transient domains for a given URI
- # $1 - uri
- # $2 - persisent/transient
-
- local uri=$1
- local persist=$2
- local uuid=
- local net_name=
-
- if [ "${LIBVIRT_NET_SHUTDOWN}" != "no" ]; then
-
- einfo " Shutting down network(s):"
- for uuid in $(libvirtd_net_list ${uri} ${persist}); do
- net_name=$(do_virsh ${uri} net-name ${uuid})
- einfo " ${net_name}"
-
- if [ "${persist}" = "--persistent" ]; then
- # Save our running state
- echo "${uri} ${uuid}" >> ${netstatefile}
-
- fi
-
- # Actually stop the network
- do_virsh qemu net-destroy ${uuid} > /dev/null
- done
-
- fi
-}
-
-start() {
- local uri=
- local uuid=
- local name=
-
- for uri in ${LIBVIRT_URIS}; do
- do_virsh "${uri}" connect
- if [ $? -ne 0 ]; then
- eerror "Failed to connect to '${uri}'. Domains may not start."
- fi
- done
-
- [ ! -e "${netstatefile}" ] && touch "${netstatefile}"
- [ ! -e "${gueststatefile}" ] && touch "${gueststatefile}"
-
- # if the user didn't want to start any guests up then respect their wish
- [ "x${LIBVIRT_START}" = "xno" ] && return 0
-
- # start networks
- ebegin "Starting libvirt networks"
- while read -r uri uuid
- do
- # ignore trash
- [ -z "${uri}" ] || [ -z "${uuid}" ] && continue
-
- name=$(do_virsh "${uri}" net-name ${uuid})
- einfo " ${name}"
- do_virsh "${uri}" net-start ${uuid} > /dev/null
- done <"${netstatefile}"
- eend 0
-
- # start domains
- ebegin "Starting libvirt domains"
- while read -r uri uuid
- do
- # ignore trash
- [ -z "${uri}" ] || [ -z "${uuid}" ] && continue
-
- name=$(do_virsh "${uri}" domname ${uuid})
- einfo " ${name}"
- do_virsh "${uri}" start ${uuid} > /dev/null
- done <"${gueststatefile}"
- eend 0
-}
-
-stop() {
- local counter=
- local dom_name=
- local net_name=
- local dom_ids=
- local uuid=
- local dom_count=
-
- rm -f "${gueststatefile}"
- [ $? -ne 0 ] && eerror "Unable to save domain state"
- rm -f "${netstatefile}"
- [ $? -ne 0 ] && eerror "Unable to save net state"
-
- for uri in ${LIBVIRT_URIS}; do
- einfo "Stopping libvirt domains and networks for ${uri}"
-
- libvirtd_dom_stop "${uri}" "--persistent"
- libvirtd_dom_stop "${uri}" "--transient"
- libvirtd_net_stop "${uri}" "--persistent"
- libvirtd_net_stop "${uri}" "--transient"
-
- einfo "Done stopping domains and networks for ${uri}"
- done
-}
diff --git a/app-emulation/libvirt/files/libvirtd.init-r17 b/app-emulation/libvirt/files/libvirtd.init-r17
deleted file mode 100644
index 0f89df82db46..000000000000
--- a/app-emulation/libvirt/files/libvirtd.init-r17
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="Virtual Machine Management daemon (libvirt)"
-
-LIBVIRTD_OPTS=${LIBVIRTD_OPTS:-"${LIBVIRTD_OPTS}"}
-LIBVIRTD_TIMEOUT=${LIBVIRTD_TERMTIMEOUT:-"TERM/25/KILL/5"}
-
-command="/usr/sbin/libvirtd"
-command_args="-d ${LIBVIRTD_OPTS}"
-start_stop_daemon_args="--env KRB5_KTNAME=/etc/libvirt/krb5.tab"
-pidfile="/run/libvirtd.pid"
-retry="${LIBVIRTD_TERMTIMEOUT}"
-
-depend() {
- need virtlogd
- use dbus virtlockd
- after ntp-client ntpd nfs nfsmount portmap rpc.statd iptables ip6tables ebtables corosync sanlock cgconfig xenconsoled
- USE_FLAG_FIREWALLD
- USE_FLAG_AVAHI
- USE_FLAG_ISCSI
- USE_FLAG_RBD
-}
-
-start_pre() {
- # Test configuration directories in /etc/libvirt/ to be either not
- # present or a directory, i.e. not a regular file, bug #532892
-
- checkpath --directory /etc/libvirt/lxc || return 1
- checkpath --directory /etc/libvirt/nwfilter || return 1
- [ -L /etc/libvirt/qemu ] ||
- checkpath --directory /etc/libvirt/qemu || return 1
- [ -L /etc/libvirt/storage ] ||
- checkpath --directory /etc/libvirt/storage || return 1
-}
diff --git a/app-emulation/libvirt/files/libvirtd.init-r18 b/app-emulation/libvirt/files/libvirtd.init-r19
index 5e9efc83e2f9..12bd1d34fa2b 100644
--- a/app-emulation/libvirt/files/libvirtd.init-r18
+++ b/app-emulation/libvirt/files/libvirtd.init-r19
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="Virtual Machine Management daemon (libvirt)"
@@ -8,15 +8,15 @@ LIBVIRTD_OPTS=${LIBVIRTD_OPTS:-"${LIBVIRTD_OPTS}"}
LIBVIRTD_TIMEOUT=${LIBVIRTD_TERMTIMEOUT:-"TERM/25/KILL/5"}
command="/usr/sbin/libvirtd"
-command_args="-d ${LIBVIRTD_OPTS}"
-start_stop_daemon_args="--env KRB5_KTNAME=/etc/libvirt/krb5.tab"
+command_args="${LIBVIRTD_OPTS}"
+start_stop_daemon_args="-b --env KRB5_KTNAME=/etc/libvirt/krb5.tab"
pidfile="/run/libvirtd.pid"
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/libvirtd.service.conf b/app-emulation/libvirt/files/libvirtd.service.conf
deleted file mode 100644
index f08792260b72..000000000000
--- a/app-emulation/libvirt/files/libvirtd.service.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-# Uncomment the following three lines to start libvirtd with the '--listen'
-# directive such that it listens for TCP/IP connections (honoring the
-# listen_tls and listen_tcp settings in /etc/libvirt/libvirtd.conf). If
-# libvirtd is started without the '--listen' parameter, network connection
-# (for the daemon) is globally disabled:
-
-# [Service]
-# ExecStart=
-# ExecStart=/usr/sbin/libvirtd --listen
-
diff --git a/app-emulation/libvirt/files/virtlockd.init-r1 b/app-emulation/libvirt/files/virtlockd.init-r2
index 1e812d870c19..0445b9d02261 100644
--- a/app-emulation/libvirt/files/virtlockd.init-r1
+++ b/app-emulation/libvirt/files/virtlockd.init-r2
@@ -1,10 +1,10 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="libvirt virtual machine lock manager"
command="/usr/sbin/virtlockd"
-command_args="-d"
+start_stop_daemon_args="-b"
pidfile="/run/virtlockd.pid"
extra_started_commands="reload"
@@ -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-r1 b/app-emulation/libvirt/files/virtlogd.init-r2
index ff9c2446e8c3..abc293e13ae5 100644
--- a/app-emulation/libvirt/files/virtlogd.init-r1
+++ b/app-emulation/libvirt/files/virtlogd.init-r2
@@ -1,10 +1,10 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="libvirt virtual machine logging manager"
command="/usr/sbin/virtlogd"
-command_args="-d"
+start_stop_daemon_args="-b"
pidfile="/run/virtlogd.pid"
extra_started_commands="reload"
@@ -12,7 +12,7 @@ description_reload="re-exec the daemon, while maintaining open connections"
depend() {
- after ntp-client ntpd nfs nfsmount corosync
+ after ntp-client ntpd nfs corosync
}
reload() {
diff --git a/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild
new file mode 100644
index 000000000000..baf260598704
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild
@@ -0,0 +1,367 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{9..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nbd nbdkit)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild
new file mode 100644
index 000000000000..128f76475972
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild
@@ -0,0 +1,366 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nbd nbdkit)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-10.2.0.ebuild b/app-emulation/libvirt/libvirt-10.2.0.ebuild
new file mode 100644
index 000000000000..f1c08714d713
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.2.0.ebuild
@@ -0,0 +1,365 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nbd nbdkit)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-10.3.0-r1.ebuild b/app-emulation/libvirt/libvirt-10.3.0-r1.ebuild
new file mode 100644
index 000000000000..5a6a2ae58357
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.3.0-r1.ebuild
@@ -0,0 +1,366 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-10.3.0-vsh-Don-t-init-history-in-cmdComplete.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-5.2.0-r2.ebuild b/app-emulation/libvirt/libvirt-5.2.0-r2.ebuild
deleted file mode 100644
index 0d00aa14bca9..000000000000
--- a/app-emulation/libvirt/libvirt-5.2.0-r2.ebuild
+++ /dev/null
@@ -1,384 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-
-inherit autotools bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://libvirt.org/git/libvirt.git"
- SRC_URI=""
- KEYWORDS="amd64 x86"
- SLOT="0"
-else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 x86"
- SLOT="0/${PV}"
-fi
-
-DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="http://www.libvirt.org/"
-LICENSE="LGPL-2.1"
-IUSE="
- apparmor audit +caps +dbus firewalld fuse glusterfs iscsi iscsi-direct
- +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz parted pcap phyp
- policykit +qemu rbd sasl selinux +udev +vepa virtualbox virt-network
- wireshark-plugins xen zeroconf zfs
-"
-
-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 )"
-
-# 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
- policykit? ( acct-group/libvirt )
- app-misc/scrub
- dev-libs/libgcrypt:0
- dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
- >=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-misc/curl-7.18.0
- sys-apps/dmidecode
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=sys-apps/util-linux-2.17
- sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
- apparmor? ( sys-libs/libapparmor )
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( >=sys-fs/fuse-2.8.6:= )
- glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
- iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
- 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[-device-mapper-only(-)]
- )
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
- qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
- )
- rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
- selinux? ( >=sys-libs/libselinux-2.0.85 )
- virt-network? (
- net-dns/dnsmasq[script]
- net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
- net-misc/radvd
- sys-apps/iproute2[-minimal]
- )
- virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
- wireshark-plugins? ( net-analyzer/wireshark:= )
- xen? (
- >=app-emulation/xen-4.6.0
- app-emulation/xen-tools:=
- )
- udev? (
- virtual/udev
- >=x11-libs/libpciaccess-0.10.9
- )
- zeroconf? ( >=net-dns/avahi-0.6[dbus] )
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- app-text/xhtml1
- dev-lang/perl
- dev-libs/libxslt
- dev-perl/XML-XPath
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.2.0-do-not-use-sysconf.patch
- "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-5.2.0-fix-paths-for-apparmor.patch
- "${FILESDIR}"/${PN}-5.2.0-md-clear.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 macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
- 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
- ~IP_NF_TARGET_MASQUERADE
- ~IP6_NF_FILTER
- ~IP6_NF_MANGLE
- ~IP6_NF_NAT"
- # 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"
-
- # 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
-}
-
-src_prepare() {
- touch "${S}/.mailmap"
-
- default
-
- if [[ ${PV} = *9999* ]]; then
- # Reinitialize submodules as this is required for gnulib's bootstrap
- git submodule init
- # git checkouts require bootstrapping to create the configure script.
- # Additionally the submodules must be cloned to the right locations
- # bug #377279
- ./bootstrap || die "bootstrap failed"
- (
- git submodule status .gnulib | awk '{ print $1 }'
- git hash-object bootstrap.conf
- git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
- ) >.git-module-status
- fi
-
- # Tweak the init script:
- cp "${FILESDIR}/libvirtd.init-r17" "${S}/libvirtd.init" || die
- sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
- -e "s/USE_FLAG_AVAHI/$(usex zeroconf 'use avahi-daemon' '')/" \
- -e "s/USE_FLAG_ISCSI/$(usex iscsi 'use iscsid' '')/" \
- -e "s/USE_FLAG_RBD/$(usex rbd 'use ceph' '')/" \
- -i "${S}/libvirtd.init" || die "sed failed"
-
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- $(use_with apparmor)
- $(use_with apparmor apparmor-profiles)
- $(use_with audit)
- $(use_with caps capng)
- $(use_with dbus)
- $(use_with firewalld)
- $(use_with fuse)
- $(use_with glusterfs)
- $(use_with glusterfs storage-gluster)
- $(use_with iscsi storage-iscsi)
- $(use_with iscsi-direct storage-iscsi-direct)
- $(use_with libvirtd)
- $(use_with libssh)
- $(use_with lvm storage-lvm)
- $(use_with lvm storage-mpath)
- $(use_with lxc)
- $(use_with macvtap)
- $(use_enable nls)
- $(use_with numa numactl)
- $(use_with numa numad)
- $(use_with openvz)
- $(use_with parted storage-disk)
- $(use_with pcap libpcap)
- $(use_with phyp)
- $(use_with policykit polkit)
- $(use_with qemu)
- $(use_with qemu yajl)
- $(use_with rbd storage-rbd)
- $(use_with sasl)
- $(use_with selinux)
- $(use_with udev)
- $(use_with vepa virtualport)
- $(use_with virt-network network)
- $(use_with wireshark-plugins wireshark-dissector)
- $(use_with xen libxl)
- $(use_with zeroconf avahi)
- $(use_with zfs storage-zfs)
-
- --without-hal
- --without-netcf
- --without-sanlock
-
- --with-esx
- --with-init-script=systemd
- --with-qemu-group=$(usex caps qemu root)
- --with-qemu-user=$(usex caps qemu root)
- --with-remote
- --with-storage-fs
- --with-vmware
-
- --disable-static
- --disable-werror
-
- --with-html-subdir=${PF}/html
- --localstatedir=/var
- )
-
- if use virtualbox && has_version app-emulation/virtualbox-ose; then
- myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
- else
- myeconfargs+=( $(use_with virtualbox vbox) )
- fi
-
- econf "${myeconfargs[@]}"
-
- if [[ ${PV} = *9999* ]]; then
- # Restore gnulib's config.sub and config.guess
- # bug #377279
- (cd .gnulib && git reset --hard > /dev/null)
- fi
-}
-
-src_test() {
- cd "${BUILD_DIR}"
-
- # 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
- HOME="${T}" emake check || die "tests failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" \
- SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
-
- find "${D}" -name '*.la' -delete || die
-
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig
- rm -rf "${D}"/var
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- systemd_install_serviced \
- "${FILESDIR}"/libvirtd.service.conf libvirtd.service
-
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
-
- newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r3" libvirt-guests || die
- newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
- newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
-
- newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd || die
- newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
-
- DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
- DISABLE_AUTOFORMATTING=true
- 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
- fi
-}
-
-pkg_postinst() {
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
- fi
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/libvirt/libvirt-5.5.0-r1.ebuild b/app-emulation/libvirt/libvirt-5.5.0-r1.ebuild
deleted file mode 100644
index db4043651ccd..000000000000
--- a/app-emulation/libvirt/libvirt-5.5.0-r1.ebuild
+++ /dev/null
@@ -1,379 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-
-inherit autotools bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://libvirt.org/git/libvirt.git"
- SRC_URI=""
- KEYWORDS="amd64 x86"
- SLOT="0"
-else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 x86"
- SLOT="0/${PV}"
-fi
-
-DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="http://www.libvirt.org/"
-LICENSE="LGPL-2.1"
-IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap phyp policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
-"
-
-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 )"
-
-# 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
- policykit? ( acct-group/libvirt )
- app-misc/scrub
- dev-libs/libgcrypt:0
- dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
- >=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-misc/curl-7.18.0
- sys-apps/dmidecode
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=sys-apps/util-linux-2.17
- sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
- apparmor? ( sys-libs/libapparmor )
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
- firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( >=sys-fs/fuse-2.8.6:= )
- glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
- iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
- 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[-device-mapper-only(-)]
- )
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
- qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
- )
- rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
- selinux? ( >=sys-libs/libselinux-2.0.85 )
- virt-network? (
- net-dns/dnsmasq[script]
- net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
- net-misc/radvd
- sys-apps/iproute2[-minimal]
- )
- virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
- wireshark-plugins? ( net-analyzer/wireshark:= )
- xen? (
- >=app-emulation/xen-4.6.0
- app-emulation/xen-tools:=
- )
- udev? (
- virtual/udev
- >=x11-libs/libpciaccess-0.10.9
- )
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- app-text/xhtml1
- dev-lang/perl
- dev-libs/libxslt
- dev-perl/XML-XPath
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.2.0-do-not-use-sysconf.patch
- "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-5.2.0-fix-paths-for-apparmor.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 macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
- 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
- ~IP_NF_TARGET_MASQUERADE
- ~IP6_NF_FILTER
- ~IP6_NF_MANGLE
- ~IP6_NF_NAT"
- # 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"
-
- # 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
-}
-
-src_prepare() {
- touch "${S}/.mailmap"
-
- default
-
- if [[ ${PV} = *9999* ]]; then
- # Reinitialize submodules as this is required for gnulib's bootstrap
- git submodule init
- # git checkouts require bootstrapping to create the configure script.
- # Additionally the submodules must be cloned to the right locations
- # bug #377279
- ./bootstrap || die "bootstrap failed"
- (
- git submodule status .gnulib | awk '{ print $1 }'
- git hash-object bootstrap.conf
- git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
- ) >.git-module-status
- fi
-
- # Tweak the init script:
- cp "${FILESDIR}/libvirtd.init-r18" "${S}/libvirtd.init" || die
- sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
- -i "${S}/libvirtd.init" || die "sed failed"
-
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- $(use_with apparmor)
- $(use_with apparmor apparmor-profiles)
- $(use_with audit)
- $(use_with caps capng)
- $(use_with dbus)
- $(use_with dtrace)
- $(use_with firewalld)
- $(use_with fuse)
- $(use_with glusterfs)
- $(use_with glusterfs storage-gluster)
- $(use_with iscsi storage-iscsi)
- $(use_with iscsi-direct storage-iscsi-direct)
- $(use_with libvirtd)
- $(use_with libssh)
- $(use_with lvm storage-lvm)
- $(use_with lvm storage-mpath)
- $(use_with lxc)
- $(use_with macvtap)
- $(use_enable nls)
- $(use_with numa numactl)
- $(use_with numa numad)
- $(use_with openvz)
- $(use_with parted storage-disk)
- $(use_with pcap libpcap)
- $(use_with phyp)
- $(use_with policykit polkit)
- $(use_with qemu)
- $(use_with qemu yajl)
- $(use_with rbd storage-rbd)
- $(use_with sasl)
- $(use_with selinux)
- $(use_with udev)
- $(use_with vepa virtualport)
- $(use_with virt-network network)
- $(use_with wireshark-plugins wireshark-dissector)
- $(use_with xen libxl)
- $(use_with zfs storage-zfs)
-
- --without-hal
- --without-netcf
- --without-sanlock
-
- --with-esx
- --with-init-script=systemd
- --with-qemu-group=$(usex caps qemu root)
- --with-qemu-user=$(usex caps qemu root)
- --with-remote
- --with-storage-fs
- --with-vmware
-
- --disable-static
- --disable-werror
-
- --localstatedir=/var
- )
-
- if use virtualbox && has_version app-emulation/virtualbox-ose; then
- myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
- else
- myeconfargs+=( $(use_with virtualbox vbox) )
- fi
-
- econf "${myeconfargs[@]}"
-
- if [[ ${PV} = *9999* ]]; then
- # Restore gnulib's config.sub and config.guess
- # bug #377279
- (cd .gnulib && git reset --hard > /dev/null)
- fi
-}
-
-src_test() {
- cd "${BUILD_DIR}"
-
- # 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
- HOME="${T}" emake check || die "tests failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" \
- SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
-
- find "${D}" -name '*.la' -delete || die
-
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig
- rm -rf "${D}"/var
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- systemd_install_serviced \
- "${FILESDIR}"/libvirtd.service.conf libvirtd.service
-
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
-
- newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests || die
- newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
- newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
-
- newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd || die
- newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
-
- DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
- DISABLE_AUTOFORMATTING=true
- 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
- fi
-}
-
-pkg_postinst() {
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
- fi
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/libvirt/libvirt-5.6.0.ebuild b/app-emulation/libvirt/libvirt-5.6.0.ebuild
deleted file mode 100644
index 11ae2447b09c..000000000000
--- a/app-emulation/libvirt/libvirt-5.6.0.ebuild
+++ /dev/null
@@ -1,379 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-
-inherit autotools bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://libvirt.org/git/libvirt.git"
- SRC_URI=""
- KEYWORDS=""
- SLOT="0"
-else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~x86"
- SLOT="0/${PV}"
-fi
-
-DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="http://www.libvirt.org/"
-LICENSE="LGPL-2.1"
-IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap phyp policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
-"
-
-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 )"
-
-# 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
- policykit? ( acct-group/libvirt )
- app-misc/scrub
- dev-libs/libgcrypt:0
- dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
- >=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-misc/curl-7.18.0
- sys-apps/dmidecode
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=sys-apps/util-linux-2.17
- sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
- apparmor? ( sys-libs/libapparmor )
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
- firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( >=sys-fs/fuse-2.8.6:= )
- glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
- iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
- 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[-device-mapper-only(-)]
- )
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
- qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
- )
- rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
- selinux? ( >=sys-libs/libselinux-2.0.85 )
- virt-network? (
- net-dns/dnsmasq[script]
- net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
- net-misc/radvd
- sys-apps/iproute2[-minimal]
- )
- virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
- wireshark-plugins? ( net-analyzer/wireshark:= )
- xen? (
- >=app-emulation/xen-4.6.0
- app-emulation/xen-tools:=
- )
- udev? (
- virtual/udev
- >=x11-libs/libpciaccess-0.10.9
- )
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- app-text/xhtml1
- dev-lang/perl
- dev-libs/libxslt
- dev-perl/XML-XPath
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.6.0-do-not-use-sysconf.patch
- "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-5.2.0-fix-paths-for-apparmor.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 macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
- 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
- ~IP_NF_TARGET_MASQUERADE
- ~IP6_NF_FILTER
- ~IP6_NF_MANGLE
- ~IP6_NF_NAT"
- # 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"
-
- # 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
-}
-
-src_prepare() {
- touch "${S}/.mailmap"
-
- default
-
- if [[ ${PV} = *9999* ]]; then
- # Reinitialize submodules as this is required for gnulib's bootstrap
- git submodule init
- # git checkouts require bootstrapping to create the configure script.
- # Additionally the submodules must be cloned to the right locations
- # bug #377279
- ./bootstrap || die "bootstrap failed"
- (
- git submodule status .gnulib | awk '{ print $1 }'
- git hash-object bootstrap.conf
- git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
- ) >.git-module-status
- fi
-
- # Tweak the init script:
- cp "${FILESDIR}/libvirtd.init-r18" "${S}/libvirtd.init" || die
- sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
- -i "${S}/libvirtd.init" || die "sed failed"
-
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- $(use_with apparmor)
- $(use_with apparmor apparmor-profiles)
- $(use_with audit)
- $(use_with caps capng)
- $(use_with dbus)
- $(use_with dtrace)
- $(use_with firewalld)
- $(use_with fuse)
- $(use_with glusterfs)
- $(use_with glusterfs storage-gluster)
- $(use_with iscsi storage-iscsi)
- $(use_with iscsi-direct storage-iscsi-direct)
- $(use_with libvirtd)
- $(use_with libssh)
- $(use_with lvm storage-lvm)
- $(use_with lvm storage-mpath)
- $(use_with lxc)
- $(use_with macvtap)
- $(use_enable nls)
- $(use_with numa numactl)
- $(use_with numa numad)
- $(use_with openvz)
- $(use_with parted storage-disk)
- $(use_with pcap libpcap)
- $(use_with phyp)
- $(use_with policykit polkit)
- $(use_with qemu)
- $(use_with qemu yajl)
- $(use_with rbd storage-rbd)
- $(use_with sasl)
- $(use_with selinux)
- $(use_with udev)
- $(use_with vepa virtualport)
- $(use_with virt-network network)
- $(use_with wireshark-plugins wireshark-dissector)
- $(use_with xen libxl)
- $(use_with zfs storage-zfs)
-
- --without-hal
- --without-netcf
- --without-sanlock
-
- --with-esx
- --with-init-script=systemd
- --with-qemu-group=$(usex caps qemu root)
- --with-qemu-user=$(usex caps qemu root)
- --with-remote
- --with-storage-fs
- --with-vmware
-
- --disable-static
- --disable-werror
-
- --localstatedir=/var
- )
-
- if use virtualbox && has_version app-emulation/virtualbox-ose; then
- myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
- else
- myeconfargs+=( $(use_with virtualbox vbox) )
- fi
-
- econf "${myeconfargs[@]}"
-
- if [[ ${PV} = *9999* ]]; then
- # Restore gnulib's config.sub and config.guess
- # bug #377279
- (cd .gnulib && git reset --hard > /dev/null)
- fi
-}
-
-src_test() {
- cd "${BUILD_DIR}"
-
- # 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
- HOME="${T}" emake check || die "tests failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" \
- SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
-
- find "${D}" -name '*.la' -delete || die
-
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig
- rm -rf "${D}"/var
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- systemd_install_serviced \
- "${FILESDIR}"/libvirtd.service.conf libvirtd.service
-
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
-
- newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests || die
- newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
- newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
-
- newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd || die
- newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
-
- DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
- DISABLE_AUTOFORMATTING=true
- 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
- fi
-}
-
-pkg_postinst() {
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
- fi
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/libvirt/libvirt-5.8.0.ebuild b/app-emulation/libvirt/libvirt-5.8.0.ebuild
deleted file mode 100644
index 696f81fcdc79..000000000000
--- a/app-emulation/libvirt/libvirt-5.8.0.ebuild
+++ /dev/null
@@ -1,383 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-
-inherit autotools bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://libvirt.org/git/libvirt.git"
- SRC_URI=""
- KEYWORDS=""
- SLOT="0"
-else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~x86"
- SLOT="0/${PV}"
-fi
-
-DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="http://www.libvirt.org/"
-LICENSE="LGPL-2.1"
-IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap phyp pm-utils policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
-"
-
-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 )"
-
-# 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
- policykit? ( acct-group/libvirt )
- app-misc/scrub
- dev-libs/libgcrypt:0
- dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
- >=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-misc/curl-7.18.0
- sys-apps/dmidecode
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=sys-apps/util-linux-2.17
- sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
- apparmor? ( sys-libs/libapparmor )
- audit? ( sys-process/audit )
- caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
- firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( >=sys-fs/fuse-2.8.6:= )
- glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
- iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
- 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[-device-mapper-only(-)]
- )
- pcap? ( >=net-libs/libpcap-1.0.0 )
- pm-utils? ( sys-power/pm-utils )
- policykit? ( >=sys-auth/polkit-0.9 )
- qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
- )
- rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
- selinux? ( >=sys-libs/libselinux-2.0.85 )
- virt-network? (
- net-dns/dnsmasq[script]
- net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
- net-misc/radvd
- sys-apps/iproute2[-minimal]
- )
- virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
- wireshark-plugins? ( net-analyzer/wireshark:= )
- xen? (
- >=app-emulation/xen-4.6.0
- app-emulation/xen-tools:=
- )
- udev? (
- virtual/udev
- >=x11-libs/libpciaccess-0.10.9
- )
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- app-text/xhtml1
- dev-lang/perl
- dev-libs/libxslt
- dev-perl/XML-XPath
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.7.0-do-not-use-sysconf.patch
- "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-5.2.0-fix-paths-for-apparmor.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 macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
- 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
- ~IP_NF_TARGET_MASQUERADE
- ~IP6_NF_FILTER
- ~IP6_NF_MANGLE
- ~IP6_NF_NAT"
- # 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"
-
- # 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
-}
-
-src_prepare() {
- touch "${S}/.mailmap"
-
- default
-
- if [[ ${PV} = *9999* ]]; then
- # Reinitialize submodules as this is required for gnulib's bootstrap
- git submodule init
- # git checkouts require bootstrapping to create the configure script.
- # Additionally the submodules must be cloned to the right locations
- # bug #377279
- ./bootstrap || die "bootstrap failed"
- (
- git submodule status .gnulib | awk '{ print $1 }'
- git hash-object bootstrap.conf
- git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
- ) >.git-module-status
- fi
-
- # Tweak the init script:
- cp "${FILESDIR}/libvirtd.init-r18" "${S}/libvirtd.init" || die
- sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
- -i "${S}/libvirtd.init" || die "sed failed"
-
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- $(use_with apparmor)
- $(use_with apparmor apparmor-profiles)
- $(use_with audit)
- $(use_with caps capng)
- $(use_with dbus)
- $(use_with dtrace)
- $(use_with firewalld)
- $(use_with fuse)
- $(use_with glusterfs)
- $(use_with glusterfs storage-gluster)
- $(use_with iscsi storage-iscsi)
- $(use_with iscsi-direct storage-iscsi-direct)
- $(use_with libvirtd)
- $(use_with libssh)
- $(use_with lvm storage-lvm)
- $(use_with lvm storage-mpath)
- $(use_with lxc)
- $(use_with macvtap)
- $(use_enable nls)
- $(use_with numa numactl)
- $(use_with numa numad)
- $(use_with openvz)
- $(use_with parted storage-disk)
- $(use_with pcap libpcap)
- $(use_with phyp)
- $(use_with pm-utils )
- $(use_with policykit polkit)
- $(use_with qemu)
- $(use_with qemu yajl)
- $(use_with rbd storage-rbd)
- $(use_with sasl)
- $(use_with selinux)
- $(use_with udev)
- $(use_with vepa virtualport)
- $(use_with virt-network network)
- $(use_with wireshark-plugins wireshark-dissector)
- $(use_with xen libxl)
- $(use_with zfs storage-zfs)
-
- --without-hal
- --without-netcf
- --without-sanlock
-
- --with-esx
- --with-init-script=systemd
- --with-qemu-group=$(usex caps qemu root)
- --with-qemu-user=$(usex caps qemu root)
- --with-remote
- --with-storage-fs
- --with-vmware
-
- --disable-static
- --disable-werror
-
- --localstatedir="$EPREFIX/var"
- --with-runstatedir="$EPREFIX/run"
- )
-
- if use virtualbox && has_version app-emulation/virtualbox-ose; then
- myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
- else
- myeconfargs+=( $(use_with virtualbox vbox) )
- fi
-
- econf "${myeconfargs[@]}"
-
- if [[ ${PV} = *9999* ]]; then
- # Restore gnulib's config.sub and config.guess
- # bug #377279
- (cd .gnulib && git reset --hard > /dev/null)
- fi
-}
-
-src_test() {
- cd "${BUILD_DIR}"
-
- # 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
- HOME="${T}" emake check || die "tests failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" \
- SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
-
- find "${D}" -name '*.la' -delete || die
-
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- 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_install_serviced \
- "${FILESDIR}"/libvirtd.service.conf libvirtd.service
-
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
-
- newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests || die
- newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
- newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
-
- newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd || die
- newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
-
- DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
- DISABLE_AUTOFORMATTING=true
- 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
- fi
-}
-
-pkg_postinst() {
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
- fi
-
- use libvirtd || return 0
- # From here, only libvirtd-related instructions, be warned!
-
- 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 63900def37dc..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-9999.ebuild
+++ b/app-emulation/libvirt/libvirt-9999.ebuild
@@ -1,83 +1,96 @@
-# Copyright 1999-2019 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_{5,6,7} )
+# 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 autotools 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://libvirt.org/git/libvirt.git"
- SRC_URI=""
- KEYWORDS=""
- SLOT="0"
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~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="http://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 phyp 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="
+ 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
+# we must go with the most recent.
RDEPEND="
acct-user/qemu
- policykit? ( acct-group/libvirt )
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-apps/systemd[-cgroup-hybrid(+)]
- >=sys-apps/util-linux-2.17
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-2.8.6:= )
+ 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
@@ -85,48 +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]
)
- virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
- 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/udev
+ virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${RDEPEND}
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
${PYTHON_DEPS}
- app-text/xhtml1
- dev-lang/perl
- dev-libs/libxslt
- dev-perl/XML-XPath
- virtual/pkgconfig"
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-5.7.0-do-not-use-sysconf.patch
- "${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-5.2.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
)
pkg_setup() {
@@ -170,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
@@ -183,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
@@ -198,183 +226,140 @@ 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"
+ touch "${S}/.mailmap" || die
default
+ python_fix_shebang .
- if [[ ${PV} = *9999* ]]; then
- # Reinitialize submodules as this is required for gnulib's bootstrap
- git submodule init
- # git checkouts require bootstrapping to create the configure script.
- # Additionally the submodules must be cloned to the right locations
- # bug #377279
- ./bootstrap || die "bootstrap failed"
- (
- git submodule status .gnulib | awk '{ print $1 }'
- git hash-object bootstrap.conf
- git ls-tree -d HEAD gnulib/local | awk '{ print $3 }'
- ) >.git-module-status
- fi
+ # 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-r18" "${S}/libvirtd.init" || die
+ 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"
-
- eautoreconf
}
src_configure() {
- local myeconfargs=(
- $(use_with apparmor)
- $(use_with apparmor apparmor-profiles)
- $(use_with audit)
- $(use_with caps capng)
- $(use_with dbus)
- $(use_with dtrace)
- $(use_with firewalld)
- $(use_with fuse)
- $(use_with glusterfs)
- $(use_with glusterfs storage-gluster)
- $(use_with iscsi storage-iscsi)
- $(use_with iscsi-direct storage-iscsi-direct)
- $(use_with libvirtd)
- $(use_with libssh)
- $(use_with lvm storage-lvm)
- $(use_with lvm storage-mpath)
- $(use_with lxc)
- $(use_with macvtap)
- $(use_enable nls)
- $(use_with numa numactl)
- $(use_with numa numad)
- $(use_with openvz)
- $(use_with parted storage-disk)
- $(use_with pcap libpcap)
- $(use_with phyp)
- $(use_with policykit polkit)
- $(use_with qemu)
- $(use_with qemu yajl)
- $(use_with rbd storage-rbd)
- $(use_with sasl)
- $(use_with selinux)
- $(use_with udev)
- $(use_with vepa virtualport)
- $(use_with virt-network network)
- $(use_with wireshark-plugins wireshark-dissector)
- $(use_with xen libxl)
- $(use_with zfs storage-zfs)
-
- --without-hal
- --without-netcf
- --without-sanlock
-
- --with-esx
- --with-init-script=systemd
- --with-qemu-group=$(usex caps qemu root)
- --with-qemu-user=$(usex caps qemu root)
- --with-remote
- --with-storage-fs
- --with-vmware
-
- --disable-static
- --disable-werror
-
- --localstatedir=/var
+ 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}"
)
- if use virtualbox && has_version app-emulation/virtualbox-ose; then
- myeconfargs+=( --with-vbox=/usr/lib/virtualbox-ose/ )
- else
- myeconfargs+=( $(use_with virtualbox vbox) )
- fi
-
- econf "${myeconfargs[@]}"
-
- if [[ ${PV} = *9999* ]]; then
- # Restore gnulib's config.sub and config.guess
- # bug #377279
- (cd .gnulib && git reset --hard > /dev/null)
- fi
+ meson_src_configure
}
src_test() {
- cd "${BUILD_DIR}"
-
- # 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
- HOME="${T}" emake check || die "tests failed"
+ # 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() {
- emake DESTDIR="${D}" \
- SYSTEMD_UNIT_DIR="$(systemd_get_systemunitdir)" install
-
- find "${D}" -name '*.la' -delete || die
-
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
+ 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!
- systemd_install_serviced \
- "${FILESDIR}"/libvirtd.service.conf libvirtd.service
-
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
- newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests || die
- newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
- newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
+ 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 || die
- newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests || die
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
-
- DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r2")
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
DISABLE_AUTOFORMATTING=true
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
- fi
-}
-
pkg_postinst() {
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
+ 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/metadata.xml b/app-emulation/libvirt/metadata.xml
index 3b887d5ce0c5..16610185fea3 100644
--- a/app-emulation/libvirt/metadata.xml
+++ b/app-emulation/libvirt/metadata.xml
@@ -1,106 +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 (one of <pkg>app-emulation/virtualbox</pkg> or
- <pkg>app-emulation/virtualbox-bin</pkg>)
- </flag>
- <flag name="phyp">
- Support IBM HMC / IVM hypervisor via PHYP protocol
- </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="pm-utils">
- Add runtime support for <pkg>sys-power/pm-utils</pkg>
- </flag>
- <flag name="macvtap">
- Support for MAC-based TAP (macvlan/macvtap). For networking instead
- of the normal TUN/TAP. It has its advantages and disadvantages.
- macvtap support requires very new kernels and is
- currently evolving. Support for this is experimental at best.
- </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 c25ef6c9343f..000000000000
--- a/app-emulation/lxc-templates/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST lxc-templates-3.0.3.tar.gz 257085 BLAKE2B b53a057e1da23997318c2bcee095fbffb97c37b656eec9643e5a5ac2e7bdfeb9599710a8ccfb5d61aaf523d754f1dbbe7748c4cd1990205c6e28a17cd5e61ee0 SHA512 3e9d5304f5e06580eeb766570ddfebb0c80061c2d7e47c9ea37d834fe0cf4fabe7eedd667e4937df3f2451bc3e7aa1e98a1b386f3b19964dc218ff0e21011632
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.3.ebuild b/app-emulation/lxc-templates/lxc-templates-3.0.3.ebuild
deleted file mode 100644
index 38950a11f0aa..000000000000
--- a/app-emulation/lxc-templates/lxc-templates-3.0.3.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools
-
-DESCRIPTION="Old style template scripts for LXC"
-HOMEPAGE="https://linuxcontainers.org/"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz"
-
-KEYWORDS="amd64 ~arm ~arm64 ppc64 x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-
-RDEPEND="
- >=app-emulation/lxc-3.0"
-
-DEPEND="${RDEPEND}"
-
-PATCHES=( "${FILESDIR}/${PN}-3.0.1-no-cache-dir.patch" )
-DOCS=()
-
-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 2cf03a0ac7ec..000000000000
--- a/app-emulation/lxc-templates/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>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 94f3dfd504e1..000000000000
--- a/app-emulation/lxc/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST lxc-2.1.1.tar.gz 1378640 BLAKE2B 5fca516540a886729434579ff99acf3baa06977fa0e0b6f24dbf15094626335fc073597d308276e3dd20e27ceabf1477cc8e99d1fd24cf50b9aed2720b887b69 SHA512 2989d57acddfe091adcf8031721c3c9a2f8eff5476bd6155366b76ea7511e0f6120e669276e056e3963863e0f0acf3b095d44c36fa6652e67c197671f28cbdd4
-DIST lxc-3.0.3.tar.gz 1263371 BLAKE2B 77d0f593119654f570ae748d305e86c27117fd4e9ec7bdab1110f5356afb4a00d81c105ae9757d9da5827f6883a4a5d8ddc43b5b6e56a2927ed990e757f7c7b6 SHA512 cdc411364153d7ed494bab604260f5cbdfd5bd7734a59af970b3198c7b3cb340b6736856a2189d5989e169945a817ac8b531bc3ab62217a4285dd63a851f9c8a
-DIST lxc-3.1.0.tar.gz 1277877 BLAKE2B e114855659c8199378d14bc23f667ce1927bb32c55d336fa9c222a60198da51e7ded6aeb6d1c89cbeb1e9edc101e424a847be1e4a2330d2a0bceda52d0df5e30 SHA512 706cee9bc8ac57300574b59d728437e41baa4eb16c68f8548142e53b4e13679ef6698df30a4fbf8617e4f07338f898464e9f818e80d32648fe9717370dcbbb20
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-2.0.6-bash-completion.patch b/app-emulation/lxc/files/lxc-2.0.6-bash-completion.patch
deleted file mode 100644
index 6033e36c7985..000000000000
--- a/app-emulation/lxc/files/lxc-2.0.6-bash-completion.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/config/bash/lxc.in b/config/bash/lxc.in
-index 7dcf302..5927fe2 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" ) )
- }
-@@ -100,4 +99,3 @@ _have lxc-start && {
-
- complete -o default -F _lxc_generic_o lxc-copy
- complete -o default -F _lxc_generic_o lxc-start-ephemeral
--}
-diff --git a/configure.ac b/configure.ac
-index 4640c0d..14ccdd3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -478,7 +478,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-2.1.1-cgroups-enable-container-without-CAP_SYS_ADMIN.patch b/app-emulation/lxc/files/lxc-2.1.1-cgroups-enable-container-without-CAP_SYS_ADMIN.patch
deleted file mode 100644
index 8493491d0d65..000000000000
--- a/app-emulation/lxc/files/lxc-2.1.1-cgroups-enable-container-without-CAP_SYS_ADMIN.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From b635e92d21d2a4d71a553388f18cfa08f44bf1ba Mon Sep 17 00:00:00 2001
-From: Christian Brauner <christian.brauner@ubuntu.com>
-Date: Mon, 30 Oct 2017 14:16:46 +0100
-Subject: [PATCH] cgroups: enable container without CAP_SYS_ADMIN
-
-In case cgroup namespaces are supported but we do not have CAP_SYS_ADMIN we
-need to mount cgroups for the container. This patch enables both privileged and
-unprivileged containers without CAP_SYS_ADMIN.
-
-Closes #1737.
-
-Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
----
- src/lxc/cgroups/cgfs.c | 3 ++-
- src/lxc/cgroups/cgfsng.c | 52 +++++++++++++++++++++++++++++++++++++++++++++---
- src/lxc/cgroups/cgroup.c | 2 +-
- src/lxc/conf.c | 3 ---
- src/lxc/conf.h | 1 +
- 5 files changed, 53 insertions(+), 8 deletions(-)
-
-diff --git a/src/lxc/cgroups/cgfs.c b/src/lxc/cgroups/cgfs.c
-index bcbd6613..efd627f0 100644
---- a/src/lxc/cgroups/cgfs.c
-+++ b/src/lxc/cgroups/cgfs.c
-@@ -1418,11 +1418,12 @@ static bool cgroupfs_mount_cgroup(void *hdata, const char *root, int type)
- struct cgfs_data *cgfs_d;
- struct cgroup_process_info *info, *base_info;
- int r, saved_errno = 0;
-+ struct lxc_handler *handler = hdata;
-
- if (cgns_supported())
- return true;
-
-- cgfs_d = hdata;
-+ cgfs_d = handler->cgroup_data;
- if (!cgfs_d)
- return false;
- base_info = cgfs_d->info;
-diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
-index e43edd7d..ec6440c1 100644
---- a/src/lxc/cgroups/cgfsng.c
-+++ b/src/lxc/cgroups/cgfsng.c
-@@ -50,6 +50,7 @@
- #include <linux/types.h>
- #include <linux/kdev_t.h>
-
-+#include "caps.h"
- #include "cgroup.h"
- #include "cgroup_utils.h"
- #include "commands.h"
-@@ -1616,17 +1617,49 @@ do_secondstage_mounts_if_needed(int type, struct hierarchy *h,
- return 0;
- }
-
-+static int mount_cgroup_cgns_supported(struct hierarchy *h, const char *controllerpath)
-+{
-+ int ret;
-+ char *controllers = NULL;
-+ char *type = "cgroup2";
-+
-+ if (!h->is_cgroup_v2) {
-+ controllers = lxc_string_join(",", (const char **)h->controllers, false);
-+ if (!controllers)
-+ return -ENOMEM;
-+ type = "cgroup";
-+ }
-+
-+ ret = mount("cgroup", controllerpath, type, MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_RELATIME, controllers);
-+ free(controllers);
-+ if (ret < 0) {
-+ SYSERROR("Failed to mount %s with cgroup filesystem type %s", controllerpath, type);
-+ return -1;
-+ }
-+
-+ DEBUG("Mounted %s with cgroup filesystem type %s", controllerpath, type);
-+ return 0;
-+}
-+
- static bool cgfsng_mount(void *hdata, const char *root, int type)
- {
-- struct cgfsng_handler_data *d = hdata;
-+ int i;
- char *tmpfspath = NULL;
- bool retval = false;
-- int i;
-+ struct lxc_handler *handler = hdata;
-+ struct cgfsng_handler_data *d = handler->cgroup_data;
-+ bool has_cgns = false, has_sys_admin = true;
-
- if ((type & LXC_AUTO_CGROUP_MASK) == 0)
- return true;
-
-- if (cgns_supported())
-+ has_cgns = cgns_supported();
-+ if (!lxc_list_empty(&handler->conf->keepcaps))
-+ has_sys_admin = in_caplist(CAP_SYS_ADMIN, &handler->conf->keepcaps);
-+ else
-+ has_sys_admin = !in_caplist(CAP_SYS_ADMIN, &handler->conf->caps);
-+
-+ if (has_cgns && has_sys_admin)
- return true;
-
- tmpfspath = must_make_path(root, "/sys/fs/cgroup", NULL);
-@@ -1662,6 +1695,19 @@ static bool cgfsng_mount(void *hdata, const char *root, int type)
- free(controllerpath);
- goto bad;
- }
-+
-+ if (has_cgns && !has_sys_admin) {
-+ /* If cgroup namespaces are supported but the container
-+ * will not have CAP_SYS_ADMIN after it has started we
-+ * need to mount the cgroups manually.
-+ */
-+ r = mount_cgroup_cgns_supported(h, controllerpath);
-+ free(controllerpath);
-+ if (r < 0)
-+ goto bad;
-+ continue;
-+ }
-+
- if (mount_cgroup_full(type, h, controllerpath, d->container_cgroup) < 0) {
- free(controllerpath);
- goto bad;
-diff --git a/src/lxc/cgroups/cgroup.c b/src/lxc/cgroups/cgroup.c
-index 674e3090..36a665b1 100644
---- a/src/lxc/cgroups/cgroup.c
-+++ b/src/lxc/cgroups/cgroup.c
-@@ -166,7 +166,7 @@ bool cgroup_chown(struct lxc_handler *handler)
- bool cgroup_mount(const char *root, struct lxc_handler *handler, int type)
- {
- if (ops)
-- return ops->mount_cgroup(handler->cgroup_data, root, type);
-+ return ops->mount_cgroup(handler, root, type);
-
- return false;
- }
-diff --git a/src/lxc/conf.c b/src/lxc/conf.c
-index d2fab945..44d97843 100644
---- a/src/lxc/conf.c
-+++ b/src/lxc/conf.c
-@@ -210,9 +210,6 @@ __thread struct lxc_conf *current_config;
- struct lxc_conf *current_config;
- #endif
-
--/* Declare this here, since we don't want to reshuffle the whole file. */
--static int in_caplist(int cap, struct lxc_list *caps);
--
- static struct mount_opt mount_opt[] = {
- { "async", 1, MS_SYNCHRONOUS },
- { "atime", 1, MS_NOATIME },
-diff --git a/src/lxc/conf.h b/src/lxc/conf.h
-index c61f861e..63e71e2d 100644
---- a/src/lxc/conf.h
-+++ b/src/lxc/conf.h
-@@ -402,5 +402,6 @@ extern unsigned long add_required_remount_flags(const char *s, const char *d,
- unsigned long flags);
- extern int run_script(const char *name, const char *section, const char *script,
- ...);
-+extern int in_caplist(int cap, struct lxc_list *caps);
-
- #endif /* __LXC_CONF_H */
---
-2.13.6
-
diff --git a/app-emulation/lxc/files/lxc-2.1.1-cve-2018-6556.patch b/app-emulation/lxc/files/lxc-2.1.1-cve-2018-6556.patch
deleted file mode 100644
index bad1e274527e..000000000000
--- a/app-emulation/lxc/files/lxc-2.1.1-cve-2018-6556.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From d183654ec1a2cd1149bdb92601ccb7246bddb14e Mon Sep 17 00:00:00 2001
-From: Christian Brauner <christian.brauner@ubuntu.com>
-Date: Wed, 25 Jul 2018 19:56:54 +0200
-Subject: [PATCH] CVE 2018-6556: verify netns fd in lxc-user-nic
-
-Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
----
- src/lxc/lxc_user_nic.c | 35 ++++++++++++++++++++++++++++++++---
- src/lxc/utils.c | 12 ++++++++++++
- src/lxc/utils.h | 5 +++++
- 3 files changed, 49 insertions(+), 3 deletions(-)
-
-ADDENDUM from vdupras@gentoo.org: Original patch from Christian didn't
-include LXC_PROC_PID_FD_LEN define, but referenced it. This resulted in
-code that doesn't compile. I fetched the definition from the stable-3.0
-branch and included it to this patch. Also, this diff is regenerated
-from lxc-2.1.1 tag instead of stable-2.0 branch.
-
-diff --git a/src/lxc/lxc_user_nic.c b/src/lxc/lxc_user_nic.c
-index 6f550f0d..09a342ac 100644
---- a/src/lxc/lxc_user_nic.c
-+++ b/src/lxc/lxc_user_nic.c
-@@ -1124,12 +1124,41 @@ int main(int argc, char *argv[])
- exit(EXIT_FAILURE);
- }
- } else if (request == LXC_USERNIC_DELETE) {
-- netns_fd = open(args.pid, O_RDONLY);
-+ char opath[LXC_PROC_PID_FD_LEN];
-+
-+ /* Open the path with O_PATH which will not trigger an actual
-+ * open(). Don't report an errno to the caller to not leak
-+ * information whether the path exists or not.
-+ * When stracing setuid is stripped so this is not a concern
-+ * either.
-+ */
-+ netns_fd = open(args.pid, O_PATH | O_CLOEXEC);
- if (netns_fd < 0) {
-- usernic_error("Could not open \"%s\": %s\n", args.pid,
-- strerror(errno));
-+ usernic_error("Failed to open \"%s\"\n", args.pid);
- exit(EXIT_FAILURE);
- }
-+
-+ if (!fhas_fs_type(netns_fd, NSFS_MAGIC)) {
-+ usernic_error("Path \"%s\" does not refer to a network namespace path\n", args.pid);
-+ close(netns_fd);
-+ exit(EXIT_FAILURE);
-+ }
-+
-+ ret = snprintf(opath, sizeof(opath), "/proc/self/fd/%d", netns_fd);
-+ if (ret < 0 || (size_t)ret >= sizeof(opath)) {
-+ close(netns_fd);
-+ exit(EXIT_FAILURE);
-+ }
-+
-+ /* Now get an fd that we can use in setns() calls. */
-+ ret = open(opath, O_RDONLY | O_CLOEXEC);
-+ if (ret < 0) {
-+ usernic_error("Failed to open \"%s\": %s\n", args.pid, strerror(errno));
-+ close(netns_fd);
-+ exit(EXIT_FAILURE);
-+ }
-+ close(netns_fd);
-+ netns_fd = ret;
- }
-
- if (!create_db_dir(LXC_USERNIC_DB)) {
-diff --git a/src/lxc/utils.c b/src/lxc/utils.c
-index e6a44a51..c2a08a9d 100644
---- a/src/lxc/utils.c
-+++ b/src/lxc/utils.c
-@@ -2380,6 +2380,18 @@ bool has_fs_type(const char *path, fs_type_magic magic_val)
- return has_type;
- }
-
-+bool fhas_fs_type(int fd, fs_type_magic magic_val)
-+{
-+ int ret;
-+ struct statfs sb;
-+
-+ ret = fstatfs(fd, &sb);
-+ if (ret < 0)
-+ return false;
-+
-+ return is_fs_type(&sb, magic_val);
-+}
-+
- bool lxc_nic_exists(char *nic)
- {
- #define __LXC_SYS_CLASS_NET_LEN 15 + IFNAMSIZ + 1
-diff --git a/src/lxc/utils.h b/src/lxc/utils.h
-index e83ed49e..06ec74d7 100644
---- a/src/lxc/utils.h
-+++ b/src/lxc/utils.h
-@@ -46,11 +46,16 @@
- #define __S_ISTYPE(mode, mask) (((mode)&S_IFMT) == (mask))
- #endif
-
-+#ifndef NSFS_MAGIC
-+#define NSFS_MAGIC 0x6e736673
-+#endif
-+
- /* Useful macros */
- /* Maximum number for 64 bit integer is a string with 21 digits: 2^64 - 1 = 21 */
- #define LXC_NUMSTRLEN64 21
- #define LXC_LINELEN 4096
- #define LXC_IDMAPLEN 4096
-+#define LXC_PROC_PID_FD_LEN (6 + LXC_NUMSTRLEN64 + 4 + LXC_NUMSTRLEN64 + 1)
-
- /* returns 1 on success, 0 if there were any failures */
- extern int lxc_rmdir_onedev(char *path, const char *exclude);
-@@ -402,6 +407,7 @@ extern void *must_realloc(void *orig, size_t sz);
- /* __typeof__ should be safe to use with all compilers. */
- typedef __typeof__(((struct statfs *)NULL)->f_type) fs_type_magic;
- extern bool has_fs_type(const char *path, fs_type_magic magic_val);
-+extern bool fhas_fs_type(int fd, fs_type_magic magic_val);
- extern bool is_fs_type(const struct statfs *fs, fs_type_magic magic_val);
- extern bool lxc_nic_exists(char *nic);
diff --git a/app-emulation/lxc/files/lxc-2.1.1-fix-cgroup2-detection.patch b/app-emulation/lxc/files/lxc-2.1.1-fix-cgroup2-detection.patch
deleted file mode 100644
index c16d28ac3033..000000000000
--- a/app-emulation/lxc/files/lxc-2.1.1-fix-cgroup2-detection.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cdfe90a49f516b0f1210d181980f14a4765e10da Mon Sep 17 00:00:00 2001
-From: Christian Brauner <christian.brauner@ubuntu.com>
-Date: Mon, 30 Oct 2017 14:17:20 +0100
-Subject: [PATCH] cgfsng: fix cgroup2 detection
-
-Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
----
- src/lxc/cgroups/cgfsng.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
-index 897336f0..e43edd7d 100644
---- a/src/lxc/cgroups/cgfsng.c
-+++ b/src/lxc/cgroups/cgfsng.c
-@@ -815,7 +815,7 @@ static void add_controller(char **clist, char *mountpoint, char *base_cgroup)
- new->fullcgpath = NULL;
-
- /* record if this is the cgroup v2 hierarchy */
-- if (!strcmp(base_cgroup, "cgroup2"))
-+ if (clist && !strcmp(*clist, "cgroup2"))
- new->is_cgroup_v2 = true;
- else
- new->is_cgroup_v2 = false;
---
-2.13.6
-
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.7 b/app-emulation/lxc/files/lxc.initd.7
deleted file mode 100644
index 6a42b6aac520..000000000000
--- a/app-emulation/lxc/files/lxc.initd.7
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# 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 ${CONTAINER}"
- env -i ${setarch} $(which lxc-start) -l WARN -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.
- [ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ]
- eend $?
-}
-
-stop() {
- checkconfig || return 1
-
-
- if ! [ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ]; then
- ewarn "${CONTAINER} doesn't seem to be started."
- return 0
- fi
-
- # 10s should be enough to shut everything down
- ebegin "Stopping ${CONTAINER}"
- lxc-stop -t 10 -n ${CONTAINER}
- eend $?
-}
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 b/app-emulation/lxc/files/lxc_at.service.4
deleted file mode 100644
index 64ae7457096c..000000000000
--- a/app-emulation/lxc/files/lxc_at.service.4
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Linux Container %I
-After=network.target
-Wants=lxcfs.service
-
-[Service]
-Restart=always
-ExecStart=/usr/bin/lxc-start -n %i -F
-ExecReload=/usr/bin/lxc-restart -n %i
-ExecStop=/usr/bin/lxc-stop -n %i
-Delegate=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/lxc/lxc-2.1.1-r1.ebuild b/app-emulation/lxc/lxc-2.1.1-r1.ebuild
deleted file mode 100644
index 9924b4519c96..000000000000
--- a/app-emulation/lxc/lxc-2.1.1-r1.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{5,6} )
-DISTUTILS_OPTIONAL=1
-
-inherit autotools bash-completion-r1 distutils-r1 linux-info versionator flag-o-matic systemd readme.gentoo-r1
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz"
-
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="cgmanager examples lua python seccomp selinux"
-
-RDEPEND="
- net-libs/gnutls
- sys-libs/libcap
- cgmanager? ( app-admin/cgmanager )
- lua? ( >=dev-lang/lua-5.1:= )
- python? ( ${PYTHON_DEPS} )
- seccomp? ( sys-libs/libseccomp )
- selinux? ( sys-libs/libselinux )"
-
-DEPEND="${RDEPEND}
- app-text/docbook-sgml-utils
- >=sys-kernel/linux-headers-3.2"
-
-RDEPEND="${RDEPEND}
- sys-apps/util-linux
- app-misc/pax-utils
- virtual/awk"
-
-CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
- ~CPUSETS ~CGROUP_CPUACCT
- ~CGROUP_SCHED
-
- ~NAMESPACES
- ~IPC_NS ~USER_NS ~PID_NS
-
- ~NETLINK_DIAG ~PACKET_DIAG
- ~INET_UDP_DIAG ~INET_TCP_DIAG
- ~UNIX_DIAG ~CHECKPOINT_RESTORE
-
- ~CGROUP_FREEZER
- ~UTS_NS ~NET_NS
- ~VETH ~MACVLAN
-
- ~POSIX_MQUEUE
- ~!NETPRIO_CGROUP
-
- ~!GRKERNSEC_CHROOT_MOUNT
- ~!GRKERNSEC_CHROOT_DOUBLE
- ~!GRKERNSEC_CHROOT_PIVOT
- ~!GRKERNSEC_CHROOT_CHMOD
- ~!GRKERNSEC_CHROOT_CAPS
- ~!GRKERNSEC_PROC
- ~!GRKERNSEC_SYSFS_RESTRICT
-"
-
-ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
-
-ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
-ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
-
-ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
-ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
-
-ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
-ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
-ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
-ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
-ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
-ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
-
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
-
-ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
-
-ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_PROC="CONFIG_GRKERNSEC_PROC: this GRSEC feature is incompatible with unprivileged containers"
-ERROR_GRKERNSEC_SYSFS_RESTRICT="CONFIG_GRKERNSEC_SYSFS_RESTRICT: this GRSEC feature is incompatible with unprivileged containers"
-
-DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-pkg_setup() {
- kernel_is -lt 4 7 && CONFIG_CHECK="${CONFIG_CHECK} ~DEVPTS_MULTIPLE_INSTANCES"
- linux-info_pkg_setup
-}
-
-src_prepare() {
- eapply "${FILESDIR}"/${PN}-2.0.6-bash-completion.patch
- #558854
- eapply "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch
- eapply "${FILESDIR}"/${PN}-2.1.1-fix-cgroup2-detection.patch
- eapply "${FILESDIR}"/${PN}-2.1.1-cgroups-enable-container-without-CAP_SYS_ADMIN.patch
- eapply "${FILESDIR}"/${PN}-2.1.1-cve-2018-6556.patch
- eapply_user
- eautoreconf
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
-
- if use python; then
- #541932
- python_setup "python3*"
- export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
- fi
-
- # I am not sure about the --with-rootfs-path
- # /var/lib/lxc is probably more appropriate than
- # /usr/lib/lxc.
- # Note by holgersson: Why is apparmor disabled?
-
- # --enable-doc is for manpages which is why we don't link it to a "doc"
- # USE flag. We always want man pages.
- econf \
- --localstatedir=/var \
- --bindir=/usr/bin \
- --sbindir=/usr/bin \
- --with-config-path=/var/lib/lxc \
- --with-rootfs-path=/var/lib/lxc/rootfs \
- --with-distro=gentoo \
- --with-runtime-path=/run \
- --disable-apparmor \
- --disable-werror \
- --enable-doc \
- $(use_enable cgmanager) \
- $(use_enable examples) \
- $(use_enable lua) \
- $(use_enable python) \
- $(use_enable seccomp) \
- $(use_enable selinux)
-}
-
-python_compile() {
- distutils-r1_python_compile build_ext -I.. -L../lxc/.libs --no-pkg-config
-}
-
-src_compile() {
- default
-
- if use python; then
- pushd "${S}/src/python-${PN}" > /dev/null
- distutils-r1_src_compile
- popd > /dev/null
- fi
-}
-
-src_install() {
- default
-
- mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
- # start-ephemeral is no longer a command but removing it here
- # generates QA warnings (still in upstream completion script)
- bashcomp_alias ${PN}-start \
- ${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
-
- if use python; then
- pushd "${S}/src/python-lxc" > /dev/null
- # Unset DOCS. This has been handled by the default target
- unset DOCS
- distutils-r1_src_install
- popd > /dev/null
- fi
-
- keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
-
- find "${D}" -name '*.la' -delete
-
- # Gentoo-specific additions!
- newinitd "${FILESDIR}/${PN}.initd.7" ${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 "lxc@.service"
-
- DOC_CONTENTS="
- Starting from version ${PN}-1.1.0-r3, the default lxc path has been
- moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc
- please add the following to your /etc/lxc/lxc.conf
-
- lxc.lxcpath = /etc/lxc
-
- 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-3.0.3.ebuild b/app-emulation/lxc/lxc-3.0.3.ebuild
deleted file mode 100644
index 136493184f47..000000000000
--- a/app-emulation/lxc/lxc-3.0.3.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2019 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 systemd readme.gentoo-r1 pam
-
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz"
-
-KEYWORDS="amd64 ~arm ~arm64 ppc64 x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="apparmor examples pam python seccomp selinux +templates"
-
-RDEPEND="
- net-libs/gnutls
- sys-libs/libcap
- pam? ( sys-libs/pam )
- seccomp? ( sys-libs/libseccomp )
- selinux? ( sys-libs/libselinux )"
-
-DEPEND="${RDEPEND}
- >=app-text/docbook-sgml-utils-0.6.14-r2
- >=sys-kernel/linux-headers-3.2"
-
-RDEPEND="${RDEPEND}
- sys-apps/util-linux
- app-misc/pax-utils
- virtual/awk"
-
-PDEPEND="templates? ( app-emulation/lxc-templates )
- python? ( dev-python/python3-lxc )"
-
-CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
- ~CPUSETS ~CGROUP_CPUACCT
- ~CGROUP_SCHED
-
- ~NAMESPACES
- ~IPC_NS ~USER_NS ~PID_NS
-
- ~CGROUP_FREEZER
- ~UTS_NS ~NET_NS
- ~VETH ~MACVLAN
-
- ~POSIX_MQUEUE
- ~!NETPRIO_CGROUP
-
- ~!GRKERNSEC_CHROOT_MOUNT
- ~!GRKERNSEC_CHROOT_DOUBLE
- ~!GRKERNSEC_CHROOT_PIVOT
- ~!GRKERNSEC_CHROOT_CHMOD
- ~!GRKERNSEC_CHROOT_CAPS
- ~!GRKERNSEC_PROC
- ~!GRKERNSEC_SYSFS_RESTRICT
- ~!GRKERNSEC_CHROOT_FINDTASK
-"
-
-ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
-
-ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
-ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
-
-ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
-ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
-
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
-
-ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
-
-ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_PROC="CONFIG_GRKERNSEC_PROC: this GRSEC feature is incompatible with unprivileged containers"
-ERROR_GRKERNSEC_SYSFS_RESTRICT="CONFIG_GRKERNSEC_SYSFS_RESTRICT: this GRSEC feature is incompatible with unprivileged containers"
-
-DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
-
-pkg_setup() {
- kernel_is -lt 4 7 && CONFIG_CHECK="${CONFIG_CHECK} ~DEVPTS_MULTIPLE_INSTANCES"
- linux-info_pkg_setup
-}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.0.0-bash-completion.patch
- "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854
-)
-
-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=(
- --localstatedir=/var
- --bindir=/usr/bin
- --sbindir=/usr/bin
- --with-config-path=/var/lib/lxc
- --with-rootfs-path=/var/lib/lxc/rootfs
- --with-distro=gentoo
- --with-runtime-path=/run
- --disable-apparmor
- --disable-werror
- --enable-doc
- $(use_enable apparmor)
- $(use_enable examples)
- $(use_enable pam)
- $(use_with pam pamdir $(getpam_mod_dir))
- $(use_enable seccomp)
- $(use_enable selinux)
- )
- 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
-
- # Gentoo-specific additions!
- newinitd "${FILESDIR}/${PN}.initd.7" ${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 "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-3.1.0-r1.ebuild b/app-emulation/lxc/lxc-3.1.0-r1.ebuild
deleted file mode 100644
index 138938369b9d..000000000000
--- a/app-emulation/lxc/lxc-3.1.0-r1.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2019 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 systemd readme.gentoo-r1 pam
-
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="apparmor examples pam seccomp selinux +templates"
-
-RDEPEND="
- net-libs/gnutls
- sys-libs/libcap
- pam? ( sys-libs/pam )
- seccomp? ( sys-libs/libseccomp )
- selinux? ( sys-libs/libselinux )"
-
-DEPEND="${RDEPEND}
- >=app-text/docbook-sgml-utils-0.6.14-r2
- >=sys-kernel/linux-headers-3.2"
-
-RDEPEND="${RDEPEND}
- sys-apps/util-linux
- app-misc/pax-utils
- virtual/awk"
-
-PDEPEND="templates? ( app-emulation/lxc-templates )"
-
-CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
- ~CPUSETS ~CGROUP_CPUACCT
- ~CGROUP_SCHED
-
- ~NAMESPACES
- ~IPC_NS ~USER_NS ~PID_NS
-
- ~CGROUP_FREEZER
- ~UTS_NS ~NET_NS
- ~VETH ~MACVLAN
-
- ~POSIX_MQUEUE
- ~!NETPRIO_CGROUP
-
- ~!GRKERNSEC_CHROOT_MOUNT
- ~!GRKERNSEC_CHROOT_DOUBLE
- ~!GRKERNSEC_CHROOT_PIVOT
- ~!GRKERNSEC_CHROOT_CHMOD
- ~!GRKERNSEC_CHROOT_CAPS
- ~!GRKERNSEC_PROC
- ~!GRKERNSEC_SYSFS_RESTRICT
- ~!GRKERNSEC_CHROOT_FINDTASK
-"
-
-ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
-
-ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
-ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
-
-ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
-ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
-
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
-
-ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
-
-ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_PROC="CONFIG_GRKERNSEC_PROC: this GRSEC feature is incompatible with unprivileged containers"
-ERROR_GRKERNSEC_SYSFS_RESTRICT="CONFIG_GRKERNSEC_SYSFS_RESTRICT: this GRSEC feature is incompatible with unprivileged containers"
-
-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
-)
-
-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=(
- --localstatedir=/var
- --bindir=/usr/bin
- --sbindir=/usr/bin
- --with-config-path=/var/lib/lxc
- --with-rootfs-path=/var/lib/lxc/rootfs
- --with-distro=gentoo
- --with-runtime-path=/run
- --disable-apparmor
- --disable-werror
- --enable-doc
- $(use_enable apparmor)
- $(use_enable examples)
- $(use_enable pam)
- $(use_with pam pamdir $(getpam_mod_dir))
- $(use_enable seccomp)
- $(use_enable selinux)
- )
- 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
-
- # 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 "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/metadata.xml b/app-emulation/lxc/metadata.xml
deleted file mode 100644
index c5f8986b9117..000000000000
--- a/app-emulation/lxc/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>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <use>
- <flag name="apparmor">Enable AppArmor support</flag>
- <flag name="cgmanager">Enable support for cgroup management using <pkg>app-admin/cgmanager</pkg></flag>
- <flag name="templates">Install old style templates through <pkg>app-emulation/lxc-templates</pkg></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 f0a03569d10b..000000000000
--- a/app-emulation/lxd/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST lxd-3.14.tar.gz 26141949 BLAKE2B 69004501012c9a873eef77a60df7e5dba25c692224d27b02cd2d2b27533012e71bd7562cb64a17920234746e8be2819bb773365c01422c0b776dd2b7c36b69fe SHA512 3d2d4e61298fc9fde49defad776a398fcccf7639485e810173c9c7f7d939c354a9ad8112a4a631b0850f6eb54435012d289236ff61839416caf95434eb23c8ff
-DIST lxd-3.16.tar.gz 24863601 BLAKE2B 0087c00d86ea3f623ea31bc008176e4232bb432f5c431c288f5c5ff3e1658abe4e310509088ddc6b23d8db68f8e93997522b8a5c0b19fd243abee13e11d3deb9 SHA512 11c6c5c49ceb23c31979829937e1baad340b8920481ef5b89b2b6d0b6b05967ec1f446f8b0330c11008f6fecea077eed0858af7fe802c50b52148757584fdfb9
diff --git a/app-emulation/lxd/files/de-translation-newline-1.patch b/app-emulation/lxd/files/de-translation-newline-1.patch
deleted file mode 100644
index 4c731e9023dc..000000000000
--- a/app-emulation/lxd/files/de-translation-newline-1.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- /po/de.po 2018-06-27 19:57:56.759130047 -0500
-+++ /po/de.po 2018-06-27 20:01:09.694634346 -0500
-@@ -167,7 +167,7 @@
- "###\n"
- "### Each property is represented by a single line:\n"
- "### An example would be:\n"
--"### description: My custom image"
-+"### description: My custom image\n"
- msgstr ""
- "### Dies ist eine Darstellung der Eigenschaften eines Images in yaml.\n"
- "### Jede Zeile die mit '# beginnt wird ignoriert.\n"
diff --git a/app-emulation/lxd/files/lxd.confd b/app-emulation/lxd/files/lxd.confd
deleted file mode 100644
index 8e342cc62d16..000000000000
--- a/app-emulation/lxd/files/lxd.confd
+++ /dev/null
@@ -1,24 +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"
-
-
-
-# Enables debug mode
-#LXD_OPTIONS+=" --debug"
-
-# For debugging, print a complete stack trace every n seconds
-#LXD_OPTIONS+=" --print-goroutines 5"
-
-# Enables verbose mode
-#LXD_OPTIONS+=" --verbose"
-
-# Logfile to log to
-#LXD_OPTIONS+=" --logfile /var/log/lxd/lxd.log"
diff --git a/app-emulation/lxd/files/lxd.initd b/app-emulation/lxd/files/lxd.initd
deleted file mode 100644
index b1fa7caac546..000000000000
--- a/app-emulation/lxd/files/lxd.initd
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-DAEMON=/usr/sbin/lxd
-PIDFILE=/run/lxd.pid
-
-extra_commands="stopall"
-
-depend() {
- need net
- use lxcfs
-}
-
-start() {
- ebegin "Starting lxd service"
-
- 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"
- if "${DAEMON}" shutdown; then
- /etc/init.d/lxd zap
- rm -f ${PIDFILE}
- fi
- eend $?
-}
diff --git a/app-emulation/lxd/files/lxd.service b/app-emulation/lxd/files/lxd.service
deleted file mode 100644
index d00635fbcdd9..000000000000
--- a/app-emulation/lxd/files/lxd.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Container hypervisor based on LXC
-
-[Service]
-ExecStart=/usr/sbin/lxd --group lxd
-KillMode=process
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/lxd/lxd-3.14.ebuild b/app-emulation/lxd/lxd-3.14.ebuild
deleted file mode 100644
index 4d7ff49b9d13..000000000000
--- a/app-emulation/lxd/lxd-3.14.ebuild
+++ /dev/null
@@ -1,240 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Fast, dense and secure container management"
-HOMEPAGE="https://linuxcontainers.org/lxd/introduction/"
-
-LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="amd64"
-
-IUSE="+daemon +ipv6 +dnsmasq nls test tools"
-
-inherit autotools bash-completion-r1 linux-info systemd user
-
-SRC_URI="https://linuxcontainers.org/downloads/${PN}/${P}.tar.gz"
-
-DEPEND="
- dev-lang/tcl
- >=dev-lang/go-1.9.4
- dev-libs/libuv
- dev-libs/protobuf
- nls? ( sys-devel/gettext )
- test? (
- app-misc/jq
- net-misc/curl
- sys-devel/gettext
- )
-"
-
-RDEPEND="
- daemon? (
- app-arch/xz-utils
- >=app-emulation/lxc-2.0.7[seccomp]
- dev-libs/libuv
- dev-libs/lzo
- dev-util/xdelta:3
- dnsmasq? (
- net-dns/dnsmasq[dhcp,ipv6?]
- )
- net-firewall/ebtables
- net-firewall/iptables[ipv6?]
- net-libs/libnfnetlink
- net-libs/libnsl:0=
- net-misc/rsync[xattr]
- sys-apps/iproute2[ipv6?]
- sys-fs/fuse
- sys-fs/lxcfs
- sys-fs/squashfs-tools
- virtual/acl
- )
-"
-
-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_IPV4
- ~NF_NAT_MASQUERADE_IPV6
- ~VXLAN
-"
-
-ERROR_BRIDGE="BRIDGE: needed for network commands"
-ERROR_DUMMY="DUMMY: needed for network commands"
-ERROR_IP6_NF_NAT="IP6_NF_NAT: needed for network commands"
-ERROR_IP6_NF_TARGET_MASQUERADE="IP6_NF_TARGET_MASQUERADE: needed for network commands"
-ERROR_IPV6="IPV6: needed for network commands"
-ERROR_IP_NF_NAT="IP_NF_NAT: needed for network commands"
-ERROR_IP_NF_TARGET_MASQUERADE="IP_NF_TARGET_MASQUERADE: needed for network commands"
-ERROR_MACVLAN="MACVLAN: needed for network commands"
-ERROR_NETFILTER_XT_MATCH_COMMENT="NETFILTER_XT_MATCH_COMMENT: needed for network commands"
-ERROR_NET_IPGRE="NET_IPGRE: needed for network commands"
-ERROR_NET_IPGRE_DEMUX="NET_IPGRE_DEMUX: needed for network commands"
-ERROR_NET_IPIP="NET_IPIP: needed for network commands"
-ERROR_NF_NAT_MASQUERADE_IPV4="NF_NAT_MASQUERADE_IPV4: needed for network commands"
-ERROR_NF_NAT_MASQUERADE_IPV6="NF_NAT_MASQUERADE_IPV6: needed for network commands"
-ERROR_VXLAN="VXLAN: needed for network commands"
-
-EGO_PN="github.com/lxc/lxd"
-
-src_prepare() {
- eapply_user
- eapply "${FILESDIR}/de-translation-newline-1.patch"
-
- cd "${S}/dist/dqlite" || die "Can't cd to dqlite dir"
- eautoreconf
-}
-
-src_configure() {
- export GOPATH="${S}/dist"
- cd "${GOPATH}/sqlite" || die "Can't cd to sqlite dir"
- econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd"
-
- cd "${GOPATH}/dqlite" || die "Can't cd to dqlite dir"
- PKG_CONFIG_PATH="${GOPATH}/sqlite/" econf --libdir=${EPREFIX}/usr/lib/lxd
-}
-
-src_compile() {
- export GOPATH="${S}/dist"
-
- cd "${GOPATH}/sqlite" || die "Can't cd to sqlite dir"
- emake
-
- cd "${GOPATH}/dqlite" || die "Can't cd to dqlite dir"
- emake CFLAGS="-I${GOPATH}/sqlite" LDFLAGS="-L${GOPATH}/sqlite"
-
- # We don't use the Makefile here because it builds targets with the
- # assumption that `pwd` is in a deep gopath namespace, which we're not.
- # It's simpler to manually call "go install" than patching the Makefile.
- cd "${S}"
- go install -v -x ${EGO_PN}/lxc || die "Failed to build the client"
-
- if use daemon; then
-
- # LXD depends on a patched, bundled sqlite with replication
- # capabilities.
- export CGO_CFLAGS="-I${GOPATH}/sqlite/ -I${GOPATH}/dqlite/include/"
- export CGO_LDFLAGS="-L${GOPATH}/sqlite/.libs/ -L${GOPATH}/dqlite/.libs/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd"
- export LD_LIBRARY_PATH="${GOPATH}/sqlite/.libs/:${GOPATH}/dqlite/.libs/"
-
- go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon"
- fi
-
- if use tools; then
- go install -v -x ${EGO_PN}/fuidshift || die "Failed to build fuidshift"
- go install -v -x ${EGO_PN}/lxc-to-lxd || die "Failed to build lxc-to-lxd"
- go install -v -x ${EGO_PN}/lxd-benchmark || die "Failed to build lxd-benchmark"
- go install -v -x ${EGO_PN}/lxd-p2c || die "Failed to build lxd-p2c"
- fi
-
- use nls && emake build-mo
-}
-
-src_test() {
- if use daemon; then
- export GOPATH="${S}/dist"
- # This is mostly a copy/paste from the Makefile's "check" rule, but
- # patching the Makefile to work in a non "fully-qualified" go namespace
- # was more complicated than this modest copy/paste.
- # Also: sorry, for now a network connection is needed to run tests.
- # Will properly bundle test dependencies later.
- go get -v -x github.com/rogpeppe/godeps
- go get -v -x github.com/remyoudompheng/go-misc/deadcode
- go get -v -x github.com/golang/lint/golint
- go test -v ${EGO_PN}/lxd
- else
- einfo "No tests to run for client-only builds"
- fi
-}
-
-src_install() {
- local bindir="dist/bin"
- dobin ${bindir}/lxc
- if use daemon; then
-
- export GOPATH="${S}/dist"
- cd "${GOPATH}/sqlite" || die "Can't cd to sqlite dir"
- emake DESTDIR="${D}" install
-
- cd "${GOPATH}/dqlite" || die "Can't cd to dqlite dir"
- emake DESTDIR="${D}" install
-
- # Must only install libs
- rm "${D}/usr/bin/sqlite3" || die "Can't remove custom sqlite3 binary"
- rm -r "${D}/usr/include" || die "Can't remove include directory"
-
- cd "${S}" || die "Can't cd to \${S}"
- dosbin ${bindir}/lxd
- fi
-
- if use tools; then
- dobin ${bindir}/fuidshift
- dobin ${bindir}/lxc-to-lxd
- dobin ${bindir}/lxd-benchmark
- dobin ${bindir}/lxd-p2c
- fi
-
- if use nls; then
- domo po/*.mo
- fi
-
- if use daemon; then
- newinitd "${FILESDIR}"/${PN}.initd lxd
- newconfd "${FILESDIR}"/${PN}.confd lxd
-
- systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
- fi
-
- newbashcomp scripts/bash/lxd-client lxc
-
- dodoc AUTHORS doc/*
-}
-
-pkg_postinst() {
- elog
- elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
- elog "including a Quick Start."
-
- # The messaging below only applies to daemon installs
- use daemon || return 0
-
- # The control socket will be owned by (and writeable by) this group.
- enewgroup lxd
-
- # Ubuntu also defines an lxd user but it appears unused (the daemon
- # must run as root)
-
- elog
- elog "Though not strictly required, some features are enabled at run-time"
- elog "when the relevant helper programs are detected:"
- elog "- sys-apps/apparmor"
- elog "- sys-fs/btrfs-progs"
- elog "- sys-fs/lvm2"
- elog "- sys-fs/zfs"
- elog "- sys-process/criu"
- elog
- elog "Since these features can't be disabled at build-time they are"
- elog "not USE-conditional."
- elog
- elog "Be sure to add your local user to the lxd group."
- elog
- elog "Networks with bridge.mode=fan are unsupported due to requiring"
- elog "a patched kernel and iproute2."
-}
-
-# TODO:
-# - man page, I don't see cobra generating it
-# - maybe implement LXD_CLUSTER_UPDATE per
-# https://discuss.linuxcontainers.org/t/lxd-3-5-has-been-released/2656
-# EM I'm not convinced it's a good design.
diff --git a/app-emulation/lxd/lxd-3.16.ebuild b/app-emulation/lxd/lxd-3.16.ebuild
deleted file mode 100644
index 8c7e5f94a4d8..000000000000
--- a/app-emulation/lxd/lxd-3.16.ebuild
+++ /dev/null
@@ -1,265 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Fast, dense and secure container management"
-HOMEPAGE="https://linuxcontainers.org/lxd/introduction/"
-
-LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-IUSE="+daemon +ipv6 +dnsmasq nls test tools"
-
-inherit autotools bash-completion-r1 linux-info systemd user
-
-SRC_URI="https://linuxcontainers.org/downloads/${PN}/${P}.tar.gz"
-
-DEPEND="
- dev-lang/tcl
- >=dev-lang/go-1.9.4
- dev-libs/libuv
- dev-libs/protobuf
- nls? ( sys-devel/gettext )
- test? (
- app-misc/jq
- net-misc/curl
- sys-devel/gettext
- )
-"
-
-RDEPEND="
- daemon? (
- app-arch/xz-utils
- >=app-emulation/lxc-2.0.7[seccomp]
- dev-libs/libuv
- dev-libs/lzo
- dev-util/xdelta:3
- dnsmasq? (
- net-dns/dnsmasq[dhcp,ipv6?]
- )
- net-firewall/ebtables
- net-firewall/iptables[ipv6?]
- net-libs/libnfnetlink
- net-libs/libnsl:0=
- net-misc/rsync[xattr]
- sys-apps/iproute2[ipv6?]
- sys-fs/fuse
- sys-fs/lxcfs
- sys-fs/squashfs-tools
- virtual/acl
- )
-"
-
-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_IPV4
- ~NF_NAT_MASQUERADE_IPV6
- ~VXLAN
-"
-
-ERROR_BRIDGE="BRIDGE: needed for network commands"
-ERROR_DUMMY="DUMMY: needed for network commands"
-ERROR_IP6_NF_NAT="IP6_NF_NAT: needed for network commands"
-ERROR_IP6_NF_TARGET_MASQUERADE="IP6_NF_TARGET_MASQUERADE: needed for network commands"
-ERROR_IPV6="IPV6: needed for network commands"
-ERROR_IP_NF_NAT="IP_NF_NAT: needed for network commands"
-ERROR_IP_NF_TARGET_MASQUERADE="IP_NF_TARGET_MASQUERADE: needed for network commands"
-ERROR_MACVLAN="MACVLAN: needed for network commands"
-ERROR_NETFILTER_XT_MATCH_COMMENT="NETFILTER_XT_MATCH_COMMENT: needed for network commands"
-ERROR_NET_IPGRE="NET_IPGRE: needed for network commands"
-ERROR_NET_IPGRE_DEMUX="NET_IPGRE_DEMUX: needed for network commands"
-ERROR_NET_IPIP="NET_IPIP: needed for network commands"
-ERROR_NF_NAT_MASQUERADE_IPV4="NF_NAT_MASQUERADE_IPV4: needed for network commands"
-ERROR_NF_NAT_MASQUERADE_IPV6="NF_NAT_MASQUERADE_IPV6: needed for network commands"
-ERROR_VXLAN="VXLAN: needed for network commands"
-
-EGO_PN="github.com/lxc/lxd"
-
-src_prepare() {
- eapply_user
- eapply "${FILESDIR}/de-translation-newline-1.patch"
-
- cd "${S}/_dist/deps/raft" || die "Can't cd to raft dir"
- # Workaround for " * ACCESS DENIED: open_wr: /dev/zfs"
- sed -i 's#zfs version | cut -f 2#< /sys/module/zfs/version cut -f 1#' configure.ac || die "Can't sed configure.ac for raft"
- eautoreconf
-
- cd "${S}/_dist/deps/dqlite" || die "Can't cd to dqlite dir"
- eautoreconf
-
-}
-
-src_configure() {
- export GOPATH="${S}/_dist"
- cd "${GOPATH}/deps/sqlite" || die "Can't cd to sqlite dir"
- econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd"
-
- cd "${GOPATH}/deps/raft" || die "Can't cd to raft dir"
- PKG_CONFIG_PATH="${GOPATH}/raft/" econf --libdir=${EPREFIX}/usr/lib/lxd
-
- cd "${GOPATH}/deps/dqlite" || die "Can't cd to dqlite dir"
- export RAFT_CFLAGS="-I${GOPATH}/deps/raft/include/"
- export RAFT_LIBS="${GOPATH}/deps/raft/.libs"
- export CO_CFLAGS="-I${GOPATH}/deps/libco/"
- export CO_LIBS="${GOPATH}/deps/libco/"
- PKG_CONFIG_PATH="${GOPATH}/sqlite/" econf --libdir=${EPREFIX}/usr/lib/lxd
-}
-
-src_compile() {
- export GOPATH="${S}/_dist"
-
- cd "${GOPATH}/deps/sqlite" || die "Can't cd to sqlite dir"
- emake
-
- cd "${GOPATH}/deps/raft" || die "Can't cd to raft dir"
- emake
-
- cd "${GOPATH}/deps/libco" || die "Can't cd to libco dir"
- emake
-
- cd "${GOPATH}/deps/dqlite" || die "Can't cd to dqlite dir"
- emake CFLAGS="-I${GOPATH}/deps/sqlite -I${GOPATH}/deps/raft/include" LDFLAGS="-L${GOPATH}/deps/sqlite -L${GOPATH}/deps/raft"
-
- # We don't use the Makefile here because it builds targets with the
- # assumption that `pwd` is in a deep gopath namespace, which we're not.
- # It's simpler to manually call "go install" than patching the Makefile.
- cd "${S}"
- go install -v -x ${EGO_PN}/lxc || die "Failed to build the client"
-
- if use daemon; then
-
- # LXD depends on a patched, bundled sqlite with replication
- # capabilities.
- 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 install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon"
- fi
-
- if use tools; then
- go install -v -x ${EGO_PN}/fuidshift || die "Failed to build fuidshift"
- go install -v -x ${EGO_PN}/lxc-to-lxd || die "Failed to build lxc-to-lxd"
- go install -v -x ${EGO_PN}/lxd-benchmark || die "Failed to build lxd-benchmark"
- go install -v -x ${EGO_PN}/lxd-p2c || die "Failed to build lxd-p2c"
- fi
-
- use nls && emake build-mo
-}
-
-src_test() {
- if use daemon; then
- export GOPATH="${S}/_dist"
- # This is mostly a copy/paste from the Makefile's "check" rule, but
- # patching the Makefile to work in a non "fully-qualified" go namespace
- # was more complicated than this modest copy/paste.
- # Also: sorry, for now a network connection is needed to run tests.
- # Will properly bundle test dependencies later.
- go get -v -x github.com/rogpeppe/godeps
- go get -v -x github.com/remyoudompheng/go-misc/deadcode
- go get -v -x github.com/golang/lint/golint
- go test -v ${EGO_PN}/lxd
- else
- einfo "No tests to run for client-only builds"
- fi
-}
-
-src_install() {
- local bindir="_dist/bin"
- dobin ${bindir}/lxc
- if use daemon; then
-
- export GOPATH="${S}/_dist"
- cd "${GOPATH}/deps/sqlite" || die "Can't cd to sqlite dir"
- emake DESTDIR="${D}" install
-
- cd "${GOPATH}/deps/raft" || die "Can't cd to raft dir"
- emake DESTDIR="${D}" install
-
- cd "${GOPATH}/deps/libco" || die "Can't cd to libco dir"
- dolib.so libco.so || die "Can't install libco.so"
-
- cd "${GOPATH}/deps/dqlite" || die "Can't cd to dqlite dir"
- emake DESTDIR="${D}" install
-
- # Must only install libs
- rm "${D}/usr/bin/sqlite3" || die "Can't remove custom sqlite3 binary"
- rm -r "${D}/usr/include" || die "Can't remove include directory"
-
- cd "${S}" || die "Can't cd to \${S}"
- dosbin ${bindir}/lxd
- fi
-
- if use tools; then
- dobin ${bindir}/fuidshift
- dobin ${bindir}/lxc-to-lxd
- dobin ${bindir}/lxd-benchmark
- dobin ${bindir}/lxd-p2c
- fi
-
- if use nls; then
- domo po/*.mo
- fi
-
- if use daemon; then
- newinitd "${FILESDIR}"/${PN}.initd lxd
- newconfd "${FILESDIR}"/${PN}.confd lxd
-
- systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
- fi
-
- newbashcomp scripts/bash/lxd-client lxc
-
- dodoc AUTHORS doc/*
-}
-
-pkg_postinst() {
- elog
- elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
- elog "including a Quick Start."
-
- # The messaging below only applies to daemon installs
- use daemon || return 0
-
- # The control socket will be owned by (and writeable by) this group.
- enewgroup lxd
-
- # Ubuntu also defines an lxd user but it appears unused (the daemon
- # must run as root)
-
- elog
- elog "Though not strictly required, some features are enabled at run-time"
- elog "when the relevant helper programs are detected:"
- elog "- sys-apps/apparmor"
- elog "- sys-fs/btrfs-progs"
- elog "- sys-fs/lvm2"
- elog "- sys-fs/zfs"
- elog "- sys-process/criu"
- elog
- elog "Since these features can't be disabled at build-time they are"
- elog "not USE-conditional."
- elog
- elog "Be sure to add your local user to the lxd group."
- elog
- elog "Networks with bridge.mode=fan are unsupported due to requiring"
- elog "a patched kernel and iproute2."
-}
-
-# TODO:
-# - man page, I don't see cobra generating it
-# - maybe implement LXD_CLUSTER_UPDATE per
-# https://discuss.linuxcontainers.org/t/lxd-3-5-has-been-released/2656
-# EM I'm not convinced it's a good design.
diff --git a/app-emulation/lxd/metadata.xml b/app-emulation/lxd/metadata.xml
deleted file mode 100644
index bc72b24a7262..000000000000
--- a/app-emulation/lxd/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>stasibear@gentoo.org</email>
- <name>Erik Mackdanz</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <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>
- <use>
- <flag name="daemon">
- Build the system daemon, not just the client tool
- </flag>
- <flag name="dnsmasq">
- Depend on dnsmasq to provide DHCP and DNS
- </flag>
- <flag name="tools">
- Build and install optional tools
- </flag>
- </use>
-</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 bf2b6da8d280..4f629d031470 100644
--- a/app-emulation/nemu/Manifest
+++ b/app-emulation/nemu/Manifest
@@ -1,2 +1,3 @@
-DIST nemu-2.1.0.tar.gz 89117 BLAKE2B a44bf67990d79af0b73caf077266c4775f302ffc81d2394993da45870a72f462d487a92d63abdbe875c382d11b8d691f446a5e0b7270355770838ea86328fb1d SHA512 7e655227e22f5e2dd5ec1f77ef1635f1aaab2e57e417fb33d83d35cc67d7b802c35fa9174cf4282287213a1a825714743773260b96b452a382a8248fbef238bf
-DIST nemu-2.2.0.tar.gz 94061 BLAKE2B 95304e8834f1d5c1e31065728363de5d797ae79554733dd3fecd90388b2766bc8907acfeded36676272967153eed5a7f30baba9ef2384fca67d19f3519461fa6 SHA512 2f427a560ea5ac4112b7d5cdd8524366521ca3d185676a4faa9bc480331c3381b7a362aed20025dc1acc0f576f07fb627b03137e1998926761a169c5be0eaf97
+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.1.0.ebuild b/app-emulation/nemu/nemu-2.1.0.ebuild
deleted file mode 100644
index 2f7326437e33..000000000000
--- a/app-emulation/nemu/nemu-2.1.0.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit cmake-utils linux-info
-
-DESCRIPTION="ncurses interface for QEMU"
-HOMEPAGE="https://lib.void.so/nemu"
-SRC_URI="http://lib.void.so/src/${P}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="+vnc-client +ovf savevm debug"
-
-RDEPEND="
- virtual/udev:=
- dev-db/sqlite:3=
- virtual/libusb:1
- app-emulation/qemu[vnc,virtfs]
- sys-libs/ncurses:0=[unicode]
- ovf? (
- dev-libs/libxml2
- app-arch/libarchive
- )
- vnc-client? ( net-misc/tigervnc )"
-
-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)
- )
- 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/nemu/nemu-3.0.0.ebuild b/app-emulation/nemu/nemu-3.0.0.ebuild
new file mode 100644
index 000000000000..54d5c3502eb7
--- /dev/null
+++ b/app-emulation/nemu/nemu-3.0.0.ebuild
@@ -0,0 +1,81 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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 x86"
+IUSE="dbus network-map +ovf spice +vnc-client 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 )
+ 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
+ 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_SPICE=$(usex spice)
+ -DNM_WITH_VNC_CLIENT=$(usex vnc-client)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ docompress -x /usr/share/man/man1/nemu.1.gz
+}
+
+pkg_postinst() {
+ elog "For non-root usage execute script:"
+ elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
+ 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-2.2.0.ebuild b/app-emulation/nemu/nemu-3.1.0.ebuild
index 7b885f4f50c6..9bd6d23031a3 100644
--- a/app-emulation/nemu/nemu-2.2.0.ebuild
+++ b/app-emulation/nemu/nemu-3.1.0.ebuild
@@ -1,36 +1,39 @@
-# Copyright 2019 Gentoo Authors
+# Copyright 2019-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-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"
+KEYWORDS="amd64"
+IUSE="dbus network-map +ovf 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 )
+"
DEPEND="${RDEPEND}"
-
BDEPEND="sys-devel/gettext"
+S="${WORKDIR}/${PN}-${MY_PV}/"
pkg_pretend() {
if use kernel_linux; then
@@ -42,32 +45,33 @@ 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_SPICE=$(usex spice)
- -DNM_WITH_VNC_CLIENT=$(usex vnc-client)
+ -DNM_WITH_QEMU=off
)
- 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.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 fe30968437c7..000000000000
--- a/app-emulation/nemu/nemu-9999.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# 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://lib.void.so/nemu"
-EGIT_REPO_URI="https://bitbucket.org/PascalRD/nemu.git"
-SRC_URI=""
-
-LICENSE="BSD-2"
-SLOT="0"
-IUSE="+vnc-client +ovf savevm debug"
-
-RDEPEND="
- sys-libs/ncurses:0=[unicode]
- dev-db/sqlite:3=
- virtual/libusb:1
- || ( sys-fs/eudev sys-fs/udev )
- app-emulation/qemu[vnc,virtfs]
- ovf? (
- dev-libs/libxml2
- app-arch/libarchive
- )
- vnc-client? ( net-misc/tigervnc )"
-
-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)
- )
- 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 "Old database is not supported (nEMU versions < 1.0.0)."
- elog "You will need to delete current database."
- elog "If upgraded from 1.0.0, execute script:"
- elog "/usr/share/nemu/scripts/upgrade_db.sh"
- elog ""
- 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 efae4d3de09b..bdbc4e5c9a51 100644
--- a/app-emulation/open-vm-tools/Manifest
+++ b/app-emulation/open-vm-tools/Manifest
@@ -1 +1,2 @@
-DIST open-vm-tools-10.3.10-12406962.tar.gz 4625419 BLAKE2B 1cc3759740f1384e5ae53d3afb8e49e7546c078914ff8d2da12782cb19bcf513d4cd7a0650179eece6ed17fc29bcfc2fd67f629e1d02edeabaf09d401d7922b9 SHA512 fd35794896c2de5a3b6c7fad0e86558ae0f16c7ab09c791d0d9b8a61cff8052d3d5fcfd19613f793251050f86edda2335b29f49503b3fee41f48495b2ab80a0a
+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.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 4dda94172bef..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
@@ -16,7 +13,6 @@
<flag name="dnet">Enable support for nicinfo</flag>
<flag name="doc">Generate API documentation</flag>
<flag name="fuse">Enable vmblock-fuse/vmhgfs-fuse</flag>
- <flag name="grabbitmqproxy">Build grabbitmqproxy plugin</flag>
<flag name="gtkmm">Compile with Gtkmm and sigc++ (Recommended)</flag>
<flag name="multimon">Enable multimon (Requires X)</flag>
<flag name="resolutionkms">Build the linux/unix resolutionkms module</flag>
@@ -24,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-10.3.10.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
index c820c884e1f9..3b96f8c85ee9 100644
--- a/app-emulation/open-vm-tools/open-vm-tools-10.3.10.ebuild
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
@@ -1,23 +1,22 @@
-# 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 user
+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}-12406962"
+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 +grabbitmqproxy 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 )
- grabbitmqproxy? ( ssl )
"
RDEPEND="
@@ -26,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
@@ -40,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
@@ -62,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() {
@@ -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,14 +98,13 @@ src_configure() {
$(use_enable doc docs)
--disable-tests
$(use_enable resolutionkms)
- $(use_enable static-libs static)
+ --disable-static
$(use_enable deploypkg)
- $(use_enable grabbitmqproxy)
$(use_with pam)
$(use_enable vgauth)
- --disable-caf
$(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 )
@@ -130,22 +131,19 @@ 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
if use X; then
fperms 4711 /usr/bin/vmware-user-suid-wrapper
dobin scripts/common/vmware-xdg-detect-de
-
- elog "To be able to use the drag'n'drop feature of VMware for file"
- elog "exchange, please add the users to the 'vmware' group."
fi
}
pkg_postinst() {
- enewgroup vmware
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
}
diff --git a/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
new file mode 100644
index 000000000000..051fc71853da
--- /dev/null
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
@@ -0,0 +1,149 @@
+# Copyright 2007-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools linux-info pam systemd udev
+
+DESCRIPTION="Tools for VMware guests"
+HOMEPAGE="https://github.com/vmware/open-vm-tools"
+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 ~arm64 x86"
+IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
+REQUIRED_USE="
+ multimon? ( X )
+ vgauth? ( ssl )
+"
+
+RDEPEND="
+ dev-libs/glib
+ net-libs/libtirpc
+ deploypkg? ( dev-libs/libmspack )
+ fuse? ( sys-fs/fuse:0 )
+ pam? ( sys-libs/pam )
+ !pam? ( virtual/libcrypt:= )
+ ssl? ( dev-libs/openssl:0= )
+ vgauth? (
+ dev-libs/libxml2
+ dev-libs/xmlsec:=
+ )
+ X? (
+ x11-libs/libXext
+ multimon? ( x11-libs/libXinerama )
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/libSM
+ x11-libs/libXcomposite
+ x11-libs/gdk-pixbuf-xlib
+ x11-libs/gtk+:3
+ gtkmm? (
+ dev-cpp/gtkmm:3.0
+ dev-libs/libsigc++:2
+ )
+ )
+ dnet? ( dev-libs/libdnet )
+ icu? ( dev-libs/icu:= )
+ resolutionkms? (
+ x11-libs/libdrm[video_cards_vmware]
+ virtual/libudev
+ )
+"
+
+DEPEND="${RDEPEND}
+ net-libs/rpcsvc-proto
+"
+
+BDEPEND="
+ dev-util/glib-utils
+ virtual/pkgconfig
+ doc? ( app-text/doxygen )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/10.1.0-Werror.patch"
+ "${FILESDIR}/11.3.5-icu.patch"
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~VMWARE_BALLOON ~VMWARE_PVSCSI ~VMXNET3"
+ use X && CONFIG_CHECK+=" ~DRM_VMWGFX"
+ kernel_is -lt 3 9 || CONFIG_CHECK+=" ~VMWARE_VMCI ~VMWARE_VMCI_VSOCKETS"
+ kernel_is -lt 3 || CONFIG_CHECK+=" ~FUSE_FS"
+ kernel_is -lt 5 5 || CONFIG_CHECK+=" ~X86_IOPL_IOPERM"
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ eapply -p2 "${PATCHES[@]}"
+ eapply_user
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-glibc-check
+ --without-root-privileges
+ $(use_enable multimon)
+ $(use_with X x)
+ $(use_with X gtk3)
+ $(use_with gtkmm gtkmm3)
+ $(use_enable doc docs)
+ --disable-tests
+ $(use_enable resolutionkms)
+ --disable-static
+ $(use_enable deploypkg)
+ $(use_with pam)
+ $(use_enable vgauth)
+ $(use_with dnet)
+ $(use_with icu)
+ --with-udev-rules-dir="$(get_udevdir)/rules.d"
+ )
+ # Avoid a bug in configure.ac
+ use ssl || myeconfargs+=( --without-ssl )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+
+ if use pam; then
+ rm "${ED}"/etc/pam.d/vmtoolsd || die
+ pamd_mimic_system vmtoolsd auth account
+ fi
+
+ newinitd "${FILESDIR}/open-vm-tools.initd" vmware-tools
+ newconfd "${FILESDIR}/open-vm-tools.confd" vmware-tools
+
+ if use vgauth; then
+ systemd_newunit "${FILESDIR}"/vmtoolsd.vgauth.service vmtoolsd.service
+ systemd_dounit "${FILESDIR}"/vgauthd.service
+ else
+ systemd_dounit "${FILESDIR}"/vmtoolsd.service
+ fi
+
+ # Make fstype = vmhgfs-fuse work in fstab
+ dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
+
+ if use X; then
+ fperms 4711 /usr/bin/vmware-user-suid-wrapper
+ dobin scripts/common/vmware-xdg-detect-de
+ fi
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/openstack-guest-agents-unix/Manifest b/app-emulation/openstack-guest-agents-unix/Manifest
deleted file mode 100644
index ff63970746d0..000000000000
--- a/app-emulation/openstack-guest-agents-unix/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST openstack-guest-agents-unix-1.39.0.tar.gz 75013 BLAKE2B 4245fb6fa2f8344469b264d1e9eee39e1914f76a33f54677d36ca854feb5a0548454af00cf02db9c5f2f0b6e68de9dc19fcf62a604b5d55fab96b20ed70a507e SHA512 4f7c4c1f2bc2c8ebda25dc8c0fa79c39e8e5a83040ff103f8c583d9142e71c6527d23e430da983e3a8c9add508298c31ec13a7e56d1db3b5338736dd470fec80
-DIST openstack-guest-agents-unix-1.39.1.tar.gz 75458 BLAKE2B 6afcf0cb40c7f24f7ea6ea8ca8af40373ce2fcbfffc5a8cae65e2ed8bf7003eb498b4592fa215e57a20e3c5d11064cfa4629b79eb94712ebb0ad5b09459fe815 SHA512 b1e88bb3492018375e7b2275829e2698d82d75c975a396ab7409c9b88f7787145b0da87c81a089aa8914fae30e996654b589bc1675bba769b661d7d1deb9590d
-DIST openstack-guest-agents-unix-1.39.1_p20170227.tar.gz 75309 BLAKE2B 3cd6f0bc3f5d7ae2ba4b1e8822e3c6659525dde4b7b9a9092bae4d825c965d88c5cba8f50f7e322cc08df1c4a113010645b2969eb1f4d3377db8279d58f56e8d SHA512 f36e40344a6a4debfa070d43177208edbeef7a829ace999b970e1423d7004d9255ab239c1feacdf9f3d14ddb469c67ccefe90a1bd83b1fb81c38a407c277832c
diff --git a/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch b/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
deleted file mode 100644
index bf95287a86f9..000000000000
--- a/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 84e1a32ee2b8d0607f2868365aa46aaea58f014c Mon Sep 17 00:00:00 2001
-From: Nate House <nathan.house@rackspace.com>
-Date: Mon, 20 Oct 2014 18:50:52 -0500
-Subject: [PATCH] Updated regexp to work with config headers added sometime ago
-
----
- tests/test_resetnetwork_interfaces.py | 26 +++++++++++---------------
- 1 file changed, 11 insertions(+), 15 deletions(-)
-
-diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py
-index dc8e7e7..b12b84c 100644
---- a/tests/test_resetnetwork_interfaces.py
-+++ b/tests/test_resetnetwork_interfaces.py
-@@ -344,17 +344,13 @@ def test_gentoo_legacy_ipv4(self):
-
- generated = outfiles['net'].rstrip()
- # (todo: naterh) Update tests to mock for both ifconfig/iproute2
-- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
-+ # (todo: naterh) Remove excessive unused kwargs
-+ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' +
- '# Label public\n*' +
- 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' +
- 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' +
-- 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)').format(
-- ip=interface['ipv4'][0][0],
-- netmask=interface['ipv4'][0][1],
-- gateway=interface['gateway4'],
-- dns=interface['dns'][0]
-- )
-- expected_regex = re.compile(pattern, re.MULTILINE)
-+ 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)')
-+ expected_regex = re.compile(pattern, re.DOTALL)
-
- self.assertRegexpMatches(generated, expected_regex)
-
-@@ -373,17 +369,17 @@ def test_gentoo_legacy_ipv6(self):
-
- # (todo: naterh) Update tests to mock for both ifconfig/iproute2
- generated = outfiles['net'].rstrip()
-- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
-+ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' +
- '# Label public\n*' +
- 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' +
- 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' +
- 'dns_servers_eth0=\(\s*"{dns}"\s*\)').format(
-- ip=interface['ipv6'][0][0],
-- netmask_len=interface['ipv6'][0][1],
-- gateway=interface['gateway6'],
-- dns=interface['dns'][0]
-- )
-- expected_regex = re.compile(pattern, re.MULTILINE)
-+ ip=interface['ipv6'][0][0],
-+ netmask_len=interface['ipv6'][0][1],
-+ gateway=interface['gateway6'],
-+ dns=interface['dns'][0]
-+ )
-+ expected_regex = re.compile(pattern, re.DOTALL)
-
- self.assertRegexpMatches(generated, expected_regex)
-
diff --git a/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch b/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch
deleted file mode 100644
index ea506845ed36..000000000000
--- a/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 4453b4773688eef6c60736d9cf07100716308a5e Mon Sep 17 00:00:00 2001
-From: Nate House <nathan.house@rackspace.com>
-Date: Sun, 19 Oct 2014 15:49:35 -0500
-Subject: [PATCH] Updated tests to check for either ifconfig/iproute2
-
----
- tests/test_resetnetwork_interfaces.py | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py
-index f2b73bf..dc8e7e7 100644
---- a/tests/test_resetnetwork_interfaces.py
-+++ b/tests/test_resetnetwork_interfaces.py
-@@ -343,8 +343,8 @@ def test_gentoo_legacy_ipv4(self):
- self.assertTrue('net' in outfiles)
-
- generated = outfiles['net'].rstrip()
--
-- pattern = ('modules=\( "ifconfig" \)\n*' +
-+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
-+ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
- '# Label public\n*' +
- 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' +
- 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' +
-@@ -371,8 +371,9 @@ def test_gentoo_legacy_ipv6(self):
-
- self.assertTrue('net' in outfiles)
-
-+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
- generated = outfiles['net'].rstrip()
-- pattern = ('modules=\( "ifconfig" \)\n*' +
-+ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
- '# Label public\n*' +
- 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' +
- 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' +
-@@ -399,8 +400,9 @@ def test_gentoo_openrc_ipv4(self):
-
- self.assertTrue('net' in outfiles)
-
-+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
- generated = outfiles['net'].rstrip()
-- pattern = ('modules="ifconfig"\n*' +
-+ pattern = ('modules="ifconfig|iproute2"\n*' +
- '# Label public\n*' +
- 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' +
- 'routes_eth0="\s*default via {gateway}\s*"\n*' +
-@@ -429,8 +431,9 @@ def test_gentoo_openrc_ipv6(self):
-
- self.assertTrue('net' in outfiles)
-
-+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
- generated = outfiles['net'].rstrip()
-- pattern = ('modules="ifconfig"\n*' +
-+ pattern = ('modules="ifconfig|iproute2"\n*' +
- '# Label public\n*' +
- 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' +
- 'routes_eth0="\s*default via {gateway}\s*"\n*' +
diff --git a/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch b/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch
deleted file mode 100644
index 0010e9ea5eae..000000000000
--- a/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Nuar openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in
---- openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in 2013-12-31 02:02:57.000000000 -0800
-+++ openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in 2014-06-21 17:20:01.527148493 -0700
-@@ -35,8 +35,9 @@
- NOVA_PYTHONPATH="${reallibdir}/${NOVA_PYTHONPATH}"
- NOVA_PYTHONPATH="${NOVA_PYTHONPATH}:${NOVA_PYTHONPATH}/site-packages"
-
--if [ `which python > /dev/null 2>&1 ; echo $?` -eq 0 ]; then
-- PYTHONPATH="$(python -c 'import sys; print ":".join(sys.path)')"
-+PYTHON=python2
-+if [ `which $PYTHON > /dev/null 2>&1 ; echo $?` -eq 0 ]; then
-+ PYTHONPATH="$($PYTHON -c 'import sys; print ":".join(sys.path)')"
- fi
- export PYTHONPATH="$NOVA_PYTHONPATH:$PYTHONPATH"
- export PYTHONHOME="$NOVA_PYTHONPATH:$PYTHONPATH"
diff --git a/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch b/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch
deleted file mode 100644
index c275982fa94b..000000000000
--- a/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-commit fc8c9fe076e321ff98cc6717abbb21ee57808c52
-Merge: eaaae09 1ecec49
-Author: teran-mckinney <teran.mckinney@rackspace.com>
-Date: Wed Apr 30 15:33:43 2014 +0000
-
- Merge pull request #43 from gtmanfred/master
-
- sbindir changes to exec_prefix
-
-commit eaaae09c27a33998374a8d63702c75b04ab3e5c2
-Merge: 773e431 1505a5a
-Author: teran-mckinney <teran.mckinney@rackspace.com>
-Date: Tue Apr 29 18:21:27 2014 +0000
-
- Merge pull request #45 from leader716/master
-
- Added addditional logic to deterine if the hardware address for and inte...
-
-commit 1505a5a8e180910c3307bf04ccfc4eed09c0f40a
-Author: John Ward <john.ward@rackspace.com>
-Date: Tue Apr 29 14:28:34 2014 +0000
-
- Added addditional logic to deterine if the hardware address for and interface is 0x0 if so go to the next interface.
- I put this into place to handle tun adapters that have a hardware address of 0x0 which was causing the agent to
- segfault when it encounterd this type of adapter.
-
-commit 1ecec499d5bea73980a8aec992b394339acc83c7
-Author: Daniel Wallace <danielwallace@gtmanfred.com>
-Date: Fri Apr 25 20:38:35 2014 -0500
-
- sbindir changes to exec_prefix
-
- Systemd requires a full path for the start of the command, and there
- isn't one that isn't a nice way to change this.
-
-commit 773e431997a6612cbda9f11ec9d57f5685a29eea
-Merge: 1ca2056 12c0294
-Author: teran-mckinney <teran.mckinney@rackspace.com>
-Date: Fri Apr 25 18:41:56 2014 +0000
-
- Merge pull request #39 from Camisa/master
-
- nova-agent should replace the Slice or Image ID rather than append
-
-commit 1ca2056a455f8075ed951f0a82b92820c0b33b54
-Merge: 1b05c75 f9a365e
-Author: teran-mckinney <teran.mckinney@rackspace.com>
-Date: Fri Apr 25 18:40:29 2014 +0000
-
- Merge pull request #42 from gtmanfred/master
-
- Do not add static routes that are the default route, if a default gateway already exists.
-
- Courtesy of gtmanfred. Thank you!
-
-commit f9a365e7a9543d407ca9d75164688faa0ff53528
-Author: Daniel Wallace <danielwallace@gtmanfred.com>
-Date: Fri Apr 25 10:54:29 2014 -0500
-
- remove extra and from debian network.py
-
-commit 387d4e77695598a07be9e4593c5b236b81a1aeea
-Author: Daniel Wallace <danielwallace@gtmanfred.com>
-Date: Fri Apr 25 09:31:15 2014 -0500
-
- Do not add static routes that are the default route
-
-commit 1b05c75530c8b4cbf5347e84815e275ee0bbacd4
-Author: teran-mckinney <teran.mckinney@rackspace.com>
-Date: Thu Feb 13 19:26:36 2014 +0000
-
- Fix nova-agent not starting on some systems
-
- data/host existing could cause a fault on xs_handle.mkdir(self.request_path) if request_path (data/host) already existed. Wrap it in a try/except clause to ignore the fault as if the directory already exists, there's no reason to throw an exception while trying to create it.
-
- Workaround without this patch is to xenstore-rm data/host from affected VMs, or to do it from dom0 with the full path.
-
-commit 12c02941ef02dc6645e6d4700e8a028decbf0c19
-Author: Christopher J. Camisa <cjc@operator.host>
-Date: Thu Jan 30 03:11:51 2014 -0600
-
- nova-agent should replace the Slice or Image ID rather than append
-
-commit ce388bf600136736fdb790edef58a57aad8adfc1
-Author: AbhishekKr <abhikumar163@gmail.com>
-Date: Tue Jan 21 17:22:23 2014 +0530
-
- shebang fixed for installer.sh and bintar script; gitignore updated
-
-commit 91fe7d0262fe8ad685a287df291b504250b1184c
-Author: AbhishekKr <abhikumar163@gmail.com>
-Date: Fri Jan 3 16:51:54 2014 +0530
-
- FreeBSD changed ports, so bintar creation script need to
-diff --git a/.gitignore b/.gitignore
-index ae1ae1b..6bdeda8 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -55,3 +55,4 @@ unix/scripts/generic/nova-agent
- unix/scripts/gentoo/nova-agent
- unix/scripts/freebsd/nova-agent
- .idea/*
-+**/.venv
-diff --git a/commands/arch/network.py b/commands/arch/network.py
-index 1d698ca..2bc0aff 100644
---- a/commands/arch/network.py
-+++ b/commands/arch/network.py
-@@ -373,6 +373,11 @@ def _update_rc_conf_legacy(infile, interfaces):
- ifaces.append((ifname.replace(':', '_'), ' '.join(line)))
-
- for i, route in enumerate(interface['routes']):
-+ if route['network'] == '0.0.0.0' and \
-+ route['netmask'] == '0.0.0.0' and \
-+ route['gateway'] == gateway4:
-+ continue
-+
- line = "-net %(network)s netmask %(netmask)s gw %(gateway)s" % \
- route
-
-@@ -499,7 +504,10 @@ def _get_file_data_netctl(ifname, interface):
- print >>outfile, 'Gateway6=%s' % gateway6
-
- routes = ['%(network)s/%(netmask)s via %(gateway)s' % route
-- for route in interface['routes']]
-+ for route in interface['routes'] if not
-+ route['network'] == '0.0.0.0' and not
-+ route['netmask'] == '0.0.0.0' and not
-+ route['gateway'] == gateway4]
-
- if routes:
- print >>outfile, 'Routes=(\'%s\')' % '\' \''.join(routes)
-@@ -552,7 +560,10 @@ def _get_file_data_netcfg(ifname, interface):
- print >>outfile, 'GATEWAY6="%s"' % gateway6
-
- routes = ['"%(network)s/%(netmask)s via %(gateway)s"' % route
-- for route in interface['routes']]
-+ for route in interface['routes'] if not
-+ route['network'] == '0.0.0.0' and not
-+ route['netmask'] == '0.0.0.0' and not
-+ route['gateway'] == gateway4]
-
- if routes:
- print >>outfile, 'ROUTES=(%s)' % ' '.join(routes)
-diff --git a/commands/debian/network.py b/commands/debian/network.py
-index d91d602..3b82d97 100644
---- a/commands/debian/network.py
-+++ b/commands/debian/network.py
-@@ -234,6 +234,11 @@ def _get_file_data(interfaces):
- ifname_suffix_num += 1
-
- for route in interface['routes']:
-+ if route['network'] == '0.0.0.0' \
-+ and route['netmask'] == '0.0.0.0'\
-+ and 'gateway4' in interface \
-+ and route['gateway'] == interface['gateway4']:
-+ continue
- file_data += " post-up route add -net %(network)s " \
- "netmask %(netmask)s gw %(gateway)s || true\n" % route
- file_data += " pre-down route del -net %(network)s " \
-diff --git a/commands/freebsd/network.py b/commands/freebsd/network.py
-index 2d5d7f1..87e5e9e 100644
---- a/commands/freebsd/network.py
-+++ b/commands/freebsd/network.py
-@@ -211,6 +211,10 @@ def _create_rcconf_file(infile, interfaces, hostname):
- ifname_suffix_num += 1
-
- for route in interface['routes']:
-+ if route['network'] == '0.0.0.0' and \
-+ route['netmask'] == '0.0.0.0' and \
-+ route['gateway'] == gateway4:
-+ continue
- if ':' in route['network']:
- # ipv6
- fmt = '-net %(network)s/%(netmask)s %(gateway)s'
-diff --git a/commands/gentoo/network.py b/commands/gentoo/network.py
-index f3ceff5..f3e5251 100644
---- a/commands/gentoo/network.py
-+++ b/commands/gentoo/network.py
-@@ -199,7 +199,11 @@ def _confd_net_file(interfaces):
- lines.extend([ " {0}/{1} via {2}".format(route['network'],
- commands.network.NETMASK_TO_PREFIXLEN[route['netmask']],
- route['gateway']
-- ) for route in interface['routes'] ])
-+ ) for route in interface['routes'] if not
-+ route['network'] == '0.0.0.0' and not
-+ route['netmask'] == '0.0.0.0' and
-+ 'gateway4' in interface and not
-+ route['gateway'] == interface['gateway4']])
- if 'gateway4' in interface and interface['gateway4']:
- lines.append(" default via {0}".format(interface['gateway4']))
- if 'gateway6' in interface and interface['gateway6']:
-@@ -247,7 +251,11 @@ def _confd_net_file_legacy(interfaces):
- lines.append("routes_{0}=(".format(name))
- lines.extend([ " \"{0} netmask {1} gw {2}\"".format(
- route['network'], route['netmask'], route['gateway']
-- ) for route in interface['routes'] ])
-+ ) for route in interface['routes'] if not
-+ route['network'] == '0.0.0.0' and not
-+ route['netmask'] == '0.0.0.0' and
-+ 'gateway4' in interface and not
-+ route['gateway'] == interface['gateway4'] ])
- if 'gateway4' in interface and interface['gateway4']:
- lines.append(" \"default via {0}\"".format(interface['gateway4']))
- if 'gateway6' in interface and interface['gateway6']:
-diff --git a/commands/redhat/network.py b/commands/redhat/network.py
-index a85ed6b..e853fbd 100644
---- a/commands/redhat/network.py
-+++ b/commands/redhat/network.py
-@@ -202,6 +202,11 @@ def _get_file_data(ifname_prefix, interface):
-
- route_data = ''
- for i, route in enumerate(interface['routes']):
-+ if route['network'] == '0.0.0.0' and \
-+ route['netmask'] == '0.0.0.0' and \
-+ 'gateway4' in interface and \
-+ route['gateway'] == interface['gateway4']:
-+ continue
- route_data += "ADDRESS%d=%s\n" % (i, route['network'])
- route_data += "NETMASK%d=%s\n" % (i, route['netmask'])
- route_data += "GATEWAY%d=%s\n" % (i, route['gateway'])
-diff --git a/commands/suse/network.py b/commands/suse/network.py
-index 2947974..baad7b2 100644
---- a/commands/suse/network.py
-+++ b/commands/suse/network.py
-@@ -191,6 +191,10 @@ def _get_file_data(ifname, interface):
-
- route_data = ''
- for route in interface['routes']:
-+ if route['network'] == '0.0.0.0' and \
-+ route['netmask'] == '0.0.0.0' and \
-+ route['gateway'] == gateway4:
-+ continue
- network = route['network']
- netmask = route['netmask']
- gateway = route['gateway']
-diff --git a/lib/agentlib.c b/lib/agentlib.c
-index ccba6e3..cced430 100644
---- a/lib/agentlib.c
-+++ b/lib/agentlib.c
-@@ -73,7 +73,10 @@ static PyObject *_agentlib_get_interfaces(PyObject *self, PyObject *args)
- goto next;
-
- #if defined(__linux__)
-- if (ifa->ifa_addr->sa_family != PF_PACKET)
-+ if (ifa->ifa_addr == NULL)
-+ goto next;
-+
-+ if (ifa->ifa_addr->sa_family != PF_PACKET)
- goto next;
-
- struct sockaddr_ll *sll = (struct sockaddr_ll *)ifa->ifa_addr;
-diff --git a/plugins/xscomm.py b/plugins/xscomm.py
-index e3faa2e..9b8a33b 100644
---- a/plugins/xscomm.py
-+++ b/plugins/xscomm.py
-@@ -41,7 +41,11 @@ class XSComm(object):
- XENSTORE_RESPONSE_PATH)
-
- self.xs_handle = pyxenstore.Handle()
-- self.xs_handle.mkdir(self.request_path)
-+ try:
-+ self.xs_handle.mkdir(self.request_path)
-+ except:
-+ pass
-+
- self.requests = []
-
- def _check_handle(self):
-diff --git a/scripts/gentoo/nova-agent.in b/scripts/gentoo/nova-agent.in
-index a043394..7f2687e 100755
---- a/scripts/gentoo/nova-agent.in
-+++ b/scripts/gentoo/nova-agent.in
-@@ -59,7 +59,7 @@ start() {
- /usr/bin/xenstore write data/host/system-init '{"name":"resetnetwork","value":""}'
- /usr/bin/xenstore watch -n 1 data/guest/system-init >/dev/null
- [ "$(/usr/bin/xenstore read data/guest/system-init | wc -l)" -gt "0" ] || eend 1
-- echo "UUID=\"$(/usr/bin/xenstore read name)\"" >> /etc/conf.d/nova-agent
-+ echo "UUID=\"$(/usr/bin/xenstore read name)\"" > /etc/conf.d/nova-agent
- fi
-
- eend $RET
-diff --git a/scripts/installer.sh.in b/scripts/installer.sh.in
-index 8ef793d..3fbf352 100755
---- a/scripts/installer.sh.in
-+++ b/scripts/installer.sh.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
-
- # vim: tabstop=4 shiftwidth=4 softtabstop=4
- #
-diff --git a/scripts/systemd/nova-agent.service.in b/scripts/systemd/nova-agent.service.in
-index 9d8a4a7..b73ebbe 100644
---- a/scripts/systemd/nova-agent.service.in
-+++ b/scripts/systemd/nova-agent.service.in
-@@ -4,7 +4,7 @@ Description=nova-agent service
- [Service]
- Environment=LD_LIBRARY_PATH=@prefix@/share/@PACKAGE@/@PACKAGE_VERSION@/lib
- EnvironmentFile=-/etc/nova-agent.env
--ExecStart=@sbindir@/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py
-+ExecStart=@prefix@/sbin/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py
-
-
- [Install]
-diff --git a/tools/nova-agent-builder.sh b/tools/nova-agent-builder.sh
-index 1823639..fcaa7c7 100755
---- a/tools/nova-agent-builder.sh
-+++ b/tools/nova-agent-builder.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
- ##### NOVA AGENT BUILDER
- ##### how_to:$ sh nova-agent-builder.sh help
- ##### W.I.P. works fine for most of cases,
-@@ -202,7 +202,7 @@ install_pre_requisite_freebsd(){
- export INSTALL_D=""
- uname -a
-
-- pkg_add -r git autogen automake wget bash
-+ pkg_add -r git autogen automake wget bash libtool
- pkg_add -r py27-unittest2 py27-cryptkit py27-pycrypto py27-mox
-
- # re-install xen-tool :: required for pyxenstore install
diff --git a/app-emulation/openstack-guest-agents-unix/metadata.xml b/app-emulation/openstack-guest-agents-unix/metadata.xml
deleted file mode 100644
index 9ece78e0b73c..000000000000
--- a/app-emulation/openstack-guest-agents-unix/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>robbat2@gentoo.org</email>
- </maintainer>
- <upstream>
- <remote-id type="github">rackerlabs/openstack-guest-agents-unix</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild
deleted file mode 100644
index ef90ea71bc02..000000000000
--- a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 ) # does not work with py3 yet
-
-inherit autotools eutils vcs-snapshot python-single-r1
-
-DESCRIPTION="Openstack Unix Guest Agent"
-HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
-SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="dev-util/patchelf
- dev-python/pycrypto[${PYTHON_USEDEP}]
- dev-python/pyxenstore[${PYTHON_USEDEP}]
- ${PYTHON_DEPS}"
-DEPEND="${RDEPEND}"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/patches-1.39.0-20140621.patch \
- "${FILESDIR}"/openstack-guest-agents-unix-1.39.0-python2.patch
- eautoreconf
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- doinitd scripts/gentoo/nova-agent
-}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild
deleted file mode 100644
index d3efb5aa64c5..000000000000
--- a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 ) # does not work with py3 yet
-
-inherit autotools eutils vcs-snapshot python-single-r1
-
-DESCRIPTION="Openstack Unix Guest Agent"
-HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
-SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="dev-util/patchelf
- dev-python/pycrypto[${PYTHON_USEDEP}]
- dev-python/pyxenstore[${PYTHON_USEDEP}]
- ${PYTHON_DEPS}"
-DEPEND="${RDEPEND}"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/patches-1.39.0-20140621.patch \
- "${FILESDIR}"/openstack-guest-agents-unix-1.39.0-python2.patch
- # Ignore the deps of install-exec-local
- sed -i -e '/^install-exec-local:/s,:.*,:,g' Makefile.am
- # bashism fix
- sed -r -i -e '/^export ([A-Z_]+)/{ s,^export ,,g; s,^([A-Z0-9_]+)(.*),\1\2; export \1,g; }' scripts/gentoo/nova-agent.in
-
- eautoreconf
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- doinitd scripts/gentoo/nova-agent
-}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild
deleted file mode 100644
index 46959c8c3844..000000000000
--- a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils vcs-snapshot
-
-DESCRIPTION="Openstack Unix Guest Agent"
-HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
-SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-DEPEND="
- dev-util/patchelf
- dev-python/pycrypto
- dev-python/pyxenstore
- "
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- eautoreconf
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- doinitd scripts/gentoo/nova-agent
-}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild
deleted file mode 100644
index 0da3fbbb7ff5..000000000000
--- a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-inherit autotools eutils python-single-r1 vcs-snapshot
-
-DESCRIPTION="Openstack Unix Guest Agent"
-HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
-SRC_URI="https://github.com/rackerlabs/${PN}/tarball/${PV} -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-CDEPEND="
- dev-python/pycrypto[${PYTHON_USEDEP}]
- dev-python/pyxenstore[${PYTHON_USEDEP}]
- dev-util/patchelf
- ${PYTHON_DEPS}
-"
-DEPEND="
- ${CDEPEND}
- test? (
- dev-python/mox[${PYTHON_USEDEP}]
- dev-python/unittest2[${PYTHON_USEDEP}]
- )
-"
-RDEPEND="${CDEPEND}"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/4453b4773688eef6c60736d9cf07100716308a5e.patch \
- "${FILESDIR}"/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
-
- # Note: https://github.com/rackerlabs/openstack-guest-agents-unix/issues/52
- ebegin 'patching tests/test_injectfile.py'
- sed \
- -e '97,127 d' \
- -i tests/test_injectfile.py
- STATUS=$?
- eend ${STATUS}
- [[ ${STATUS} -gt 0 ]] && die
-
- eautoreconf
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- doinitd scripts/gentoo/nova-agent
-}
-
-pkg_postinst() {
- elog "If you would like to utilize openstack-guest-agents-unix, add 'nova-agent' to"
- elog "your 'default' runlevel:"
- elog " rc-update add nova-agent default"
-}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild
deleted file mode 100644
index 944e7f894497..000000000000
--- a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 )
-
-inherit eutils autotools linux-info python-single-r1
-
-COMMIT="c9a4f15b8c8f2349601d3073cc95e30d3b91af13"
-
-DESCRIPTION="Unix Guest Agent for OpenStack"
-HOMEPAGE="https://wiki.openstack.org/wiki/GuestAgent"
-SRC_URI="https://github.com/rackerlabs/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="mirror strip"
-
-DEPEND="
- app-emulation/xe-guest-utilities[-xenstore]
- dev-util/patchelf
- dev-python/pycrypto[${PYTHON_USEDEP}]
- test? ( dev-python/mox[${PYTHON_USEDEP}] )
- test? ( dev-python/unittest2[${PYTHON_USEDEP}] )
- ${PYTHON_DEPS}
-"
-RDEPEND="
- app-emulation/xe-guest-utilities
- dev-python/pyxenstore[${PYTHON_USEDEP}]
- dev-python/pycrypto[${PYTHON_USEDEP}]
- ${PYTHON_DEPS}
-"
-S=${WORKDIR}/${PN}-${COMMIT}
-
-# Required for Emergency Console
-CONFIG_CHECK="~KEYBOARD_ATKBD"
-
-pkg_setup()
-{
- python-single-r1_pkg_setup
-}
-
-src_prepare()
-{
- # Note: https://github.com/rackerlabs/openstack-guest-agents-unix/issues/52
- ebegin 'patching tests/test_injectfile.py'
- sed -e '97,127 d' -i tests/test_injectfile.py
- STATUS=$?
- eend ${STATUS}
- [[ ${STATUS} -gt 0 ]] && die
-
- eapply_user
- eautoreconf
-}
-
-src_install()
-{
- emake DESTDIR="${D}" install || die
- doinitd scripts/gentoo/nova-agent
-}
-
-pkg_postinst()
-{
- if [ "$(rc-config list default | grep nova-agent)" = "" ] ; then
- elog "To start nova-agent automatically by default"
- elog "you should add it to the default runlevel :"
- elog "\`rc-update add nova-agent default\`"
- elog
- fi
-}
diff --git a/app-emulation/pcem/Manifest b/app-emulation/pcem/Manifest
new file mode 100644
index 000000000000..a350cb7eb993
--- /dev/null
+++ b/app-emulation/pcem/Manifest
@@ -0,0 +1 @@
+DIST PCemV17Linux.tar.gz 1880868 BLAKE2B 64068f0f98e8fe3e9bfe42a04f462375a7ee0cb8259b103237f3b0542f54ad13ed625a55c8379e2c54a87348ed504496a6b163419855ceeda8e4f18e1ea5dcd9 SHA512 6d84c8cbe9b6116f6439f542ac08139cfc5652a34b615a1ed841a6f8c227e77f1d26573ec35d57511b9a69e7472fbe51f2abb9307f8f8c1207c74fbe8107cadd
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
new file mode 100644
index 000000000000..2e2c78f17257
--- /dev/null
+++ b/app-emulation/pcem/metadata.xml
@@ -0,0 +1,23 @@
+<?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>
+ PCem (an acronym for Personal Computer emulator) is an open-source,
+ low-level PC emulator developed for Windows and Linux by Sarah Walker.
+
+ It focuses on PC hardware from the 1980's and 1990's.
+ A variety of operating systems can be installed in the emulator,
+ which can then be used to launch programs.
+ </longdescription>
+ <use>
+ <flag name="networking">Enable support for emulation of network cards.</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://pcem-emulator.co.uk/phpBB3/viewforum.php?f=2</bugs-to>
+ <remote-id type="github">sarah-walker-pcem/pcem</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/pcem/pcem-17-r2.ebuild b/app-emulation/pcem/pcem-17-r2.ebuild
new file mode 100644
index 000000000000..47e17b588639
--- /dev/null
+++ b/app-emulation/pcem/pcem-17-r2.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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="
+ https://pcem-emulator.co.uk/
+ 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"
+
+RDEPEND="
+ alsa? ( media-libs/alsa-lib )
+ media-libs/libsdl2
+ media-libs/openal
+ x11-libs/wxGTK:${WX_GTK_VER}[tiff,X]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( "README.md" "TESTED.md" )
+
+PATCHES=( "${FILESDIR}/${PN}-17-respect-cflags.patch" )
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+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[@]}"
+}
+
+src_install() {
+ default
+
+ insinto /usr/share/pcem
+ doins -r configs nvr roms
+
+ newicon src/icons/32x32/motherboard.png pcem.png
+ make_desktop_entry "pcem" "PCem" pcem "Development;Utility"
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ elog "In order to use PCem, you will need some roms for various emulated systems."
+ elog "You can either install globally for all users or locally for yourself."
+ elog ""
+ elog "To install globally, put your ROM files into '${ROOT}/usr/share/pcem/roms/<system>'."
+ elog "To install locally, put your ROM files into '~/.pcem/roms/<system>'."
+}
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/playonlinux/Manifest b/app-emulation/playonlinux/Manifest
deleted file mode 100644
index 8c67aafdf402..000000000000
--- a/app-emulation/playonlinux/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST PlayOnLinux_4.2.12.tar.gz 3204230 BLAKE2B 80ef0e5763448da4a37263c64d408e8263771694666a7c704b5900dfe0e52cc18405c34d609d8c49a0d05a383fca2d035e956e3bbe9a9a0c92a4e43b319ed7ba SHA512 f4ededc8fe0117c66fd5672e136e19b9b48a41acdd3e1b1b3dd7fae2c354e77795f0a4f8286b09b7d1813363aee50fa0811c04c3194aaf745963a2e6115b3909
-DIST PlayOnLinux_4.3.4.tar.gz 3101890 BLAKE2B d724cbd90a0f1bbc94c6365fcf6511d39ea0e8e9de32f42716111324f69091874ab19d3fa88a6bd9f77ed6308bc03ca708406fdc24faa60bf662e6a4f5d15d86 SHA512 7f2089d37379adee01424777e9c3b7ec16dd56ba2f4b834b4f0447832c050b2df3218a7361e8e735d5cc359aec6a000fea88e11632c9434232e4f749bb21c173
diff --git a/app-emulation/playonlinux/files/playonlinux-4.2.4-binary-plugin.patch b/app-emulation/playonlinux/files/playonlinux-4.2.4-binary-plugin.patch
deleted file mode 100644
index d5d3727e9fb0..000000000000
--- a/app-emulation/playonlinux/files/playonlinux-4.2.4-binary-plugin.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Remove binary code from the package
- Upstream ships a binary plugin in the archive. This plugin is not necessary to
- get PlayOnLinux working and it still can be downloaded from upstream.
-Forwarded: not-needed
-Author: Bertrand Marc <beberking@gmail.com>
---- a/plugins/plugins.lst
-+++ b/plugins/plugins.lst
-@@ -21,9 +21,6 @@
-
- ## in fact empty line is also ignored because it's more easy to read =)
-
--##Capture
--capture;Capture_2.4.3.pol;Capture;enable;2.4.3;11;1;0
--
- ##Screencap
- screencap;ScreenCap_0.0.4.pol;ScreenCap;enable;0.0.4;1;1;1
-
diff --git a/app-emulation/playonlinux/files/playonlinux-4.2.4-pol-bash.patch b/app-emulation/playonlinux/files/playonlinux-4.2.4-pol-bash.patch
deleted file mode 100644
index f9b3e2b81c29..000000000000
--- a/app-emulation/playonlinux/files/playonlinux-4.2.4-pol-bash.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/etc/pol_bash b/etc/pol_bash
-index 7911f05..bd891e4 100644
---- a/etc/pol_bash
-+++ b/etc/pol_bash
-@@ -29,7 +29,15 @@ export HISTCONTROL=ignoreboth
- shopt -s checkwinsize
-
- # make less more friendly for non-text input files, see lesspipe(1)
--[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
-+less_pipe_cmd=$(lesspipe 2> /dev/null)
-+if [ "$less_pipe_cmd" == export* ]; then
-+ eval "$(lesspipe)"
-+else
-+ if [ -x /usr/bin/lesspipe ]; then
-+ export LESSOPEN='| lesspipe %s'
-+ fi
-+fi
-+unset less_pipe_cmd
-
- # set variable identifying the chroot you work in (used in the prompt below)
- if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
-@@ -73,7 +81,9 @@ fi
- # enable programmable completion features (you don't need to enable
- # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
- # sources /etc/bash.bashrc).
--if [ -f /etc/bash_completion ]; then
-- . /etc/bash_completion
--fi
--
-+for bashcomp in /etc/{bash_completion,profile.d/bash-completion.sh}; do
-+ if [ -r "$bashcomp" ]; then
-+ . "$bashcomp"
-+ fi
-+done
-+unset bashcomp
diff --git a/app-emulation/playonlinux/files/playonlinux-4.2.6-stop-update-warning.patch b/app-emulation/playonlinux/files/playonlinux-4.2.6-stop-update-warning.patch
deleted file mode 100644
index f5cf055f84bc..000000000000
--- a/app-emulation/playonlinux/files/playonlinux-4.2.6-stop-update-warning.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-# This patch enables the $DEBIAN_PACKAGE variable for playonlinux.
-# The changes are described in the source comments below.
-# The flag is unfortnuately named debian, however the
-# benefits apply to any package management system.
-# Patch written by Adam Mills <adam@armills.info>
-
---- a/python/lib/Variables.py 2013-08-10 22:19:46.053365072 -0400
-+++ b/python/lib/Variables-patched.py 2013-08-10 22:17:58.275881842 -0400
-@@ -26,7 +26,7 @@
- # Debian packagers should switch this to TRUE
- # It will disable update alerts, bug reports, statistics
- # It will set the good locale directory, and it will use the good msttcorefonts
--os.environ["DEBIAN_PACKAGE"] = "FALSE"
-+os.environ["DEBIAN_PACKAGE"] = "TRUE"
-
- # Variables PlayOnMac
- if (os.environ["POL_OS"] == "Mac"):
diff --git a/app-emulation/playonlinux/files/playonlinux-pkg.1 b/app-emulation/playonlinux/files/playonlinux-pkg.1
deleted file mode 100644
index b96a8dc921da..000000000000
--- a/app-emulation/playonlinux/files/playonlinux-pkg.1
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH PLAYONLINUX-PKG 1 "February 6, 2009"
-
-.SH NAME
-playonlinux-pkg \- tool to manage playonlinux packages
-
-.SH SYNOPSIS
-.B playonlinux-pkg
-.RI [ options ]
-.RI [ package ]
-
-.SH DESCRIPTION
-.B playonlinux-pkg
-is a tool to install or manage the playonlinux packages
-
-.SH OPTIONS
-.TP
-.I "-b, --browse"
- Choose a file.
-.TP
-.I "-e, --extract"
- Extract the package.
-.TP
-.I "-i, --install"
- Install the package.
-.TP
-.I "-h, --help"
- Show usage.
-
-.SH AUTHOR
-playonlinux was written by Quentin Pâris <qparis@playonlinux.com>.
-.PP
-This manual page was written by Bertrand Marc <beberking@gmail.com>,
-for the Debian project (but may be used by others).
diff --git a/app-emulation/playonlinux/files/playonlinux.1 b/app-emulation/playonlinux/files/playonlinux.1
deleted file mode 100644
index 63c499be7327..000000000000
--- a/app-emulation/playonlinux/files/playonlinux.1
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH PLAYONLINUX 1 "February 6, 2009"
-
-.SH NAME
-PlayOnLinux \- front-end for Wine
-
-.SH SYNOPSIS
-.B playonlinux
-.RI [ options ]
-
-.SH DESCRIPTION
-.B PlayOnLinux
-is a front-end for Wine. It allows you to easily install and use numerous games and software designed to run with Microsoft®'s Windows®.
-.br
-Few games are compatible with GNU/Linux at the moment and it certainly is a factor preventing the migration to this system.
-.P
-.B PlayOnLinux
-performs installations in
-.I ~/.PlayOnLinux
-and uses separate Wine prefixes to avoid conflicts between applications.
-
-.SH OPTIONS
-.TP
-.I --version
- Show version number and exit.
-.TP
-.I "--run <prog>"
- Run directly the specified program.
-
-.SH AUTHOR
-playonlinux was written by Quentin Pâris <qparis@playonlinux.com>.
-.PP
-This manual page was written by Bertrand Marc <beberking@gmail.com>,
-for the Debian project (but may be used by others).
diff --git a/app-emulation/playonlinux/metadata.xml b/app-emulation/playonlinux/metadata.xml
deleted file mode 100644
index b43e3dddd0c0..000000000000
--- a/app-emulation/playonlinux/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>NP-Hardass@gentoo.org</email>
- <name>NP-Hardass</name>
- </maintainer>
- <maintainer type="project">
- <email>wine@gentoo.org</email>
- <name>Wine</name>
- </maintainer>
- <use>
- <flag name="winbind">Enables support for the winbind auth daemon</flag>
- </use>
-</pkgmetadata>
diff --git a/app-emulation/playonlinux/playonlinux-4.2.12.ebuild b/app-emulation/playonlinux/playonlinux-4.2.12.ebuild
deleted file mode 100644
index d7c477f4bd80..000000000000
--- a/app-emulation/playonlinux/playonlinux-4.2.12.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python2_7 )
-
-inherit gnome2-utils python-single-r1
-
-MY_PN="PlayOnLinux"
-
-DESCRIPTION="Set of scripts to easily install and use Windows games and software"
-HOMEPAGE="https://playonlinux.com/"
-SRC_URI="http://www.playonlinux.com/script_files/${MY_PN}/${PV}/${MY_PN}_${PV}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="winbind"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND=""
-RDEPEND="${PYTHON_DEPS}
- app-arch/cabextract
- app-arch/p7zip
- app-arch/unzip
- app-crypt/gnupg
- virtual/wine
- dev-python/wxpython:3.0[${PYTHON_USEDEP}]
- net-misc/wget
- x11-apps/mesa-progs
- x11-terms/xterm
- media-gfx/icoutils
- net-analyzer/netcat
- virtual/imagemagick-tools
- winbind? ( net-fs/samba[winbind] )
-"
-
-S="${WORKDIR}/${PN}"
-
-# TODO:
-# Having a real install script
-# It will let using LANGUAGES easily
-# How to deal with Microsoft Fonts installation asked every time ?
-# How to deal with wine version installed ? (have a better mgmt of system one)
-# Look at debian pkg: https://packages.debian.org/sid/playonlinux
-
-PATCHES=(
- "${FILESDIR}/${PN}-4.2.4-pol-bash.patch"
- "${FILESDIR}/${PN}-4.2.4-binary-plugin.patch"
- "${FILESDIR}/${PN}-4.2.6-stop-update-warning.patch"
-)
-
-src_prepare() {
- default
-
- python_fix_shebang .
-
- # remove playonmac
- rm etc/{playonmac.icns,terminal.applescript} || die
-
- # remove desktop integration
- rm etc/{PlayOnLinux.desktop,PlayOnLinux.directory,playonlinux-Programs.menu} || die
-}
-
-src_install() {
- # all things without exec permissions
- insinto "/usr/share/${PN}"
- doins -r resources lang lib etc plugins
-
- # bash/ install
- exeinto "/usr/share/${PN}/bash"
- find "${S}/bash" -type f -exec doexe '{}' +
- exeinto "/usr/share/${PN}/bash/expert"
- find "${S}/bash/expert" -type f -exec doexe '{}' +
-
- # python/ install
- python_moduleinto "/usr/share/${PN}"
- python_domodule python
-
- # main executable files
- exeinto "/usr/share/${PN}"
- doexe ${PN}{,-pkg,-bash,-shell,-url_handler}
-
- # icons
- doicon -s 128 etc/${PN}.png
- for size in 16 22 32; do
- newicon -s $size etc/${PN}$size.png ${PN}.png
- done
-
- doman "${FILESDIR}"/playonlinux{,-pkg}.1
- dodoc CHANGELOG.md
-
- make_wrapper ${PN} "./${PN}" "/usr/share/${PN}"
- make_wrapper ${PN}-pkg "./${PN}-pkg" "/usr/share/${PN}"
- make_desktop_entry ${PN} ${MY_PN} ${PN} Game
-}
-
-pkg_preinst() {
- gnome2_icon_savelist
-}
-
-pkg_postinst() {
- gnome2_icon_cache_update
-}
-
-pkg_prerm() {
- if [[ -z ${REPLACING_VERSIONS} ]]; then
- elog "Installed software and games with playonlinux have not been removed."
- elog "To remove them, you can re-install playonlinux and remove them using it,"
- elog "or do it manually by removing .PlayOnLinux/ in your home directory."
- fi
-}
-
-pkg_postrm() {
- gnome2_icon_cache_update
-}
diff --git a/app-emulation/playonlinux/playonlinux-4.3.4.ebuild b/app-emulation/playonlinux/playonlinux-4.3.4.ebuild
deleted file mode 100644
index f2a319b7bbeb..000000000000
--- a/app-emulation/playonlinux/playonlinux-4.3.4.ebuild
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit desktop eutils python-single-r1 xdg
-
-MY_PN="PlayOnLinux"
-
-DESCRIPTION="Set of scripts to easily install and use Windows games and software"
-HOMEPAGE="https://playonlinux.com/"
-SRC_URI="https://www.playonlinux.com/script_files/${MY_PN}/${PV}/${MY_PN}_${PV}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="winbind"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND=""
-RDEPEND="${PYTHON_DEPS}
- app-arch/cabextract
- app-arch/p7zip
- app-arch/unzip
- app-crypt/gnupg
- app-misc/jq
- dev-python/wxpython:3.0[${PYTHON_USEDEP}]
- media-gfx/icoutils
- || ( net-analyzer/netcat net-analyzer/openbsd-netcat )
- net-misc/wget
- virtual/imagemagick-tools
- virtual/wine
- winbind? ( net-fs/samba[winbind] )
- x11-apps/mesa-progs
- x11-terms/xterm
-"
-
-S="${WORKDIR}/${PN}"
-
-# TODO:
-# Having a real install script
-# It will let using LANGUAGES easily
-# How to deal with Microsoft Fonts installation asked every time ?
-# How to deal with wine version installed ? (have a better mgmt of system one)
-# Look at debian pkg: https://packages.debian.org/sid/playonlinux
-
-PATCHES=(
- "${FILESDIR}/${PN}-4.2.4-pol-bash.patch"
- "${FILESDIR}/${PN}-4.2.4-binary-plugin.patch"
- "${FILESDIR}/${PN}-4.2.6-stop-update-warning.patch"
-)
-
-src_prepare() {
- default
-
- python_fix_shebang .
-
- # remove playonmac
- rm etc/{playonmac.icns,terminal.applescript} || die
-
- # remove desktop integration
- rm etc/{PlayOnLinux.desktop,PlayOnLinux.directory,playonlinux-Programs.menu} || die
-}
-
-src_install() {
- # all things without exec permissions
- insinto "/usr/share/${PN}"
- doins -r resources lang lib etc plugins
-
- # bash/ install
- exeinto "/usr/share/${PN}/bash"
- find "${S}/bash" -type f -exec doexe '{}' +
- exeinto "/usr/share/${PN}/bash/expert"
- find "${S}/bash/expert" -type f -exec doexe '{}' +
-
- # python/ install
- python_moduleinto "/usr/share/${PN}"
- python_domodule python
-
- # main executable files
- exeinto "/usr/share/${PN}"
- doexe ${PN}{,-pkg,-bash,-shell,-url_handler}
-
- # icons
- doicon -s 128 etc/${PN}.png
- for size in 16 22 32; do
- newicon -s $size etc/${PN}$size.png ${PN}.png
- done
-
- doman "${FILESDIR}"/playonlinux{,-pkg}.1
- dodoc CHANGELOG.md
-
- make_wrapper ${PN} "./${PN}" "/usr/share/${PN}"
- make_wrapper ${PN}-pkg "./${PN}-pkg" "/usr/share/${PN}"
- make_desktop_entry ${PN} ${MY_PN} ${PN} Game
-}
-
-pkg_prerm() {
- if [[ -z ${REPLACING_VERSIONS} ]]; then
- elog "Installed software and games with playonlinux have not been removed."
- elog "To remove them, you can re-install playonlinux and remove them using it,"
- elog "or do it manually by removing .PlayOnLinux/ in your home directory."
- fi
-}
diff --git a/app-emulation/plus42/Manifest b/app-emulation/plus42/Manifest
new file mode 100644
index 000000000000..076480a087dc
--- /dev/null
+++ b/app-emulation/plus42/Manifest
@@ -0,0 +1,3 @@
+DIST plus42-upstream-1.1.10.tgz 7612969 BLAKE2B feeab01d4161f0f8cc183cf3c494290469c968d89670610a8848103a8ae64f81816d4456477d1900f94b0e6c5ef3ae3dbd36aa9edb3644f5ed099954fb692664 SHA512 38b263d71464b891a4dc9d32a38b8d32d96e2c1ce352348ff33348b23749ae45d341f6d36b76609b40e863e058ec2c0e5c6be394c041f27f6caba1b261d7422c
+DIST plus42-upstream-1.1.3.tgz 7610112 BLAKE2B 6c55a8c2acebbc0e442308e0f078d2ac86f9866d9dbe808a17007a3c3729114f24379401267787107d11e4f3559e14c86f39051da3a956928a7c4c97c1867c31 SHA512 05fd0fb3f330ad0842d28df46ec89d3347cbfca776c6e73092261a96f860677d8f9a6de96ee98adfed4abe5d950a45cec6e6056bb97dd471204d644cbdb82d10
+DIST plus42-upstream-1.1.9.tgz 7612675 BLAKE2B d6b05221b11705c553be2cabe8adc81b892861b86aeb3b234e7fef44bb79551b74f94caaa563f3fa55bc62f988545493d118bab488818cc835ccbfd309c95874 SHA512 bbfd519006c3f24de469a0c928271edb9a2ee92c32bf1eccb313fffb4e13e461875f608561149b8d8de57565cb835c407c7ee2bcf959b198a728669160ff85f6
diff --git a/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch
new file mode 100644
index 000000000000..c9cde2fbda2c
--- /dev/null
+++ b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch
@@ -0,0 +1,64 @@
+diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh
+--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200
++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100
+@@ -10,13 +10,6 @@
+ fi
+ fi
+
+-which gcc >/dev/null
+-if [ $? -eq 0 ]; then
+- CC=gcc
+-else
+- CC=cc
+-fi
+-
+ # Hack to support FreeBSD; not 100% sure what this does, but it produces a
+ # library that passes all tests.
+
+@@ -64,8 +57,10 @@
+ ;;
+ esac
+
++patch -p0 <../intel-lib-custom-cc.patch
++
+ cd LIBRARY
+-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++$MK $OS_ARG A=a AR_CMD="${AR:-ar} rv" CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
+ mv libbid.a ../../gcc111libbid.a
+ cd ../..
+ ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc
+diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch
+--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100
++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100
+@@ -0,0 +1,31 @@
++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head
++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200
+++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100
++@@ -527,12 +527,8 @@
++ CC_TYPES := gcc cl
++ INTEL_CC_LIST := icc icl
++
++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
++-ifeq ($(CC_NAME_INDEX),)
++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST))
++-endif
++
++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
+++CC_INDEX := 3
++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST))
++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES))
++
++@@ -543,13 +539,6 @@
++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP)
++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo)
++
++-ifeq ($(origin CC),default)
++- CC := $(_CC)
++-endif
++-ifeq ($(origin CPP),default)
++- CPP := $(_CPP)
++-endif
++-
++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3))
++
++ QOPT := $(call CselCc, QOPT, -, /Q )
diff --git a/app-emulation/plus42/files/plus42-1.0.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.10.ebuild b/app-emulation/plus42/plus42-1.1.10.ebuild
new file mode 100644
index 000000000000..3916a804001b
--- /dev/null
+++ b/app-emulation/plus42/plus42-1.1.10.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/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
new file mode 100644
index 000000000000..792b86075eb6
--- /dev/null
+++ b/app-emulation/protontricks/Manifest
@@ -0,0 +1,2 @@
+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/metadata.xml b/app-emulation/protontricks/metadata.xml
new file mode 100644
index 000000000000..c813e008582a
--- /dev/null
+++ b/app-emulation/protontricks/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>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
+ included with Proton, or to activate Gallium Nine (native Direct3D 9 support) for a Proton game,
+ without all the tedious messing around with Wine prefixes.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">Matoking/protontricks</remote-id>
+ <remote-id type="pypi">protontricks</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/protontricks/protontricks-1.10.5.ebuild b/app-emulation/protontricks/protontricks-1.10.5.ebuild
new file mode 100644
index 000000000000..4c4ddf7953ad
--- /dev/null
+++ b/app-emulation/protontricks/protontricks-1.10.5.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+DISTUTILS_SINGLE_IMPL=1
+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"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+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
+ || (
+ app-emulation/winetricks[gtk]
+ app-emulation/winetricks[kde]
+ )
+ )"
+BDEPEND="$(python_gen_cond_dep '
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+')"
+
+DOCS=( CHANGELOG.md README.md )
+
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ xdg_desktop_database_update
+
+ elog
+
+ if ! use gui; then
+ ewarn "Please note that disabling USE=gui does *not* presently remove the --gui command-line option,"
+ ewarn "it just means using this option will fail unless gnome-extra/zenity happens to be installed."
+ ewarn
+ fi
+
+ elog "Protontricks can only find games for which a Proton prefix already exists."
+ 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.11.1.ebuild b/app-emulation/protontricks/protontricks-1.11.1.ebuild
new file mode 100644
index 000000000000..fc9689a51050
--- /dev/null
+++ b/app-emulation/protontricks/protontricks-1.11.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+DISTUTILS_SINGLE_IMPL=1
+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"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+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
+ || (
+ app-emulation/winetricks[gtk]
+ app-emulation/winetricks[kde]
+ )
+ )"
+BDEPEND="$(python_gen_cond_dep '
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+')"
+
+DOCS=( CHANGELOG.md README.md )
+
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ xdg_desktop_database_update
+
+ elog
+
+ if ! use gui; then
+ ewarn "Please note that disabling USE=gui does *not* presently remove the --gui command-line option,"
+ ewarn "it just means using this option will fail unless gnome-extra/zenity happens to be installed."
+ ewarn
+ fi
+
+ elog "Protontricks can only find games for which a Proton prefix already exists."
+ 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 d5ec7d88c283..8161798f4ed7 100644
--- a/app-emulation/punes/Manifest
+++ b/app-emulation/punes/Manifest
@@ -1,2 +1 @@
-DIST punes-0.103.tar.gz 5366838 BLAKE2B cb4a9a1336293891e06d573f68c52962e79220e7024fad716a957f5423a72703a34efc3fb6129dbe9ffde2c96fe7abd2a1ad4a622aaca89e90f6a2d5af8c1a53 SHA512 db0fbc075b9fd46be8013b17c03fd7abd12b209ce166557c83283c917e53224712ba5838cd8b9e7fad3d21271f29e475460996dd9800b9f759602e289bad4205
-DIST punes-0.104.tar.gz 5381182 BLAKE2B fefa6eb85e9cfe5eb10fd987061e6f708a2d29db374552ca217e1e47bfd3a982390d2fdf33f23407bb54d7e1a3491e33cc2c520ff3ead4566f687c6c652bcc6a SHA512 9636440cf66cb9f48b532cebff4342a775ddacffd98748e5669d820e213a648cbfb3e4e94f67389f21f88b4fa618bf514e31738c10df079abe22d4b19593d904
+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 c8d6de050519..5008ea7a724f 100644
--- a/app-emulation/punes/metadata.xml
+++ b/app-emulation/punes/metadata.xml
@@ -1,17 +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">
+ <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>
- <longdescription lang="en">
- Nintendo Entertainment System (NES) emulator
- </longdescription>
<use>
<flag name="cg">Add support for Nvidia CG Toolkit</flag>
</use>
diff --git a/app-emulation/punes/punes-0.103.ebuild b/app-emulation/punes/punes-0.103.ebuild
deleted file mode 100644
index a12d37ba11e8..000000000000
--- a/app-emulation/punes/punes-0.103.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-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
- cg? ( media-gfx/nvidia-cg-toolkit )
- media-libs/alsa-lib
- virtual/opengl"
-
-DEPEND="
- ${RDEPEND}
- 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_desktop_database_update
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/punes/punes-0.104.ebuild b/app-emulation/punes/punes-0.104.ebuild
deleted file mode 100644
index ae456a0a5a28..000000000000
--- a/app-emulation/punes/punes-0.104.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2019 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
- cg? ( media-gfx/nvidia-cg-toolkit )
- media-libs/alsa-lib
- virtual/opengl"
-
-DEPEND="
- ${RDEPEND}
- 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_desktop_database_update
-}
-
-pkg_postrm() {
- xdg_desktop_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 6948f016b20f..5f97e112b9a9 100644
--- a/app-emulation/q4wine/Manifest
+++ b/app-emulation/q4wine/Manifest
@@ -1 +1 @@
-DIST q4wine-1.3.11.tar.bz2 2868845 BLAKE2B 98893b1f65bcb8b8f301d7046a650658a9537849818fddf4803471a626f24d8c812867daec1f167b1fa5cdce9f9c0c50323d715ea06c51f3d52f85904257d2b0 SHA512 95ac66632bc46b10659e1d0e5f3c68b73934a85ddcc6582abd367d28f9949ad0ca732a5596db800bbc76b40ae7cf05fd95febf6d8b44db20cf710c2c1e23288f
+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..a87d4b6faa32 100644
--- a/app-emulation/q4wine/metadata.xml
+++ b/app-emulation/q4wine/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "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>
- <name>Gentoo Qt Project</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
<flag name="ico">Enable ico support via <pkg>media-gfx/icoutils</pkg></flag>
<flag name="iso">Support unprivileged mounting of ISO9660 images via <pkg>sys-fs/fuseiso</pkg></flag>
diff --git a/app-emulation/q4wine/q4wine-1.3.11.ebuild b/app-emulation/q4wine/q4wine-1.3.13.ebuild
index d7e68124ce8b..cddbd8e97e50 100644
--- a/app-emulation/q4wine/q4wine-1.3.11.ebuild
+++ b/app-emulation/q4wine/q4wine-1.3.13.ebuild
@@ -1,27 +1,23 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-
-inherit xdg cmake-utils
+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 cmake xdg
DESCRIPTION="Qt GUI configuration tool for Wine"
HOMEPAGE="https://q4wine.brezblock.org.ua/"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}"/${MY_P}
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
-
IUSE="+dbus debug +ico +iso +wineappdb"
-BDEPEND="
- dev-qt/linguist-tools:5
-"
DEPEND="
dev-qt/qtcore:5
dev-qt/qtgui:5
@@ -39,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 )
@@ -54,5 +49,5 @@ src_configure() {
-DUSE_GZIP=OFF
-DWITH_DBUS=$(usex dbus ON OFF)
)
- cmake-utils_src_configure
+ cmake_src_configure
}
diff --git a/app-emulation/qemu-guest-agent/Manifest b/app-emulation/qemu-guest-agent/Manifest
index 7d3c358ed230..44032f6790ed 100644
--- a/app-emulation/qemu-guest-agent/Manifest
+++ b/app-emulation/qemu-guest-agent/Manifest
@@ -1,2 +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-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-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-3.1.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
index 85d6f1db112c..e1c778871839 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-3.1.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd udev python-any-r1
+inherit systemd toolchain-funcs udev python-any-r1
MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
@@ -27,12 +27,8 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
-PATCHES=(
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch #580924
-)
-
src_configure() {
- tc-export AR LD OBJCOPY
+ tc-export AR LD OBJCOPY RANLIB
local myconf=(
--prefix=/usr
@@ -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-7.1.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild
new file mode 100644
index 000000000000..89b3517badc9
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.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=(
+ "${FILESDIR}"/${PN}-7.1.0-configure-Avoid-using-strings-binary.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
+ --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-4.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild
index 85d6f1db112c..4b64963e345a 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild
@@ -1,38 +1,36 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd 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() {
- tc-export AR LD OBJCOPY
+ tc-export AR LD OBJCOPY RANLIB
local myconf=(
--prefix=/usr
@@ -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-8.0.2.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
new file mode 100644
index 000000000000..cbca89288f83
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit edo systemd toolchain-funcs python-any-r1 udev
+
+MY_PN="qemu"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
+HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="dev-libs/glib"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+)
+
+src_configure() {
+ tc-export AR LD OBJCOPY RANLIB
+
+ local myconf=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --libdir="/usr/$(get_libdir)"
+ --localstatedir=/
+ --disable-bsd-user
+ --disable-linux-user
+ --disable-system
+ --disable-strip
+ --enable-tools
+ --disable-werror
+ --enable-guest-agent
+ --python="${PYTHON}"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+ )
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_install() {
+ dobin build/qga/qemu-ga
+
+ # Normal init stuff
+ newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
+ newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
+
+ # systemd stuff
+ udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
+
+ systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
+ qemu-guest-agent.service
+}
+
+pkg_postinst() {
+ elog "You should add 'qemu-guest-agent' to the default runlevel."
+ elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild
new file mode 100644
index 000000000000..86f9742a3e18
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit edo systemd toolchain-funcs python-any-r1 udev
+
+MY_PN="qemu"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
+HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+
+RDEPEND="dev-libs/glib"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+)
+
+src_configure() {
+ tc-export AR LD OBJCOPY RANLIB
+
+ local myconf=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --libdir="/usr/$(get_libdir)"
+ --localstatedir=/
+ --disable-bsd-user
+ --disable-linux-user
+ --disable-system
+ --disable-strip
+ --enable-tools
+ --disable-werror
+ --without-default-features
+ --enable-guest-agent
+ --python="${PYTHON}"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+ )
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_install() {
+ dobin build/qga/qemu-ga
+
+ # Normal init stuff
+ newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
+ newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
+
+ # systemd stuff
+ udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
+
+ systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
+ qemu-guest-agent.service
+}
+
+pkg_postinst() {
+ elog "You should add 'qemu-guest-agent' to the default runlevel."
+ elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild
new file mode 100644
index 000000000000..7426f9441f2a
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit edo systemd toolchain-funcs python-any-r1 udev
+
+MY_PN="qemu"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
+HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc ~ppc64 x86"
+
+RDEPEND="dev-libs/glib"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/qemu-8.1.0-find-sphinx.patch
+)
+
+src_configure() {
+ tc-export AR LD OBJCOPY RANLIB
+
+ local myconf=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --libdir="/usr/$(get_libdir)"
+ --localstatedir=/
+ --disable-bsd-user
+ --disable-linux-user
+ --disable-system
+ --disable-strip
+ --enable-tools
+ --disable-werror
+ --without-default-features
+ --enable-guest-agent
+ --python="${PYTHON}"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+ )
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_test() {
+ # qga only uses generic code covered by qobject tests,
+ # the full test suite requires at least one softmmu binary
+ emake check-unit
+}
+
+src_install() {
+ dobin build/qga/qemu-ga
+
+ # Normal init stuff
+ newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
+ newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
+
+ # systemd stuff
+ udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
+
+ systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
+ qemu-guest-agent.service
+}
+
+pkg_postinst() {
+ elog "You should add 'qemu-guest-agent' to the default runlevel."
+ elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/qemu-init-scripts/files/openrc-run.patch b/app-emulation/qemu-init-scripts/files/openrc-run.patch
new file mode 100644
index 000000000000..5592ff2e1151
--- /dev/null
+++ b/app-emulation/qemu-init-scripts/files/openrc-run.patch
@@ -0,0 +1,10 @@
+diff --git a/qemu-init-script b/qemu-init-script
+index 937ddfe..b2c060f 100755
+--- a/qemu-init-script
++++ b/qemu-init-script
+@@ -1,4 +1,4 @@
+-#!/sbin/runscript
++#!/sbin/openrc-run
+ # Copyright 2009-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
diff --git a/app-emulation/qemu-init-scripts/metadata.xml b/app-emulation/qemu-init-scripts/metadata.xml
index 00bc0c58b6a6..115e9d64a669 100644
--- a/app-emulation/qemu-init-scripts/metadata.xml
+++ b/app-emulation/qemu-init-scripts/metadata.xml
@@ -1,8 +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>rafaelmartins@gentoo.org</email>
- <name>Rafael Martins</name>
- </maintainer>
+ <!-- maintainer-needed -->
</pkgmetadata>
diff --git a/app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0.ebuild b/app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0-r1.ebuild
index 5acdcacb0a9e..b953a36d13ca 100644
--- a/app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0.ebuild
+++ b/app-emulation/qemu-init-scripts/qemu-init-scripts-0.3.0-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
DESCRIPTION="Kvm and qemu init scripts"
HOMEPAGE="https://gitweb.gentoo.org/proj/kvm-tools.git/"
@@ -15,11 +15,8 @@ RDEPEND="
app-emulation/qemu
net-misc/socat"
-S="${PORTAGE_BUILDDIR}/work/${PN}"
-
-src_prepare() {
- epatch_user
-}
+S="${WORKDIR}/${PN}"
+PATCHES=( "${FILESDIR}"/openrc-run.patch )
src_install() {
newinitd "${S}/"qemu-init-script qemu
diff --git a/app-emulation/qemu-riscv64-bin/Manifest b/app-emulation/qemu-riscv64-bin/Manifest
deleted file mode 100644
index 366c8ee33a9b..000000000000
--- a/app-emulation/qemu-riscv64-bin/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST qemu-riscv64-bin-3.1.0-r4.tar.xz 889764 BLAKE2B 888fef2f27f44be098e9b834b083558ce18d98337612b4de2278ffe5d6599248d9ed4e99153ad9b2c1a5b773131c420bb23ce6d080943af744df34464660bc42 SHA512 bc92110f6730c61bd39056d0bf3f84b35ed340a47af51b28b27554f9f2f72409221d2c81826b718742475d0fc48040c81e8f051e29b4f13412c3a39e282471e0
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 30853f041f52..000000000000
--- a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2019 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]"
-
-S=${WORKDIR}
-
-src_install() {
- dobin qemu-riscv64
-}
diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest
index 80902bd61272..b36c72fed2f6 100644
--- a/app-emulation/qemu/Manifest
+++ b/app-emulation/qemu/Manifest
@@ -1,2 +1,14 @@
-DIST qemu-4.0.0.tar.xz 55628624 BLAKE2B 8afd1f54aa13d2e61fd36c4f4544b7c4ffb1a7eee5c69d3aa1d40a432ca296ad8abe6cb83d7c66ac4045ca624d2a00e737f51e4e62ed46fef9766ef71f43b98b SHA512 952e94194ce9e64c15388c59035cb31fb9f761d30095c2fb9441012b609c18c9976285727b93bf37b95e15675802d73f8e1c4619ebecd23606675bb503646b13
-DIST qemu-4.1.0.tar.xz 54001708 BLAKE2B fc89d0c967fb31a73cbdca556e79c05c44b241382a83f02150a8e39b00cb7de7fb6f248e82e1364e314680481bfb3843e74804534c0ba91a5bb2ff1b8d771130 SHA512 82fd51702a7b9b1b00b2f1bd3b4a832b80249018dbba1add0b0a73e7d4bee452afd45574b4d8df7ce4477d8711f3bda4ca072a1a6de25895c93eb21cf78fc4b2
+DIST berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.bz2 84094 BLAKE2B 396f9df2e6ad559545054e89916915c3a3c8ff80e5e409498fec497b564d8b3ac9dd3cb966e26dce232ddff82af18a0e84e864ca18a80c2a2f4fe47e320249c2 SHA512 93c20d50a356c90f4293d8c7593611b2e0a9bc7567b6d946319f8ae06962ae1e297c8788f66fd38a1d3a0d44661bff9a07a63eaa84c8bb40ae01a45476be446c
+DIST berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab.tar.bz2 90020 BLAKE2B 3dda1ba90c4a5ad5cbce2acf35e93f7adbd387ae0e0f929b2cd4cbdf263f95183103118f32be38e8c80de49d7df44c26319ee2f465061d004ae7e64e43eeeb3e SHA512 65f41f42ea563b2cdceb6c71633f41e6694a79ffd02afed4540353a8e73668ae40118dfc108163aae751acbaa7c49630ed99f423465089503c03aee76b07f221
+DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B 0ed69ad24c53bd459c8753565814bcc1cd858f20d3a046c38912a35bcb0ba6d388ef5d2b93157cd028959284b330caf5467d82071c3df56a405dd8e08fd177c7 SHA512 8f2cc14e8bd46cb045e3ebfe32e463793ab7472ebda9b57b8ea0b06fa107a1a99c3ebcacb9c4548e30698d8ec154c0e56f789385201182b680819b8068a103f2
+DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
+DIST qemu-7.2.11.tar.xz 121877020 BLAKE2B c546773b9ac7809b39a3afa51da5b1c06c3765fadb4df9d8529f8af65c26098676adf8e516620ca1b39201fa859878780edb56a445778e105cbe7db0f52b9f6a SHA512 c77ff1505128c05fe39eaa95cc11e4d2279bff06093acd613e54f71d4a13144f905551eec1d044c3a3fb751d3369c01d131d68c18b15d9a04bcc77370d93c217
+DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b
+DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
+DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc
+DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9
+DIST qemu-8.1.5.tar.xz 124007248 BLAKE2B 0d5db3e18c4dc1035fed442116be98b7e7bbfae905e4facef3278ef5a488332fa2d8e6599169fa1f740e96a035027e989c5cdffc0bfd4e0ca0fca1d0a537e8da SHA512 1005e0602a763979c4d0ec6e79a390e4232dcc3d0b8461fe42856c58e54ad25a2079f3850d27023fce8a2b382b36e3baa7882b69d48cbb72002984c160241c92
+DIST qemu-8.2.0-docs.tar.xz 2233352 BLAKE2B 22b9499fdf4ff93e72399dab3803f3171c855859dc7fe111612e2f9146db244ca6d2e0aad16aefdf29b231d2b3a2fbc22171fe6bac13b03445d54555ce798d16 SHA512 f57e78c28277c153fff00b25097d0df5c6ad36cb4e9f3acf30382bfb1c99508503c186c1bbecf266810ef24fd618428fdf3e0eee41c715a552918c9e6ef9e8e5
+DIST qemu-8.2.3.tar.xz 130106716 BLAKE2B 2ec91b5111952434686064bd603880d87c4f56774d2478ee953eb0454e2b14235b1d1cca484e015b96bceae3182f90b856d222ca590059032b4989babf1dffe8 SHA512 28c789d84754b26cd86ded9db8464ec82f07cdc3b1025a988e74b8c5b05df8839a3e9990ff96cfba50e032dd967e9dc18cf75f3525baeadd0fa019cb69108d0a
+DIST qemu-9.0.0-docs.tar.xz 2290196 BLAKE2B 82d22637ff2629bee372550e86651f12051ea6b4a57e314ef83f290425d4973ef01827eaf28a85b635788f22cb7cc1c747438b7525c92c99b90b234fb8f7655c SHA512 7c0ba1f3e7bbaa4e3feebc33a1946a5c190f2c14b9ed78b15c1f642668c8124960f8c85bcf36fe54a10d4edef47d2256e500f06d9173b92b03c599811a15a073
+DIST qemu-9.0.0.tar.xz 129789856 BLAKE2B d92acb859d9ce5097fee27a4689c71869aa38f65eb0308547956d54bd8caf29efe5389d9009f334f109ad228e0ef1f1fd1444d26360f03fac4320b204b657081 SHA512 1603517cd4c93632ba60ad7261eb67374f12a744bf58f10b0e8686e46d3a02d8b6bf58a0c617f23a1868084aaba6386c24341894f75539e0b816091718721427
diff --git a/app-emulation/qemu/files/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-2.5.0-cflags.patch b/app-emulation/qemu/files/qemu-2.5.0-cflags.patch
deleted file mode 100644
index 173394fd02f2..000000000000
--- a/app-emulation/qemu/files/qemu-2.5.0-cflags.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -4468,10 +4468,6 @@ fi
- if test "$gcov" = "yes" ; then
- CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
- LDFLAGS="-fprofile-arcs -ftest-coverage $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
-
- ##########################################
diff --git a/app-emulation/qemu/files/qemu-2.5.0-sysmacros.patch b/app-emulation/qemu/files/qemu-2.5.0-sysmacros.patch
deleted file mode 100644
index f2e766dc1c35..000000000000
--- a/app-emulation/qemu/files/qemu-2.5.0-sysmacros.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-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/files/qemu-3.1.0-md-clear-md-no.patch b/app-emulation/qemu/files/qemu-3.1.0-md-clear-md-no.patch
deleted file mode 100644
index a7b3e8cb8f20..000000000000
--- a/app-emulation/qemu/files/qemu-3.1.0-md-clear-md-no.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 0fb766134bd97ead71646e13349f93769e536ed9 Mon Sep 17 00:00:00 2001
-From: Matthias Maier <tamiko@43-1.org>
-Date: Fri, 17 May 2019 02:21:10 -0500
-Subject: [PATCH] Define md-clear bit, expose md-no CPUID
-
-Fixes for CVE-2018-121{26|27|30}, CVE-2019-11091
-
-See related fixes for Ubuntu:
- https://launchpad.net/ubuntu/+source/qemu/1:3.1+dfsg-2ubuntu3.1
----
- target/i386/cpu.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/target/i386/cpu.c b/target/i386/cpu.c
-index d6bb57d2..331a364a 100644
---- a/target/i386/cpu.c
-+++ b/target/i386/cpu.c
-@@ -1076,7 +1076,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
- .feat_names = {
- NULL, NULL, "avx512-4vnniw", "avx512-4fmaps",
- NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL,
-+ NULL, NULL, "md-clear", NULL,
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
-@@ -1183,7 +1183,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
- .type = MSR_FEATURE_WORD,
- .feat_names = {
- "rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry",
-- "ssb-no", NULL, NULL, NULL,
-+ "ssb-no", "mds-no", NULL, NULL,
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
-diff --git a/target/i386/cpu.h b/target/i386/cpu.h
-index 83fb5225..d0bab4d7 100644
---- a/target/i386/cpu.h
-+++ b/target/i386/cpu.h
-@@ -694,6 +694,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
-
- #define CPUID_7_0_EDX_AVX512_4VNNIW (1U << 2) /* AVX512 Neural Network Instructions */
- #define CPUID_7_0_EDX_AVX512_4FMAPS (1U << 3) /* AVX512 Multiply Accumulation Single Precision */
-+#define CPUID_7_0_EDX_MD_CLEAR (1U << 10) /* Microarchitectural Data Clear */
- #define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) /* Speculation Control */
- #define CPUID_7_0_EDX_ARCH_CAPABILITIES (1U << 29) /*Arch Capabilities*/
- #define CPUID_7_0_EDX_SPEC_CTRL_SSBD (1U << 31) /* Speculative Store Bypass Disable */
-diff --git a/target/i386/hvf/x86_cpuid.c b/target/i386/hvf/x86_cpuid.c
-index 4d957fe8..b453552f 100644
---- a/target/i386/hvf/x86_cpuid.c
-+++ b/target/i386/hvf/x86_cpuid.c
-@@ -90,7 +90,8 @@ uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
- }
-
- ecx &= CPUID_7_0_ECX_AVX512BMI | CPUID_7_0_ECX_AVX512_VPOPCNTDQ;
-- edx &= CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS;
-+ edx &= CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS | \
-+ CPUID_7_0_EDX_MD_CLEAR;
- } else {
- ebx = 0;
- ecx = 0;
diff --git a/app-emulation/qemu/files/qemu-4.0.0-fix_infiniband_include.patch b/app-emulation/qemu/files/qemu-4.0.0-fix_infiniband_include.patch
deleted file mode 100644
index 2778cc8f4f2e..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-fix_infiniband_include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c
-index d1660b64..86715bfd 100644
---- a/hw/rdma/rdma_backend.c
-+++ b/hw/rdma/rdma_backend.c
-@@ -21,7 +21,6 @@
- #include "qapi/qapi-events-rdma.h"
-
- #include <infiniband/verbs.h>
--#include <infiniband/umad_types.h>
- #include <infiniband/umad.h>
- #include <rdma/rdma_user_cm.h>
-
diff --git a/app-emulation/qemu/files/qemu-4.0.0-linux-headers-5.2.patch b/app-emulation/qemu/files/qemu-4.0.0-linux-headers-5.2.patch
deleted file mode 100644
index 43be8629dfa8..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-linux-headers-5.2.patch
+++ /dev/null
@@ -1,334 +0,0 @@
-From 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2 Mon Sep 17 00:00:00 2001
-From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
-Date: Thu, 18 Jul 2019 15:06:41 +0200
-Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
- kernels
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-The SIOCGSTAMP symbol was previously defined in the
-asm-generic/sockios.h header file. QEMU sees that header
-indirectly via sys/socket.h
-
-In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
-the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
-Instead it provides only SIOCGSTAMP_OLD, which only uses a
-32-bit time_t on 32-bit architectures.
-
-The linux/sockios.h header then defines SIOCGSTAMP using
-either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
-SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
-on 32-bit architectures
-
-To cope with this we must now convert the old and new type from
-the target to the host one.
-
-Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-Reviewed-by: Arnd Bergmann <arnd@arndb.de>
-Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
----
- linux-user/ioctls.h | 21 ++++++-
- linux-user/syscall.c | 140 ++++++++++++++++++++++++++++++++++++---------
- linux-user/syscall_defs.h | 30 +++++++++-
- linux-user/syscall_types.h | 6 --
- 4 files changed, 159 insertions(+), 38 deletions(-)
-
-diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index ae895162..e6a27ad9 100644
---- a/linux-user/ioctls.h
-+++ b/linux-user/ioctls.h
-@@ -219,8 +219,25 @@
- IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
- IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
- IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
-- IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
-- IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
-+
-+ /*
-+ * We can't use IOCTL_SPECIAL() because it will set
-+ * host_cmd to XXX_OLD and XXX_NEW and these macros
-+ * are not defined with kernel prior to 5.2.
-+ * We must set host_cmd to the same value as in target_cmd
-+ * otherwise the consistency check in syscall_init()
-+ * will trigger an error.
-+ * host_cmd is ignored by the do_ioctl_XXX() helpers.
-+ * FIXME: create a macro to define this kind of entry
-+ */
-+ { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
-+ "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
-+ { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
-+ "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
-+ { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
-+ "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
-+ { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
-+ "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
-
- IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
- IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 96cd4bf8..6df480e1 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -37,6 +37,7 @@
- #include <sched.h>
- #include <sys/timex.h>
- #include <sys/socket.h>
-+#include <linux/sockios.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <poll.h>
-@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
- {
- struct target_timeval *target_tv;
-
-- if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
-+ if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
- return -TARGET_EFAULT;
-+ }
-
- __get_user(tv->tv_sec, &target_tv->tv_sec);
- __get_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
- {
- struct target_timeval *target_tv;
-
-- if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
-+ if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
-+ return -TARGET_EFAULT;
-+ }
-+
-+ __put_user(tv->tv_sec, &target_tv->tv_sec);
-+ __put_user(tv->tv_usec, &target_tv->tv_usec);
-+
-+ unlock_user_struct(target_tv, target_tv_addr, 1);
-+
-+ return 0;
-+}
-+
-+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
-+ const struct timeval *tv)
-+{
-+ struct target__kernel_sock_timeval *target_tv;
-+
-+ if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
- return -TARGET_EFAULT;
-+ }
-
- __put_user(tv->tv_sec, &target_tv->tv_sec);
- __put_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
- return 0;
- }
-
-+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
-+ abi_ulong target_addr)
-+{
-+ struct target_timespec *target_ts;
-+
-+ if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
-+ return -TARGET_EFAULT;
-+ }
-+ __get_user(host_ts->tv_sec, &target_ts->tv_sec);
-+ __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+ unlock_user_struct(target_ts, target_addr, 0);
-+ return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
-+ struct timespec *host_ts)
-+{
-+ struct target_timespec *target_ts;
-+
-+ if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+ return -TARGET_EFAULT;
-+ }
-+ __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+ __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+ unlock_user_struct(target_ts, target_addr, 1);
-+ return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
-+ struct timespec *host_ts)
-+{
-+ struct target__kernel_timespec *target_ts;
-+
-+ if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+ return -TARGET_EFAULT;
-+ }
-+ __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+ __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+ unlock_user_struct(target_ts, target_addr, 1);
-+ return 0;
-+}
-+
- static inline abi_long copy_from_user_timezone(struct timezone *tz,
- abi_ulong target_tz_addr)
- {
-@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
- return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
- }
-
-+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
-+ int fd, int cmd, abi_long arg)
-+{
-+ struct timeval tv;
-+ abi_long ret;
-+
-+ ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
-+ if (is_error(ret)) {
-+ return ret;
-+ }
-+
-+ if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
-+ if (copy_to_user_timeval(arg, &tv)) {
-+ return -TARGET_EFAULT;
-+ }
-+ } else {
-+ if (copy_to_user_timeval64(arg, &tv)) {
-+ return -TARGET_EFAULT;
-+ }
-+ }
-+
-+ return ret;
-+}
-+
-+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
-+ int fd, int cmd, abi_long arg)
-+{
-+ struct timespec ts;
-+ abi_long ret;
-+
-+ ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
-+ if (is_error(ret)) {
-+ return ret;
-+ }
-+
-+ if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
-+ if (host_to_target_timespec(arg, &ts)) {
-+ return -TARGET_EFAULT;
-+ }
-+ } else{
-+ if (host_to_target_timespec64(arg, &ts)) {
-+ return -TARGET_EFAULT;
-+ }
-+ }
-+
-+ return ret;
-+}
-+
- #ifdef TIOCGPTPEER
- static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
- int fd, int cmd, abi_long arg)
-@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
- }
- #endif
-
--static inline abi_long target_to_host_timespec(struct timespec *host_ts,
-- abi_ulong target_addr)
--{
-- struct target_timespec *target_ts;
--
-- if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
-- return -TARGET_EFAULT;
-- __get_user(host_ts->tv_sec, &target_ts->tv_sec);
-- __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-- unlock_user_struct(target_ts, target_addr, 0);
-- return 0;
--}
--
--static inline abi_long host_to_target_timespec(abi_ulong target_addr,
-- struct timespec *host_ts)
--{
-- struct target_timespec *target_ts;
--
-- if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
-- return -TARGET_EFAULT;
-- __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-- __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-- unlock_user_struct(target_ts, target_addr, 1);
-- return 0;
--}
--
- static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
- abi_ulong target_addr)
- {
-diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index 12c84071..cfb3eeec 100644
---- a/linux-user/syscall_defs.h
-+++ b/linux-user/syscall_defs.h
-@@ -208,16 +208,34 @@ struct target_linger {
- abi_int l_linger; /* How long to linger for */
- };
-
-+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
-+struct target_timeval {
-+ abi_long tv_sec;
-+ abi_int tv_usec;
-+};
-+#define target__kernel_sock_timeval target_timeval
-+#else
- struct target_timeval {
- abi_long tv_sec;
- abi_long tv_usec;
- };
-
-+struct target__kernel_sock_timeval {
-+ abi_llong tv_sec;
-+ abi_llong tv_usec;
-+};
-+#endif
-+
- struct target_timespec {
- abi_long tv_sec;
- abi_long tv_nsec;
- };
-
-+struct target__kernel_timespec {
-+ abi_llong tv_sec;
-+ abi_llong tv_nsec;
-+};
-+
- struct target_timezone {
- abi_int tz_minuteswest;
- abi_int tz_dsttime;
-@@ -743,8 +761,17 @@ struct target_pollfd {
- #define TARGET_SIOCATMARK 0x8905
- #define TARGET_SIOCGPGRP 0x8904
- #endif
--#define TARGET_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
--#define TARGET_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
-+
-+#if defined(TARGET_SH4)
-+#define TARGET_SIOCGSTAMP_OLD TARGET_IOR('s', 100, struct target_timeval)
-+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
-+#else
-+#define TARGET_SIOCGSTAMP_OLD 0x8906
-+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
-+#endif
-+
-+#define TARGET_SIOCGSTAMP_NEW TARGET_IOR(0x89, 0x06, abi_llong[2])
-+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
-
- /* Networking ioctls */
- #define TARGET_SIOCADDRT 0x890B /* add routing table entry */
-diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
-index b98a23b0..4e369838 100644
---- a/linux-user/syscall_types.h
-+++ b/linux-user/syscall_types.h
-@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
- STRUCT(sockaddr,
- TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
-
--STRUCT(timeval,
-- MK_ARRAY(TYPE_LONG, 2))
--
--STRUCT(timespec,
-- MK_ARRAY(TYPE_LONG, 2))
--
- STRUCT(rtentry,
- TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
- TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
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.0.0-pc-q35-4.0.patch b/app-emulation/qemu/files/qemu-4.0.0-pc-q35-4.0.patch
deleted file mode 100644
index ebabc0c4c294..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-pc-q35-4.0.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-Backport of QEMU v4.1 commit for stable v4.0.1 release
-
-commit c87759ce876a7a0b17c2bf4f0b964bd51f0ee871
-Author: Alex Williamson <address@hidden>
-Date: Tue May 14 14:14:41 2019 -0600
-
- q35: Revert to kernel irqchip
-
- Commit b2fc91db8447 ("q35: set split kernel irqchip as default") changed
- the default for the pc-q35-4.0 machine type to use split irqchip, which
- turned out to have disasterous effects on vfio-pci INTx support. KVM
- resampling irqfds are registered for handling these interrupts, but
- these are non-functional in split irqchip mode. We can't simply test
- for split irqchip in QEMU as userspace handling of this interrupt is a
- significant performance regression versus KVM handling (GeForce GPUs
- assigned to Windows VMs are non-functional without forcing MSI mode or
- re-enabling kernel irqchip).
-
- The resolution is to revert the change in default irqchip mode in the
- pc-q35-4.1 machine and create a pc-q35-4.0.1 machine for the 4.0-stable
- branch. The qemu-q35-4.0 machine type should not be used in vfio-pci
- configurations for devices requiring legacy INTx support without
- explicitly modifying the VM configuration to use kernel irqchip.
-
-Link: https://bugs.launchpad.net/qemu/+bug/1826422
-Fixes: b2fc91db8447 ("q35: set split kernel irqchip as default")
-Cc: address@hidden
-Reviewed-by: Peter Xu <address@hidden>
-Signed-off-by: Alex Williamson <address@hidden>
----
-
-Same code as v1, just updating the commit log as a formal backport of
-the merged 4.1 commit.
-
- hw/core/machine.c | 3 +++
- hw/i386/pc.c | 3 +++
- hw/i386/pc_q35.c | 16 ++++++++++++++--
- include/hw/boards.h | 3 +++
- include/hw/i386/pc.h | 3 +++
- 5 files changed, 26 insertions(+), 2 deletions(-)
-
-diff --git a/hw/core/machine.c b/hw/core/machine.c
-index 743fef28982c..5d046a43e3d2 100644
---- a/hw/core/machine.c
-+++ b/hw/core/machine.c
-@@ -24,6 +24,9 @@
- #include "hw/pci/pci.h"
- #include "hw/mem/nvdimm.h"
-
-+GlobalProperty hw_compat_4_0[] = {};
-+const size_t hw_compat_4_0_len = G_N_ELEMENTS(hw_compat_4_0);
-+
- GlobalProperty hw_compat_3_1[] = {
- { "pcie-root-port", "x-speed", "2_5" },
- { "pcie-root-port", "x-width", "1" },
-diff --git a/hw/i386/pc.c b/hw/i386/pc.c
-index f2c15bf1f2c3..d98b737b8f3b 100644
---- a/hw/i386/pc.c
-+++ b/hw/i386/pc.c
-@@ -115,6 +115,9 @@ struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX};
- /* Physical Address of PVH entry point read from kernel ELF NOTE */
- static size_t pvh_start_addr;
-
-+GlobalProperty pc_compat_4_0[] = {};
-+const size_t pc_compat_4_0_len = G_N_ELEMENTS(pc_compat_4_0);
-+
- GlobalProperty pc_compat_3_1[] = {
- { "intel-iommu", "dma-drain", "off" },
- { "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
-diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
-index 372c6b73bebd..45cc29d1adb7 100644
---- a/hw/i386/pc_q35.c
-+++ b/hw/i386/pc_q35.c
-@@ -357,7 +357,7 @@ static void pc_q35_machine_options(MachineClass *m)
- m->units_per_default_bus = 1;
- m->default_machine_opts = "firmware=bios-256k.bin";
- m->default_display = "std";
-- m->default_kernel_irqchip_split = true;
-+ m->default_kernel_irqchip_split = false;
- m->no_floppy = 1;
- machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
- machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
-@@ -365,12 +365,24 @@ static void pc_q35_machine_options(MachineClass *m)
- m->max_cpus = 288;
- }
-
--static void pc_q35_4_0_machine_options(MachineClass *m)
-+static void pc_q35_4_0_1_machine_options(MachineClass *m)
- {
- pc_q35_machine_options(m);
- m->alias = "q35";
- }
-
-+DEFINE_Q35_MACHINE(v4_0_1, "pc-q35-4.0.1", NULL,
-+ pc_q35_4_0_1_machine_options);
-+
-+static void pc_q35_4_0_machine_options(MachineClass *m)
-+{
-+ pc_q35_4_0_1_machine_options(m);
-+ m->default_kernel_irqchip_split = true;
-+ m->alias = NULL;
-+ compat_props_add(m->compat_props, hw_compat_4_0, hw_compat_4_0_len);
-+ compat_props_add(m->compat_props, pc_compat_4_0, pc_compat_4_0_len);
-+}
-+
- DEFINE_Q35_MACHINE(v4_0, "pc-q35-4.0", NULL,
- pc_q35_4_0_machine_options);
-
-diff --git a/include/hw/boards.h b/include/hw/boards.h
-index e231860666a1..fe1885cbffa0 100644
---- a/include/hw/boards.h
-+++ b/include/hw/boards.h
-@@ -293,6 +293,9 @@ struct MachineState {
- } \
- type_init(machine_initfn##_register_types)
-
-+extern GlobalProperty hw_compat_4_0[];
-+extern const size_t hw_compat_4_0_len;
-+
- extern GlobalProperty hw_compat_3_1[];
- extern const size_t hw_compat_3_1_len;
-
-diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
-index ca65ef18afb4..43df7230a22b 100644
---- a/include/hw/i386/pc.h
-+++ b/include/hw/i386/pc.h
-@@ -293,6 +293,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);
- int e820_get_num_entries(void);
- bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
-
-+extern GlobalProperty pc_compat_4_0[];
-+extern const size_t pc_compat_4_0_len;
-+
- extern GlobalProperty pc_compat_3_1[];
- extern const size_t pc_compat_3_1_len;
diff --git a/app-emulation/qemu/files/qemu-4.0.0-sanitize-interp_info.patch b/app-emulation/qemu/files/qemu-4.0.0-sanitize-interp_info.patch
deleted file mode 100644
index 58ff0c788288..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-sanitize-interp_info.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-linux-user: Sanitize interp_info and, for mips
-
-Sanitize interp_info structure in load_elf_binary() and, for mips only,
-init its field fp_abi. This fixes appearances of "Unexpected FPU mode"
-message in some MIPS use cases.
-
-Signed-off-by: Daniel Santos <address@hidden>
-Signed-off-by: Aleksandar Markovic <address@hidden>
----
- linux-user/elfload.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/linux-user/elfload.c b/linux-user/elfload.c
-index c1a2602..7f09d57 100644
---- a/linux-user/elfload.c
-+++ b/linux-user/elfload.c
-@@ -2698,6 +2698,11 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info)
- char *elf_interpreter = NULL;
- char *scratch;
-
-+ memset(&interp_info, 0, sizeof(interp_info));
-+#ifdef TARGET_MIPS
-+ interp_info.fp_abi = MIPS_ABI_FP_UNKNOWN;
-+#endif
-+
- info->start_mmap = (abi_ulong)ELF_START_MMAP;
-
- load_elf_image(bprm->filename, bprm->fd, info,
---
-2.7.4
-
-
diff --git a/app-emulation/qemu/files/qemu-4.0.0-xkbcommon.patch b/app-emulation/qemu/files/qemu-4.0.0-xkbcommon.patch
deleted file mode 100644
index 3d9a5163ecf5..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-xkbcommon.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From cef396dc0b11a09ede85b275ed1ceee71b60a4b3 Mon Sep 17 00:00:00 2001
-From: James Le Cuirot <chewi@gentoo.org>
-Date: Sat, 14 Sep 2019 15:47:20 +0100
-Subject: [PATCH] configure: Add xkbcommon configure options
-
-This dependency is currently "automagic", which is bad for distributions.
-
-Signed-off-by: James Le Cuirot <chewi@gentoo.org>
----
- configure | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure b/configure
-index 30aad233d1..30544f52e6 100755
---- a/configure
-+++ b/configure
-@@ -1521,6 +1521,10 @@ for opt do
- ;;
- --disable-libpmem) libpmem=no
- ;;
-+ --enable-xkbcommon) xkbcommon=yes
-+ ;;
-+ --disable-xkbcommon) xkbcommon=no
-+ ;;
- *)
- echo "ERROR: unknown option $opt"
- echo "Try '$0 --help' for more information"
-@@ -1804,6 +1808,7 @@ disabled with --disable-FEATURE, default is enabled if available:
- capstone capstone disassembler support
- debug-mutex mutex debugging support
- libpmem libpmem support
-+ xkbcommon xkbcommon support
-
- NOTE: The object files are built at the place where configure is launched
- EOF
---
-2.23.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/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch
new file mode 100644
index 000000000000..603d20c42fc8
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch
@@ -0,0 +1,35 @@
+From 951325a0c9519d4910d80cc6c7a5728c0dbc4946 Mon Sep 17 00:00:00 2001
+Message-ID: <951325a0c9519d4910d80cc6c7a5728c0dbc4946.1714317553.git.mprivozn@redhat.com>
+From: Matthias Maier <tamiko@43-1.org>
+Date: Mon, 4 Apr 2022 12:56:59 +0200
+Subject: [PATCH] also build virtfs-proxy-helper
+
+The Gentoo ebuild splits the qemu build into a softmmu, user and tool
+phase in order to be able to build and link some of the qemu emulators
+statically. This unfortunately has the consequence that we never
+configure with "have_virtfs" and "have_tools" at the same time.
+
+As a workaround, simply build the virtfs userland unconditionally. After
+all, it is a tiny executable.
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index c3a2be7b2d..50a5cfcf4e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2116,8 +2116,6 @@ have_virtfs = get_option('virtfs') \
+ .allowed()
+
+ have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \
+- .require(host_os != 'darwin', error_message: 'the virtfs proxy helper is incompatible with macOS') \
+- .require(have_virtfs, error_message: 'the virtfs proxy helper requires that virtfs is enabled') \
+ .disable_auto_if(not have_tools) \
+ .require(libcap_ng.found(), error_message: 'the virtfs proxy helper requires libcap-ng') \
+ .allowed()
+--
+2.43.2
+
diff --git a/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch b/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch
new file mode 100644
index 000000000000..3e0408d6b213
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch
@@ -0,0 +1,42 @@
+From 67a8b35e98f5c0853f7cdf26db0ebc6ce20b929c Mon Sep 17 00:00:00 2001
+Message-ID: <67a8b35e98f5c0853f7cdf26db0ebc6ce20b929c.1714317553.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sun, 28 Apr 2024 17:10:46 +0200
+Subject: [PATCH] Forward ported from qemu-7.1.0-capstone-include-path.patch.
+
+Bug: https://bugs.gentoo.org/873157
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ include/disas/capstone.h | 2 +-
+ meson.build | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/disas/capstone.h b/include/disas/capstone.h
+index e29068dd97..d8fdc5d537 100644
+--- a/include/disas/capstone.h
++++ b/include/disas/capstone.h
+@@ -3,7 +3,7 @@
+
+ #ifdef CONFIG_CAPSTONE
+
+-#include <capstone.h>
++#include <capstone/capstone.h>
+
+ #else
+
+diff --git a/meson.build b/meson.build
+index ea3ccff968..c3a2be7b2d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1712,7 +1712,7 @@ if not get_option('capstone').auto() or have_system or have_user
+ # that reports a wrong -I path, causing the #include to
+ # fail later. If the system has such a broken version
+ # do not use it.
+- if capstone.found() and not cc.compiles('#include <capstone.h>',
++ if capstone.found() and not cc.compiles('#include <capstone/capstone.h>',
+ dependencies: [capstone])
+ capstone = not_found
+ if get_option('capstone').enabled()
+--
+2.43.2
+
diff --git a/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch
new file mode 100644
index 000000000000..c85d213626e2
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch
@@ -0,0 +1,44 @@
+From 8cca781563e89facd312d622a69af124eb2757c6 Mon Sep 17 00:00:00 2001
+Message-ID: <8cca781563e89facd312d622a69af124eb2757c6.1714317553.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sun, 28 Apr 2024 17:10:13 +0200
+Subject: [PATCH] 8.0.0-disable-keymap.patch
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ meson.build | 2 ++
+ pc-bios/keymaps/meson.build | 4 +++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 5db2dbc12e..ea3ccff968 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1098,6 +1098,8 @@ endif
+
+ if get_option('xkbcommon').auto() and not have_system and not have_tools
+ xkbcommon = not_found
++elif get_option('xkbcommon').disabled()
++ xkbcommon = not_found
+ else
+ xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
+ method: 'pkg-config')
+diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
+index 0bd8ce0077..3888f4c64f 100644
+--- a/pc-bios/keymaps/meson.build
++++ b/pc-bios/keymaps/meson.build
+@@ -33,8 +33,10 @@ keymaps = {
+ 'tr': '-l tr',
+ }
+
+-if meson.is_cross_build() or not xkbcommon.found()
++if meson.is_cross_build()
+ native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
++elif get_option('xkbcommon').disabled()
++ native_qemu_keymap = not_found
+ else
+ native_qemu_keymap = qemu_keymap
+ endif
+--
+2.43.2
+
diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml
index 4c468733de52..adb556795249 100644
--- a/app-emulation/qemu/metadata.xml
+++ b/app-emulation/qemu/metadata.xml
@@ -1,21 +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="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.
@@ -24,37 +26,43 @@
<flag name="iscsi">Enable direct iSCSI support via
<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>
<flag name="nfs">Enable NFS support</flag>
<flag name="numa">Enable NUMA support</flag>
<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>
<flag name="spice">Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
<flag name="ssh">Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
<flag name="static-user">Build the User targets as static binaries</flag>
<flag name="static">Build the User and Software MMU (system) targets as well as tools as static binaries</flag>
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
- <flag name="tci">Enable the TCG Interpreter which can speed up or slowdown workloads depending on the host and guest CPUs being emulated. In the future it will be a runtime option but for now its compile time.</flag>
<flag name="jemalloc">Enable jemalloc allocator support</flag>
<flag name="jpeg">Enable jpeg image support for the VNC console server</flag>
<flag name="png">Enable png image support for the VNC console server</flag>
<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-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>
+ <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-4.1.0.ebuild b/app-emulation/qemu/qemu-7.2.11.ebuild
index d0bec4380dbc..e59ab048ded1 100644
--- a/app-emulation/qemu/qemu-4.1.0.ebuild
+++ b/app-emulation/qemu/qemu-7.2.11.ebuild
@@ -1,61 +1,125 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
+# 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 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="git://git.qemu.org/qemu.git"
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=(
- slirp
- 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="http://wiki.qemu-project.org/download/${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 jemalloc +jpeg kernel_linux
- kernel_FreeBSD lzo ncurses nfs nls numa opengl +oss +pin-upstream-blobs
- +png pulseaudio python rbd sasl +seccomp sdl selinux smartcard snappy
- spice ssh static static-user systemtap tci test usb usbredir vde
- +vhost-net virgl virtfs +vnc vte xattr xen xfs +xkb"
-
-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}
- lm32 moxie tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
- aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
- tilegx"
+[[ ${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}
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
@@ -63,9 +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 !opengl !pulseaudio !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 )
+ virgl? ( opengl )
virtfs? ( xattr )
- vte? ( gtk )"
+ 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-*).
@@ -76,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]
@@ -94,32 +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(+)] )
+ 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(+)] )
@@ -127,17 +204,20 @@ 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 )
- rbd? ( sys-cluster/ceph[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
- media-libs/libsdl2[X]
+ 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? (
@@ -145,46 +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="
@@ -194,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 )
@@ -205,15 +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.5.0-cflags.patch
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${PN}-4.0.0-sanitize-interp_info.patch
- "${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
- "${FILESDIR}"/${PN}-4.0.0-xkbcommon.patch
+ "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-6.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
)
QA_PREBUILT="
@@ -221,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
@@ -239,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
@@ -247,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
@@ -272,7 +376,7 @@ For systemd:
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
- eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
+ 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"
@@ -322,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))
@@ -337,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
@@ -367,17 +448,19 @@ src_prepare() {
default
# Use correct toolchain to fix cross-compiling
- tc-export AR LD NM OBJCOPY PKG_CONFIG
+ 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
}
##
@@ -390,7 +473,7 @@ qemu_src_configure() {
local buildtype=$1
local builddir="${S}/${buildtype}-build"
- mkdir "${builddir}"
+ mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
@@ -400,25 +483,41 @@ 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
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
--disable-werror
# We support gnutls/nettle for crypto operations. It is possible
# to use gcrypt when gnutls/nettle are disabled (but not when they
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
- --python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
- $(use_enable doc docs)
- $(use_enable tci tcg-interpreter)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
$(use_enable xattr attr)
)
@@ -431,68 +530,96 @@ 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+=(
- --disable-bluez
$(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)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
- $(conf_notuser jemalloc jemalloc)
+ $(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 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)
$(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_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 jack)
+ $(usev sdl)
$(usev alsa)
$(usev oss)
- $(usev sdl)
- $(usex pulseaudio pa "")
)
conf_opts+=(
- --audio-drv-list=$(printf "%s," "${audio_opts[@]}")
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
@@ -503,6 +630,8 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -511,6 +640,8 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
local static_flag="static"
;;
@@ -520,6 +651,7 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--enable-tools
+ --enable-cap-ng
)
local static_flag="static"
;;
@@ -540,14 +672,16 @@ 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} )
+
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() {
@@ -582,30 +716,29 @@ 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 -j1 check
- emake -j1 check-report.html
+ emake check
fi
}
qemu_python_install() {
- python_domodule "${S}/python/qemu/qmp.py"
+ python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
@@ -687,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
@@ -695,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.
@@ -716,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
@@ -730,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
@@ -741,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
@@ -765,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
@@ -780,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"
@@ -803,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-4.0.0-r50.ebuild b/app-emulation/qemu/qemu-7.2.4.ebuild
index d585d58e2726..ecb35f27987f 100644
--- a/app-emulation/qemu/qemu-4.0.0-r50.ebuild
+++ b/app-emulation/qemu/qemu-7.2.4.ebuild
@@ -1,55 +1,125 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
+# 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 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="git://git.qemu.org/qemu.git"
+ 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
- SRC_URI="http://wiki.qemu-project.org/download/${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 jemalloc +jpeg kernel_linux
- kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs +png
- pulseaudio python rbd sasl +seccomp sdl selinux smartcard snappy
- spice ssh static static-user systemtap tci test usb usbredir vde
- +vhost-net virgl virtfs +vnc vte xattr xen xfs"
-
-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}
- lm32 moxie tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
- aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
- tilegx"
+
+[[ ${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}
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
@@ -57,9 +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 !opengl !pulseaudio !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 )
+ virgl? ( opengl )
virtfs? ( xattr )
- vte? ( gtk )"
+ 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-*).
@@ -70,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(+)]
- x11-libs/libxkbcommon[static-libs(+)]
+ sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@@ -88,32 +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(+)] )
+ 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(+)] )
@@ -121,64 +204,85 @@ 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 )
- rbd? ( sys-cluster/ceph[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
- media-libs/libsdl2[X]
+ 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/libssh2-1.2.8[static-libs(+)] )
- usb? ( >=virtual/libusb-1-r2[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:= )
- 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="
@@ -188,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 )
@@ -199,18 +304,18 @@ 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.5.0-cflags.patch
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${P}-sanitize-interp_info.patch
- "${FILESDIR}"/${PN}-3.1.0-md-clear-md-no.patch
- "${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
- "${FILESDIR}"/${PN}-4.0.0-fix_infiniband_include.patch #686412
- "${FILESDIR}"/${PN}-4.0.0-linux-headers-5.2.patch
- "${FILESDIR}"/${PN}-4.0.0-pc-q35-4.0.patch
+ "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-6.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-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="
@@ -218,10 +323,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
@@ -236,7 +344,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
@@ -244,7 +351,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
@@ -269,7 +377,7 @@ For systemd:
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
- eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
+ 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"
@@ -319,7 +427,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))
@@ -334,46 +442,26 @@ 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
default
- # Fix ld and objcopy being called directly
- tc-export AR LD OBJCOPY
+ # 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"
- # 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
}
##
@@ -386,30 +474,51 @@ qemu_src_configure() {
local buildtype=$1
local builddir="${S}/${buildtype}-build"
- mkdir "${builddir}"
+ 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
- --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 tci tcg-interpreter)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
$(use_enable xattr attr)
)
@@ -422,65 +531,96 @@ 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+=(
- --disable-bluez
$(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)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
- $(conf_notuser jemalloc jemalloc)
+ $(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 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)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
- $(conf_notuser ssh libssh2)
+ $(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_notuser virtfs)
+ $(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
- $(conf_notuser xfs xfsctl)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
)
- if [[ ${buildtype} == "user" ]] ; then
- conf_opts+=( --disable-libxml2 )
- else
- conf_opts+=( --enable-libxml2 )
- fi
-
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
- local audio_opts="oss"
- use alsa && audio_opts="alsa,${audio_opts}"
- use sdl && audio_opts="sdl,${audio_opts}"
- use pulseaudio && audio_opts="pa,${audio_opts}"
+ 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="${audio_opts}"
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
@@ -491,6 +631,8 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -499,6 +641,8 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
local static_flag="static"
;;
@@ -508,6 +652,7 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--enable-tools
+ --enable-cap-ng
)
local static_flag="static"
;;
@@ -528,14 +673,16 @@ 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} )
+
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() {
@@ -570,30 +717,29 @@ 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 -j1 check
- emake -j1 check-report.html
+ emake check
fi
}
qemu_python_install() {
- python_domodule "${S}/python/qemu/qmp.py"
+ python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
@@ -675,7 +821,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
@@ -683,20 +829,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.
@@ -704,10 +855,7 @@ src_install() {
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
- rm "${ED}/usr/share/qemu/bios.bin"
- rm "${ED}/usr/share/qemu/bios-256k.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
- dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
@@ -718,8 +866,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
@@ -729,13 +878,11 @@ src_install() {
fi
# Remove sgabios since we're using the sgabios packaged one
- rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
- rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
@@ -753,7 +900,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
@@ -768,16 +915,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"
@@ -791,22 +949,24 @@ pkg_postinst() {
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
- echo " $(best_version sys-firmware/edk2-ovmf)"
- if has_version 'sys-firmware/edk2-ovmf[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/edk2-ovmf)"
fi
- echo " $(best_version sys-firmware/ipxe)"
- echo " $(best_version sys-firmware/seabios)"
- if has_version 'sys-firmware/seabios[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/seabios)"
fi
+
+ echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
+ udev_reload
}
diff --git a/app-emulation/qemu/qemu-8.0.5.ebuild b/app-emulation/qemu/qemu-8.0.5.ebuild
new file mode 100644
index 000000000000..32cb18d7115d
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.0.5.ebuild
@@ -0,0 +1,972 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION="8.0.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ ui/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ dev-build/meson
+ sys-apps/texinfo
+ virtual/pkgconfig
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-8.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
+ "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
+
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --with-git-submodules=ignore
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.1.5.ebuild b/app-emulation/qemu/qemu-8.1.5.ebuild
new file mode 100644
index 000000000000..05d55122f855
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.1.5.ebuild
@@ -0,0 +1,972 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+#QEMU_DOCS_VERSION=$(ver_cut 1-3)
+QEMU_DOCS_VERSION=8.1.0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ subprojects/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r subprojects/dtc roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.2.3.ebuild b/app-emulation/qemu/qemu-8.2.3.ebuild
new file mode 100644
index 000000000000..1c6bab186548
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.2.3.ebuild
@@ -0,0 +1,992 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+ SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ for file in ${A}; do
+ unpack "${file}"
+ done
+ cd "${WORKDIR}" || die
+ for proj in "${!SUBPROJECTS[@]}"; do
+ mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
+ done
+ cd "${S}" || die
+ meson subprojects packagefiles --apply || die
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-9.0.0.ebuild b/app-emulation/qemu/qemu-9.0.0.ebuild
new file mode 100644
index 000000000000..179ca305b449
--- /dev/null
+++ b/app-emulation/qemu/qemu-9.0.0.ebuild
@@ -0,0 +1,996 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION=$(ver_cut 1-3)
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+ SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/hppa-firmware64.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ for file in ${A}; do
+ unpack "${file}"
+ done
+ cd "${WORKDIR}" || die
+ for proj in "${!SUBPROJECTS[@]}"; do
+ mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
+ done
+ cd "${S}" || die
+ meson subprojects packagefiles --apply || die
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild
index d024b5020691..02a65ccd518a 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -1,61 +1,130 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
+# 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 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="git://git.qemu.org/qemu.git"
- EGIT_SUBMODULES=(
- slirp
- tests/fp/berkeley-{test,soft}float-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]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
else
- SRC_URI="http://wiki.qemu-project.org/download/${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 +jpeg jemalloc kernel_linux
- kernel_FreeBSD lzo ncurses nfs nls numa opengl +oss +pin-upstream-blobs
- +png pulseaudio python rbd sasl +seccomp sdl selinux smartcard snappy
- spice ssh static static-user systemtap tci test usb usbredir vde
- +vhost-net virgl virtfs +vnc vte xattr xen xfs +xkb"
-
-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}
- lm32 moxie tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
- aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
- tilegx"
+[[ ${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
+ 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 )
@@ -63,9 +132,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 !opengl !pulseaudio !snappy )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
virtfs? ( xattr )
- vte? ( gtk )"
+ 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-*).
@@ -76,17 +155,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]
@@ -94,32 +172,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(+)] )
+ 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(+)] )
@@ -127,104 +207,138 @@ 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 )
- rbd? ( sys-cluster/ceph[static-libs(+)] )
+ 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[X]
+ 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(+)]
+ >=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.5.0-cflags.patch
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
+ "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+
)
QA_PREBUILT="
usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/hppa-firmware64.img
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
- usr/share/qemu/u-boot.e500"
+ 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
@@ -237,7 +351,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
@@ -245,7 +358,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
@@ -270,7 +384,7 @@ For systemd:
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
- eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
+ 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"
@@ -289,6 +403,8 @@ pkg_pretend() {
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
@@ -320,7 +436,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))
@@ -335,26 +451,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
}
@@ -365,17 +475,14 @@ src_prepare() {
default
# Use correct toolchain to fix cross-compiling
- tc-export AR LD NM OBJCOPY PKG_CONFIG
+ 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
}
##
@@ -388,7 +495,7 @@ qemu_src_configure() {
local buildtype=$1
local builddir="${S}/${buildtype}-build"
- mkdir "${builddir}"
+ mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
@@ -398,25 +505,43 @@ 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
+ --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
- --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 tci tcg-interpreter)
+ $(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)
)
@@ -429,68 +554,98 @@ 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+=(
- --disable-bluez
$(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)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
- $(conf_notuser jemalloc jemalloc)
+ $(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 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)
$(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_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)
- $(usev sdl)
- $(usex pulseaudio pa "")
)
conf_opts+=(
- --audio-drv-list=$(printf "%s," "${audio_opts[@]}")
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
@@ -499,8 +654,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"
;;
@@ -509,17 +665,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
@@ -527,25 +685,27 @@ 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} )
+
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() {
@@ -580,30 +740,29 @@ 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 -j1 check
- emake -j1 check-report.html
+ emake check
fi
}
qemu_python_install() {
- python_domodule "${S}/python/qemu/qmp.py"
+ python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
@@ -685,7 +844,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
@@ -693,20 +852,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.
@@ -714,10 +878,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
@@ -728,8 +889,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
@@ -739,13 +901,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
@@ -763,7 +923,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
@@ -778,16 +938,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"
@@ -801,22 +972,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..a9c2875d59f6
--- /dev/null
+++ b/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="RISC-V CPU simulator for education"
+HOMEPAGE="https://github.com/cvut/qtrvsim"
+SRC_URI="https://github.com/cvut/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+
+DEPEND="
+ dev-qt/qtbase:6[gui,widgets]
+ virtual/libelf:=
+"
+RDEPEND="${DEPEND}"
+
+CMAKE_SKIP_TESTS=(
+ # Fails in 0.9.7, but not in master.
+ cli_stalls
+)
diff --git a/app-emulation/reg/Manifest b/app-emulation/reg/Manifest
deleted file mode 100644
index 08606dde49d9..000000000000
--- a/app-emulation/reg/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST github.com-go-yaml-yaml-a3f3340b5840cee44f372bddb5880fcbc419b46a.tar.gz 60814 BLAKE2B a77b7d72e2937af71a0734c21bee7a1d7770157c27f1ddfa164c66fd5461f86a2ef46e002087092ef011caae572838bcc9537a8290cd54dfafb7f54423e47c48 SHA512 184a0e658a4eac3b867533cd0e494bd84db94fbe10e8df0d0b755c7ffc95bc99e2f84c0157183ca74cdc79289a85dcf7f1dea8a4c89a253565baf473b3627eae
-DIST reg-0.16.0.tar.gz 2991496 BLAKE2B e94a53c79ff062013e091d4c558870ef5c25af181cba201a44fa38b9dfe8816d6f3fd581f4e9a3dafe5b3753a3755c31f8b2f4a347da134a969fc93ac296897c SHA512 1e4d936e406998ffaa176e7834b28970b594f88a339fd8447bef2f944efa9b51c1d35bf71b384b3ed1b3e84be08db6d7fd487f4a3c65aa2de0308d6128cf0070
-DIST reg-0.16.0_p20190102.tar.gz 2994965 BLAKE2B c7cb8a0eaa1599a5464b7a98c3df0b146dbbfea884260b7c8cbf5393a9384c8875e38ea4e45c5f888c65b9bb8c326cf9934d9b3c32a4809fe8e3b23239e8f2a8 SHA512 90e92c15b7ca4f2a5f943cb80096af0eba50acd7691963609c25f15a6795f886843776180754ab7d28477f1fc3a4b8d916bc9ac99b768368471b31564d14769c
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 e08ad1ff9a01..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>mrueg@gentoo.org</email>
- <name>Manuel Rüger</name>
- </maintainer>
- <upstream>
- <remote-id type="github">genuinetools/reg</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/reg/reg-0.16.0.ebuild b/app-emulation/reg/reg-0.16.0.ebuild
deleted file mode 100644
index 2268e22b2171..000000000000
--- a/app-emulation/reg/reg-0.16.0.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot user
-
-EGO_PN="github.com/genuinetools/reg"
-GIT_COMMIT="4a4d0e5d108ca9558879bdf1aba94d09e921cf1e"
-ARCHIVE_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Docker registry v2 command line client"
-HOMEPAGE="https://github.com/genuinetools/reg"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="MIT"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-pkg_setup() {
- enewgroup reg
- enewuser reg -1 -1 /var/lib/reg reg
-}
-
-src_prepare() {
- pushd src/${EGO_PN} || die
- default
- popd || die
-}
-
-src_compile() {
- pushd src/${EGO_PN} || die
- GOPATH="${S}" go build -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/reg/reg-0.16.0_p20190102.ebuild b/app-emulation/reg/reg-0.16.0_p20190102.ebuild
deleted file mode 100644
index e1be9fc0449f..000000000000
--- a/app-emulation/reg/reg-0.16.0_p20190102.ebuild
+++ /dev/null
@@ -1,53 +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 a3f3340b5840cee44f372bddb5880fcbc419b46a github.com/go-yaml/yaml" )
-
-inherit golang-build golang-vcs-snapshot user
-
-EGO_PN="github.com/genuinetools/reg"
-GIT_COMMIT="d959057b30da67d5f162790f9d5b5160686901fd"
-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"
-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() {
- pushd src/${EGO_PN} || die
- GOPATH="${S}" 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..55dbddb94692
--- /dev/null
+++ b/app-emulation/ruffle/Manifest
@@ -0,0 +1,657 @@
+DIST ab_glyph-0.2.23.crate 18537 BLAKE2B b11121197c7c2bfbc8096e82fb7321d2e3a56491c8d644d0b83d99663c642ef5813d1952994613c5c2fc98df76f67f0103487cc50c304e59307cc6c5a389a6b5 SHA512 169aaea8daf54cae7b3123b088f95217dda53f5e11b42a962d4607f546b8ecbdbab769d292cd2f50206f58d015785361479b4dfc42915b28bc5bdfff4340c151
+DIST ab_glyph_rasterizer-0.1.8.crate 11010 BLAKE2B 2a20fd3ff646559d704e214ae7c4e5b8297e20be0909c403c140edb67002665447a6a796e5ca5d71f5c8c55000489a14a101ec43dd90101be9c246d1a0138dc4 SHA512 6fd5ff2d068da84c4ac2e6e2c5ad6ab2f4926f1664afb8ba701b60a35c3bd7bf00b200b22c455ca15dfc7d4303c8caa0bb150c18dcce01ce107deaf323cde17f
+DIST accesskit-0.12.3.crate 27022 BLAKE2B 834c6c46388014047d12e92fa8abc9c3cbba7506834a64cdd9159c0ccf3888f623da82fab106c64e62154be3ea4bb4447f0ddcf5f6ee670b282b94c4e0c3ea4f SHA512 5b271883b13c132be9036f016c4dcef7391287585cd9fc5bdec9a931a5bf1718732a14b09f55ee56c95ffb644ff52e1fe001e3ef1eb6c1518f1c8cf68f244440
+DIST addr2line-0.21.0.crate 40807 BLAKE2B 9796b9a1177a299797902b7f64247d81d63d3f7e0dcc1256990628e84c5f92e3094ee8d753d9b72187b9aaa73b7ca67c0217899f2226ebd1076f8d25b458475b SHA512 afde7660dda30dee240e79df1fb5b92d4572520bf17a134ef3765e2a077af9e13713952d52e27fae420109b40f6e24dbce1056687dbcbead858ffc21cc7dc69b
+DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3
+DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79
+DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST allocator-api2-0.2.16.crate 59025 BLAKE2B fda69b52435a7243eb19bc55914a1961e59dbad5ac12c40db39cccdf7a99c742da59c3ef160350808698db24b91e0ce655cd1acedbbcbe20c717604aae23ea5e SHA512 e1eb0df6b44b62115795ebf772f81e9ac0b6d273afd81659dbddb7eb6628b6e5ef6a60ea21413e79ee638afb72e6872ba83a075f6324daf93f2f1eda48daff2f
+DIST alsa-0.9.0.crate 72602 BLAKE2B f65921c4d37204f9f8bfbb95cb3cf64952240b516600d9d48d3125c491ba12d476d5717db6cbb1ab58e0d85373a5d4347d5fb64405d5af0639d282de9632b7f9 SHA512 85dba28d451a8fed3b6131dddaedbe8de0fbcbc39dd9c58a9a9d56f132663f8f42f6e647ca26bc25c2558cc4db806894b8062f5f2bea619dc70f2dca32a2cc02
+DIST alsa-sys-0.3.1.crate 32748 BLAKE2B 0c4da9c343d622ddd521fe9332acf97c1ee4a202a909c7a0014a507148ab6ff82d5098660dcba847d938b296adde416ae420d454d6982c33a0456f37840d716b SHA512 6523d909c500fee433f934eedfdc200cfc52e1b55be09434665210c16bb9af3593d8b1346ace184b171c7135a7aa65fdac5ca8c68e64f9d20436e1d8fac961fe
+DIST android-activity-0.5.2.crate 258406 BLAKE2B bebcddb062921b10915959704d1339c0d200843b887be4588010a359f8b46fba6dce94d4f87a37e006c01e66e6ec061f33f4aaaf32ff616fdd2f52d2d0287b2b SHA512 281f2c3afaaa80d71f5aa6b531aae8e551897bb10c70da40787ee03ff194129da0df79f2e14d5432c9eb4a92c6227a1f9e1a3bd12e7060bbcae85fef177c009f
+DIST android-properties-0.2.2.crate 4563 BLAKE2B 00634bbee4d6dcd3254ee37dd7e5560963b35700aa95c47c84c129f0774cbac436347f0abdaa4ec33216358d9f079559552bd5a95de5026b7dba4e04d9cd674b SHA512 dae9a12ffa7d5fbabc28d3ddcc32f1b5300884cf2b3ef2e123f2dea596b3a796b9c3cb6c5381bf8f6caf04a633c5f2f0b56804fed8fb2a6f06c36d6c76539431
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-0.6.13.crate 30928 BLAKE2B 0c6d0932dc486ccbe8d7e6f97bd8aae03fb84d4db90d0488070b7109de673e0af845a70a39e546af87f71f4c7f7bb159ab8ed68ac0f03a0297457062d9d69dc0 SHA512 4f9ccfd135de9be22a01230f39d571c8d8ccf7c3eba837fbf0868c9660693b60ee0c1c2f9490a587d5307e892ed45cb946da7a0690a9f972619c94fb050bde09
+DIST anstyle-1.0.6.crate 14604 BLAKE2B 0716d0dbb62bf05c63c2bfe1c689896660073a423d26965ce2570f11e1925752a61209d78c2f2fe65ec4eb64ea4ffbb39669e789c0ba5d1b71e75de929153b20 SHA512 dc0e505465be54799b9faad70d0c6f7f0dcf9f5e1aaa43177b826c85dae626b054910244da0499862f066f6723a1560ad12100aec523f28c6198f1ea0d1b78fa
+DIST anstyle-parse-0.2.3.crate 24699 BLAKE2B 17e8638187ccc1ca0174a8cec7f7daeee7e0d8b8c430f7e74f9b10d8de4b49fd1c6facfdafde305b7a3e55b1ebf2b4e8ec4975a0cce691514ddae9eb5b5e711e SHA512 4a6d0f706d75c9b3c5144f34efdef3ef8fcd075962c594a23a6209ed56112563a34b3c01e05a08a0868d59204272d06211b2585cb9d06ce075ea875bedb2f399
+DIST anstyle-query-1.0.2.crate 8739 BLAKE2B c06643e8616f1f4469a32f9c0512941ce53ac5db9ebfa7a5b2f19233040cd4438dd2ee69ab89ecbc1c239e92b674dea9df15ed673408c6f3fe21787cc17d76f3 SHA512 f409b624cbeecf58fd87c47f85be28cae1fe48f65d692195fb80854c514e38c40d0e0ffad3a5b388a3929c47bd2060302ebb635aa98dc57329f3a5ed7be3e2dc
+DIST anstyle-wincon-3.0.2.crate 11272 BLAKE2B 73e124773f618a744b17017d4680ec6ccc84ff94fbe2e565073fbcc0facecd3cb65356cf27746d07f453bc917cbeb2ade3a618c6b8578d64cff4828c99569868 SHA512 4cc194faacffa01c6989354c1cadbf1134f0945250f67b7020ab5b475e30db34c799176bd335a6265386cb9c5e8b5bcbdf35894ec0c809b140ffe1c406751931
+DIST anyhow-1.0.82.crate 45361 BLAKE2B 558bac4de847a432fc80427e7be4e78cae4b01c4da852eae2121416af4d7e6ddeaeffd7de9bb69e55340b9a228436b975fdea88e380391a77c782a3776b835dd SHA512 e0d25a8c0b9c45e1db2072618097aff3908f70bfcbf0963d3c9dd9c97be27a85c4a763c5cb74e1ccd1b0a2059360e0879df4be80e10e58e0a5346b65f4fa1a69
+DIST approx-0.5.1.crate 15100 BLAKE2B 8fe84d52263521c0b72a1d1e82ed283828f680b8b56f532df2c14ea86ca09e793686d823c5d58ecfd7a829948543bb375e85223c866cf036e9432be5d6aa7399 SHA512 c6d768496c974b6ff4cf7ad8e65f3fc9faf29a1957da497968ee112c6a0b9d7a0ff9a2579206e864976c0f65ed2190bc9d2b63b31a09ced7b57879e207c46407
+DIST arboard-3.3.2.crate 45916 BLAKE2B 4d4b39d9447e7043cc30b6989fdd9955dd6028ec2aea77566ad24d91c31d4bf01306bffefa412d5b494f021dd8a3e51e61036dc64377f86c5ef1ffb1e27ecb4c SHA512 cba3917b302f4f4630275cf64d31d4052a2f7aee1b179bdcef95d5153cf92a9a46f139b76ffdfddab525c1ea36ef8e7fef78ac704222d4fb33fecaeaa8d3af50
+DIST arc-swap-1.7.1.crate 68512 BLAKE2B 5ddeffd2ae8af4125a5b43d4a0a1afc7948533bf037d8cd3e47603c13b57b156618280d99b840bf318b25b6eb29400ad68499695e182acdc05bc5f621c42ee16 SHA512 070fa8dd17b380b6d7d72f6f45c84e591de9a9770b9662351e7a41af03798bf5e34d185a5fcb948f4d8ac5e210a33acd465c39eff6097662c2442b34ee3dbdff
+DIST arrayref-0.3.7.crate 9620 BLAKE2B 69d25ca9c15c188ca954a862f320869a448a5d8ed5765a6fc26309abb030e1d846d12800d960c8a97aa3ab422e8d2b883bd154781ed219a858e02b20cc803613 SHA512 dcf1c7de6d1d4b921e26a39cd70070bd460cd27f0a38be9099e41fc8b05fb60ba4f9aa91f92401cdcd0847bad08bffa7db4dca8d7cc84a3c8a1416d1758838ce
+DIST arrayvec-0.7.4.crate 29856 BLAKE2B 81ffac1db340e919618351819def3880ab1ef70d0acc47d680f15298eb749bcbc3bf7944ba14159be46b1e734c91b4c0f8cbaf774fd864c17caa3c9fb1fc2e9b SHA512 91e8f70330c515c966d78ae235e890594f9607381ac738a2c3586b53f01411e98d1687494f39ccc365948ae60497df3dfb2be18e26ab7e69bc0966b6c250e1ac
+DIST as-raw-xcb-connection-1.0.1.crate 6460 BLAKE2B 678c4c28852bddfb8ec9660742370e480df6cc379bd7d653e12fa00aa99b598d9e5519e15c33e59fbbf43d260fd01856129ad4e9e8dab28af6e043e3ea651fa0 SHA512 79afaab72e5a5af2e70b1b66deed1dcec5b40a4a47516bee4845684c0cb8afcb2f141af0bd4034e7fb76e57a0c7e7778c3deed2e73ab780915e04e3604fb9a98
+DIST ash-0.37.3+1.3.251.crate 449524 BLAKE2B 0f21db7c1e8290b3cf5ae8ee064dc6905fe75d9f6075edf2255451a3cb9c1e7973c6555be6e06a3abe7d29a64e159cf9b6cc9c9ff9808a6fea82216dee41fee4 SHA512 7967df0dbe734d5ed7b60fbaad7a844e0c0c39792828f4764580fdadc3b38d631d4f1a62ea2cf4b08e3a6c0c0f89d771ed9aa97241d6f86031a9d9cb1ef140cc
+DIST ashpd-0.8.1.crate 74342 BLAKE2B 853b77be49af0797804c2d2303a21ca2026b99fcff210797e28db6c09bd0142eadbbf85771a3fd2029d44b2a51167d3ccb231179b8ddc92c3a8d0b0fdfa9fcb5 SHA512 287febcd2fb246435092a8c376d628a6fa833ff288dc0b31d0534da95c91385b06c5428a19d490079b4b32c72ed9e4fe56f3c6040e687d30e2ffd41d6669acf1
+DIST async-broadcast-0.7.0.crate 20852 BLAKE2B 5848b71ced51d2a8ba7c5d9e1102b626b450c5412d35362903beecdcb7a7fc89ef33ebc3aa233fa1ae8bdf2da2768b541d16b91dc21c0435751bdda9e1bdce7a SHA512 d1a452db233cd9c1776b0d5931727d8d96a5e7779088fc410eae897a174c5dd80900c86385e270c62f164f340951a5f83860be970e37cd4910cf8a85dd78d89f
+DIST async-channel-2.2.1.crate 14326 BLAKE2B ff89c3c0daf1b682c6eef8efba42e9fd29a374b6508cf254e69c8e503eb6ae10d96d129baf0c5033af4a9826210c57a6f826eb62241108ca4448f8dc438ad33a SHA512 706aa51402267ee2e7b8995efea8fb950a88d5db5e86302d554850074a2ecc541b02db3b9b28f068d4143de41300f75a405c0f2b9e83cd848ffc98a1d336da71
+DIST async-executor-1.8.0.crate 21870 BLAKE2B 85e24330e50d971239e4b2f7c8f7e524cc41fd51a9a795481286e5dbf932de4b9034c1e1138bf0a53408dab4d613f52349f4ca2c383ee869bb107b6dd34a6fdc SHA512 285361d42c34331b3ef67d9d768f62bc72077046766d44802a7e769d5e56718505751d9019b0867b2c28c08273038ca18a936430ff44b7714b780fe520adface
+DIST async-fs-2.1.1.crate 16545 BLAKE2B 1c14543f6f1e86c38fe12cadc988d097ebe3e42d4bacce5c6ed63c6861a7490752b7cd668c28c70d8f864403e7d5c355e387aec65b4213b6d52c1ab6be2fb4da SHA512 0909ffd7961fa5e2b2d29349f21ca08c679c915bcace8f3a518b2a826863c9c990aa27fbf7fa08e6afb9bba473b4dabc8398f48b92158cc6224984b5ebc87cf9
+DIST async-io-2.3.2.crate 49298 BLAKE2B cf01d97782405c56261d54800fcefe97c914850d50b49ce2902eda3cfacfbe6800dc0ec9b418f4bc51f579a9d0dca8b2842b17d97c3e046667e539ac67f72a57 SHA512 a7f04de21cd2eea933d7bdddaa548c92ed9a96d4f910d0aebd2ea9ddb7fe75de5f142df7aa4f7afc23b6877a20e68d3376db2e801e2a258e74b3f0ad674630fd
+DIST async-lock-2.8.0.crate 29944 BLAKE2B ebb35437caf6bc8db154b21fd17bbe1973490fec06cd34e7385d9028440b0960407d674beaa707a01becb227ef1107686165953658f490902e13d0732a4e80b4 SHA512 f48732dd8e5de0228f56780adb87e4d9870496ddbfe4cc7c6aace8d4cd7198627a05ff0358fb33ed57480c7ac886b57253fc73b2bbcd3e8cfe65624b51847ae1
+DIST async-lock-3.3.0.crate 33286 BLAKE2B 93e66c16a6b1cb759378e198927d2df8ff9f7839a2bcda49d8e013ec7b9b175bb4199864bff585282a471cab6d4f88b70141636413dbcaa7b0453d35f08a94d6 SHA512 0f9e0940e610744fa97c6d2ece9220a2ad91f09155eda66703c2aaf4959f85c17f2cb55ef5fdf29013d4dcd84f8cdb6b16e8692ec7724744b57bf11a86f22f5c
+DIST async-net-2.0.0.crate 17787 BLAKE2B 04685e1ffd4c363b3b29bbc4819c7a79ca45a212c1c3094835f2ca8ffe000b8061a4b28de84497d5daaa70139a8d0c036fa4385ba20ea4bdef73b52102cfc349 SHA512 e12163eb7fb526d434c257d82ad0bcc64d3a1fb868b899fc5666c1307f821654f7afff9bf5dd3ca6c8cceac31df29a5027542f6e5901c8801ce2a696ab737479
+DIST async-process-2.1.0.crate 24505 BLAKE2B 4acd4f44d3e7825523f138dc8ec84a58198dc337dc81e473aec52117da7517bda78533ae9e05505af30a72026dbadb2951378aa608aa041a7190bdf205a37b83 SHA512 a81c2081106753ba09807d833c2c0575a8aa0f73c7a50abcdac88c3c9d2d34a4ed67920842c8f86a26bda0ef89302ceb5e9d05516353d793bcf29dcfb7f7d79b
+DIST async-recursion-1.1.0.crate 14982 BLAKE2B d27e03f166a8b65d48fc7430845d0d8affa37e8292a37125b71c0f3e26c678a979422163b72c40bcb0a51f5e85331ebf9533ad1d3249b596b86ac9cccee93ef4 SHA512 a6d3d43a1b0e08c9caae950634610ea1eb101af10dfe82f168da3125839f9c3702ae7761b65ed6af191533d1b6e6dd0d668f2605812a666d191e3883ac0d5277
+DIST async-signal-0.2.5.crate 16743 BLAKE2B d767437ec634911781b883450b7a32d6b3c40f52a18840c1d14c2d7cc0984fb25789d3b66e1b3ef776c693337fdbbf2f32f2cb75721864708aafe094f0826ccf SHA512 0529f5bfe74f8ab16e1597db31e997dfb9d6185f96cda3c988cfdb1cde95291533da5ed2934456a2527d5530bc2972effdd34ec955f3bd94a34fde892726b3f0
+DIST async-task-4.7.0.crate 38906 BLAKE2B 6dc02149a64f6ff8d605e74fb7db4fd0e48e6f0b57b0aef27959a7c654f25cfd1f76a403541ad8abf948a2a15bbefacf30c9f5145e2ce276222c53c62e0b30af SHA512 9267434c8785869dd281346adfa2ed79e55e97c6a889db3be8e05597420331596cc9d87547cb1305b172e434359c2d4dac6da6453cdb4e1f1dd4fbc989ee0a3d
+DIST async-trait-0.1.79.crate 29558 BLAKE2B f6c5c4c28b85e1907f37f9f6e556c8f4304e15d6af8f7535fd201919496fa03fb213a0389644e2d1433a8e528f36dc9aec9699bdfd37082404d4026ec03fe666 SHA512 4c417b01776d939675b0c4717edbb8e11810cf08ccccb26697809fe10898b73e03ba3332ebd20a2cea72e8f4f16903737d9923e0048f1ce6eb9c8f04465f2487
+DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+DIST autocfg-1.2.0.crate 14808 BLAKE2B 122327d6ffd32e08dc9fbdb4dcf69128b19d56280f9d934311b946741003b40571cdd1f3ef54b2be02c8dc505aea11c962b244d33a92206bf4ee8f6b2b9da432 SHA512 66cbfd13e33b36284cf4c74c8d654f93adcc45893d127d9aaa4c1d183e47336096e72d74e7c17dd481fb7a98931ab6cfec7e4d4165cfb491861d4e3ffe2416fc
+DIST backtrace-0.3.71.crate 86553 BLAKE2B 15ed93574fb9e8e28d5ad901bb1f94013b5fec7a79aa96d17f13f6f11a02d29a274ec14ce51a9f515574839aa41232e5aaf6e6fa3ad9c0483591055bd0a78c8a SHA512 5d9307757349e860fb4cab7e9ba1c9d0f1faf49ebcd935ba879b85fed2a9812786c7458abb59a742842a0796fc29ce9921cf575792402486ecdbd9a2568cdd89
+DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9
+DIST base64-0.22.0.crate 81568 BLAKE2B 55e6bf8888de846bc14010fd706686544a1706dc9cea034435b5bf97bbbfcdab57210e69b425c9f2adf7b088b6f2cbe0f8148077a8be3aad88114c404738682c SHA512 116928d2fed66b43ecc8ffb4e1cdafb1aec3005e0034e2cacf1cd3cac7a591aed8e423fb2523900c25a4592ada49d3a0e438703afe7bb66dd1ab9fcaade24000
+DIST base64ct-1.6.0.crate 28870 BLAKE2B 60fbd9958f2519f293db2cd86add5160b51ff4f98718591b3e65d866e8bb176670ceecd5f6e365ff3ff488bf813860bf65d375a2159dd28b25e276e027303c4a SHA512 e3a267dce49257b6990d8d0842299d75b49a9af635082dfee25e314f5ab9067b339c877a4c7b012a1eaf9a84a7f8ddf0173c6f9d8695be81b8b4db03df66c92c
+DIST bindgen-0.69.4.crate 221092 BLAKE2B 69ed55a5827bfe850f589e39bc6e2f4445e20363002c765c5475007b75e4d81cac3d9df358505c63bd6a48300ae4988507abf78dd734bb98b33525bf9212237b SHA512 99530060708690f2ce0b87b97c9ce2998ee968df193137f3c9bf4fa66836814e2ae74c7e0b3057dcff1da7d2c4ea38157e21143c5117be35e94b878c0a427a34
+DIST bit-set-0.5.3.crate 14470 BLAKE2B f6525500a494236103df2b27e964bae0b2caf718156879f972b9972fa509794bcc663c2130e3d872ecadb7ead0982b415dfa4468ef12523ee248fb1bbec2559e SHA512 c5ce7ef71559706d996505e138ce95d9f008ac3375928012a36339bfec48986ad935b384e2d21fa0d505d4cf98bd3e93be15955ecd9607d253b8a276351334c6
+DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.5.0.crate 43821 BLAKE2B 2d2a78b0a19dcb39580e6f73ed6c468b0626043010b34661084944c83561fe49db24bee1ab57fd692d57617be6506d529e095aea27b753a77e26d0b1ebf7ed78 SHA512 75d7a89e53e5e7582591932bc430e6a1db7ed0f914ded6dbcf957125be52975598df7fee14ef816f66544432ef0505f0a081f3794d17138ec429e283fe14fcf9
+DIST bitstream-io-2.2.0.crate 34113 BLAKE2B a449d31429b3aed5ec54c2590d285a532377c7d5e614eb785e11bb208c3541d1df8c439999202ac52227544ca42008a60b0989696ed0888ef2bfdedbc23f6b95 SHA512 51d328fb67df4d89f755769cb8806249349d9d69a4c1c538f72120b058fb7fed81356b867363396234a96061da92446c6e07b6498c7bf9c1f3f99de60aad3f2f
+DIST block-0.1.6.crate 4077 BLAKE2B a2c11873b8cb1a1ea399ecc99ed45e5d0b9399bd88435cdea346910b8707b7da94eeef522dafa5cdb09929534472b2a096c03c373744a789962d4175fd1b110e SHA512 c278e3c0346cae423b533a8f5d6b822e788ec450c92ef0f5f559d5705764a0a11df49f0f66bb1c8af7e89bec8ec802934676b969e43f92255a38b210d0fbd710
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST block-sys-0.2.1.crate 9320 BLAKE2B ef7eac006fa851fa18b4efb3795b960e2111128c9a2671757ce281a585bba948ad2cb39e6dfb2426aee52b517e2e53d494f6975a62ef3ff57a8c8122693f70b8 SHA512 51f66e673f08e4ae28dad971ac795aba0eafca4380307cfb0967435768dc7abf172c2d6df06318c9b18aca5f710438acb94645d3ffec3327c7d55db6a9e2667c
+DIST block2-0.3.0.crate 10924 BLAKE2B 039f6b38831ad8aa45ba6845031a17af52b172f3f68d98c9ee648fa300ce1c8fb6766736e33813fe9916596ae4388210b7d0d33c9dd44346b551bcd2c15a1645 SHA512 8f1be7f0e147b6689fe999389246dfa57bec002304d4452f668724591b117bc9a5b3d1a4bd9fd5f72e81799d13a7c2893a4fdca5b5131cf6ee275bd396291688
+DIST blocking-1.5.1.crate 17277 BLAKE2B 0eb9ca486e2eaa790b2b74bb32208e5a7df2053b045f5928c78f9b461c964cb8d38737c1a83cecd8f42495b7101a2378883533dd747f2ffac6744551ec164f4c SHA512 b12916db3975a1aefc36fc2a8824a89f5c0eafd83d83e458d1b6b35ddc3acfa92374cf0b5cd82825eec0182bb4ca97b048edf3b8a80cbbe0daa1c07875131ce9
+DIST bstr-1.9.1.crate 380305 BLAKE2B 52b45bd48874d052636c6b451cc36d8b012808ea5193e0188e5edd09f81d21b8306926cfebb405ad0650ec9aa710f609bacaa773bf854b21f4803dc38bb2eca7 SHA512 67e9f76719310de60f46adf3c39768b4dc078d4c32dc6bdcec1a94cd9f630c5238e427ed84cd6ec25a44f54e84adeb795a0e92060a5372d9fb9ad9f0914e3172
+DIST bumpalo-3.15.4.crate 85028 BLAKE2B 9ec98f430fef4e9b59e61d413b3703430f91bc818f3294aea7416cf8a35e0606357bb5b4d1edebe590f07fb614f832da16016c8530ff39ca853aff1d1369cc60 SHA512 59ca9f8e6b74bdd95b9b4ad1bff3bf4be46dacedeb1eea6196a65dfb0ca7b60e86ab6c25d0f91dae3caecd17ab73c48f953be0bc24bdc0ceaaf4c1726b9ffdc8
+DIST bytemuck-1.15.0.crate 47672 BLAKE2B 49f2d92cfd5abfbe3fd94e7e4c9a3d4ac22c67b58e73947f461cf8e5022738b7d38c790de2a1717b731d658f1646066bee2f936a1575e2995e6de39d20f918b2 SHA512 5b6886f252945449c4546c181bbb6c95597e498aba6b1faf81c5a4af69bcb9e3e024d7d6e849d347682e8ca72ecaa9a70d13fb06c174e17846f0c85bb4810433
+DIST bytemuck_derive-1.6.0.crate 21194 BLAKE2B 9cfad9add5c35c2ccaf3615d3273410c14ed1b420dec930d41d5b3456d7c6fc4da04c12b59594e9f591092ce3f2096a7c7ccba55f724ddb7f1aa2c013b749559 SHA512 085ed20e91dbca4619802ad796f79d25e04d5360422e9f8dd7693d5ef536ae93ba00e996353c196bf1f410225f84d23e55ccd0c84df99dcab22cb32b2a0fcd3d
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST bytes-1.6.0.crate 60605 BLAKE2B 3e4cd094443969c6062b51917ad9df314b61ec9ddcb0336cf2621d8966c568d5b1fdbf16b11b5e2fab01b43ea76f6609f753eb5c2380a5e4aa8fb6e807a2ff5d SHA512 6507bc4274204d0a19b6a95c3284c52245c71cbf5f2dfb5cd372193d989e49869ec557c0c4e449e96ed4e3028c90606dfb0dcdc1d72bb234a36bc5f344c0a7a8
+DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555
+DIST bzip2-sys-0.1.11+1.0.8.crate 633444 BLAKE2B 01578c512443134fc786669bea4f2ec4b9c457b9936c907315299d8b67ed78045d458c83ccc119f0fad511529fb5af5feff5fa2d983fdae832d2fcc1b343e102 SHA512 d0a86b9f03acb1e4e309d5739dc2e88cab582757d467a433afe0017017f0e5d2c0282529e3a117160958ed170d8d695ecae739805888305df0e35e4dc440582b
+DIST calloop-0.12.4.crate 69583 BLAKE2B 5cfab752477b0e08af797268b1b4cb1a4cbd866ea789da25b5b42b8579889da8b589d2e843c774cf98f29c78d40749c60a14fb972812216eced717002a92d731 SHA512 657c6a17ca47f633e3bc3e3b6e98160bbae6ec51e496c720c35f2fffd2b9c1c5fa175b69cdd567f6bcef0088fc5af35c2a142c3b9a14ad9720a9ff7dbff2f53d
+DIST calloop-wayland-source-0.2.0.crate 11304 BLAKE2B 27ff9165921be61db363be0c93f2250d8d9532cf67af2f3c00ea4f2e2e3575d7698c1669e418e065dd1ead91f473cdda0f681b1dd989a3f5b75ff606377c73ff SHA512 53bd9b57c10fdd0c94d2c6dcc634d6f7b2e64aa9625d15163b76cef5a3bafa6bd8643401bef0b66d6fd42148f6014bec1339baefdc61d6c79334243bf797f6b8
+DIST camino-1.1.6.crate 30519 BLAKE2B 3696bee362c9a6c7331079f86823aede0df06c1c36fdc2d11c0628267ca7635fd78430cc927cf3b2af34591537d3968b3c5f1cf9d500f3e889c202c944fc6138 SHA512 e777cc6e2a01c95931a81521eb278156d1c50ffd0126f914b21e35dbb7644b835f3c26bbe7a487bbca508d26b4c933bbbb9e051fa42825b154c2fa03c04375b0
+DIST cargo-platform-0.1.8.crate 11813 BLAKE2B b074b49e08b2b93e93e08276f2a79546fe1f9ba0a52b3b4ef0ecdd28fa3fe5e842c0291fed158a1a12b90804e0172d5419b7603fd0d5f87f062f44dcaf3428f6 SHA512 187acf1b8cc81078ede3353997bec9010df32aba82f56f9479d4c8eaa13436590a16f3ab6ea11ed2b31d1d1d2299d824d9ad10f04bf5281c92372cc8334b0dd2
+DIST cargo_metadata-0.18.1.crate 24535 BLAKE2B 9d0018e28a3941e269dbd30291054a882a960905a43d4818c874250356a6c203bf08ed77a8041f08607390b2a382864701c519d71a0b88818ee59c6322c74e86 SHA512 43f87d2b84597ec9a27e9fccf06ec5f2630a0147a9c85779622c25493bd61268c266643f8206a17d76a16329af85f0cc563a9af7e17ca77024c0eaf788555f7d
+DIST cc-1.0.90.crate 73954 BLAKE2B 840417889519dec96a745c49ecbc8b0d3da9b37a4b6b0165ee8983c07b8150061690b34409381365ae4c70c5780923d19cddce29d5fbc370eb6b6fff29121436 SHA512 349f3c3f8208632f8754cc05d70976eb14f3f13a14d59413994c656efc36bb32b7310adc7d5f3a6745f15e0aaa88334644c9aba8d29fb961215d74bec605307e
+DIST cesu8-1.1.0.crate 10555 BLAKE2B 4fe369d1247c3b30ff9beb644dbe2a517d78632191f3216bb83d632bc8857f9541a1b60d0bb583cf3fc0ae974f7c9d2b07fca5efe2057d9ef281de76fe810a49 SHA512 2d902b624c7ccfe3633c7bcf99b833b120c0ed7760ea825bfb2fa03ae90df543e637efd46e0743782b81e468e0fd3b534956ffca81f9bdfbf742ff3beae8f8b8
+DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886
+DIST cfg-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.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
+DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846
+DIST clang-sys-1.7.0.crate 42088 BLAKE2B d1ed314a910c1b676eb780fc1c96f5ac391217ec135480d0a91b11d6f447ad06484b48966ae99115e35d921a506caf6aa7ffbc4ed86aa64367dca321678cfd7d SHA512 e544984d5bd76824ea2093f43f98b59a99e1ca8a5de40e49164b870ed4a91a530f3492faf0678190b91e74aa5d122bdbb32c649998d0ce24912dfb0b83ed6b81
+DIST clap-4.5.4.crate 55401 BLAKE2B e9ece2eee6be16c366888f6140080c43a182aa758a971ab2f60fa5c8f5e00460c3e6ae6bface1f36445306265ce13d8145ac24cef833b68b2b2c32c13a7a4a00 SHA512 c1e88968a86598a6541cd8f8144909872fe71fc707dc5327293a71425f6ff9d4957491f93c36326a9f615c1cce1a453cc85740ff18e1ca571e91bf8f7a6ad7c0
+DIST clap_builder-4.5.2.crate 163566 BLAKE2B 5eb81df416f3da0bb7e53c59ef4e914f03e2bb0563bb3707fbf70215f249aa523e3f5ef2205d0a8e25c23db6c6d0d344181c1c771566453505c769c55b355374 SHA512 af7eb8326a980cf461442a4dd6d224e61ae31a2fe4a45b34210a2c1f747eed49e00b6254699e82f986f441667f290a5de747b5e9d9d0360ed049504343385864
+DIST clap_derive-4.5.4.crate 29159 BLAKE2B 6f7087d553102f24c9de37e1ba85c0d540ea42d9df9af26b5234ccde23175180efe21df93513df49f6ba83e46cc85cedcead29c902e426c39b25086c9f79a51c SHA512 670411136c819577c0129c6fcf5a8216cac82a47ae11ce3cd97cffd038644e06c5a21f7a69948628f01fb77f1e656678ffbfe441385866fdf90d247bda036c4d
+DIST clap_lex-0.7.0.crate 11915 BLAKE2B 03287f02067f6cb33bb3889e8032b0848e9a9cc17446eb0e2767768cf6ea8c579a7455d33c8af735fb8d0c16095b19f991a5e2528dee3a7628d68c16f9307fa4 SHA512 638feb2e4571677dbe15ef0423866d2f0df309723e5ad65ddeaff7fd5e2e83adcb973a32d52a5f3924ea88fcff865e956b7d30dcd569df0412ef47848af14036
+DIST clipboard-win-5.3.0.crate 19597 BLAKE2B 1f61d0c7049e6b2d9f09d6ef47196153ca4f592cb0eff7602317cb871cf06a54ecf7b49a121f45842cf49555c171f27db38e41975ba13920e5eed456283b6c10 SHA512 decd0b73e2d879c7b650f525b74e2ff20d271ac21598a64d447d863cd3d1fe344b3f4b4420514644c777d1d1793b585336e877759734c7234627ada0510daffc
+DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844
+DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201
+DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+DIST com-0.6.0.crate 24855 BLAKE2B 3cb2eaae6864f05a6d47819d58c83c9be2ecff8e382ed84dec93763f605d1392947dc5025198ccff4b28be5b37287725ee4cc7d7f8e057f1804351b82ed0bd2c SHA512 3ca186fdfb130863ab62fabb2c266f2258ee45482fa9b925dc0d5d7ff492a49fde5c75f8850b18895a27f804aea16fe7bd4c53011e8badfc5114a9740b5b52d9
+DIST com_macros-0.6.0.crate 1075 BLAKE2B e271f5e11a62d666bfcb530879b0f41dbb2d81b94b6cbea15a306a72c97cde9eb77360cd8b5b169f861dd1d5c422c3de07442f016ae169287f243b0e9ebbe7df SHA512 737df65d1281fcb0b636ec1dd908ac48dfc020681022d64de1e327605604cecf9100c6ed629a991716693cd251563e259c4ff5611410117a6e585c94de03faff
+DIST com_macros_support-0.6.0.crate 17334 BLAKE2B a786a331c0080b0803684d1447efbe2f6903ce5139242b6c81773727fa61c7721cb198050119f3cefdaed32753f756f9862debf5e8f91d49e39804291080d572 SHA512 e4ec9f58d8ee25b0447854db8f528fe4e989d8944b3fc2b74ef8ea899d3bf6e082e8b516a51a7f77a09073f18c1ad7efdc62d6da8c82e52bbfee02cd7a552cb3
+DIST combine-4.6.6.crate 132428 BLAKE2B fb52e724a52f1a551255591fedc134178080ea5efc0c488efbc369e6272f7f2b87dd7d0ce63361754d8ff0cf1b0a59bbc7b0396c50c53210f3e2c28ac965e0e6 SHA512 ff9ef9329de2cfc103271a25ad1fcb7e478f3328843bd8a65653e80b74112728ad4a33326a58ed7ef8cf39eec7c3b797fc287295ba149ee0dccb1de9721b5819
+DIST concurrent-queue-2.4.0.crate 20244 BLAKE2B b30b97eeaabf0205bbd8f4eddcc57e59b6863f18969731be66b134cdc5bcac9eb543493c54b17bb394b6e227e808f016e4f3c1da2fd6b40269b9b24a5c433f7f SHA512 5821bb396a73692e5b033d8406c2996bc4318cebf8807e596e441a2bdc28715fc6bb8eb29b575ea318f84b748ce47341a8d23f5c4de65660f86056e99b6a8b78
+DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
+DIST console_error_panic_hook-0.1.7.crate 507196 BLAKE2B 90f2855b54c78258f9e4983849a0c0b41f842990d622bef0ea16ae5e3a93914919022d21b1437bb2ce644333d4e0c6e7b55d960452c4fa437e23bcd0da83a4dd SHA512 49f4fb2175c0068981678f291422ace3737dab7033b1a49d78fd821512c92fdd023c3fe28c7daed88c8f338c30a9c7f82f18bb4583c3fe7839ad8dcd0addd6b9
+DIST 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.3.crate 19084 BLAKE2B 795a6f0cd4e93fe8ee257ddaf1f76852499137bcfe47d25e3188f3822f3d92b191cb9f3894163de39386584fcb899ec01d0cabe5757f534dfcee9fa28aef8132 SHA512 25f79e74be133b780373c1277a00538d9faa19b77868d62b16d60037d4890b57aeba2eeaf52d78d3f8523285b033e88b680195a67ba5bb8ffa7c0ffb2070831c
+DIST cookie_store-0.20.0.crate 31374 BLAKE2B c9adddf2ee5f0ee146fb813536d7793a5ca1f9e70529e1a8ce84a50a605223c909e02d8b87e2c560b069ad87eabaf12230c56addb5d06e5aa194d1c4309658d3 SHA512 c2da6bd8e42c52ce91ef2a1a5c68bfdfa6a0125847cd5d3a8dc49ff9e46ac865ce5d10f9d4376ba640e4c0efbd6868ac88dcfa9ca85d91cedaea37d30be452e4
+DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33
+DIST core-foundation-sys-0.8.6.crate 37629 BLAKE2B 683d5a84b6a3816317f87359532a8339f08bb4043f1d70a8588636eb5dbe6ebb3843e2a12d9a7e5fd1637a912c52a5aefbb8d44796330b09593e7adefd3babd8 SHA512 24a8958cb16b081862a9000affb0147b8b3be1a664b834c3dbddbff03e709de3f4060ff4800e5a35453f4392ccf33168e8b864be71b17be38cb264a39b915100
+DIST core-graphics-0.23.1.crate 30714 BLAKE2B 291e5cc4cfcf1a6507dc0e4dbeb304fb445530c60d7bef79dbaa53524233fc453d1ee977e7ed43513319e1d5641e756749f43b536535fee730308322190462e8 SHA512 2b0e2c00900d4a9e09c718197692ab2aa0d009a43fc03a30075eb33ed7648f6ef640bc2d827fd9cf17f752b810eaecb77107096aeb1daa0348b3b7e17ae47fe4
+DIST core-graphics-types-0.1.3.crate 7063 BLAKE2B a2bb17838745a28a59e85d884ea60069c33f548d41f98548956eaca4178409c74556039a5a731a9c1e9f26de8c69d45f458a90a3f7b358065202b660c62431eb SHA512 e56b96662fcb892b73bae3292478a9ba4c7e92f5967b6438546f229fce115b09f997734c40f8f776be6ede2c6512e837632eacc8ec15b5c3311f9f24fd22a397
+DIST core2-0.4.0.crate 37075 BLAKE2B 89ad26bf5eb5ee48dff32d3b6b11e0a84b68e4f29c39fb9db79c64f3c445fde248b33b1ba9d1410673c3fe823ecca25dea637237c384b7cb419de9bceab8a570 SHA512 53c9d2599d87c37d8b6fc8b2293fc16928a97754240e35af770f7e969e4d91ffffe3afbb4e04312de828d1d43ca6c9b734e0725ac5ac9d74f252449ce296ab7b
+DIST coreaudio-rs-0.11.3.crate 42844 BLAKE2B bae10c9b7670651e78f24426378708a2c14b6b1a7da9d4e359611a8bb4df8354af5b409eb20bdf1e9b05a6117c59b6cd7d3a79851682a217732986602c8cf3ed SHA512 41b3ade3b6e157be533bd25352ad76a01de28cb3c8d60d7789a3f3b5aa868d6a7dd71456b90d6453684d2022e0f0a94b3e830b3920918c18a4693c2de0258a1e
+DIST coreaudio-sys-0.2.15.crate 5532 BLAKE2B c7c3f67a6db3b9d9b604989812b45d75b02a04565d1dfcca4698abdf540d1deef1c93b6a9b02a3689a32f033495411a5dc11efe4871e907f8bc0fec6b5fc4f25 SHA512 060379c57ee110ac413fbd24b48edef283ffba17692672f9ea3f6f0a627cad8f827ae2d375c341b0180bd4de7b3b5d55a06ed7b171fcf3cc20264826f2489436
+DIST cpal-0.15.3.crate 100083 BLAKE2B eeca832ced49c8b4913125b948a4c5996783361105d106ec7bac263c2a81ab87e5e2485229c3742f1d600037993abfedabed10ddc175ac507234d720e8f7f18b SHA512 c4461e740dbc8528b753074f3e53fa863ac6318b11a786250c520aaf32f33af98e830016ec92711dc5ebd631068275dae66d3d9c1d452191869c8a0b5879feea
+DIST cpufeatures-0.2.12.crate 12837 BLAKE2B 5b518c58c548d9116f94cefc2214fe2faf87c3aaf3fffbb0bf4085f75372cf7fc5144bc3f827101a3a14a51363d06d8075db94ff5ed853ab2ccffaf597728093 SHA512 52742595702fc3371d4126fb355f3d7a6da514a94e43170f1db041cc6c560027f92115eab7846131dba1018ca5c72003ae36f945c1de88d57a0e7f66331623c6
+DIST crc-3.0.1.crate 9950 BLAKE2B 2afbaee34f754953396e452260290422d19416dad4b88333e4501592deff3b3350363ca4c2b37d573ecd4e64a762b702b79445460f15fc90bdb8214fe43c0945 SHA512 aabe9d4058fb4710405146e978ec5881bce5ce8971618b69a7ff873b0fff15fc78e5c48ff0136ca6d37663a53905bc3c5daa0ed3a2ed4d8d721e90c3b0ec28a5
+DIST crc-catalog-2.4.0.crate 10155 BLAKE2B a9c3ef81871d72635addf1ded611fa6e963b9b128dda198eaa3a256512c8759608bae95df95524704aeb38f81e2fb6c2da2e29e306a8ed3dea595e63cdf05638 SHA512 25536456fe71c44fd8ec527299339c1d186f6e12f1f90142de60eabce337d836c2497ddd6307473b57a6cc720cfc8e29b059f378c70b8165bc171420ccb40a29
+DIST crc32fast-1.4.0.crate 38665 BLAKE2B 77398dedfa5e61357fb9abe3415ee53e45d3f1f7aaee959cbc9774f31a10ed324da2a558d20fd7c0674d450c8985b1e9c78b0b65e6ae2d9da6c873fe631c5ce7 SHA512 3e0bf1d2411ad9c651e0242c574cfda09403db24ab4b55560145ee73b31b08be45e5e12ce2db991d165ff056c7f2f67203fb2c048651f1c66ce90ec3276c455e
+DIST crossbeam-channel-0.5.12.crate 90515 BLAKE2B 5a302e58411d99d52630cd154f4f642ec925af3330ced9456a16e417e2e43a37dc2b2288ccc88137a75e682e7b10ab2979f1f90c0bd42ceca8fa84c700b7dd0d SHA512 e17b0e41901b2b41e89913a0a50cd1eaacbf64cd07f454605a85781b8b1373c35bedd16ccf6b24029404a3171e0d670fc2b1474a6448d0feb40ba0e41f99019c
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.19.crate 42328 BLAKE2B b2846f569555818fe7a3ef4aa29f68c638f933ee0251713c2c92624bee5f8013def5527027022963f572815991abb98d5e68d0fa00f478b2762133f84ffc84c0 SHA512 6e742fbb0d2a6371db87e81f8ac583259530a288237d0e8347394581c60004703a822318ec945936c410bb44001b115d8d986bb264e5b2d8091bb63a8edd93a9
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+DIST csv-1.3.0.crate 888212 BLAKE2B df05956223c50cde32f4ae6df922fbdedd8b50008a8898dd49bcc8bb7430d25727a03430c32ec23cc44ced043709de1f80f4d750e335bd12b22d0b06050881c6 SHA512 1b9e870c433e4d37e61cd604d2712c59ccd392cab55b8c88596a7094245072dcae02ecc80d3ee7cdaaa083ec2c2865b71712330c55e93715917a86106a2230ed
+DIST csv-core-0.1.11.crate 25852 BLAKE2B 9f56cea786b5b35f6fd5c4f41fc3cc06d777f6d643d939ca7d57b1f1a24d4ee16ae3a4de629e484b0e4cf87009abf4911dc4d1bc199968ef5c7f4100cd238d1a SHA512 0445c8a4d4d0f90f03e5d6507c26454aaeac0b355fb39d19e1676a7cb27b4372db3541367ce838d38151862b7bfbf19750cb550e24e74ab5e07ae9bb4edeedee
+DIST cursor-icon-1.1.0.crate 11453 BLAKE2B 964bae7d3fe138e00c51e52ad187ddf5b71a86d9b1bc9bb394fd27869d714cafdcbd539e2c62eca9b0912593d08187d550f5507e73754a00112560acb83912d7 SHA512 4e3b74cb17773ec2b89312fd4fe60330b785cff850102e9643bd06e99b5d96c11cce14a9350f295c6063c4133dc0179cbca13fefd7ab816e57c915f75d066d2e
+DIST d3d12-0.19.0.crate 16772 BLAKE2B da5466148c3bfdd47a9a70d8eea4599b68cd0381a8fc0e5f7e27893d6a5d35b9507712cdeb1d753c4e321fca07cbddc898daf0ede1bba0ac3ca6ea746950b6bf SHA512 8d36d0ddad5da12fde6db6dbcf0493059221bae91b16ab2832dcb73e692d47344c407882b25cae9e95e4554f4c8ffe96721b1dbe8053caff931956adb53e365b
+DIST darling-0.20.8.crate 31234 BLAKE2B 13e8ec124715f743486d740241273fa5ff046b5ede86c39ad5413b3e767166dd90e7ba7344a69c1e14991f0572f7ffa24b081ef54236712c5286f211fcfbafd2 SHA512 2b4cf37cf7cce9af8e93f576dcf36b539816e1ee7b8881b5b8480c45e038c97ca2d3a80c54e243d7c6e1ae23782947efaf0d67a37c0d4dc66301c8a86ce0fcc3
+DIST darling_core-0.20.8.crate 64442 BLAKE2B bf1844eba6bac260104e2ef310721d3aae7ff222d99b01b9bb66e3c71ab700095af7dd5b3a77043d6751d94af131f02f23bd321fe9d4a7066f93d1fb7c0c605b SHA512 6f2d047758541355b81e43273cd1eb8865624096c951643e6ce777d716e17256528c47fe012f33eeb1f63883ca08f532b1ca52f43394dff82fd1bbf323763751
+DIST darling_macro-0.20.8.crate 1856 BLAKE2B d7087fa67033c897aae582e5f4d3126e06e024b7db203de7e7513308af7a0ff6ef0584a150c6f30ce434ba6ce4cc2a438f89f024c9d6338198aba3bd15cdd116 SHA512 97d18bb22b79dd95dc5ab23ea7226f9fd2d6e418b7ce9aecd4d43b7a15b37cb91e509607b89eb3a914a5d3dc562b2a292d1343f87f594ab32d41fb583d7cbdc0
+DIST dary_heap-0.3.6.crate 23683 BLAKE2B dad2fc57dc12fb6e8c7f15fe4b1c6ed292c1057274423d9985149a843e82040dedbbe6f76a74888735fd294de9af5af80969593213521b7ade19320f2f027be6 SHA512 76ab17e04f79f8d52f88db3bbb7cb6b6dab1191f1363ebdd6487407e68d716446d043a9e8f43dbc06ed91e1e9d3e0d077f3fb246bb2cc83e831a1553c09cff65
+DIST dasp-0.11.0.crate 3212 BLAKE2B 2c24091fabf4f0bfbe7067a7a244e988d59e5dea3b588235c6abba8a5c4458691786300226824dc1f9c69057f60480ce8a66a44a436025d26efd1b7eee6f8941 SHA512 35e4c90abfb965a5810e1245ee64e030c47f5b6c3ba4b27577647a9a8a9eb7b0dd5a2d4db75067c6344bc117e5081bb47fbe053d5b151932ff39927bce2da2eb
+DIST dasp_envelope-0.11.0.crate 3331 BLAKE2B 44606b58f13ae3e9483d8aea7b3dad77b5ce3b597306a9825ff305ea8d7358f11dddc919ba294ed0e9e8cbacf8482fe87c2f36c7d08ae8f2d95a5df654737897 SHA512 e7a13a00b4ad8462f74ae1f87a66a21c548d963cd11070cc7c49a2846a41e33a4d52673d32a6567db3562f3a7f922dc15dcf838bd7782f9b3ae79676a981110b
+DIST dasp_frame-0.11.0.crate 4910 BLAKE2B 124cc78a826ff5926a7a9dcd9ae35ff23834640ec18ff4b64a7b1c1ba7d73c15e15515b6bade82849cc3b352ebe1707339f1f1c90d3c77daad649e939f12e871 SHA512 aec23bafef3d7aa4c0f1c1c9c4bed1cbf5e57731bb904c8ccf66ce908ccbb374b58e662654af5e940800de30cfb9726881bb2ddc155b80fe1d2d3e0351a57d47
+DIST dasp_interpolate-0.11.0.crate 3602 BLAKE2B 3ec024698f6daafb2d61a179a2a7b1ec61d3d9f7c3e644705d1e71a0c452c5acd2b119cad4a25a8891fe67a6648070ba4072c11103fa45acfcce6672133c4c48 SHA512 7ef2eb3fee5f22a02e6be437896478d5bd049c64776346dad925eaab0d5a7b2adf70f58e846e45925e97254b1863be7ee6364c2678ef199bf5579750141699a6
+DIST dasp_peak-0.11.0.crate 1602 BLAKE2B 7bf98534442705c2b5929e7476ea33eb711381fb4f17f789d5c0618fff973976a2f4d4c80fffa37188e5022d4e4462d31e940ab0a70e9cc7b015ee328b128f4a SHA512 9e7bc940f4ab5fbfd663b475fcb52fefdea52be6ed21e96e06843f4730c7b587a5317a74cd4d08a529641444544d01804f9be44af86fc407ba495148f3ad7de6
+DIST dasp_ring_buffer-0.11.0.crate 6319 BLAKE2B c1d0e0dcb1280fcde1e6817fe9c6279151ee95b95fcaae97885bb597ab63f02b58e7c974e4e94414c3103d0879554f6ea56a699964cb9a449129c1600c1d8cb6 SHA512 8a0f3ee73c432073eef5eaa64a744e21d1fddab1bbf18ce2a04ddd64f106e4b60fa27c6a603b51c33c5f1e4e3ed701ca156a3515b7625cfd5e88c1506b987f34
+DIST dasp_rms-0.11.0.crate 2798 BLAKE2B 21c71b5052ca11a7902fa0f8574159e4751673732347082e7613a89d5b17f70e68e26062acc6389038411ddc9162baf0d2d1c62d56fb689a1f860b15cbba52f9 SHA512 1d097935e43515040228104eed8003cae2b6a7c55b49a37a580bc1b21a5df042077a273c7aac8fee09a73ffb22e908f200b7f69915c806938569944c481489d6
+DIST dasp_sample-0.11.0.crate 11617 BLAKE2B 30bad992ba12c78769ff2f72e187f5ba0775a45f0af9d346d3e56271f414d3deb607415e73d40eb09023149c261ab02240f112386c0acec26e99d666cf8cb959 SHA512 438a2ed44fa3cc97edff6c6b6c2869dd06a5df790457e339a36ebcff024c152ade36740d889cdbedddb5dd7bd706dcd61778e68f5f42aa100eeb76213f5fefbe
+DIST dasp_signal-0.11.0.crate 22544 BLAKE2B 07841590ca78df87a5d39f8784d94a548fc1c487dbd14e11fdc48b695892d4deabb78016e355a4078752b01ad3b1c63c6f2abaeb9883e4347c0b44101a3b6a5c SHA512 40aa9d759a5edc1652d8bb8411cbceeb4789c876bec7806fb00d4746e10f9572d1a3b70d3c47bb272bd74885bf5072d8b9cad07d1f39f418172072c906089059
+DIST dasp_slice-0.11.0.crate 5637 BLAKE2B 07fec1b3390075d4ee0f6f1a6e76453604759c1bc995564f055cd1860288da75f5cee39cd16f84880dd6f0b23326e6e83ea8d1d0e0fc371757e0ddd89d8ae2a5 SHA512 6cb51d3d3573f13fc23b6d9a5eae3a543167afe944f59410a79c84ca4150aab042f0f1f7ea5f1e92720ddcf6da388b4cd1a470b18a83372051d096ff1f62f213
+DIST dasp_window-0.11.1.crate 2247 BLAKE2B d8596948e7d559ff76d89529b2f6276dfda3ad7f06ba665f3120900aadd4abfa3656cf3577fea1d8868c2c7c5311d744b39bee32c4d6d0d265fd896eb6f32dfb SHA512 b3f318e85b73dbdc3ed12b127c43471a10eb76a4a0a4c72311dccb5bea0d8c861b68f02cbdff1ff3bb6f1716445842fbb07bb342edba8d52b9983668e54e233d
+DIST data-encoding-2.5.0.crate 20632 BLAKE2B 16ea08dd12f09f2e6f8ba2910b3db07d4e7c9916e6a70d41420ef1a0e5393284b49787c47af0868bceb7f5d3f1fadf203f5a547dc8cb97713d5225dc9181fdef SHA512 b1de8bcfd7cfbfb988091fdb550eb98dfa5739ff58c4b789663e5db0d539c9acf145ccd72d87f7e1cdefd09d5771772d131d2b2e2589ac8f0bc6972c801ee0ae
+DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43
+DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
+DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
+DIST digest-0.10.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 document-features-0.2.8.crate 12979 BLAKE2B 6387136adc2f2d82dcf58a5c4b4f30ab8f918649b5fda02b31b0a412c516c1c4344f4a5cbdc9be777000252f32db6826aa588ce260021b16538afb01d873b754 SHA512 7d564698eca8d20ae66f533071b8ac27243889eb41fc419e929280aa54f508398924456e6f63cc174aef9f2df294b56d6ffdb3064ae7b68583ff1f3790dd03f6
+DIST downcast-rs-1.2.1.crate 11821 BLAKE2B e8a78afcd8d2f17c9505973359e2151d59b233e1757b4c7019047f148b1c8a4f28dc3a0d6eff6cc7f4a7ed986bf592ccf0481dc112768a9751475e1b0dbe27f2 SHA512 f37804c1b1e2cb0ecf2460fd6ab274c843c43e94aa7dfbf4e3c53529cca9b5624c4ea5ab5ceaafd72481165c7335f3cd1f846ae43deaabd18f363572825a5f86
+DIST ecolor-0.27.2.crate 10172 BLAKE2B a0e04c2902e1eba70a554a03c3dd619cd88720f2bc323b7ef0e54be54e0a45ec0253a76a0a8bf36ca06e6c868f1d1422bf04d6ade4617efc9fbd03852c05170f SHA512 5bb1e6d08edd4b7238af9938c3fd4d79255e1190b40ae23ce35a914eab530ca3964ff030b079990b173973facf8774a0e7beaeb68776c51b1fb0d923fc72ec1c
+DIST egui-0.27.2.crate 301121 BLAKE2B d4b7f511a7f6305476ea7d5b168edffe973d1884f2bb816d0a337709cf330ebad74576fbe97aa5de20e6186ea6ed0e3911566d0422de0c59099000b74c90fae7 SHA512 27246cc8fddbbbced96e6671aef72ea8bde7fd698143718f629386c0aacfd47d46ca1e39fdee24f474fef5327fdd1a8ffeeaa5615f5bc805e620a6c43414da03
+DIST egui-wgpu-0.27.2.crate 21227 BLAKE2B 3c93eaf15291436cdd55d7d6967998835639f8461f68b13eb2e5bfb328dcfc8825945afd4d91ce9bfa69a5dcf1bd053b24e86c27694bca117556db8d6cf94107 SHA512 76a982536a76fd79de636bb1dbc217717b00faddbc15a6cf3fb44f30f435c9d5277ef0ef9c999d76d01dbe8ea22c3e44aadc7d72486d810bb28f79fcfa6bfdd7
+DIST egui-winit-0.27.2.crate 19368 BLAKE2B 522df61925c0a4482ac724d1e71f8f3063791ab23996ade77eeb5642c2a11d8d30c9c810fb192df72c1b099e5af1e2386657b3a8abdc41dd47c484e18c89b0b8 SHA512 d36e7ee81010b30ef90673aea33f5e3581e97ef8881325e66f9bdf3f2202ab0fde46920514db8e06e87405b76b6732db8a90373ea14366136789654f39bcf6fc
+DIST egui_extras-0.27.2.crate 32589 BLAKE2B 689af5de768b65bc33d968a3d96c152725430364393bb58bac9d91da2408f848aa80f2ecfb2927e299584670c534d93498061474a3318486d545057da7673976 SHA512 f831c0e88d954c39dfd319804d4b3ecf8e9c268fc375c258594c9ffd541e4a7b8dd4f02c3ecb6d4b93fc956f5ee5b835c42580f23decc2a1d95b9b08bcfd6bf8
+DIST either-1.11.0.crate 18973 BLAKE2B 31ece6eb44a367926b5f9ee817f6ac9d93746f5b95c95fab360361f6b3a02160c682d298d115f39615e5b4758953f3f29ece22a72fe4285875dce03483f87486 SHA512 f62a3859afdba762b004d4c766090a25d3bd81e4a14509c3bd0f39b0d433aeff997b39759f7dbc5a012bf3b680fc4510a4b2643d63dda8171bad7403554905ff
+DIST emath-0.27.2.crate 22041 BLAKE2B b286f5613c6235223103e8cb13f044f78691011ec44696eaa237a6c278f426d8a33892d82120f2efba97872b9c78653b138dc0e44434455e99545c10a69dac4f SHA512 683c090187251e1dc4d95023e07cdb50d9b9cf7e0743c6de8fcc5a489a8e892c39260ad2fffa058c15a94372d6a728f05feb4c94314fbec6b77033f4b8e9334c
+DIST embed-resource-2.4.2.crate 16553 BLAKE2B 8a69faacabda9ba6560e352229f91121348ae40358156bacb560ad135364d82059f503f46aaa323e327c5f7a39886d779e1a77a8bed5c2f24d150f07b30af33e SHA512 22e821ff36fcc39638358946972295b20020c4851f39a66329405d39ba1916453f3c0b11bd9d31f94b787d8fd8fe7800ef13a7b0207edd00934e747cf50fb0bf
+DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
+DIST encoding_rs-0.8.34.crate 1378166 BLAKE2B 528692170cdb1d74ffb0b122a5aee61f50a2a7e4ce6db049ebea4a185e5c43d4ed99e515f08524053a110e061f788f861e62e0b04eb016e7a9e2678235a04577 SHA512 e23b87003814dd6e7e17924bd1f53989a5008dd1da07baa23c40d2a18dc1ab2d786d61e2c304b3f60e73be5f180ae2deea3b4499c0157b6afe3c9273d2f739f6
+DIST endi-1.1.0.crate 4872 BLAKE2B 8bbffc45ceb70777c6606714a7bb8f9b26ff33a295fd722958a5e9c556d5bb1e97a34e216514e5acaea51811d78fb4aac927c1f8315fcfd8000fda3741c53b4e SHA512 1a4b65cf77f530a2d15cfe968aecfcc9120957d23d2b442cd3d8f23d7039e832e7d6ab29aa5ad8570468421095650e26fa07f29bf75ae361416072241726c61a
+DIST enum-map-2.7.3.crate 21792 BLAKE2B 5cee4f4f5b3f29c5f73197de22a7559fd6264fbc3b146c683d93579d5d2e5e208ba0d6965a028aedb9536620b089fab81e7899a5be631217f193648f6ced32ef SHA512 cafb9346ef17ebc8940efc542d5613c32f13775a684db186f30a632daca1c17feef6e0e77ecede646fc688e1cd1b189ac0914e79c0263333a75bc50c1c6a9568
+DIST enum-map-derive-0.17.0.crate 10781 BLAKE2B df77d362cfee0cfbcd9354f65530424af9b501351544d97d5cf04c4a4fbd5f1862968bce42b719b9159892490e69c06c47d9fe1be4ecff16212e26906329e572 SHA512 270f2e9130e5c0124be707b7b4f642992768d2dde3b429cd86a192410c3618cabe24a914ffa79578f14cce72c28a55d5a44df8d66ccf3178c4c68bf4da61c065
+DIST enumflags2-0.7.9.crate 16555 BLAKE2B fc9d888285be03c9b47c6f2192467361bd4e67d41053a046508d0d431ac15b8cba69c265123a5403cdeac213d6c3ace8a94130267bd891e576b6d4cd34ffb082 SHA512 3899b6af180e239673d10cef2b02c848c79325f50dc40ce1ed07d00775d157679f1aee83b3fb79b8e432419810309d3ffd1bdde8c866aff723c2a3cc9d4c735b
+DIST enumflags2_derive-0.7.9.crate 7901 BLAKE2B e71ecdabe6c4e5ff7e01b1a820da948b000d614fb9ca6dd53c2a6dee215269d392a1e15c724ded3caae3b08dfdf796e1f61e04fc4a887956eeed8666fbf25868 SHA512 4bb89eba5b22cef199b19cd0d92605b5a11ec3738002b4fc2426c6aefbe6017f8b7156b3ac83fa7ecbb5abe54643b3456a8700ec831cf1dc27a518e621446be0
+DIST enumn-0.1.13.crate 8391 BLAKE2B fd02b908c615ae0565a78bf3d9977169be81ce1f176b45ff165c45df231d8a90601ba226aa449d52c929710ba796a08e0d81a6ab9dc59e4f6506f2096cec1492 SHA512 c0b453e3c5f37b5037d39327d239718775f2c554ff8c2f454447720b323c3452d6a04b124a5577960bde078e312f4f5d4a59ec8c269d5d0ad77c602f344db505
+DIST enumset-1.1.3.crate 26976 BLAKE2B 4e40cec8a6db10a04b598eed3aa7b9a81235ed95e433571ee4c92a699c4687a004dffb94721aafceadc4a6c68dcf08fd622385a802ad330208d55f7c0cea0436 SHA512 1fcc39050a75d73febf9f1976913872269f41916fbfe936b7ab67d7d61bd67de9ffc71a1cbf34eef92b2fdb0313b5c77ce9dc7adafae5992fbeb6fcf7b31c180
+DIST enumset_derive-0.8.1.crate 12711 BLAKE2B 752eeac1d1215a041962e3386ac95c1b8673921b76bc4ecb14acd98895f01ed3be24a95b5ac127af9f4fbacf65bb5035e60b989e3cc7d732db6015d92106ef38 SHA512 9ff87a0a5dbee945b58987f9d26200efa5e8d5c085ceda6e44ff9cc1b05bd903cdda632e459b26415e7e2195af79aa51b8e95fb9ee7917fc74a6102f220e5148
+DIST env_filter-0.1.0.crate 11553 BLAKE2B 8e358517c0aeda431239f14610925bcfd6be3bd346c7628e1818cdbaa1796bfdf2454db99cd06bc6ffdca95e7ff47c0a621d1f4c3bb50ecd1641f9d19efe4b4d SHA512 a0ab51c2b905466d23c75fd77b430dff2956556b7687ea434050c78a497cbe63018c5730be950724c0ca6aefe29bbc379ac01c8a7cd2779a69c5a03e92a21bf1
+DIST env_logger-0.11.3.crate 29704 BLAKE2B fd23d377d258ead87e820dd89e4175c0596b284d629563b7d04be10f80bf859d84a6e71a21d1c333a94779262608554e95bf7b44c35b3336cbedf545184ea6d1 SHA512 50df911455429a83088c87d30137fda6fc73971ffd32eb66f21e0d006bce92580c519d4a3a3fddadb7bdcce5d6dc33df853dff6373fe66f128cfd60ca26f9f02
+DIST epaint-0.27.2.crate 859742 BLAKE2B 5247bdc719f01eb803f23c1af84090451d954110f262c611c430d8580b6cfb8f095f47184a215490de7f1b1e2c039a1641e673b330a0189c52e7c4b6393a3ded SHA512 119bf8434afd490cdd363adfede22d7ecd1b8d9eaeb23f8de28ebf2b746ed01d71842231880d6cb72690381b88878eecca6032fdc8ba9b21db445934c608de9e
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.8.crate 10645 BLAKE2B 4a7af10845f11b3d8f177a75a692be468e8ef0ee53fb84a4d212335f1499456b6739a59af260894b5c3853d3bf21ef3490d1e3a613305561203ca334a636c3b3 SHA512 29753c421c6f929760cd7565f8171696e4f70e677654a7507253f4fc495edbcf214ace27be46bdfe5c1a0d782f4b688f591476e56f4a1096471cb353c643328d
+DIST error-code-3.2.0.crate 7569 BLAKE2B 815e83d67a1f257b4e9b3058ff849b3c37a44a0339b8a3ba175b7c3cf4794ffbc76369ddb433ec278002200702b83e32042d62e5603af5010ad4df4c9364c501 SHA512 d3a6dbfdbc1626d9502964dd4615fa5d39f8507996fe6e727bc694c1da54c1760b000d4827bca7a2190db5f04b8549c6345f262702eaca88d8b83a43649c37e2
+DIST escape8259-0.5.2.crate 5462 BLAKE2B 799d4dce6e7be45f96558ab665fa629c21a08748f953ceb34d8c5cfba2a1ec63a3fae125a27d2df9e820a8a9f53b0823f5e829f79877099ecb602818ac4c8980 SHA512 46e000a93a8ed9175807f7dc1f63787c084fe55ac6cc994aca772bce8a941fc81c1f277459af218b051952e78ab02cf9ee9b0b7a254f6c249f91e3fc2e4e9a9b
+DIST euclid-0.22.9.crate 76671 BLAKE2B 784f79bc10c04fd438007a566bca8fcf58de149d414306726a211bb822f5de62f91d6fe15d623fe36b82757d6b2426279914352555abe1bd582b64c6f196293b SHA512 19fa3756085051c86a58c4ea00cf459b43a6326c9b916e17e15160b43813dfd3edf113379dfdf5f345b7c96d294a75f1ca96f1065f5bac9e44cf340434a2dc33
+DIST event-listener-2.5.3.crate 15392 BLAKE2B c56ed5eafa64014141e869dcf952e86f755eb35ed1722f8139260cb502ba226351ed1bea301618e94c9ca7f3309747057eb5f7d7986cfcdb7f6b79d13d52b439 SHA512 ddd67c1139ffe2aba95d763b73db0e2a9985dd2e57cf8f72030047d53d46d833df4b4192730cf0af4e060ce52e4f2df23aab6509abb94a6cd02e0d8cc3559d22
+DIST event-listener-4.0.3.crate 39784 BLAKE2B 2924aa196726f3a6404536dbf494a52d266014b2097ea1f4a42e0f5d54bc2d14d6722deb4e40f1b1fb539ec12af7348275a75a9fe3e619a7f6a6a9156e0d30ac SHA512 2ed4f1624fde0643fc8eaf3275dfe77c15f936e1eeaae43d205f68d90e2a8dd3eee3b39e953a221cd19a88e8b947eabd5b8477dabaf8f30de328c0c13d132d7b
+DIST event-listener-5.2.0.crate 40217 BLAKE2B e353e1d18f50055ccdc4b061e86f809eb0543422cf67384f8e5dff7345b409d5f5cc3b27aa6bd7370e68a35fc6e924839cbafc73381316b6f48e6102eeac68ab SHA512 fefaf5cdfcad5493fd6f76011881204252b187ad1a1c8d57c567be94c81343490ef992d28538ee47314d6890fbcd288529d776ca9c2c94ef365868d324e9a4c5
+DIST event-listener-strategy-0.4.0.crate 10225 BLAKE2B cedf057e73b7d26ce691c3a5523c7492ba6fea65393ba20ca80ed091d3c4b392c85caf5a526647886547cca22bd703b0a01aaa8d018b07731ef909bc3281243a SHA512 02e8253ce8b680d9df72b786115d8894147483c5b44d530adb600718213424b2d87c899517ddacefe73738ec9c8904d042341d4aab8076fd19876e89972061e9
+DIST event-listener-strategy-0.5.0.crate 10616 BLAKE2B 532e5e73bd6bc8071d0dcbdb13e5b9a3ef1f0930b2d0a27183a9e203b54b0aa8b526f35393147c46c334a793764c338002b00a8df9428d3a7640d713b4f2f774 SHA512 553d7dcc86a9bcca01ff67e5f60bee536d208eb61cc28de1c40d30a8e7488177b8e5e3d50523d055e64da3d9051dccc02b984788f33f8de048fd23b6e964506e
+DIST fastrand-2.0.2.crate 14674 BLAKE2B ea23f52d745f4fcfd4ec911d48d77c60da837f57942994b17458daac7cae38953cf679459908d68e5f393d03a90cd6eddba23d2a86c2bc11ebfeed0bb41fe4dd SHA512 3ef9c21e4928071619adbad6421165ea82feb04c26ee18893b172f9f8a510b9a2097257ae31647a907680412b68d6662eff13cb27649ed9f5e68c374619701cf
+DIST fdeflate-0.3.4.crate 25001 BLAKE2B 69bffdb689dc467bd62738299ea17295bf7dd9d51c78b17e1ef6eee265056308703646791676c44430a686e1d713a8f561c5db972de7ab7c5e7b21050cad70f8 SHA512 a38b493eba656beb97275faf5a2f32c8a2c2cb12c5d5c280d37bbcf1406fe404151fd6312ec496aafdce802ef08745a6927e571890f9b290010ca5ac45ac9bdf
+DIST filetime-0.2.23.crate 14942 BLAKE2B e4d2d9c11745dfa5592903f3c3c6a9871292a02f9862607b610ead7562b5d1fc3b64d37e779cad0630bde8012efda72d86af5e687cd2ef5d3627d8a89bca517c SHA512 8d5ac82482758577d1d0669abbe7b880efc44958687bba745c9ee4a5c16bddb44ec0fbe9c29cf424e7120905f3c3da607f3a7ca1e50287154c0475ddf2148bf3
+DIST flate2-1.0.28.crate 73690 BLAKE2B c9f141bde0eda6b9c42da0a3ed69322c12c6c29bc522131f51ad56f6e2758646aa5585382407409257a8301f5f07a1825d150838bbb55822f2d49037f6279aa8 SHA512 9db6f3ddc4e1e91960b07c08712beabd911b297d93db8be3ecb97a392a4262e608c75ed8e9e34d87d58c3e67d1b7987734e14ab3d45fd837a2767e8016380284
+DIST float-cmp-0.9.0.crate 10102 BLAKE2B 46bce5f7e838a947bbbdd22b085435e795b67fd23479780f65bf1586a70e7a35f04f9af086be98bff24e2583eeac7c9688727a2ddbd1ce978526dc01abf67dfd SHA512 f8dad12ecf8a278769054fd78794999dae8dedbcfde5e77bdf6cea12fdeaadeeb2f1f3ca62df9aadc1bc3f61457236c4854d6d6923ad6d03ae7f23af600572e8
+DIST float_next_after-1.0.0.crate 6965 BLAKE2B f13aea22ad07b4f7518e5802ed84838ba8250eaf73354b3144d69c41fd7a2ff378e182139a36e73d6b4a9228aff8a9b720f72d078278ba472f6abba0b1690c1d SHA512 72e5b919c60a66450625603ee739aa17dede02eea34aa75e0ccf4ac07c1f4f3388c28ad7652627b70e0366b046ac3d09ae7611d8c5225527abb952fe5c59f546
+DIST fluent-0.16.0.crate 8321 BLAKE2B 1e91c434d1e006cc0c8939ec5435f55af5226d4a88660c91db2dc7e3c7ad7804786d5f6a1c20185bc54caba9781f601e82c0d7f3399af91dcbb9d0a5b2229995 SHA512 b38bc79635f843e1bbf2abbeba9ac99fd5c3b702cd1699f1424e7ceeba07a548cd3846b4886b9472c7f5bff52dde652acb8a17760c677c5246a235e0f02ff418
+DIST fluent-bundle-0.15.2.crate 32239 BLAKE2B 43cc9f0399c43391256ba76bc1231cd5346d13eddf21b5db1246a5821e61416912c8aaa2e35bb19e2b1220dbc96c3515abee0dda0a58ab9ad9f579270a2385b1 SHA512 95da35b5ef98b79cc37408f92e6fec38e27975d4e447e96d01843d3b08a3c7bf730984eb59690ca9bbef6c24efb1b003367aea22e2f76074dd0192066ecd8d67
+DIST fluent-langneg-0.13.0.crate 11723 BLAKE2B bfa4ec1a3a11360d28b5291e8eed2628ca6007b8afca726ded87d630394773835b3c8aaf818376a93a60de10feab25d7784c8d2b1e34e63b660d581a37d9626d SHA512 397d0a4f3508c7f58105dbb9ef7a32c5c4ebe4a73d80d2a19930479bee325839485c8002b49fb8c55d686ec9f3ed1d26493b56825b65d60ef7fba78a1442f9d5
+DIST fluent-syntax-0.11.0.crate 28524 BLAKE2B ff5762a9feb333aadac587296401d6386c327f93525a9b2243df34f7dc4532cd37a66d865660c7a6b0e775a6cc0e5454ec92808ca7236bf0265314a5be151989 SHA512 cd6157ed27735fe319b115e555760832ee29d5887d8a1a9932a47e880c97f927304320c7ced54b30984c65acfd5ce1b9dc659a8e27b4976330cb803d07f64289
+DIST fluent-template-macros-0.9.2.crate 4601 BLAKE2B 59dea2cdd7c7aa8bf86606d20deb70c70aa6647f4eea2e64bfbf57955629c0fa38481519eabeb0cde813fed62b990c66a643a16eedea4fa336c69decaeaf6c9a SHA512 f94218b01d9e45b6d5fa5a754c2a7cdfbedc7127c2ee4e841594e77eab2fc095efb65c2528cf022727c125837436d4b7b820b56c0ae3c8d236d9c994a55a3a20
+DIST fluent-templates-0.9.2.crate 23195 BLAKE2B 87235080c46bd6aa8f8846ad74be1d800e91d87ece482453e26521eff51ea7ba58fc12455f897f5aebe4cc736ed4c61192e5f37036faf099294d83d4ae044b30 SHA512 ff2a9c3edc9216baf51998764e5ea7c5952b26f1eb2b308e6ba774fce0cb80cd9787492ef7d9ed38c78c8deb9dc5c3fb8b4d772d6acf07af6b3ee3b409da8da2
+DIST flume-0.10.14.crate 65389 BLAKE2B c88deea78a5713728a6b6a94a4aaef570f6eee1af85fc489534d7b336a9ec9cfdd76890929a456a689ac196bef24cee68efadb30e06ad585063c5bb77fb2699f SHA512 ad31351031683453b77d85a89812304d63a12cce8bbd31dfaa508091cec52bc511739d4d13a085aa8bf9f2438fc1876a99f2e4ab2602bdbfe0d2ebb1df4eab0f
+DIST flume-0.11.0.crate 67502 BLAKE2B aadebeda44f899b6290df4ccddfc0fc49c4e55709243e9b1eb26b6a232aee042d2260c9b504d554551be54ad4e4ae1b1dc6ee861fee0cbb6eb92fbebb5a7d9ad SHA512 29e499f3de970d2d400c3826e912a49a01408dae8d933068dc94576cb0c2ca0e42ec4a9ebeffd17a20f56869f09eec04a2b90a335bfaa6462b8df474b2a49fcd
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST fontconfig-parser-0.5.6.crate 39300 BLAKE2B d919f290d09bcfd37b790c03b301dead637543082952339394504b6de9eec2baa27fb79d08cd782b318bd8662df100e40284e929940aec94be551de332d886b4 SHA512 8d58fa2db0d6444025841d460ef3703ed1ff4bab9a7399df9830b8c13155633932e90684530ceb85a6d0803bf8a15f1647650158e5b8aa6288e4300b5201319d
+DIST fontdb-0.16.2.crate 107447 BLAKE2B 3ad1710274f57bce123e6c9b3c449b7be273955e15da33cead1597dc229bb174dbe7d89d7413f28f7431127a1899d30fad01354f1ea41940fd82bcca7d7a1713 SHA512 7e18eabeb967cf5d2149362c8fd45dc809e8f4b2f0cb2f9753cae1b633dec1e2fa371905bb83ff140851f30d9bb824749a8fb23f90e8d528c24754df3872ea54
+DIST foreign-types-0.5.0.crate 7824 BLAKE2B 01a5111a11e48462914f9877d3228008590093633e957883fdafd3a7017e144c14fbbe713bb8b0061ebae78d20a49978191ce416a4e28317b67ec69e38acb879 SHA512 d07c92cf99c99419a3ebe05ba9154e396ab88116f46af736ffdd958c8e47741bca5d9f478f6719d5361360e844375968c1cbf6ac40995d47128a5e5fda3f6c82
+DIST foreign-types-macros-0.2.3.crate 7635 BLAKE2B ee89f576f2d892209c0f344dcab9dd85a671c976c8034b33dc984b93a5c872ff0353311657fa1dafc499243e55d3293a7bfc532ba55894a719a50ddaa6957589 SHA512 c3965e058d15159f789a8ab1597770ff6325e8ac9e6914c98450225ce27af849698646d53326e07b13eb3a9730452d926b73fd76e5a1fbd8ae4a6083bdce3367
+DIST foreign-types-shared-0.3.1.crate 6006 BLAKE2B 27c26518e0de0a298df2996da4959727dcc6a21bb4efa6c28869a9affe7ee3b427d1bae25ed6928477d07959bd143d5d4fa27325f8f5a5cb0ddd3cdb9e5314df SHA512 c68da34b55230941d6655f6a52d5dcb8ee02149f25c25a5ef782402f9a18b33047905f28b70183a5f45b45977c011a5320cf7283b7901c76ede4d82082ca4c9e
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST futures-0.3.30.crate 53828 BLAKE2B 4e595639500f7147ceb994359ef1656ed096ea679409a5721c05ff84ba439fe4e82563a7cf8dca9aed4cd16b03e89ba1385b0a34feed9d4923871225e131b91e SHA512 98fc67bf1047609c8bb0763c00ab9cb39b6a6d0cb7d993bce4966ddc2492a6578b789e98095981b207ddd73ac4b1dfcd5224b352a0e970eed347537c6fbea43e
+DIST futures-channel-0.3.30.crate 31736 BLAKE2B 57461dbb723fd53daa07b2fe6164125508cc3901e0138d2a60da5c814ade415a3611baa45c71487f1853812282ef358c132785ff40c630408e8544d57eee3483 SHA512 689531748821529c528772a6dd0f27362078ff5803d2e0b431ee5a0ecf8787b5a15262d65d52f48486ded46b88f7a9c477ad95cc2c5a3e8f5f9b9f53f367832c
+DIST futures-core-0.3.30.crate 14071 BLAKE2B 76a9fa5aedd0d4ae8dd9db9639839b6b342125759c1b9f9bbf58aacb4ecca316ff1f24ff8f3c15f559ffbf974e4c2cd02a5418cb4c4d7612dac8449c8234eeb8 SHA512 3c7259ddacbe02e47a84178b75e5f13523bd0c8f8bc0b2375f7ecca60b7075695ee0a5cc4e1c1de26665cf250271173be803661e2f2f53e2a3b96380a8efe7c4
+DIST futures-executor-0.3.30.crate 17744 BLAKE2B 927abec40eab31251409149179baa95a8d025f9cdb848afa83f95439c4768abbf6da8e2163291a086ea0b83b0b650d1e19cb8e15f70369b70efdc70eb3121f6b SHA512 fa65c038e5eeee695b2673cd65cf7529713bef47da373290595b554bc287267ee5cd015ddeda5a22169cc8828717987364584a91a69685cdbfc0fc779abd764f
+DIST futures-io-0.3.30.crate 8910 BLAKE2B c9af4290f45a9fd0839e107fbdfa4abff4f9077ff45b61054670419076f1c4508d7d560d4d86f8cd7ce146e436e531b9f5e0abfed2c4f2406c57be209cfdd498 SHA512 077acf5eab1101917b5b4b4b83347d30d533110d9a34c2de6db1411ffae0f0530f457033c5a5c14249119e89375c9f12127790b46e486dcd003a12a6fad48bc2
+DIST futures-lite-2.3.0.crate 39181 BLAKE2B 0e4c510d7b640efc6ca8e8b00f4cd51b05b727ce5d25d76e317fd5aec2f515d3b1dac57e4058c323fdd0c5d125ebc4073a9ab1f2ee21aee0e5aa0f9bf2e049ac SHA512 057de40b58d5ae06104c480a0e20a0ee4a962a93af615b04a9a34cd08135359c1f49f1b61577f15277fa73e9b7a93d2a659d3203b490ca4295b88fde2316bc7f
+DIST futures-macro-0.3.30.crate 11278 BLAKE2B 6311039db4bd31242e4f45bb7c581bec28eec9da850c47ffd9235c4baef5e5f1c72155f49573b2dc942a9cf246949b79c7d35200d04f91a13b0205cbd33d96c0 SHA512 220b5cc61c744617479d7e8ef9888785a17b9bc26c517c9c4445a39e8be21f111f77e53bfb3d143df18dfde23feccee17e349a84b897eb4d86f94d7ae4f714cc
+DIST futures-sink-0.3.30.crate 7852 BLAKE2B dc768e4ec4c9f9dfb22a20c1c977401d859072b9222e6f77978332f495cbd0f764b175a679c9d7c77028d7b56cda5e2d86188ee979c7f323187defa6a0485ce3 SHA512 1c198da8f4118d9a9ab2b597e3f7b4e1ac7094dfa547bb81f3c4148c45216ef55b309255849174a517ebddba6c874283425f1df6e56e2ba5150af091bacf46a3
+DIST futures-task-0.3.30.crate 11126 BLAKE2B c2ded9b9b709fc10c44cfeaa72d4e7477e43331b14f3e72433b25126fef93f2812a09b4fdc3c246b7379d41d3764ba17fa87c3e9c131095864cbb5f54771a204 SHA512 c190fa0acf7ff15fa67fe172911cfae803b2a8c08168570a5518a40767d08134f147259a413ab25c45cac5dbf2f601a9753c77ab0eb2c180cad2fe48cfe3867d
+DIST futures-util-0.3.30.crate 159977 BLAKE2B 9012edf76336952dab02cb61db48dfc74b6cfc17c137c36372709e8d575b306a4d7c4da89328067c9482a645aceb7b44ef57deb21a0c25964a5515e738a039d0 SHA512 7faae5aa35641d858d0f5430e4a69acd4ba9037852ad73c5a890bffeed411d28820883e18bad4ca8f7b0a765f9f4c5dbeaf5d0cfaaf90c2c69846434ae091951
+DIST gc-arena-0.5.0.crate 39122 BLAKE2B 729bba3b8ba18a644f826c943bfc2a94c7b0a401ab1bb46604e00f62e099c3a13b710b9836d6bc554cd1b44e3be99da4aec428f4885f1053f54c43f38fa47ac2 SHA512 a8d1eec4d9f9a6234b92a0b46b93d16d1636fe6fd3ccb8b3b6e6eb7543086c05357d7b6a745727fb618d153d7385d4e1a5ccc37aeddf18d6ab29cce56cdc3b85
+DIST gc-arena-derive-0.5.0.crate 6933 BLAKE2B 44780fbb252cb86f1b368d3cfd5eab766e52d34c1c8333aaa39bd88b01c62e0eb4fa3cdf747387fc7e38e23281dceed60263ecd5568e7760da443da4a9634f0c SHA512 55371df8997ec6dfdf11dac4eab5a1c1debb41c7ca9f61c7326831249f14e26596a26e218bb0d76545952e05270d347363438f5c2d7dd7c07ceca8373c6189d1
+DIST generator-0.7.5.crate 29947 BLAKE2B d6c68ecaa48f30e3657bab1315228194c679e6bdf71cf7ea28273ac20aa34ba416309d6253ac19cb5e940e7c058eed39eff1c0a5594103389136d10148bd1338 SHA512 fb634f5fa252acc3d22ff925cfc06f02c4c82c64c567c98fde9040b457b8248a6199d0ccbdf27d759e75134318c0bc1a9d9cb351af4edf5332cc184c90c89d3e
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST gethostname-0.4.3.crate 9336 BLAKE2B 12be5fdca0b6e3788cf3d67a4a80f283d240611b4fd37b6d1c37eb2503e4a7025b17bbb70adf421ac840d8f952434bdedf4691f31362780a267e21e8c4d3a006 SHA512 8c5dc404132f2ecf9bf82d8b89cbd698b4cb6d43141c47a60b95401da2e8c314347ab0a0ad5fba50cf98f01a621faa68293cb78f48977d3ddfe6e6f21926abf7
+DIST getrandom-0.2.14.crate 37307 BLAKE2B 5904388869335ea904d950ee83ad1867a0d3f6831b7139102b53f4bb4a2c12371c9396f1f1cbcc44e3ce69a4ea316651b1674722071bfa7562385ad4b6a88c33 SHA512 6c334415e09f570e3123e3c6c6eed1727533ac6c9c4142e16ae995c237a16effe146832a891be9fdde4335bd02b454e0fdd9160f20dc02f107ad106756221658
+DIST gif-0.13.1.crate 36408 BLAKE2B f2544552c177a4e33440b05a949f6b205d3dda1afcb7e6574c92ed9d31cdb3bf536e1914186730bd8777e1c10d86466dffbee34d975884f0125a1dfcce937bda SHA512 7e76ee111c6a94763c4dfe01faf4cb0b5272d5041e2b2b8f4db666debf647e192b963c6fb3228cdde28e1d112830c2aa31eaf0551d712ea9963e41e47e26fb26
+DIST gilrs-0.10.6.crate 127891 BLAKE2B c1e5cd7002eb3d88e27cb814fb73c3fbb7baa2b1ea20d2b89d0e58385869350c6003660a1510a37e2fac99e8e692683561f89601f253f9f260a64c9591924aa2 SHA512 62a6e035f0d438f5c17ad72678c9ffd13bca9fe095ff3fcd563ce1340eeba35eeb1e9ebee329de697fd7ee6e15373ef54b35cedc3de4e9ac3eca62e4d44ca50c
+DIST gilrs-core-0.5.11.crate 47123 BLAKE2B 55cc7668cea1cfe5f0a558ed5a9524dff2ba23099c48b05b7f02e8f20af9b2d4776c33debeae75cd7bd747404db6aaa40120778bda161aae9c0532997944b10a SHA512 cc5c96270e246e1b4e94a7b1d613d263607d02638fc7baebcccc990000a35fe52901b3c348c9ff657b97ae5c74b8ff744f64ac93abe1697ab869506f05aead95
+DIST gimli-0.28.1.crate 270497 BLAKE2B 4089e0f871295d464e548610ab5f0c2fd863825416109cf58ca827e482897f00eab23b795295758f1e3af16167b52c77c91df6f707f1f445984a6c4bcd68c6ef SHA512 695e46471fc07813dc4a47744458729b097f6efbfceeb57eb3db4165654e99bebb98dde2d73230b90bb5dd7c0ca0c6e77c7c3dc6f2abf70058b830a2fb386d25
+DIST gl_generator-0.14.0.crate 22330 BLAKE2B d2e84bf81e7c4e2869c3e23872bd86466ede80d6fdbdadaddafb1ae9ab45672613cfda319b15720c35fc26ab103ba106a997ea6f5d4654bc9db19fb86f20d765 SHA512 98779d525a042b47ac373340c6fd2e019a670a5bce643128ae2cde2021c0bc8b2253064819c2b0ff444e62bfb3679dc70f11f268c660050cc891063ed6b45fd0
+DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
+DIST globset-0.4.14.crate 25090 BLAKE2B 2c3e6f8384a066ebfa1f36bf03125b5eae79329255674e32c58963451d4b342ada10f17524232a953bee133b3c77b678a141543759ebc622b5fd659fe55622ae SHA512 e83e4f5e42a97609e2579b09f49c2cb0a76a94e7e2975c5871f2c5af5d3b809736e0a7b220404c582f4a0c7eebdbfad6cb432e89b26401b58f2b253f8c0151bc
+DIST gloo-net-0.5.0.crate 18586 BLAKE2B 8fb6ee702f468cbfb77ba40437f99f2a4c992f4d9787e79db463eee4d3810282569ad3ac0672a04ebefea012cfaf52c93b57220207a1af5b86c287d8de89a1b0 SHA512 9f00e686b0ba473b264752591cdc7bbc609fd998b36e98fd7ecfb09f4c3910050112cf7e2758b4d1dfd990ec2950076e5984ce0ac9d011b7852882b0ac42b557
+DIST gloo-utils-0.2.0.crate 5103 BLAKE2B 2ade2182cc7abd8bff18584a6a22efd185dc3d687461e9ecae86d669e21c007833a2b71320bf71b41d950ebfa23c433792ec140b6f373dab61c236c5f884abf0 SHA512 ffab533a4d05c62ac8096e500608a0e2c28760672afd69cb990b17c978f83db890e7db1175c13fd7ccba365b9363eb704c0b9387d04b8e2522e6f97dbf1cccac
+DIST glow-0.13.1.crate 150940 BLAKE2B 30916c62bf166cc5aa07cf2bf7f91b80d3580f0e7d16d43d77e185dd1fab17c96d1a20e7a018725e6822c2910776d27e57bd52677886461cd22b5083b9a605ec SHA512 2a7975f049fa7292dcb15a6f7d6141aac59a316f97a21c4ee65a6cf91594f8340b74a3e3135903be4dae51e6ec73892270531f0f76140dcc1534a93bfc46c49f
+DIST glutin_wgl_sys-0.5.0.crate 5469 BLAKE2B 853aeadd1e7a775deb075116d08efc0b17e7032e6a41bcfbc4ea87cd3c466596f083042e3b213f1e33afa4bb106ade7a64f346311c0c1cf6d228820859887a5d SHA512 a8f44456b66a95627f7d0fe3b8a79270368b11343a9f34feeae5675af0e0fc1629b5ccb00e8cddae21ae8e71f61028567d806796595fb94e02b31dc1db03d521
+DIST gpu-alloc-0.6.0.crate 19649 BLAKE2B 47fbe3b604b4ffdd2e44d2298e969117688378ef5ed32aaf698106cc06f9973caefbad0cf7ee7a4e75a5602bae9ac0eb3b0661ceaaa82ec1c0d08184d0880ea8 SHA512 b0d19c68c3d122b89dde988d2df53798ba7f3cc9475698eddb0bd116a55509610a9e4edeea81ffd501b3e0a3d50a656161b6f3eabadc7a14e46578f9f5230314
+DIST gpu-alloc-types-0.3.0.crate 4128 BLAKE2B 3f14d804b0d02cd8b2a3532412085db3b6e78a500c9629e3908ab1ac7787d8b807cfc88c8b98bba8b9aea0635787e3d6cdc65d2f565047c6ec74a90ed74002e3 SHA512 9b9f7e81269070269c592c3ded750e0507bf56e1062708ae0f3784fdffa86786f15fd647b07a5d9a4d8c83d5bc277f4062711a5af99e88604e0a0b5d708534e4
+DIST gpu-allocator-0.25.0.crate 44341 BLAKE2B ebc71ad9ce8178c07dd86c5b0db68177809b60d63d8c7094b23a0bbdbbd0c43b50c85a967ff6ba8802e87dfc11d8b2a526c096454dab34931d2135ce9578205a SHA512 b311f10c39cf01afa6d196b3557f3d1193c110ec3d4d8195b55c84eadd9e34a75c1b2fb72e79106d19b3399bb917b5d46dedf73ce3be049db918de4db9fe9f7d
+DIST gpu-descriptor-0.2.4.crate 6641 BLAKE2B e80259593e7768e96829e262f1cdcee69fad3e5ba635e61e83d40d1c43e3d50db4f88c7fd0ce70160e65b60f220cafea290bfe286e16267c72dede48dd7cd8e9 SHA512 f68c75425ea5c675a61f7dc0ef23a9b38772acafe6eab15d5a1f74f2c41a5aaf3433f685dad31810df2c82cbaf8ea2b0b15c272fbde38e0d9a02629861e8a83f
+DIST gpu-descriptor-types-0.1.2.crate 1928 BLAKE2B 5f36337952eccc0d564d9342932235d26cc01c5234a7ee6f01525cec10236e59b6c039e81c595e3252e5ddfce246c877aaa8af928f6965d4e07b67694df5f7fa SHA512 570308c4f788abeaa0de6df121b8111b73c7c9f81661968a9b3fb40d2ab1f593ac89711407a91693b05ae0a8189b741030b7b8154a5dbbb2e6b3aa794c5d015e
+DIST h2-0.4.4.crate 168905 BLAKE2B aa71ad20ac387054449bce337d9097822d583c5daf7bc3f703f1a8dd204cd616f0f690ca39eb5e3b623b5694ca9c5c070f829d461a1f6fef0b94882b142806e6 SHA512 469ea1d854a70fa8a0510437626b0e0b2fb5409c6eefb0f5a89be5cf24d9082654be6cecba3d817a19604e8778deca6fb10762bb29e0d1bfcf8548031e3ef4e5
+DIST h263-rs-5c8d9d7d86f62b70ca484df006a75a9c8ff1985c.gh.tar.gz 89864 BLAKE2B fc2f799c7b72b4e039615ec1cc608a45c5f06c5b65c5acfe971f2fece9278094316557e4bc19af7472eaed25057a4ecc7cc0c1d5ffa1a3662b361645c7c8b083 SHA512 43cc6b5b0ba97e086f7ab22a100b4527ae6af095dfa1f9694222414210c989fc80a0001a632074b7a1e9424a7a8b3e34071e0efcb1be02e73be30de8b61f6cb4
+DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70
+DIST hashbrown-0.14.3.crate 141425 BLAKE2B 23c63a99c6c6b7a6b9b9e8bbbc7f1e342e1eb9d7582fc9eb408d3eec50c99f34502d450170bcfef4da7f2b1e743e1d1619875ec879e4753dffcb84f3c10dc3b2 SHA512 4d344e5c89ce58e04668b80ef10e4e110a3a5daf4d610c52d980577795d0e2050c7d0b151d8ba97128117665e27b92ab0300f85b88bd6e1de943c62d49249356
+DIST hassle-rs-0.11.0.crate 27178 BLAKE2B 5af929f5989f5522fc04aa27631b24dc53aac842a238d2c7e3a5f45221ab56a0725578cf3bde1b070b88a3d151ee6522e914318fcaeb0317c0da9d2cd74d082f SHA512 b4eeed4e47236cfb88087b1b6e4d2ad7c93acd90e55ef4c1b039d3798b3a7c6f81238200c15948e42be69010a7bfc24bc20f309dedd90625160a5a50f35e0930
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+DIST hexf-parse-0.2.1.crate 4662 BLAKE2B e1b6bfef243b07305d7a8f08c8dbdafb67dc50c284ae70ee7032ee8bdc4e72928b6f45344613db63bbaea49d883f0f54e1c09235fb951c1a65755946c557ff55 SHA512 76e64d95121b0c3cd534a0005df0933bf6430f50969ba7a72f6a8261c9b7830c00a65b9286315cf78dca4a23c02bddf75488004630ca9839cc371c43efc8cade
+DIST hmac-0.12.1.crate 42657 BLAKE2B 5d432a666dbcf9077a98e1f8a4aaa3afc88f3d88553cf7a2356d117c66f38efafe686c148598ad67ae89d64ee3edf56387a6f89b75dd9ab5eee63e13953dcead SHA512 77d4bf51f4633a8c36712ce3178945141df31cd645eafcf4bd130b8ecd7cb498bf1ee6f2d9c8dfbbc9f97ac638919fcc81bd3ee600a1b27c3be3fa87313aa0b8
+DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1
+DIST http-0.2.12.crate 101964 BLAKE2B c35c2ae5f9494cafdfacefd778b4b6824588e74685fe5204bc6efa87b667d00b28f59cae667115fe45ae332d8542e7a0c2c7c42fdeb302302f89b00cb716f380 SHA512 e32dd4600aae7e26f1d530871815b30fa0b9bf95293005649bd9a7bc4df7f69a1d8de503d1b8873e67a5496e644d0a47db2a0680fa1e9058bee4dcecccebee58
+DIST http-1.1.0.crate 103144 BLAKE2B 7a8c4ffd3ce664e1f575bf4042ac0f15ff42b200fa8c6aa27a6686d77be2de7cd3df242e36f8cb45cdb822bfa96011d5d5dd7bb03122ae5bdcaa15bbf9d40051 SHA512 1c29f25a8895a69d815e21df427dfff7924e9040d01c55cc3256dd0b5e72b670fe75b1414223fb971c16082e4b26217142628be5e0905994da4f08b52e7f4a33
+DIST http-body-1.0.0.crate 5411 BLAKE2B f560b45bfb1525fbdb209982740dc2da5688034912377b88a1f0e069a003bd3fba3d3f248bae98dde043e6f797f256a219228611e9b8035e6181f4c84381f823 SHA512 b351df7a2ec991787a57232229f80a29a648433de25efc1db2c9453d5a09b75c2e8b0101268b6753251c686a2af9ce346e08bd016f4e93891534f428c1d80183
+DIST http-body-util-0.1.1.crate 11930 BLAKE2B 7e8388c2e15f7cd2d4e4630bd1af25bea49efc2444b18aaecd5fe191d913c7922a34efcf48b69811e1c64923bb7dc1e3aae9a2ca2daa1b1a5c9e12c679dcf787 SHA512 bb3750ab98dcaa7024c1b5a90b3865b303fac8f723dd037960f12815c6e0d1e68ab5e09dad0b7ab3154a820e7ec4a5bc7b39be104e5721c7ef1fb36416fd9b24
+DIST httparse-1.8.0.crate 29954 BLAKE2B 82c48fdd6d28e94c42df180415ea3e30d471ace2fee09d7d8d33aff0a8e9a15d3029c90f3bb036b4f587c8902094a2ec21e4ca6ca7b654a82562bd84fe208ef9 SHA512 849159d9876e0474c71f3c7aa3a7271699b807b293832d88d52e4326ed410b25f9d7b9ad75a143a51fb5c8ea5016c2513348edbc050d3b62dc9a6737ae98ee8f
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST hyper-1.2.0.crate 148064 BLAKE2B d0ea30be277a41a1faf699b306ec84659a4c8b8a90d192c8b187a793103c2cea3670bc7d378db706039f4555dc7c66298fb826bfd330e8cdd4c97e907bd7e375 SHA512 1ad844b0d13206598ea8ee887255f4776f2ed9eac3d07b1e5b07652016655736868e5521aca0c436faa418dc47fb46cae21870cf97858d16a21101d84fbf6263
+DIST hyper-rustls-0.26.0.crate 29538 BLAKE2B 9c6c62097e17b66e7cf9fc1325daa1e0b851ced699fe5c19a42e061dcfa7bdb26d614d6aaa6704bc07b5801b0efe54c87f8f6eafe2462ce01c0ab85418e0c783 SHA512 df6bd4e2e9b5f54315c4235c13fcaab4bf9fcb3b0f1673311da60a34ab22f2e566c4de3d3002e65620fea0b7942d27a83f52187310cfd9d8ee4e06ee6fe384db
+DIST hyper-util-0.1.3.crate 61647 BLAKE2B 25821f66f7576e89b5c7a5207a4179a7e86f024b04acd1e8c7cdc8be3bc8c9222df1efdb14de087a0db50029370a84ba5d48ae2a0d85d04c1322bc1701a4c2df SHA512 fa68ae79e56a40beef318ec1b3fa6683ecd49371a64b123e55cb311a739d44226bfd526afbbab661785ce4302ef4bb1bcbff80ae3c6af26a4db62e9d4792a114
+DIST iana-time-zone-0.1.60.crate 27074 BLAKE2B 6f534056e220e2f721fc7c7f3ed24152eea7f07d1f4cb3609ca734ade32a2d6b18fd0164ed831170cdff192cbe48653b2c4eb0903fb6f157292b3b5bf47299bb SHA512 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST icrate-0.0.4.crate 1040120 BLAKE2B bf09a1f5e4dcb6b119f158a6d7c93124d7f8a2434fbdfa19e356c282a3bcd2c191fe028f7c45becbeb313d163339106f8999c159b33920f90d70f7e09123d58c SHA512 2aeb124d3b303311500c163a33b033b8cecabefe53f50da360178c320d884e3b11d064da11c52d7ec87e97d4bdf6e6f47f71d1b7609e226fa3910eb9b7e270fb
+DIST id3-1.13.1.crate 61018 BLAKE2B bc7bac0c91cb81d5f0e1920efe02c6b14196e80b0bab3bbc29dce23af2b27efdfc94bbbc2db863a551443e2043b3e36d6cb8963e01eb76aad4b0c93a5882b160 SHA512 a5848324df95bf0d9e693c89d24620b3b235d05ebd2dcbbd699eca2a3d6850f31aa65f0ba9e8416473d30e3b9c10204027ab4f6bb08ec5fda5d4ff48d11fc62d
+DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
+DIST idna-0.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.9.crate 9261055 BLAKE2B b4d95a88fa2fdca01e5d89ba9975be22269e3a5d90d24bc31d5f1168007508a0337d0acc5347be012c2b98de02e4f481a573f012f47a1f1e365d26d89df236d8 SHA512 3f858efceeed54e21543eee065ca6008f40c568e1ece1016b38040eff5625c9fb6de77c7e950c08c9e82b9fcbd4c4ec2f8c4c1157ed5d232bc8e35b4850420d2
+DIST image-0.25.1.crate 9176733 BLAKE2B f7daa1982ec510de79c925157f2e1a861c89a92f1cc043617469f3c95cc9158f1ffcf274513556993bbc4bd5ee5f86bcccd406cfec06d98b0330bfc10687acac SHA512 4252672cb5b5fde61e9c7fce1712997ea082e3e7d5350970d597c0a1421b21078e1b4c3088474c4b500f396bce604d0749085fe4cdfe1c3b5f3d1ffcd39c1b04
+DIST indexmap-2.2.6.crate 82420 BLAKE2B fac5cf6339dc3c0a40b100035a5c874cc7b2efeafeb31c51488d25156e392dc9db86a497e76eead351d2126f69d060422faa9c55d73407a0de9f5be18d234123 SHA512 53211c4a9003d751feb6dcdf1a76495764cbf32d24bbfe2be7023946622ef4f2b07a6de57109e5d24ee01892f4b2be0e0692e10cd31fd39c4ffdff4d37abe9ea
+DIST indicatif-0.17.8.crate 64869 BLAKE2B c534020b2c7b25bb07cdd0fd4414fc817506647cf5b8e2081c22be58857d5adb170082a3756004c69187619fc5625f8b9a1904566dc51c621838e09ecda5b43e SHA512 487e73445c5c7d3c16d6f93a3d9767f41b37d2832e56851154f8b69e678ab7d9ab04eba225a6bcf8b48842ae0db0249b060e998e29a252dedf8afacdc88b1aaf
+DIST inotify-0.10.2.crate 26200 BLAKE2B 8080cace302b0e5aca8ed4188126992fed5b5b4f3624d0e5de70dfb426583428890513faae2fa32c31afbe1051aea03acb7a7f22d0720a24569f020a2a5ec940 SHA512 79692a043787daa67284f9b94892a09a2bebb12feaa5be2e1bcfa213b710af5499a4fb62b837d45793efdc19ed1eee00a014a7a620b5bfc9a594fe0571e96929
+DIST inotify-sys-0.1.5.crate 6965 BLAKE2B d70124656ce3e6f5ea3f430e8e7100d0691003161234b40542ca86c407ecaac1785f3eca98e9fd2914dababbc3f47a0855c99c9f19245d1f2cd5312739c802af SHA512 dae749f32c533b0c9f99963d97a77dcbfcacf173ec8fd7a02f275804f9925e867b4dfdf6be52c3c3c3de136d64e6e7d6b30a3bf804a01608cf974b0cc2e346da
+DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb
+DIST insta-1.38.0.crate 86379 BLAKE2B a0d349fc486dd4dd771b292b3013e7609e44e6db70c661b37123985427004938022f09bf82dcce97124e7acc1d72c7b3895ba0cf7d4dc2ad2e6334a02c85d3ce SHA512 c0604d51c34bcfa696bcf1bb98bfeeb210a91ad8f58ae2df0c81acf99a8380484a0e4bf3697e8363fbcb2a9c946b00ce91883f5ea9fe5b997dd772b230b86827
+DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
+DIST intl-memoizer-0.5.1.crate 8292 BLAKE2B 32b42caed088028a254c8eca21aab5b44c7e4348255c09009a9e97f205cdb92743c9355f7eabf132bad1a22c4c30335708f1da13b3658a4f0eaa7f77f2721b14 SHA512 3f505dff396039da10ed45c1b99904601dd4784900c0b9f1d0c73d99df656998c56c7644c8d3608d08cf23516b9e35018acdb810e8add48b8435da8e03098a7b
+DIST intl_pluralrules-7.0.2.crate 9201 BLAKE2B e80c46d863296008c85dd8738cb1140cd246c588daf2ed531de97b9f07f02d44ed7fa36fb61c05f717d59b870f924745a4babce25f6bbf170698f6d21da50546 SHA512 e03eace1382afa6704cb2118701c2281628c15df753687079eb02cc13a8f80b07c122b44618f2fa85438cb7343eb676f3c09e08216589c480deee36e7896eb43
+DIST io-kit-sys-0.4.1.crate 39052 BLAKE2B 4e5ef7c37b27cd9fa2f53beb2618ce3fb1fbb7c94ae5fdf4d53992b5671da55d2893b84456a622e2a96c6a0cf01aae1492ebdfd4820bb52c0e93ebeb0d93de2d SHA512 fc9bb9b47483c3dce0adb233faa2b47ac9303786771d97e3ff5836c81c04754406cf9ebe5fef32cb879dee5ff3f10d6a81a21a423dd34f3ae1178d94fb151163
+DIST ipnet-2.9.0.crate 27627 BLAKE2B e7e1c74815b965e9cec1cd37cc3dca76671168feb689620d44d5e635f3a5fa92a7276cb3022f25a9512ffbaaa11b0a8719cc1b838a7dacda71a5beb1a992ecc0 SHA512 8ce429ba2bae53cfdaf8a7d6bf980e10b9dd515446ef3ed4e4e11432043a18e09454260567419818f523bc589fc367194bc345660f2cc808d281db235d3e0b54
+DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST jni-0.21.1.crate 105028 BLAKE2B b384973d4d991de027da3f0c27aaae33a5d1f2ae8037f0121e8c637a96382055611da753c14732cd9fda56f929b307c988f1c3f6bc2c7617e2e5182a66a943b6 SHA512 46897d5fb968e598fe39179307376305f4604db61ea5d7f12050506a6813e242c05785536528ff2d59de8a3877f6b24be15c30f451f1bec40a5c72fa3b772835
+DIST jni-sys-0.3.0.crate 10232 BLAKE2B dd6334daa6db9fae6cf1b31b9c13f09f9dc3f6a0e227bf6779880a6e197189d91583cd463b9876125cf892ffa5f8417dcc51aa010cdb8c99bb4f969990e969b1 SHA512 1e47582ed4dcf608ffd218549f1eef5ee3c87a89e28c65eeb5bba801edd6cabc0f095e213e8df606e050a57608653a59ced6f01a8bc76a5eb32ba1a337a63321
+DIST jobserver-0.1.28.crate 25543 BLAKE2B 90fb1d8696b575b16b5b12d6fa4e7bc7890f5f09110b147d65eef8888a16ace1446a789f8079a3706f0252be8a04061d989bc8fc53e6c004d6b8a4094baf1642 SHA512 8ffb33b8c162935de1226e0ca4048f36e6e90bd1731cc7f06110bc97e2adef904f777df0ca4ed48b3b8ee4f2c243b2f883f6897427867904aa3385098abcbcee
+DIST jpeg-decoder-0.3.1.crate 744364 BLAKE2B 0ccc3a7f42e471fc1fc7995fa99573b798da89911667e477a310d10b95745708e583d53776467b9d54a399047b727a3fd4c26a1387382c226f6594770b21ba05 SHA512 103b7602876069603620cc2b5530e84fdab88ec96855a821606560a67cfa26f628b401eace62ee793e6c16ef282f958ed789f5db725ff901124fe6c9b123de00
+DIST jpegxr-688021cb0a4935295f9aa8b488ca05bb4f1e9b34.gh.tar.gz 9321606 BLAKE2B dbcbffbe21d9de5709d9188086144fc56289440b4d34648a524165c24acfd45ef53d204c587403176492a53c6e4d56dda2a2a9b41aa858e4657c1c169b9537a7 SHA512 64e605477e6acda146abc1cce4974581ea0f68a13e944156c0376770559c61f7a5ff9bd2cd5324a4831e27a7467bfd80c176c74b5527a2de596399d1d1e57620
+DIST js-sys-0.3.69.crate 81083 BLAKE2B 529c94cd2289883b3b43a848d47d8ae025ad0909548a38ba93ebc684ed3edafab16842b922da6c8b6be5ba39c36a1c05057dd3dd93fc8936d5dac372937ab8f6 SHA512 506722e6dc13484828a4147d974822ff9d103d9e7db58a48181b0957770d9fc43b97605ced105c5b680d8b2cda5fa1705f605707611cb48ed8a45a96d5f196b9
+DIST khronos-egl-6.0.0.crate 29315 BLAKE2B 929d825923bce022ce13595a0ad183a3437581af6cdb19ece34af853c793dddf0a63bf8dd9a160ef253bc4e97c38d4973f667340a809455136b07dd248d2fe46 SHA512 be57e604f577ec526f3f2ea81767a5fbef0b609e0c1aff7c14e2fe658e47bbbcf65b5ac9d6dafb83d2b4fe25039550e21a165fb1d503ea08f167b039bd72cdbb
+DIST khronos_api-3.1.0.crate 599718 BLAKE2B 945600455c85874c37c7c395162a3e56531b417a1e6ce414386ecf31f8951fb40049604c27d719014b5379028e5da25fb9977c7487433cebcee4ccc49e00c7d5 SHA512 f9ed9e1bac648a82bc608bc7df339d3ef1db868c8ce8bda9598926839b3de9e3c11c2b45886b9a7dfe5ad6900770fd59c690bfe9a87f7c5b479945ffb8dfd292
+DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
+DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d
+DIST libc-0.2.153.crate 740614 BLAKE2B 523a41bc8cff4ebcba0edbbe9e6a2286ec7cb3ba5e90ca5926c972b68e4b34188bc077d20c22376238c3cd91b7455898a95c505ace4ededea88cc496edb4c5a7 SHA512 3f99e3a192974fffdc053ef21e9ad5fb54b7cdbd4755df176704a95dba38047138ccab76763e89c6b565f37f98fd549fe368749f84f6d1638b3209cb07eae9b4
+DIST libflate-2.0.0.crate 42505 BLAKE2B 2ded808b1aed0ce708ce85754359abe470a481eb8aac6572d1b5a525cd68d452da76c2e29d57f40f0568aafb451b9f3989ac16a805486f153a2564e995cbc192 SHA512 62f1222ec0f439ae6c51b89ae2eac7977ad0eb4fe125de21f5decce98cb2f05ee74b4da9b877005b783275ed7eee1e99de386eb927f86bd75d50369820b40441
+DIST libflate_lz77-2.0.0.crate 5893 BLAKE2B 5340b47195ad0af44011906224664d561e6c74145b921656a008f0227fc5d79814c6b189d68f1b5783b167b71b41d1a81fb2eda2035b066c2407435f7bc73498 SHA512 507d24d0e808ac6f3afb9615d325451fe1d02954a48d057c5a04d2cc2416f22b88d0290000379d250ce578ac752b04abaf8c191e97350f0c44b0a839d282cff9
+DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1
+DIST libloading-0.8.3.crate 28480 BLAKE2B b8588be0e7034e94c808490adb8ee6e81c29e962aec436a0d8f8c7617b3ba9177887ce59b95b2f0af00ab030bc77b73e0a889d8a77b84deb437245211a969c94 SHA512 af8fa5fe2428fa98177d6adfc01bcd6e701b0d77ac18c95b8b8d5abb3a6376f16241ccc71b9fe100782c73c843ca53c9bad465545d8bb7def52320dad0eecef9
+DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5
+DIST libredox-0.0.1.crate 4212 BLAKE2B fecbb90e2842a69f3967bb2a09b0181dce1720b60c5d762a334a279b52c00a9b4b52de72c6484603981c0c3e1cd8e173ef5e15fa290ce8b8888739204956be92 SHA512 31a9234201f5128f1519e108f7424d1740a67699828265cc725304a70f6a51e139f1d0c0e626b487857a7b421f25ad93e81b95b65cf0d3e0ad912388deecfb41
+DIST libredox-0.0.2.crate 4538 BLAKE2B 3b160b1ed9a476b1d51fb6a107ce2a5955495cd862d01854c79ac4f1cc1aacaff57f83e03be9b14f3c8fbb67c4124946aae19046620eb968fe97745d8cf46fce SHA512 4c321f6072bc4d6c32f9a2a8bc3ea64443e1b1b770e9d2626be86b3506cfb804c3cbafe376c7300efb09788510a57a626ffa65c9eecd447a2ad29532c307dc9f
+DIST libtest-mimic-0.7.2.crate 27619 BLAKE2B 2a7bf5430933eb063015e7c8613a2cab3032c6386fe9cd3bec50b9a894b4220409d1d30fd140a5076dc2b18906338f758a7102ea1abc4987dbbea07a9bbfc772 SHA512 d1078c9481775e44ea1fe7587bb6925c3be792304e620b553c38a8c21083acd686b74a2933dd4155d6330499f496e0989afbdea5b277ecc9a41d057925485611
+DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linkme-0.3.25.crate 13890 BLAKE2B af9e79f651a3f1d55f48ee2cde91b5c5746419c833d908dfe9fab00918612464e235b46406eb8647c98e56b76db65e12eeafb88895d0941e9f25a9ccc7b8ca3b SHA512 7e700c904cee012005399e73069ba75bf31c583f72c35b36c20e1dec3fc3f32fe3b87d6ee2cafe32ff1f6f8736476d60bc953227c95957162ac036dcfcd18406
+DIST linkme-impl-0.3.25.crate 6912 BLAKE2B bcf05b34894390536cf878b0fc0a363951011fb2f701ddc4e38fbe6103277a4c39b11641278b43a821ed047809a86c5a3bb8a0fb9b0e15728f30631d71118f81 SHA512 799f72e1184a9cb22fb72ab46ed9444e6b3e849f2caebc59104b11e623826cbb0f88cf2281aa767b2cf14d5fbed7a33dba8a6c471dbc47d63e3a72f2a8277d3d
+DIST linux-raw-sys-0.4.13.crate 1493855 BLAKE2B 1298a038276e2424eda9873c642fb43d864b343b03b7962446122d2dbea94d58d9fb2b93e890769e6fe4092378755413ed6afba81ce56fd61e512146e44148a3 SHA512 3918da6b667a08ef8a51aa0b087129e2dc5ab101669cbba7690fc98ae2659a36861bf9410a3b87d18522a7549d43ac169b995ea192d3073f7249305a809cac62
+DIST litrs-0.4.1.crate 42603 BLAKE2B bb5c471204b982708e4a9848aaa8ce3699cf929a16d1beb554ff422fc36ca7037c84cd7fa83a19f6c2278b9626e43a4a0524842027b6a079e604147162e6e9ab SHA512 49e03d5307d9cc31d1e7940e7931f062780728530c3de0db92ebb636b7d22581bbd9900c8994e545a8fde5d3d5564500af8fa367f54040ed01d1f18d2e48a22a
+DIST lock_api-0.4.11.crate 27487 BLAKE2B 87116cf908f7f1f9c300cedded989df305f855883e3df5a482de2c76814c48739582d3079d76a2bdd14a6999204b7fd31dcd8fd06d1dc7f9418f0e2f70a1450e SHA512 9946adf313a5c67a0dd87a1b679b7d9d16a86149fb95974d3f28aa57a9a1a3932e4a5ee1d332097559329c5e3b2295be2e4b655b115d9f75269f33a758b17fb3
+DIST log-0.4.21.crate 43442 BLAKE2B 8429b3270794d3e2c7f7d5b58bd4fa1abb9d4807ab3a1ac980ac81c11d9544635003d8cf2e608c2c0094865459108a2879f280278e121df68d09bc1561d604ba SHA512 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b
+DIST loom-0.7.1.crate 73744 BLAKE2B e689335f9e247876650eb1d90cbf406be917ee0060d90855adddc302ec1d215f4303ae52ccaa5a7c6454e032c5fa96adb09dd50de4a737dd981630feb7fb8a2e SHA512 1546c2d1a0043274ca820afe69586cc390331cb4972bd6ee0e42143a59ebf41bf12fba6946d94234df9b7bce6cdf24d95c7e54198b619cae1c6edc446a51eda1
+DIST lru-0.12.3.crate 15009 BLAKE2B 2b2587a602409113a7ed61d0dbc44b8b1740e44897bf9273011e6196db64a51e6973436d6bf34df7a1e534cfc0490e0bec4d83c0dcb0f53f640c80b88713974b SHA512 1768ff09e294ad7b0631a4c7cfc1773be57568329901e9c2034b1cffadaca9963180b3bf8194554bad2f9f42f6c5e67d52dc90ba7d75d929cadf31642f4a688a
+DIST lyon-1.0.1.crate 3837 BLAKE2B b7a5a2be4e96ddd974974495a61e50e782f7d3c08d8b5e14b86a2e02c55a6a3848e332405ab61d2f7523eee2291e42869814f208d41efa28050f2ed79e2c8e95 SHA512 f9dbad320ccbcd33d692af4c8d7998745ab8d86d307058ce132432eacc9215c8cfe3c42a6d5edffa7942ef892199625be5a55bbfd13ce383c3e9f1465ae81ae5
+DIST lyon_algorithms-1.0.4.crate 31806 BLAKE2B 4eb255b1c1ded57b7bfd947a503afa6fa4b7a2c6240c2442c28e0bc41797150786510daf741eb518ea7a572b2ad05db95423d5e83fcc4369448c08a73183758b SHA512 cae8b9ea4618304f0025ab8d0fe8eda47ee16fa715e279ad698cc06e8ae7f9799be2b2a786fae0133c7f2e8c6c40ede9b9e06f7a5c20cc7965d4648ddfd01921
+DIST lyon_geom-1.0.5.crate 52658 BLAKE2B 9dc405aff5616913358ee97f57de77ab8876837908640996c732a2e86f048c4a99e01fa7bb54b8f1334be008d0a7365770abc8dc1b7d85e65e0884bbee905626 SHA512 9dd99cafe99596dab3d5b35456383338d6967f6879c4f32a4a64ed9c54486a1b2765e29343799efd6a76de118a23c42399e7c009e2924a78c542e35db966bd74
+DIST lyon_path-1.0.4.crate 35616 BLAKE2B fca069c6b9d2ac3e79d42b81a1f747adba24d0ea11eb207dede801f44d76548b8447ea0180b14d354f0cf1a642483876670d84a72053253ec1931afe65d3fae8 SHA512 1532fb365386a1b9d57145fd36bd0a3e27b9e6af2957c3267f122df1e927ea855d897f61ee1f5282cbb35bee64ca84cb07d53f002406c53c1f87cae97b53cab7
+DIST lyon_tessellation-1.0.13.crate 183135 BLAKE2B c3ff44134b210b7c769b9e721a23a34ea8bd7cb4636e23da9ad6195464f462d5d54684ae50fda395695646616ae1bf7da241a04710276624b2b9133f6bb80ae1 SHA512 f70bd02f5eb630d5c56608c9a98392775feaf748437a39a549ffe37683c7b734dbbf099fd136a3efc38d9d002ac59ac84522d073565bd84815f0eac9adf237d6
+DIST lzma-rs-0.3.0.crate 29080 BLAKE2B 521d9f12a155fb1c9224b155400ada0cabe8be62a6b46f3b9d73704928446bfce653df97c73ae0951b6b1cf793a2b95c37180d5794c07a399ac581d75ef87337 SHA512 1c554b5fe33e6cd6ab069efaafc2826d3cb0bbb13dc55c2438345e1dd17de99cd43da4aa3419841ce50d9fdfa5956baff477b37a09470f48908fc1b7382086ad
+DIST mach2-0.4.2.crate 21889 BLAKE2B 137db92691ea6647ca19257abf90402344cc3a8508fe6f8760a02fbe6f56d5341a025fd9e5ef92ea355feff9f36ed6926bf70c79edc17977b65e935ad5f36959 SHA512 5338254f5b9833d41957715898ab4bc52585f99bc8f8fef3ebe526ea36d8a5cbd191aa07a218ebb6f71b7487418223e4279977294b4a6494aee8d01f34cf447b
+DIST macro_rules_attribute-0.2.0.crate 15408 BLAKE2B 3a568de49448ec1aaf2abb8c361fd84d2b257a05579b8345cc66a45ecf111e0964e46d1510b458204c95169a67d0c8a3d41b604afefb8db9f642ed60587ac05d SHA512 53dd3b4d271f5aadee7877829660bdf9a6b89f1173494d102a5360866721fc6c02b9bb1c7fb14f50e214bc16a59752e69eedad5dd1d64411a1fdda76f7d62afc
+DIST macro_rules_attribute-proc_macro-0.2.0.crate 8264 BLAKE2B c885432d9334a3aa2c1ac66bd3c1f1e186aa259a449aa851a0663b422c9861365216e4dad10e31e7608fd970391508c9ad8a232272057dd9268e0e0299109b66 SHA512 6ce9cd867b5f6fb8459e3103688aa149275718a5bb2290994a02cbd7ae49aa23eaea41aa7247a6f9b15e2572bc95fc2f94c26b401e28a76e229a0907da6021e3
+DIST malloc_buf-0.0.6.crate 1239 BLAKE2B baa59345fd372db162773adbb441caff1f6bad965c3681f244161deaee76282fa09b9af0d0642cd39ef35689f85f5bd7c2efb7ba8119a58e86c7cd12d81b2c6b SHA512 463b3d7666cdd7de618abf0cc4e488060c84d6d93c56d4e922169511a0b03de380ea988cd998f5a162b244088902198763351ac16dea3762f0fa0840fc29d6ed
+DIST matchers-0.1.0.crate 6948 BLAKE2B ec3a5d01d2fedbb4dbf5bb185afbb9401410463a61f51674e0df6a571db352b2bbabfb99cdbdcfb4e511ae783165bf0258f5163f240a229b9087f9edbd0df41a SHA512 84214c1a84952d85631aa1ab5115df7cda223ac64e2acf055b6129ba1aa26ddc87615a8b51ca890ce3fee0419053fa7fe1599ae128f1d211b58c07b0c4af3b19
+DIST memchr-2.7.2.crate 96220 BLAKE2B 2399064b6db21838d4aa0b25ed0bf04940ee3820741658cc6bf62e5ade08f41320df743ff13f99b2781da7b844e18deb1cfe25fe570f0e93f98ff03ca5d442e3 SHA512 cadcb4239c7f3aaab042592c5186770a225621e32f8583052fd3dbebb4a6d9b99be28f589b39b5ca36cb2d56fb3709e7d4ba91838ebb882e28e51280c02bbc40
+DIST memmap2-0.9.4.crate 32752 BLAKE2B 1b21af908061e6fe09484ce5f84d31ed1751301dffb6439512b38c53f9f090cef7541b591b968d0207c6d8351ee4d5949007caef7832ce130ffda1b3716b5454 SHA512 8bba078dba73253e8ee88f0bd2202dcd2afd0b7b800d08af8af593b882cb4acff7e297a3f299e253f5adf103893fc390dcd73e882a2e7d93ca96099fc2eace4a
+DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
+DIST metal-0.27.0.crate 3028990 BLAKE2B 10539e6d5196fca56e35037c09ae72ae6bb293e828c50096d16fc053ea9e21e89b900f01e19cab68c1e6531c737598027cd0afc1553f4f81b88fa83957c5c978 SHA512 b90cb1e371fefd548d75a4413ea2a050341fbda6c4627564dc7de89284a8a42a95192014d3f8580bcdb26d9e8be247bb09265591acf373b974cb95159b628a1f
+DIST mime-0.3.17.crate 15712 BLAKE2B abb892b75b40657d356b6b53b9a45b2c822a05873453e919f2bbfeed9e5c06104f24db9cef2716f302198020870eaf96b2c62aff55cc11d8ca4f4f614d7c8e17 SHA512 e6d2ca92bb58fc747c1bb65a7f9023e5dbf4b94966003a72e4913bcaaeccdd6752725cdbd5081e0fd69d9e8f364d79664fcbe70061737d5c39e5b3e3a154a0d1
+DIST mime_guess2-2.0.5.crate 26304 BLAKE2B 9428bf658fc2f5b98450a9a39898762fbfdb9108519f7dcf67d97093073a5ecfa06b2ef6210c42946f516d49a3bf65b5e99cf247581e276344aef91a2bad3c44 SHA512 c54e4b401cf994aa18249040f32e5d258073fb10af705c5c052acbb02cf03f0f50ebeb5cff96be91a298840def5895f9b6ffa056f3d78b748113b5374079c4c1
+DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
+DIST miniz_oxide-0.7.2.crate 55731 BLAKE2B e3cbf5983025bee879b8a735fa2912db8975cb60f0499498a73ce4375e7d452c9ed62d4b0b6f6a4fa591aab55e5d7ff20033baa007fd6c839b9d74b31142c0b1 SHA512 2f8f09d7afdb9d78bfc80a228ded85a215fea05e577e907921f1808f84aae30ab118048d7b53295f11aeb5de70ab6cbdec892f3a2417bedf6f53a4576d095432
+DIST mio-0.8.11.crate 102983 BLAKE2B 913a8e0e4843b3b19cce3eeaaff0a0024eaf1bdb4784a710e54ee95b6631edbd763e37669ec7d269e45157907663dd2eb6c9279db850fa47ef4c1eee867ea24a SHA512 9a2806ea78b0637d0cf92448abcd50bc5d09bd80da0f37752c847bc98d014baae7a5cc4d929de98be6283c76d82ccab1f1467aa6ab583a4e782d97d5592b0bb1
+DIST naga-0.19.2.crate 537942 BLAKE2B 0368d7de05f3ba696b1581792ffe8a420e632e287930a53ae2df5de4735783de83e20758eb6f95c1b8d33bd5452f619fb9ce7c6c9d9a2b7d2aab06787372c182 SHA512 521926b6704a6dba2d1dfbf083641bb71e575474a4c44aa5be10285f0be4467c36e68f5b2f4542a2073b7f59ba6d901249d9957ad10d0414c0015a5e1005049b
+DIST naga_oil-0.13.0.crate 102295 BLAKE2B 640d0b6d3ab92a6c98174bd9d40abf0fcf847abc8ab35eb8d826b2a89ce9df78c49a5ec9cb523b7ee7beca8cb56a83c508231ac8a1f7509e19aaca8fbea8a925 SHA512 1a09e456fb502dfc63dad209d308440d00b68c9d7facb8d298bddc47e7f7cef4c9a5952b4711e9fc24d755d6279f741ca2c77cea524af1bd8b1ebdf01eaca0d1
+DIST ndk-0.8.0.crate 79770 BLAKE2B 82ad3258f730bc26f91cfe231b3bb811de466ef30244b963c7b78f215cb396a50528129773a986121069d058f5b1d79e7aa8a18f4217e371428520f95c934301 SHA512 bf666942469ebac77eb2ddffed6a276098ac291d459d4b544920fa6644e9fe71a41e556d7d46ae2c23b46865d2825b08d0e2eab3bc3dce2e6f9b2d5786f1d9ec
+DIST ndk-context-0.1.1.crate 2205 BLAKE2B 6c1013410459ee13357877654303a04c2ee674eae77911d8c35dc7ebf3df2e8632440c26273f994f90f083fe20b4923240e3b9eaa2ae90faccc7e2f0021b6e0a SHA512 3e15db351492b3f1935424a4c119d878f5d771d6ca0cb6161e4105b263178e96e41cdf1e927e5f3c81a281f55dee25929a9cee911eeb4ff307dcd31fc400398b
+DIST ndk-sys-0.5.0+25.2.9519653.crate 307233 BLAKE2B 884f73ab15acf81b238d0ef06b66942949222506ff0f6deeb009348ac8870b0a8e74b4015ceceb2bf0611609ec4acd0923c2724b1240f314d0b56a42213e0b44 SHA512 380a6c0124df4bc2a835465506c1837ced58f1174ddfd89891c1784ea27508023543dfd229a5440ec1e593461e0e96b07557da72eff4b90032deb8cdf9db9be5
+DIST nellymoser-754b1184037aa9952a907107284fb73897e26adc.gh.tar.gz 5972 BLAKE2B dd4604ca10d26a1d7def7d6321a1164a6011b48d44f322128f98baccd6b76bb1220515d7f73a1ef31497a6ee030387e31ef03d30b241fdea0a6b74149e20f3d6 SHA512 e031364892d61f973131ee76b7014a90a36bf5ad14ea6d481cbd2ac5c41266a1f195eb71b6cb860ccdd5912edc166e73b420d15a5dd49d450be8ff7f70b3d93a
+DIST nihav-vp6-83c7e1094d603d9fc1212d39d99abb17f3a3226b.gh.tar.gz 37669 BLAKE2B b0f2c3598d6946e44406c59da1b74d5f862a1a0403b96009e9b8dbcfdb911c242f036898d60316fc767d1c7ad6d5f098447e1711556dccb7c6164f507a576377 SHA512 97a122659407815aa563120846eae98395f08eb4eb300b0ca1ff59526af2ee002e3932b8ca03c28945eb9394271516fbba43526d230d41c08a3d33bb0d6ca4c1
+DIST nix-0.28.0.crate 311086 BLAKE2B a07023566f04896fdb3ef8b2a1ae8dd64adaa5eb48217c58588e1b41733642e03e0637350c0ee83ac47e663c02b24d5668be751f8d199aa773de6df8b2213894 SHA512 73c0c94b360f4fc81ff07a13692b2a5b5ceda3a7203bdf1e526facabd36cdf160f0ae8fa479e31a4e4237c09bde11e9bf821aa496311cac8614f9c5626f8d69a
+DIST nohash-hasher-0.2.0.crate 8051 BLAKE2B 5f307e2bd15580f398d53d499b9013a6c62becd4ef0d3edb76f9fdf83a59c8fd86ee4bcf42ba3a8d67bbea522db65828fe7fe324ffc8d5008428570d7b2203a5 SHA512 b1b754262471ac1fb074559c264321f8f08c46c55752187f51a93cdc73509551b43008751ff9db4aa5b47fbfdda783904f5492349546ad14856fe485ccec55d8
+DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
+DIST nu-ansi-term-0.46.0.crate 24311 BLAKE2B d2e678e0eab5ad48534e686b1a4af344996d1b07a0fa40839072df3061bd7e5bc9341363403ea3ef8d19c7725ba3b7a8ed540c63e2209123b1b93f69418288b6 SHA512 b4f37786dc85e0596e2b7b261a5a9fe0265bf1651c39efb358dd649b926b12c3093f307b98bf0c4df3899f0a7cb1854f2596bd5c3e22fbbef42f912ab2eb5043
+DIST num-bigint-0.4.4.crate 99369 BLAKE2B 09a44754e3a3d4f949b3714d96ddd7f3915164d611036675e3df421d6c0863e368eb0180978a4ec27fbfff529b4999d2593e411903516670c24c08fbed6a79de SHA512 0dcef3344a933509fdfe87d6adb0bb1bf67af3c692ccaeec5663a8f18ad0a251199ef9c7a24c25b95d1b255b413947e70f0a205669d549b13e54b6f4864ab3b5
+DIST num-complex-0.4.5.crate 29614 BLAKE2B 32277724d5336443768a299c835cba63906ac91b85c57ff0e57338902e32731a0e67a93c647e6a57ae53a1b4a961c8b9ca2f6937a275e51a58089378a9646e8a SHA512 7b607f240773e4f4ff1954f46b2ee85be1a4f012e2d290343f6178543d10b69c0e9e1a93b0df8efa013c3914ad48321e1d96a4578092ae4d359acdc239ce1ebf
+DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST num-derive-0.4.2.crate 14709 BLAKE2B be4abc3c51647f2d4ebe0c0619948cdc994c6ef808d768dd2b9274410716f524ec73c75440f7a780e4871f33055c81f800b0171e4b7a4e2214da5a3007393dab SHA512 55b951470a07dbce489ee43e1540056123d3eb7b5240903cd348951b81ef5aa5b2b1db311d1219bec8ad191373d0079bf40861e3f45380f8d8132f39d33b4f4c
+DIST num-integer-0.1.46.crate 22331 BLAKE2B d88c9f84e5d803a3aa8f44dfc1bd6d9b5e336e7cbf47231cb3a7de30dfe263c41c62c586d31f0029459c8c240475cd329b3fce79f355be7643bdccf8d56dcbba SHA512 e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae
+DIST num-traits-0.2.18.crate 51930 BLAKE2B 6c40e155d7a52267a7183d8030ef34245492d33f103cc24551b10da3eaa18e3db485062ff87057dc23e6b55e381e5c5d2a2633aaf6f4763c06677a0a0c524f02 SHA512 e395ad9f3b21b0dd1d3a94cefe0d68a42d1b1d429ddb2823696f9cd75042568a635d93d133ddb9497ed357e5b3be5caddb8e4a4af87b65882bbdc60b05c74ebc
+DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST num_enum-0.7.2.crate 18571 BLAKE2B d68d127db218d8c4a34849cbf64a8dae823e9404bb4231504ecbe02236d04d96ac161c3dc6e400a05fb458e42bb24418ff08f937335d37839b0f9174e3a5725f SHA512 a002a35079c81eb39945b3b2a903c1d904924c8417e12f54b9825ccc04a2f1ea1b1b93ec540c746926536851c2f6a9aa71be3c05a29afbd5924236b3e7874389
+DIST num_enum_derive-0.7.2.crate 17090 BLAKE2B 708f474f6be67cf1f3a63d989b6e84ff33a165f0fce98a2d82d99eee71970f2bcc2c9b58395049d0b6e7e089446a9155ae6b7d6621895326c48049416b5817f9 SHA512 f3d825aad4a04bddaa42d07ef4dbc69c793cc53999cc2b32ef49fb28499cd812896e0c5b89b9118d9def495de0caa05e473109a0937876da4c1a628964a8ba6b
+DIST num_threads-0.1.7.crate 7455 BLAKE2B 282514d1c6ebe67ab2c30f91efd5b6c8880baa078265e22d5d7200eca4f96702aad8b537ba772e5d4e680a6e90fa6919fecfcf37a060668b2a618bb01bbabf2a SHA512 60eecfe49c1afca8efa320c5f4d0cd794f6adf8924193682c903307f484ca0a1ddb56102a772232aca040f29651bbe26ddc1c4939e1f030e229d179837e06bda
+DIST number_prefix-0.4.0.crate 6922 BLAKE2B 81bd3b588c788e6865104e5ce87119b5e0c5a526042963d52cd582ff23c2f8c9f32b4c445ef0397fc402b6d047e031d8e2c67ac97e191bde22e17662eec3a554 SHA512 a43b668d7314218b86ca7451daa9dfef71f6c9f6616bc34c12d94ae6030f182bcca9da83905cb46f3d49d0aa81385a787e92e4f3ae239658067adc249f8174df
+DIST objc-0.2.7.crate 22036 BLAKE2B 14a41a5ed6beb100d68601af12914dfef67a9f580f80d70c4578ad9df98a6b4496bc3a1003dec762a27f0ae71afe2c9e8fd41ad715bdb310722c8fc092563599 SHA512 7178870c8e4e9154b4c7b4953b3164946b7ce72c956a02b9ba18889353c72be735824bd73e44a485e42ad5f97994820d9153ac684629342755a6a63711ab5988
+DIST objc-foundation-0.1.1.crate 9063 BLAKE2B 876dd217b612278a522f2d08434537d468f8b0fd1efb0e58d0b58216e20f7f9fc80a5ff034ea25d9216d4d53b2d65552684ae5d5212f18d758c7937c91742a84 SHA512 976dcab4e62ad1c387a81723d70b969fb7d332e1f7dbeb2ea9a26c62fa999d91ff6d8f737ac5725a7611334862df16fa8b15765c036d7acfc3e42a745d051f34
+DIST objc-sys-0.3.2.crate 19647 BLAKE2B 217743bd549a7c3ca76e204f8706bc6442f3cc354bfe91c9bfcd5dc8780145a14d9c2b7b98412df548bf6bb7a5dfbdbe7ba5a946c5a1158b505f73efb754a22d SHA512 7cb71e8e11196065fdce0a72f0c903b635d28b673ae9c19529c0e83682d4c03d58a6d310da91fb7c953e2b184b5f02a639aed1da8546a700809579d73e039d3e
+DIST objc2-0.4.1.crate 162783 BLAKE2B 45c7475c07b67191bda93d9a92c40eedbaf662048d8aa04ef738494367f899903fd5157b0e2fb1092ce7bed290509e8267fe59f720e8eeccfed10668ab944860 SHA512 12968441fdb26a04f0c0e61195d92f13630fdb034148fc2223ab2807f960bb79a4860ada6d8a365b6932c871a27902d22fae3a61fc8efcfed38f6ca87ee8785d
+DIST objc2-encode-3.0.0.crate 17934 BLAKE2B 7522f62b00b69299a15a7f4b7e242b74c25d31b22bbe8f5db62b9533ec2ee5f7a0985ff5ddad02da50e52056ec2b829e24874fa4b74636442a4c124c35304268 SHA512 040421b6df9badbf50ed381775bef64719b508da021e036bb6de3ff09f513ba1751b8a5c663715e79d4e0bd2e67b374718d706defb7c30ab920412db8550274c
+DIST objc_exception-0.1.2.crate 2251 BLAKE2B 6e46ab02269b6c3ef7d67f70bdc3b54ed675919b9de979cb60ebec4aaf79fb2f34614ceadbeaae75e6462ba6f09d859e38208d62b1dcb7744db184d5ed34ab50 SHA512 62abb21aef920a6bebe773d4680537f135975e5057af46cf11cec787e5224790a54b1c338d62b0fc8c91b904f018a3fde06e624096af6f5c39fb5aeb4cf40807
+DIST objc_id-0.1.1.crate 3258 BLAKE2B 9a74fc17235ffdd7987c2735a7a9d136376fd13355f0561b4ecf234784aed077d1ab5aa11c1a82fcee7d47d4d36e471ca4ba3e5bb725a2ed0049a5565967326f SHA512 ec36fae6f5cefda00f3e44618b3c9fe6ec8f528f70d1a95def6421704bfa128a6e5b4a32e9dd686bf6ff60c4f87fe8094aa5e1c8070bcde58b17fdc06f49f9f5
+DIST object-0.32.2.crate 286994 BLAKE2B b9085200fe0107ab0f8ddd5c5ac82bc681dc6266c6503e4a803ae4dbdec775ae84ca4a736754b770d858ebb058342af45d485d4c9a41f57966ca1466de40a4c5 SHA512 5d03d998f06dc592c3be141f7163bd72a0e73396f95d22ef1e0ffbfc66489bf727a6f6fb813a32739609b619b8e34a471974b2231dcfa23df8bff52007c25a96
+DIST oboe-0.6.1.crate 24588 BLAKE2B caaac8795247ee9c14f02e4c572605f590930686487d7f5f3195b4f1adaa837a024d8fe2043f90b97af7832f9b8624750dbe7def8111536a2cf1f154ac6b43ae SHA512 62b7573b685ff2e64d28337c3c08c556dc6355a11ad31cfb2bf3423ef1eb6a73ff38201dd5c116580b0a540b3f76dbd4a5347758ff40accc1bbd50a893cfdbf7
+DIST oboe-sys-0.6.1.crate 169091 BLAKE2B bd2ff90400c1a2602cdce23ae7a85528a4913523416a7a2cbd1baf91a07b067f0761a59753dd35dda622b1748415cab8c9b597404a738e6d5684b1efd1635714 SHA512 48378bbc6ad3d9cff907500bc72042a2063ea5a4a0493a577539dc7fd3280cb4e32b13785a793d8a3350656b7b898b46e61ecd20116b753a54cfadfee2c545a9
+DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56
+DIST orbclient-0.3.47.crate 1324509 BLAKE2B 6596cba24e840b64db31ad9791cbfb60d82d46695fa15718918947040d9b8076d3134ad0959e1b7499c457dfe75b270e7feae9fc4474db5ae1a33c21e4de4009 SHA512 dd232376bef63b9d422949eaf2a210625c4b644faed72d58621ac8693ba6095c8f7a4df1a5d1743fca8d6d68e5aa44ccc0f4cd3dd2b2f18e7b10c263edeedb8a
+DIST ordered-stream-0.2.0.crate 19077 BLAKE2B 581285d32136bb9c2134f405c5a2d67c952a36eb3613912be029f2826b847919188e1b479506b46f20e0b63d371f476b99d9e7e1ee8d47ddef7b4f48451b0e3e SHA512 99976f90637f0daedeae05d4270d33bc03fad1c06a85bcf2cd7140b149f76c7560d5e60becf05a633a62dc82f7f65900eb8f510c62aea4e630b78c45dc76d83e
+DIST os_info-3.8.2.crate 26400 BLAKE2B d685f62f4273a75a5820d5445892fa5878cfcf3763730c2eecdf15fee12331884d04906b7c105f437299ee01f2999f77b6a4034e94f781bf694cbad8aab82b10 SHA512 4454fb13dbec94aea5849427742856619abe77b2209dfd0a60a8f446ce5f843b423831632786eb850d0493e023977fae705d0fabff90798774d1c32366984916
+DIST overload-0.1.1.crate 24439 BLAKE2B acb2dfa6c6c22ea95cf58079f6ec56a2bb5e297a055ce717d40633b789b0d005be2bfd6616448cac61bd032e74aa6eed212f1677461907cea2f7f7cf536c157f SHA512 f79bc3321f45df5e3d0e5fa9c4e60524e4e28dd3729a09956766738adcf99ca42c187a01d48701ebe23d39aee00a19d4a07da798edc781b942e866b339613532
+DIST owned_ttf_parser-0.20.0.crate 150890 BLAKE2B 47ac3309951c24f29151299512f0f54f96b22ed87ddb20d6f1a05861324cb0898ead8b12bd8c64e595b7cecc38cbe3035fd54c13d80ec660e7496fa30f573b4b SHA512 edb121dd4f9fadea578a11c2d9f323c66892b9ccb4b94c1c40ddbea1c57f83e6690b6cde45003024741bde8042f55e2119dc5b5b68e11dbc2a32bd58910ef00e
+DIST parking-2.2.0.crate 9730 BLAKE2B c6da9ea4d8c0a488a64510781b025ce07f283814a09703c58e8d46c625cd74e2c55d7e28a4c09b0886fe4ab415b128bd3114f8283d4c903398e12a11d65489b6 SHA512 184a4514322279ed093a27a9bcad5fce808900a9ebbfb624216dfcb90a5483e8bcc054d82a0bba4da3809364ad1ed0a623328cf983bec3751e4503c9670a3f9a
+DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c
+DIST parking_lot_core-0.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 percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST pin-project-1.1.5.crate 54214 BLAKE2B f4adef2c4f5587ab0523e92b7a662c035882237620fc87aa3919bfd360745b587ab84cce3cd0db24f4f15bd358a46af1cfd196c2071836f4d300be998b6bbcf7 SHA512 103e58f1779cd2d6c63053e9448d0f53edc7f08f29540fe0de2dded1dd0b7de50cd62d31ecaf6cf30b1a7f1f5e4728beb2cab3e40dacf8ad5d5a7a6254527578
+DIST pin-project-internal-1.1.5.crate 28280 BLAKE2B fa30a86b1c2d1a66d7e427b04772efb68bfd7c006194dfcc458713b4dfc8c90929e43732e0792a9c33285855857f0979780e854e303322243b7654a120f74ece SHA512 f0c264460bb111ed8d0d3bf57cbb0f6a1adca16500accca4be7e5ec0d292ce6e1319c6b98108c583b85c3211ca1a84a5470f3e31caa63989f52022abafddc032
+DIST pin-project-lite-0.2.13.crate 29141 BLAKE2B c434a336716c9cdd16ebc297fed393e9106ef167a693c4aa0b12c681e03141b8ba3cdf64c310916cb7d5cc43cbbfcaaeb39bb5fb1e8b3efb9e94a3f72af914eb SHA512 7f12595d751d315de6c0d380e2f501b74154661eb676987d2cab6fdc956091a68c9cac658df45dbff73615e982e6ae2ea138c09ebb708cd6c351f0d18dbbdbee
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST piper-0.2.1.crate 15878 BLAKE2B bf63206c72b08a87da7ec5949124bb2742ec0aadb116f4c2ea86b09adeec4f741479b64e92f824a3df87ae9dba07ebdf812cbb6622853f9223f8ed90ee6dc389 SHA512 86d2195b8811bc2d30050e977925a947b175ca674e99497b7202dd8c515e09fb83e42f389ed3c6b554dc2c6480892bfd26c91fee463115ef1c710aaea858afe1
+DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d
+DIST png-0.17.13.crate 103176 BLAKE2B 99bfd1c444f5967b715b81607e3c3266fb3b1d8110897e4c93afb5b6e0e28df262f9c9d842aefed922c38a5ff9d16e75cca065d7cc14ddadb3a7e9ea4776e787 SHA512 064a932f4c48c2243286a9b4cdec0487cc976291bc8ecf4753691afdfe43acda4b17ea8d48ec933f309d158df28f40ee93b5b32b3ab5252e2e7aa1ee1c0e4e84
+DIST polling-3.6.0.crate 58128 BLAKE2B 650221d0589d477a899800f6fd1de0c8c8b16a37fa6d16867e250a5ccd8d95e4814b1ba6c36cb2dce3fbfb089ea0ea76bb61be4906c10c6be5b8f3d595213fca SHA512 68af1b166c7c578fe8d4754122666760c1ba8a206186d38cae3f272ec6d7ffe6f6d585428b023f0055591f0214361d14ea6a953bf5cd1b8b1f2f2677ab66cdcb
+DIST pollster-0.3.0.crate 9436 BLAKE2B 5d61b6eeca2bb5eb58728f644cdca2e2090d2b2b719534f55c3c22648c2f9e95ef4b0c42cd0b99aac600f953de49c4001579e4f67edec38530e298a2e3717d80 SHA512 f528a948a912af3d296adbd87fb7f207754fb1464fbad145c906572e205cda82c70c356cd47dc57edc5920e1e4383a2b1fcdae471ba9e35b1733f506e3692038
+DIST portable-atomic-1.6.0.crate 140689 BLAKE2B c91d06e04a87c9a207233d8a850859aa1f5cc43dda8aed34511c3fe9641c27412796539ed045a58e649d2a0c7d71100b6b2d78a0c662fc061fd961a652ae8722 SHA512 b27cf57655a2f1e2d6ea7b45d80b4f9920a836e462f132c50dc1e4d314e162444309de1baecf45dad2defc7a5b99759165e54da9fe759b24092f8cb8755c515c
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST pp-rs-0.2.1.crate 25905 BLAKE2B 6ad747b3a5641c33d0f8815f5e755ab6a0d1750f2eaeab5da69e6b671fbda5ec9acfd3e854655c09914aafbb9f1656c601af080ccad5bba88ea8500090474a3c SHA512 bd4b50ce881812ad6afd3e03d83212ce4987828e379e254591a0ed47f23f16d1b51b555be9ebd347096ca85f6d75ee7a8190564a20383ddff57fca8993483056
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
+DIST presser-0.3.1.crate 20946 BLAKE2B 270c86e5b21e660c68fc5c4f6780371041dcb161bc2c3044e80f16bf9ee09bdfca900d2b7813679bf44ad00147df457f73687dd822e8a2af3a707f63bda553a6 SHA512 d21b42169dd0769b2910b04059aa9b920a98fb6487184d61de6e94e1891e49bcf75dd89012554bf2a5fb748d2322a87b24d8a733c34f6294b07b00fd76cf397c
+DIST pretty_assertions-1.4.0.crate 78846 BLAKE2B 68583c49f81ab0cf5b90f6de10ef3aae9b525288fec25f9d006f2eed0877c0fa742dad5f878fc78233b54c0cd32dda7ac1f7161bfb475288d8858e8e40aa9e1f SHA512 f76d38c787e91b3739272e3bebeb9763d312b85a43cda5e1311ba8d6b0e4da1ef25bd66208e772b1cf56a34553ee560482b5ad19c5290608b2aaf9c0d0f0e995
+DIST prettyplease-0.2.17.crate 57713 BLAKE2B 22cd81941d7ac701ec90b0d24946c4f6c12ae48e90500c58a95e8b04e1b3515872110ffdb9af18c322d0465fdeb4e75c4e57ba987b6e7d904115edc91b6f9e88 SHA512 8d67996d928b7ff6415f067d7bd20c5230f459f4e7f6e2a852427b19b91567e5c2c5bba33c1e51de8bef550a6430ac548156dc0fb5a2550715580b50334ad565
+DIST primal-check-0.3.3.crate 8720 BLAKE2B 9c7b5273a5df414c57b4104b9bf795b853b433da3a5d91a1b878ef9b7cdb6a810572dfb8fae11543a106760e449b886f6e10a12347f043171f5d7947b30f2b20 SHA512 d56fcee65802b1ca272515589574786dfd066099c55a536cb1076193242859074918651c4fa3c1a7dab4fd13ba91c8f6a2a5b0789a6cd24faffc092edf27d75e
+DIST proc-macro-crate-3.1.0.crate 11084 BLAKE2B 9a9d02f0f34a30668ba94e34d51199c332209c47fd8bef28c452924f75984dcf3aef2c92c4ab3fb03205d589e4f773d960064b4d08fdb2480168f10b84fafe98 SHA512 eb5ad763aa700f2cb1604c32a4bf2fad499a03ad868a22d06b0697b77875b1cc13c739fcf165b2bd547207ef6dc3bd13ceb75e1a59c596daf916f356ed27d8e2
+DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
+DIST proc-macro2-1.0.81.crate 48233 BLAKE2B 94319064772c757b6bf57eb9e759e827454f719d82210271ebab9c6ee4ecfddc9099522cdc8595123efe2efb64fd50eadd7e31419c5842ff1cb8fdd32e8daa0c SHA512 7edec4b786d9fe076ced4fa5c0d369c163fd1c27c895431245a8268ab2e16665b7c0a585552d46ceee6b8103979a4201f92abb381f0e678128abed359f514de7
+DIST profiling-1.0.14.crate 14259 BLAKE2B 2bfbcfe1f90135fe032ddff58c172bdff156674a1de94b286f37ac30a293b10e818d45c0516223a33d428f2886dff414f8e58f56cc8c2da436cc6afbc584ed63 SHA512 a25f8ec03c784126be2106cf478284002cec48b4969e1b959418262c0e2d594764b98aefe0d25d1244ad9c27080e15e3633d6eebfe3342994199964678f24db3
+DIST profiling-procmacros-1.0.14.crate 5958 BLAKE2B 510fe173c8b7c553af20b6eaae0454b3a8a01f1657bf15082f24271295dff157db1f7008debe234bbbafef9b6727651d0e9234bd7b10b91b1c1442a2801d5c4d SHA512 1fd6fd545b5f1e7cabd59cde635595d60335ef2e558bd286296e57747f347d9340196c88cc5eb71748f8510b2afcf4120bc81a01bc2937bcd52e4b7d632bf9bb
+DIST psl-types-2.0.11.crate 7959 BLAKE2B 287a71add0c75af1266fa1e4089da8f82c8b64e3ae1e880b3a71ebef5fe43bce3bf50f6378a228e131cf857a4cc29f3ff37c2b08b62896196a3e86ef82b1128c SHA512 c609f6a414bc1f5f98c22f9ca73e3908ddaf10e33ef43f408ab8ae2f8c544c0f70cc1a73b1fcfa20ea53f2225f60922f6d28d2e5d31a9877550c2ef3520ee2b7
+DIST publicsuffix-2.2.3.crate 87807 BLAKE2B d2ce617f07f34e5d01cd3257c53c77441dfa537d827a00992cb9e2c46531a0523b506350f85401bd50fbaa7a2af9afd2dd290671dff4ae407bcd6d8dc725185c SHA512 b6455e8d657df9f9f6fcf8a26a26b8753450b53f1ba92bef637886b6ff2c1e0273aff96f53e7fd0c6a9a495518be00f6d8f05dab0c1d76ae7e1d8481b9bbb8a4
+DIST quick-xml-0.31.0.crate 172236 BLAKE2B b83c7f485a30576027a4ae77aa23cd6284942d786f0f0a14faafdfecff646371ba15133b3ba90f820183c8537c8ac47ad3e1e7deaad65e56761bc662be406026 SHA512 9b1f4f9c32694ccb244938a9a4e9373c3902314afb6af5d2f6b1be55e5ec63fee5cf1085f8f32161570cc10fdd96f3375c7564b1d884bb152542b86593f175de
+DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST range-alloc-0.1.3.crate 7664 BLAKE2B 19c453738d48d09d0e076d3cf833a5cec2721627ada1e88eada2a4a5087b00dbd2784594e63c379c2d15977696a83bbacc6cda76e9bf37ca29a20f73ed082781 SHA512 b165ff007057143e1e68e8ccbca955364749cb45d7ca6aecc37c9099478ca3d954e959685941f0e505aa1cdccc9e25e43131c18d3eb447b2486254a32401653e
+DIST raw-window-handle-0.5.2.crate 17063 BLAKE2B af6170239d2a2e9db62ed9450cee9be6350fd8f74d6344ddd76acfa873d124996dd8dff798a79e8c03fed50fdf26b2731b150bd20f8dcf905c8d68da351e0861 SHA512 51d93a4609533742178ab15d4454ffca1668e2a03c2a6e742ee2a61554564c74307311a50e3992919451f4f4d30ac112284413fb4310abbf06c0fa24d85d5971
+DIST raw-window-handle-0.6.0.crate 17224 BLAKE2B c4a38ca8921448cbd8430aa2f97acb9d27a006005ebeeb5de0823341f84fb95833c16b3b6fd6adc67aa70482d082438df9a14fac9857e1ddd630191e275f208d SHA512 bd029ac635ca18e8e041fb868c75fdeba9a4540e19d10db614cc14a67b76c887476954f4aa3b42f9014ee07c5d1c002ba9c88a2a7ec8c84a1589bd71bd65c4eb
+DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
+DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+DIST realfft-3.3.0.crate 16539 BLAKE2B 938f007e6857868c6618e70aba4513f4540e832558625119b2fd48bd5f55302f7ed93fbc3d5e1427a8ed3c91600593aa879ca00c33e3ba70599a1354c82e4563 SHA512 daf10b56580b486dbe8cfe3542a77f4a230f1cd19c7b057672908bb2db685b5c44e983c5a7235f404d5780ec9b17fd0e620049bcff62412ad6f093c302744e46
+DIST redox_syscall-0.3.5.crate 23404 BLAKE2B 85aa4299d9816666bf576f523da5cdeae87b3c8fbb2af103e82258d23f73303c068a4b6c3ef4117ad67958cb31e41f836a9f59f2ce1bc52c23605e34399afcf1 SHA512 16f8f4766932bb54e4740cfdb4f0802f76246c0bf88c1d76c69c115949b124b625d8c3b85d8947073c2e9544f425aa16c10f71fabe3c03d29e424c47fe4ccdde
+DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea74d574a08cee21d35713b278d8b5b30ca2a1d73a0981baeb4644cbb88c86c8eb15ab3bb2692e38b93e6b35fab4e0da SHA512 073ed9d96090cf46eab9877742277a013c62d8da86d9caf2310b4fa868af306511936553579e01309f27067d344226cc8dc5e3aef01d9b900da2febd33848f8d
+DIST redox_users-0.4.4.crate 15438 BLAKE2B 5f44e9ef20f1a6c8b22239838f8f6a6648dbebd5b4386b3a2c417e39add8c4a0dc32e4369b8bb4e0ea17678140f596b9bc981b1d56f06de6a38a503600420481 SHA512 7c208116d1171b1f52f22aedcf8ad00076a3d1f062f4018f4a9f5fb2c38d7ed83258589062d1559f64e43f3e2a9ddf789799f57cf87a49ad8a37463ea09aa269
+DIST regex-1.10.4.crate 253191 BLAKE2B 08bdb925efbea1ee9f885a89ec6b4692e39d7b17039f788e5b3c1dbfb7847d4f53b67f0c61e4085af7ef4901e67e33ea94948668bf706fef19b4102a06ef0447 SHA512 88ef121a51759f418d5dc01607a6e02651bd00343dae92962c02a80f30343d3f079a0375457780ce46bf205ca38f279b03989154638199fe2fcede10554bf21b
+DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
+DIST regex-automata-0.4.6.crate 617565 BLAKE2B 8f1e2a3cc1d2d50478776281d2bf10164ef441dcf7127994f4a0341ec40588ec8dc1c07fdf9f670da9e61a7753551500b80314df130370b61d2c03c2b2e3135a SHA512 b288e1facae2612f73d3de3fe9fd1af13d337107004f990263abe6277b31b948478ad9c2b807dcafa73fa565e48bdf2113139f5ca67eb73165b7d29e2ee5c9f1
+DIST regex-syntax-0.6.29.crate 299752 BLAKE2B 2408ebfe5f0dd6578c33f18e8ea9a0a7a84388420c5b67adcaedde477f3f67fb3e39ba9fab1f6892c7ae7fff754c4aca51314601529cabc6a8fc43af38a11f88 SHA512 28a58950d15df1f0ac4ff4185c05b535e8f5bf0b75f79fad24e40e17a02570d1c9bd9cfc919eed8756a1069bc489c5fdccfd04f6b8266c83e3412b7b4bdc262e
+DIST regex-syntax-0.8.3.crate 347497 BLAKE2B 9ac2f63098ffa3fff51fe2bc0bcf9ef164cf9389a909a3f0cb668d2598e7ca65d573e47d571ee2e6bba3a1a96ef7c298b8d681e1ef89c8c53b7d590e0e22839b SHA512 925f7bcc50d94c65d34fcc770c6e58dd5b8a045541c0109e77b8efe842eef4c110087ac9c0f86c7c3022ed013abbc5c0a187d796dce292ad5361a0cdf7153d76
+DIST regress-0.9.1.crate 329053 BLAKE2B 9122a30c7c3c2b618dcdee2d7a7998f179cc45e9594dc16c9670b32361dbfe747b5461e93e6adefeb39a1c1eea47ee38e30f54f540de6c093465974056be441c SHA512 24882c0867ce3170469c41225a140b836f9e434942020f034c97798591632c2df91502ab454f0062e37fceb5a1f423132ca25ab1ad4afcd9d987b668de8ebc26
+DIST renderdoc-0.12.1.crate 42334 BLAKE2B a964705c16d7cf30ba15740b5cbffb85be8511279890c8a19304e55d832be1a50a7fe3a0d39eb08794fc1f3f51ffe034ffecb717cf0307861f8e47f04666f61e SHA512 e6be1af1828e06a8413b9b485000e93b89d1002dee7b43df4baa7bfbc80b2ead98178b8418311d00f565d1a3412f3f8026a4415f94ba3483c8623f458964b252
+DIST renderdoc-sys-1.1.0.crate 10366 BLAKE2B b8a45b84ed2d258c684b8056eee7f699bbf2381034aefcf77df0481c3f07a0705b46ab89d462d515bec752f22de689ede3535be5e826a75b84adba54ade51abe SHA512 a9535ffe9fb0a7c38133a834419f5b1f9b866e116569e0f31f2238145a63e1392d4f24186504cbf40bc67521842c1a977c0dcc53f5a12f45366b6c44484a64c9
+DIST reqwest-0.12.3.crate 168057 BLAKE2B c86a11a8f27e0a363d9aa8b5018fc1383f60f7098c31e3c550d2ebdb5eb5fb9ee080a54edd7e64e743d254e35bff7eb2470037d79a5c15e7ef578cf8f08fc985 SHA512 1e9db7af229e5f2ab2177adf23a544a6024460a57bd5832f585db513d6124f4b42ee97ed8a3ae3c70cb29abe63a5e7e534a5f834042a8d35c4fb97b37bc83c9d
+DIST rfd-0.14.1.crate 50342 BLAKE2B 605a73c7419bdfbf67fe05307ed9e7105c5861640e9adec59cb0b71606df94953eea8c2d96d4a3813af9b4a750566ffa558199ff8bb1203e579ad9e226dd9bae SHA512 ea2b7182a44097161a5d6d99f1b770d38539c8d7b34c2c4064a8da2e5d8440a242c6f658dc0de82b82f60c4b43a52c6b7d72ad5d930248f7871715a46686a8c2
+DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358
+DIST rle-decode-fast-1.0.3.crate 62086 BLAKE2B 402d56595936734f36597c18e816a798ade6a8636b27e79acdedd4069da38e22e6ded5f2358ef0f0d509ea752e828fa294a4a9ac6d99cf26472fe21a505302c9 SHA512 f647cfd9ae0bbaca4a189cd1f8d1f8531f6dc0ffa1fd296c75cfe405fc9060e25be74581558a9195364ea90e32c7ccd60e066d21704cae836d41606b5799301a
+DIST ron-0.8.1.crate 63251 BLAKE2B 9d9724cff8df112c1590c0e66e897a277a7bf8a180849db4e8834151fb53639d424e19124cc9f3a5c4f977d49c824686c73f337e9ef0f0355acae2b1b43a4d14 SHA512 d0d9eb18632c2458dd3e8fa8ff365a818e5214c88a19c11421c208c31ebd75236bb20fd74ea84942f8e71bfbb02d660f965dd1447318b5372bd16d45d11fb920
+DIST roxmltree-0.19.0.crate 53547 BLAKE2B 0bf23bb050dec29cdfcd66bb231ea81caab40aa54b015c5480fde7dac899128438ecfb10d818dde456db8ec4cbeebc7f32f3c8ff17594b6a78c0f04f0361555f SHA512 c8eeb974d797316a8dc332c4068b2850eee124a13b0792cdc8acaefe521d8b40161f9159bbfee2866ab2c4f6133ceaaa1b5ed704a5f0db5ae3819d76042cbf36
+DIST ruffle-nightly-2024-04-22.tar.gz 91389255 BLAKE2B 7ab6a7c2bbaea16e7506037af2e7461d5ff28c283477254a74f7179e910316f8bf73ce9ceaa26fd82c4d53542c26b88617870861db5c9bfe5be6e37415aa75c2 SHA512 9b59e24ce8e0097a052da4506deeca64d5cb35850cbae4cca1938c0ff0f69a202313a6fc2bc8a06e5109aa92af6a6ce50da843c1b578980caace975ca35e3581
+DIST rust-flash-lso-2f770555ea49c6db49c57c1dd46c7cc686e8dacc.gh.tar.gz 688059 BLAKE2B ddb791fa4c455a21d0de0c7e27a61658517f52b672d850a9da08498bfebba4ae054663b9171722617051b61e7a962a2b90be04ef168f53512a35f58ae9e84104 SHA512 6c231443267464760fab0a534c7dfc5cb8bc45cc722201133bd178eb40785ef126341b8a61b80813f6532142290ae8f7033994834f933a3fd0fabb6d02ad2a74
+DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247
+DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544
+DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db
+DIST rustdct-0.7.1.crate 41849 BLAKE2B ee952bade816e4bd1fb44f8b95288b5b7c34efe8b2006905ce62f1dfc1d6f6f33d2d9da45d1b32d9ac2cdcf0c3011a0588c56fa84ead89f3c5f0ed582a3ae849 SHA512 6679df13888c1517fd8c8bf458e201b49e1607343f04a8eef1ccb39a1cdda673bd7835452a6eb06c83d4b3ef1e831acf24561721477985d3d52be931ae4f6493
+DIST rustfft-6.2.0.crate 363170 BLAKE2B fb77c741b16d7dd833901914e91e5fdfc297639a91f97e47746a19b678bf12bd408327635f0ae3008113cbdb89b4b5ad606f55f67e835535837f560ea1642bd5 SHA512 c8f4bbf66f3c7c990af36bacd65240bca2c6334cb7139a3f92790e66ffcb5ea62757a469a7aff56ef602a79ebf2f860dc017a1ef8bd5a896f8383183f3b179ec
+DIST rustix-0.38.32.crate 376999 BLAKE2B 681ea50f5405b3a749a26a481995d3a85800378067734bb857e32e5d3764687b0da4b3749d227174440e432b374ae9ada154a8288e4353ca2ff1b851698477f4 SHA512 8f028b4df785aa78fc798f3e053d0a4fb9b3c552a47f66f52f1666f4c1324441be6581ed643c4ef0f56d92e1a078c6d3b45be183fc3df0ed1fc89de0d610cad6
+DIST rustls-0.22.4.crate 333681 BLAKE2B 01f84b7f44883c807d8651b6058647180d6e9d48deb51fab0e76d7b587ad11face13215170db3bb7d0216505eb108438dcc3bc08ed2080816401f3955f73fbab SHA512 0b62c741b73dd49dd9d5531c9ae749fc8eedd4a396c5b4c02b1b33062d56c84e327e12f5a984b9ca22c7984103896d4ac69899032397dd6eac1b737e0647e2da
+DIST rustls-pemfile-2.1.2.crate 25928 BLAKE2B 790545dd6347badda8f67bbe67b8d4d7de9f24c134857840d7ba2335f2755cf03c05b26c16c8b1e397b3257cd39a6d3a333103c2c3ea32ccf4118bc3d42995c2 SHA512 35127c68250c31f2fd6924355ec37d5318d8a86ad38da48e68b3ea6e241deeb019eb967c510e95230be6d6c3357b0a85aa022942d21a50423632f8e2496177cb
+DIST rustls-pki-types-1.4.1.crate 29437 BLAKE2B 82aa975c98e9d583ea77e6811fb6be7f7f35b9535748e38ce67424159f1a4147b0f0ea690312151a331a03b446b7aea60c13490f3ff12ebe6e9f3369c9116337 SHA512 abe47dbd2604fd4db0df59412ec8f44b6dd2cb9bf5d67e01be6c5428daa3924151d4d996b33af387a31564cbe29e1ec1e9ea1a0ce98e7aea19d8bd7dbb0d66fb
+DIST rustls-webpki-0.102.2.crate 196881 BLAKE2B 783877064d2cfbc9078d33f081b2b1edfe43218184e60a8a3b3917ba0a3ab97a226f677d4bf4addef5d19d29ac63a8268dab5bd3cf973d64df866e3e71492f9d SHA512 697d44daa5e0a8ea2d12aa6f68026eb63a6e1c4420ee92656c9479df77e3f672ca2525442be55ab6183111fe594ac85661647150326223129ec23686792f6014
+DIST rustversion-1.0.14.crate 17261 BLAKE2B db30d01914059a893bdb4c448ed0bf04852085c2d948bfbed8819a1d2317c34133cf609abdd806ad628b86974a9c1ab9d09f79743cb8e13257ef32cd444f49c6 SHA512 466d753c28c4899ab3da3e9f3366f7ecc435d484f51e0c07acfa5f3367af0de27ea3bc75efda22159b4990c976b1466a27e7c31c834c72a87d8234318357454b
+DIST ryu-1.0.17.crate 47537 BLAKE2B 28408e17a4322f1afb6f21bc8d7328c39d07186de4d464f8e9bd63a69757cb4af61b46e558075e14836f310f020ac824d5ffa616fc0a5ffba59b9df0bb66ffc4 SHA512 6dad725c4fb2d3a33ea30107b63cb702eed56bd2f3c16a72265f648f5aaefcd3d5a7b919b1d037af926cc6311bc68ba58c4e0483da2b2e2135c6a7c2d6601af4
+DIST safe_arch-0.7.1.crate 76930 BLAKE2B 7083fbf6b390dd238f22c499b725cdeb21fd07fe1b17a6fda183ae2cccaec22659dc6c154f4b0dbb902648588a77e0c457c79dfbe3f3fc4029a912e2fb1249bc SHA512 99c9c076c046a29bd8c6430b41ff37e3604490b9cd83ce69edd289ea22b511f1e70ed477164d5edae650fb933a7fb01713ca7a5b3dace5df793a4e80c3154ece
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST scoped-tls-1.0.1.crate 8202 BLAKE2B 20be49f0546691bcff3f0fc257345e432e200836a60b297ff3fe698699ef6a2fe8a5dc6977902a08f7dc63c578aa27607dae0f1889b849c257c59c48a458e1ed SHA512 342f43d53edd33ea3e2197faf5dce37bfbeb0b20b6f0febad4dc6244c3185df127b2c10488e95561260a0ef968f32707460f2d0d23667cebece19b167c0a0c25
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST sctk-adwaita-0.8.1.crate 53712 BLAKE2B 2d54470cc5b8f3c6bbca1cec1760c5e647973fc1b377bd0397f279213e81d792f0ba31b6b81dd84599b41d93cfd014abba890febd9987c94ac6c6fe8e139bb1e SHA512 7eba66a3f4f7d9f5e33615d0c1245c211e599106573c8d68e7e6a07a9d297261f0a01fd31b90a3ded934b4082e722ac93a5004acfd56e0aff280597a715d58f1
+DIST self_cell-0.10.3.crate 7308 BLAKE2B a7297b9926d4351d4235e5fcc4084929751a0bed37598729ac519f23150464b6369ac055d3218f3ef101c9ebcd7b1b74e03581051d773493e7ff5f11e369f06d SHA512 4806034b1d28cfbdc1d47f32ca0bf9c5a87903d186bfdcab7d79664a1604ebaf8f709ac9e618af81323b247d0eede1e7dd8b113cfaf7a602250aa689bd2b2b6c
+DIST self_cell-1.0.3.crate 15147 BLAKE2B 9b53b0568dc4ce0c7372565eef14e593aa25e262d7501da6e4b8cd7807f5385977f9bd3563ed39a6fd4e07c824847d0c09a2a750024a800229c7a57ce5e8e325 SHA512 89a990f8a59cdbb99930ebbf9bb6566b77f03f1f551e49b207c865e7205541fd9f0342d284aca5f3d054a24520fd438b6c53baf48c43fa28dfbe8d79fe8c7e00
+DIST semver-1.0.22.crate 30446 BLAKE2B b77a951d959a3685b0373c80b9991a8567f8926d093b23b7b8fab48595b5d565acf7408fbfc8f4d58331f39e316a8068885d28bcd70c1476d1cda436a2dd88b2 SHA512 7dcf9b6a02650d71d6c9ab3c29e44fdef95af296208f26aa7be6fd6e16773e5e5e66418c303a0589d1165df6dbfd46ad6ebf9eb5b3adab25a51f340947b2d949
+DIST serde-1.0.198.crate 77577 BLAKE2B 10d18e00a17f38e6eca67f78a3df6bea777053b4c510be7fb89ecde7d0ac2ffe37399031ea0cdc6113a0b80f8f3f1095271bc6aa3f2147e2d675cb3f5df713d1 SHA512 561e4ec8858148e9cf59f1b824c489ab259b63819e6b031205db8d89b30a5b0c12c3828fc587cef67316d1b9752f3618d089fa21b3a27cb87a074d943f27c7ff
+DIST serde-wasm-bindgen-0.6.5.crate 21098 BLAKE2B 34b7a66752422c21031fb21202c8405c43a1e6758eb067b4fafeb24f812280e70bf16c27bbcfa4b4b5723e369bca81e42020677787a79277f32f71eaab6822fd SHA512 c457b1e8c83760d94eaf8eb49169cd620cc1fd8246af8953503c2bea9c4ae916f3de3b9070bfd4102a713f8d843b6ee96404e27b21a48c589b444aae0f9303b1
+DIST serde_derive-1.0.198.crate 55787 BLAKE2B 6fb5b68d3bd0010283a1f61d9af5471845d9f2f5a6b476245348c6bf3d3c5d3026325de87cc8ffab0300d31dfe03e093acc40e4a7f334d33b9d33cb8e03645c0 SHA512 f33fd1e1ced08a305a41114e354ec174e09c8918e28bd486549ffbb859a139e41b5de27932cb24767f4b3db4703c25e6987c55c9b3ea566d60b9f6cd893b38ef
+DIST serde_json-1.0.116.crate 146790 BLAKE2B 20492ac3c431fd3666599f079383a9d945549e02357127a58acaa7011684ef0caca221a253218402ceff6956ee8a20cc41ca3394b25bb69669be75ab22b66a1e SHA512 d383de754b0a50cc4ab3e6378b758ebd6178ad32ebed80cb4e32a9d8e81d0c689585ee5cd35f12b376e488d25ecfaca659be943c9bb4104b63a1c4f9ded2f337
+DIST serde_repr-0.1.18.crate 9974 BLAKE2B f6a8b2c8bc759bc8cfb3826489faf67da13b1cbe2432c30ec877036924869b9cf7c1ead2809b8e5852e352b51c91f40fa892ca68832ea567e4a7df29f8590a98 SHA512 09d77ccc60a748f8c95998632459f52268cf45949c0e22250f751eeaceb7336c03a457587af7bdc6fbc188cea4e15e77c8bf63d9741a9ae31fd0b8e787cabcde
+DIST serde_spanned-0.6.5.crate 8349 BLAKE2B f4f8f798ae3a02c0d5178aa12a94bd1bc08fef88b6a81d782ba07ba36fb0d89927ecf621087faf376b6e53de12f6a96e0880ce0cd01ecc31c5dab7dadc6f3ff4 SHA512 bffe2398629ae5a5a5bb6d5fc2fa0f4b94d02c96e25d1be2fb9ad95d8ca2fa9bfdeb3af11049ee9c050e497f3beca108f03020f88f6de29b208063c3898af354
+DIST serde_urlencoded-0.7.1.crate 12822 BLAKE2B 38c74ea862f041828467dfa586bad9b8e1d1d64a9f82fb7f98727e3965377d00e59f2dbf20955a9dce976b6911c0a619d2a6e4cc9dfc73cf0f6c449d873fd072 SHA512 b209ad01b6565e95c1d5b431a3f4f8a0df3d11c2a06a44123048bfa4b34ebb6807eec593f0c1c89de3a06ac3786a14747df9c70b4f4d5e4b72b4feb53084eb60
+DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
+DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
+DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-registry-1.4.1.crate 17987 BLAKE2B f1df8bba55c72a506b9210347f9dcac4d158948e73f6d1e60f43340ddfae368aff1bbb6a109af326af47246d9738d49f76d380c52208efc3c6f79ea0acd31f0b SHA512 e83acec2b0083967555f6c659dfaacc32d851a9485c9f6f4b4cf257742ae3ffba8c14708c75f1a5520e9d132ea9e21d6eb65aba492eec481e8492af8b798c5d1
+DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac
+DIST similar-2.5.0.crate 51648 BLAKE2B 43515b3014ff75e2a94debb0e40a081d60dfa371bc3bc3b3a7944cfbf2e326a8a56c6aa26ca2b6f9ab6f32929a89da673ec2fd4f037c07f8ff91ca95a77b1fe1 SHA512 7206380b6e4eb496b1dddc4501ac03d716bd6b5228971a35ca71f507940e799410dffad7e50e52c6f8fcd43c570ecef23220962fb057100665343498a5ce118f
+DIST simple_asn1-0.6.2.crate 15992 BLAKE2B 3abf422412f51d0f8d3440c245792b817eb3333d58f27146109f11278b8eac4b49898264e266de3d00816319aaa822eeb0d1115e46f96f2c9a971b41a3edce0c SHA512 b2ad0042a4492f8cfdbf475b52c87431dccb91444ba3ed026adc488c844d1182a6ec88fc833b5dc0c2ebfdd6194c5b49289af71c151822228b8ecf89251ee9ae
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST slotmap-1.0.7.crate 61390 BLAKE2B 56f7ee840f848f2331bee7d7e31aa66f2185db5b57fc72694e1514b462dab8f673442c36f7b9260d5db7b68a522ca76f7748aab774246bb12c2ecfbfd3e7bb8f SHA512 f130275c506a3d648b5d66acddf7ed88274fc381d8d0101ea5b3ad931069d4ca46b856d75311e95e09a23c009af343c7a4321023bd1d065d3d516a0b4b8a3080
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST smithay-client-toolkit-0.18.1.crate 129920 BLAKE2B aac37c6705b04e67fa48bbea9e1c276d1b105ba5c53ddcb78983261ccf6fe8139033ecdc7d108f67ce662b3e3d6af63234f0b8b2ec19c1c5d5afde5fec81cfdf SHA512 0a6570af153abcca4162bda695422c321b8040fbd68e1a822ab7409050e2295cc4f89465b2bfae3467f19b114c321fb72901356dba768a30151d5e2c08320297
+DIST smithay-clipboard-0.7.1.crate 18456 BLAKE2B f9687d74751b279d570f4ed93ef931a0fe4a6d7409f553bb9e4d738a154dd39a244072f3a5bf3d8ed7f1f159a3bd13ef8acf2da3085ffb8b7f00f837b2fc3154 SHA512 c5cc982efb1a68f1f1dc80eb5c1433edcdc48fb36cc9209d0d346c91da895c5b15f9f3dad216cce52a251e64c45d4044720f184d5d6ccd2706b56878fd5c6591
+DIST smol_str-0.2.1.crate 14689 BLAKE2B a1bc1121fcbd42fff6248b74a566ef606470b733a9e37211748512a95f3a0710ebdabe6f96d9b2d2482a8a546618e428e32fedd38ca893f6ae87c52a69948a7f SHA512 97ec765f3244210adac567a36b21436ab3cb387db0810b86258b80161ff4858d34e148fe34f5cf351b4355ef998b017d216749e12c154554fb36abe37bb541d8
+DIST socket2-0.5.6.crate 55270 BLAKE2B 10eb32486b9a2908e05ab24620ad7a79243e59c2c2db5a7793f87f32765745b21746423d5b3896ef37d3dc9e76410fba97826cc64cafb7dd45adb485900c2282 SHA512 10f14ce7bcb9fabac56f98bd34ccd6368dcf4ca245ba2df80fe0f1157e177056eeffc6fcfb1d1fea6e89c0eaafb99d8056fbd10101031d3ccabb98950ec563dc
+DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
+DIST spirv-0.3.0+sdk-1.3.268.0.crate 30802 BLAKE2B 8608a8613b02bb5c9e5258bb604db55c81d289664383606686c70f314e5bd31d5b4b0cd1e0b77c8431c363e023861c18a08f642b690a9ce01ce485d069bb6a25 SHA512 82187b94f32ee784eca112408e61e3c3ca8c825207b4c817b2b87900b252c514d137e6ea5e9384a2e241d5352ebad0e153a72d5b3db2b0dc938aaa472d3c261d
+DIST sptr-0.3.2.crate 14598 BLAKE2B 0ede8a60dee9925fcb39377c2e41b2fe5ec760a2c9e3166f4f8dae35c34721848d328522897403fd60808135b11661d373b7fd89c7127367a806cefa8b914d8d SHA512 cc26ba96f808c57d6aa5efe5985ea3e83b65827a7d163837c81a06fdd4f178fd5bd86e4c08d7383a10d94e63bb97a0f6c151b55cd79c9c26f3a8b7a0c6e5b530
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
+DIST strength_reduce-0.2.4.crate 17859 BLAKE2B 63ad1af9698ed3ced72f7c0e6d8c62ec35fd564d179286d6cde8975280dbc901303a3be5664b1902c135924dde8a03447a8e837ff0cc8037db50b053ad3c2c9b SHA512 2d44e54e4cf78f718faf482ade6c33fd42e73187a7e4fbbe41fa0905e6bf1ad5f5241c3d8ddfd7b18d9bbfa3f331c54ef2d817b254e1200b50b146f04327f157
+DIST strict-num-0.1.1.crate 5104 BLAKE2B ca255ac7afce45b8e2dec87cbe080730959315f753c69bacf1c941617d5c3513e57532494409bec29acc73928291baf98413cff6d0686ced10804ada2a26d361 SHA512 27ced0b3110094b3d8a22b60c67980b7416debe5a22b0416a025dcfc8264fbc1ada1ff73362383ec605c36d682245b2dface093cb6152852f4d4b28705f8a197
+DIST strsim-0.11.0.crate 13710 BLAKE2B bdc748ffab302c8e1d3412663e300c399ba13bfc0e15b07101a680394204af2df8897ba784dbe57b95c4fa9e732439d0f5aabb090b1b1c81f066bfa125919419 SHA512 ef4165dabaf8cbdd6c58420043cff9c0d1f4bc3ed53de5973b654bd71ac7d462fecaa6e1b750fbcbb8e19b35f6e6b73641a17656b20f5562b6ba7d84e69de226
+DIST subtle-2.5.0.crate 13909 BLAKE2B 660c3a472ca54c9843ce3feea74b802e27fd7f62dd37a30e2a4ba82e4b3a71df63562e8865d5fc675d31d0900998a8730503f91a61450884446a3bdd6af0041b SHA512 f150b1e2037554f8cd3213a54ddbc258f8f670cc4f39e7084cdea4b47538dbc58b834bc93b443d58a4b9087224efc003234042aaf366687dbd32b1e7174082a0
+DIST symphonia-0.5.4.crate 12039 BLAKE2B 9bd9230cad0011a014471ed2e01160a2ac7e31383345e7befdb7e7d44197e12d8de86e9c399743760f79245d85214b6ac99a1209c06e899d1e1044e6e32f6c60 SHA512 fba7aee862ea3225790d6e527f7253a08c3d735e4d3eed8812c551b2fe180bec116bceb1f4718ffd1af53e48156b4f4cbdefe75657ca1487481757f7e8cb9d13
+DIST symphonia-bundle-mp3-0.5.4.crate 60104 BLAKE2B 1d7a86ee6092c706be3b622326615d161a48aebf16dea96768cf986fc9f7b295a59fdf85b47495d3444e05667d619940220df8c73f7f5a114897fb4257ff2c61 SHA512 19b2132af39be9ae7d74ef0141a637db0a0f3d4df6405331bc928a6bdffefd783e16fb75f60adc08e0235034a9862228355871b30d2adbf4d412a539e7843d56
+DIST symphonia-core-0.5.4.crate 98029 BLAKE2B f65a92cbde4b91865d088c7a7727fedffda325450281ab98f8ec93b1866d88e2ae6ec8bb25ced31a716537d664298f82658914d02c729af9f9bcad0bfa8bd160 SHA512 3f2265b9eecf405d699779d66014017f6654452607e62462bdf7914fee51d812c63773d0d22f78fa099df67a11aef375bf1859258ce1ecfb07a45c175c686888
+DIST symphonia-metadata-0.5.4.crate 23343 BLAKE2B 2861b684047bddd0f4a524be213fc15b1287d9301563ee862a1fa69f50eaf6df07357616c33ace46066373c55868ed7b40655630051e0215ed230a11e2e34d20 SHA512 b1c0f37008d7ef5d21f7da5a93fc68920c0606d9745e79a7f0b9120b3d92e5fcc75a67bb5c0528c9647730fa4212b6a589e3ac299ce3bfa5e9641c1de0bef18f
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.60.crate 255808 BLAKE2B d7a8e415dd72267fd92da48ba8b3e6feb728f0639797db1aa74aeaa2a57935b7565eec37cbd32eec826154e2c54075b121737369eb15af36c322c34b3cfd7930 SHA512 20bfa02b03c193672a9922f9a5e196185341e082a262f7c00d7c2d467d9e2d77f4af3994634923cfaeee34aa9eab510415165f052ffd9b1ed0b1b581e272898d
+DIST sync_wrapper-0.1.2.crate 6933 BLAKE2B 0ec797ddead298a95bde0a508ae942a4e90943948d3c1e4833fb3ad1cefd3566b7fd1aa0b133d614839707e3f416e3e739099ac73441527213da81b6d1c47d50 SHA512 ca7cd7a6dd242fa420e8dba820117d85b1b11ea6a9fd99c92a5a260f12263cac0c034c9f9fe10090d5830fb5bf5eefc8a5a0d0b5a40f3f809d69e5393693d5c8
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST sys-locale-0.3.1.crate 15681 BLAKE2B c60d11812280b8e0c1e5a753c7867351deaa43d26bb3ce0b381f56c2f375ec8db2755636131a13fadd79aa6d90b75c5834dbf52848b9ca50c1ecc5b627fc640a SHA512 c06ff352d5beb9d214f08e82b8d49acd8b83114e6b88c9685f0694d42bba079215e6afd1c5c75a8e8bfbcc72d99cb01de7a3d8f160196adb6db9c34bcf1a1ebd
+DIST system-configuration-0.5.1.crate 12618 BLAKE2B fa75a24f8db6eafe578bcbf162fcd110ca059c58af24916acd64959b48d8541e0aa95ce2c929a8a50c62e7e8a967de9101640d1da7805fce2f76b7c5c86c4544 SHA512 af77ed5be890e826b9b8f975bd2e63f3905adb24a597069a887ff2a861820f1ed40582b918f35c3d4eb063800e179b93e5acd7d5b48b147e9b16e3cf4c12840f
+DIST system-configuration-sys-0.5.0.crate 6730 BLAKE2B e40c4b5e7897cfe30b2fb6daa9b44fe2b83eb2a12d798a1ad8908b51abc735566becb0e001f52f5f8a0d3596f62a9eec631341c3a9cbd132a4f650f988c74b93 SHA512 764168ee5efe1ba82e847ed74a14d1f5f1892735e98657c3ecaafcb4b405d4f779592dfaade252f6a577ca2cfd5cd5e467c0b6326bbdcfa573c3ab01cdc8fc34
+DIST tempfile-3.10.1.crate 33653 BLAKE2B 819b183e7840f70270883ee8b6a91fa09861c3112eaadc65007199885abe099bd593e1cdc4d9ab48c23490a6d484cad9bf0e80cf4e718c369cc2418b72eaf09c SHA512 bac7515b85b0d01ea914b527f0fadd3a4d8e77c9eabe786977d2625d8a3e91decaec502dd15bab4d49a43597fa7cf7660fff4be1b043112d13b542a72443bf39
+DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST thiserror-1.0.58.crate 21025 BLAKE2B 2915ed6ab691fe94e97a834ce5874d37a388c3240499889cff633ee6c67d46a2ca88098ba40c225ca0e2e3c1ac7bdcfafcfde3dcefc50867e299dc49505d6fc0 SHA512 3cba2d1f4965bc56bac8fc70540d8cd442ab6b8c7d25d328bde7f4cc108535d83c75f293316d730bbd86eb247400b6e35107d610c7caf47f43a28b1f52fed578
+DIST thiserror-impl-1.0.58.crate 15645 BLAKE2B 9c6f643a582666ee4eb43330340888e7141f0dd89d927e3345268c3eaca02fa42b018514ef38b3db3ff9722b25ebdd43c36b11ecfc7bcb36950ce2c204ff78e1 SHA512 9bbc623f54c71595e48b33bdb3e4f12eb2e48074b15ebe400d6faab43410b363e5af94df071aaa324c59dc6958173e3c301fd51b216969f095e19cb98a27292b
+DIST thread_local-1.1.8.crate 13962 BLAKE2B fce2feddaaebde42bdb83d814929868f06387a4fa25d5becc73ff0b983395aabe076268569c6a89e2d90ce6e68d2ebca7c3e0ba1c9159c61b32631ce39289a9f SHA512 6d7e3941f43c43ac091db5d1cf2a8a3892b54b0634d9200426eadeb82015566532f04b6040085dbdcb10580ac724b6ded8416931d764d795a5f923aced66c492
+DIST threadpool-1.8.1.crate 14408 BLAKE2B 8bd64ede19184e18460f6b2ad5bc888d6facd5fcaa5b43c35269e35909c9c68a884203f5c4b92619c097ad48c19ec29f73085755ee348cc637233ff3b5b50ccc SHA512 adaa5aecdeec25848af15b160e5b39833978454d834974211bd586d81837f2ce89e5590f08b7e0d4868346cf57056913a5d41bc8bf92b89109ed769cce4a8be0
+DIST tiff-0.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.37.0.crate 764297 BLAKE2B 725f3b62c52ae962623df84c690db7c54438581b8d2108dda76f05bfabdf1688f2de8b4fed2ab0db5c04c7659af8d95a7e19702654a12fd498d85a1d030c7a45 SHA512 fc3c070ed0c09e57205b76618a93b8b00f4d74c2ad89df3295254ec2a984f4fdfa9ed5472ff935e1644e89cf2abc44354742603c0e006f14861deab2b873cd85
+DIST tokio-macros-2.2.0.crate 11520 BLAKE2B b688669f8bcb44967fe0d3db51fc5d5f86da3cd0c7eb7b5803feb250ea3444d134ecc7f79345f0b947cd3479a46659f3a158a04e0edaaa52deb8d343deac4761 SHA512 7e33fa62e0cf4b829638553a51f849242788d217264437444b3bf478fb40be26800d5cfd954b1bcdca1e5191b3c6c60879050f0f7e707461f7b090ae5025e0c6
+DIST tokio-rustls-0.25.0.crate 30541 BLAKE2B fc85306724dbb91efee7924340e0cbf4557cfeb149cf11dca84e37ca96e6ca54cbe774edaffdaf313da11af98ac03cca23bb7c2ff6ea551f5328a3bf3ee9aa02 SHA512 4e04669ecdd8235edd438075e6b125f6473e117adc2ae13ceaee7668705e81a87f97242253f51dea204fa1bb3b9f8f9f21b587b4edc7c2e58e375f5537ee5f95
+DIST tokio-util-0.7.10.crate 110508 BLAKE2B 073b25e1484d54911bc15fc2a4b3fb7658f24f7f77a2382f9f84c5122871cf8c5d6097d5c784cd75b17a79aa63eca80644ff54bb496b52e53bb89650ce35cab0 SHA512 d77db36cfa5a2ace3090874d8996b9e94058ac31648308da8dd92a7bdc9b9b61adb703dbd2131adfef0b428cd61b4de76fbdb674f718e89b297f762af11ec50c
+DIST toml-0.8.12.crate 51145 BLAKE2B bbd5b7c536c16b23f26bc520298172a61a61cf72195191d1d3eddcf54ef0ceef781902ad2c0033fab5aed11229400ec537e3cf86c24645a6d111b387ca8d54c7 SHA512 dd8054e20aac5320a2a6a7d47640cc56e48c2b6db01069786382fe5ae19e9b307fe7f4811ce5b8fd283a307c0aabb2b7f57101e05edadf79636785128b5cc265
+DIST toml_datetime-0.6.5.crate 10910 BLAKE2B 93a21ab2784e96ee2e6b56c7b4f733f6ac4c68c1e7d7dac3fbd8aceedb3580e25b4a9c7d9c3f9b5ed152560353b3e80906e37824956dc4ea90bc6f039768f6cb SHA512 502bdedbcbd2ac9fbaa5f4b51f2e409af185f3633f01f8845de5e3b007f2400215ddeb82ac588bc915ed5a5f9d7251ccf93fe2a57cd40fca2927f4c0966357e6
+DIST toml_edit-0.21.1.crate 101661 BLAKE2B e794b6121ba7e2b1b3f50966cd40eebacee6968b6b28986cfe4cb7312b51ffff19f74826910d8e4ce307f74940f11e71e6afdd768ac196427bddf44595bbc797 SHA512 10cd3b16f763f55294923ce8f166f96fbd67a0acc4a93a46fb3044d8a38148097c592ebb405ced87030d35154abfcc971eacf0172b624ab477a11e616efbaa07
+DIST toml_edit-0.22.9.crate 104173 BLAKE2B 1d2ae80707a554bfc9b9b66975828cc66e4759e1c2d9475d0ab200710cd9794a2560834802e586a42d8e52eb309497593f6673944101d90948974d21d3f227d7 SHA512 b96b310e18618c5cb75cc827f5bf4565f06e0089577decd38a2669bc51672f3d1500e2ca5e69838ee93d98c966fcaee1584e8fea1fe0b2ae724be0882fd5880e
+DIST tower-0.4.13.crate 106906 BLAKE2B 6a8f4455dcc69f6c03af703fcfb0e6b214c2ce599611ef78fd41cf411ccf06bdce241e03a1d85d36cfeadc72db9f3d9b7ed94c4fcec466c070f2357ff6e27360 SHA512 592f23eee5efa6a4f0d2ffb0d965da7e0f75a90a4320a0d0dacdd5add66513ae40902d21af2bf683573133ee984866987df2ae8eb8e632cba7a9d196985aff8c
+DIST tower-layer-0.3.2.crate 6023 BLAKE2B 3450211e07a40419526cf1afe063c56357dd5add53470a4146ced3d294edeb95dbd645ab46ae0e42e4877dde63b1577adb21d9cf50116c4cfe4165e115d54ea9 SHA512 d5429b40569f67937e752c2d61c39a474af32bea5ba3940dbdf5a4037fde1ef7173cbd8fcdb87d0ea15c01bf84f2d55abd51fefbab2f27aa54e656eb1748c43e
+DIST tower-service-0.3.2.crate 6847 BLAKE2B d4571704eb4bf7f729f4535a04b7eb94f644d71ba8c5604297843351adf4bcce7ff64ec4e5435783ee6ada1b0a5c97726cfaade391525c6b2bca933cd5e8ec19 SHA512 f4578421603067fa708c4ad9eca5ca096b5262b6d51a404f37d9fbb6c64f027cec6114991e4b7f8324cb756c033971a384f1804add28e00d0cd6b2ee01d9e005
+DIST tracing-0.1.40.crate 79459 BLAKE2B 33693ee71564fe5925a63dca351e838dfd8612b4b1e49a33a70095e56ca63287c13c772661ace0e540d08c92942d7cbdc51ff2cce4f4b372164d9aa20ec05dee SHA512 5622188a45dddc0d6d3a8244a9b12db6221f4180944ce1019d18f4e613e4bd113dae5d45fb57dd0754f6e8e153b047cdf00c8f200782bb2b868bc2d423d99275
+DIST tracing-appender-0.2.3.crate 21964 BLAKE2B 7e2e9b759d876731984dd6c7b802fce18b8f233f6d659a220e5f1b338abe928b8f869d1479278eecac2899985d578db0f60dfeb80a1b8eb774265f21fff960d8 SHA512 c00f22d85a29209ec59377dd2f8c9bdfba84a5153ac84e1551266837e30fb931e76d93239a09bd4a27fabaf822bcbfd88d27787d923bc809493b7030b5cdfc02
+DIST tracing-attributes-0.1.27.crate 32241 BLAKE2B a20af0f50a90dcd64e5318e55779142da294ba18d1cd40059a8aa964fd3c92834e03ee563e41caaeef71a30e3f027e5c8d167d90e2844da79e0774b267e179b4 SHA512 7dc59f4234c3bf3434fb352baed2b81db4e931eeb3ed207c4a204e480da734be40847b167b808058d2807b5583815625bcd5153e2bbe79804cfa6f069a74ffa0
+DIST tracing-core-0.1.32.crate 61221 BLAKE2B a7815c46af9852ce62498083103c6d359351f4d33609b4291330073b6abf4b63f5e1bb1a7dfed3bbf4d6913ad5217e96999416261af8a70609408a29109e4db6 SHA512 164f79cacfcca533a53b7dbbdc2015aaf851a16e00c72fbc4e5f515b6a6dedfa464e964810009b54f08cbcdc5a314e50245ac7b1b01a71fce4c63db135bf5521
+DIST tracing-log-0.2.0.crate 17561 BLAKE2B 701bdadd40f1343f3c4901bd8dd188f1dbc0afcdf50807bd0f6df7539635e239b5095696872103125a4d4cfec24af6336fce6f3931363dd5be4f53a09fa584f2 SHA512 0c1f060e8ffb9ff24cee7b85cc2d7d42c69b2f7623a7faecd7422b23b11ae8d5c7691e4635bae76861d444c369d9701ccb147904668023642b223e442e3c8285
+DIST tracing-subscriber-0.3.18.crate 196312 BLAKE2B bc2f04da63b0313d26073eb4a39b549ae37701e4dbf1fe06a2483279a03d9dde981f0efea6ceb5cd441ab313bfe7eaf812971c3ca60dfd4b5d9cf0d2eb7bacd4 SHA512 72f91855637aa476f03077d5f523cbc94989d40b12d7328167f88b081869ed096e6370450831f6cd5f0686cae5628f14eed4696c06a2ec75f56808b64445e0c1
+DIST tracing-tracy-0.10.4.crate 11229 BLAKE2B cb3b73ab9880721c435de731d06a4baac8a985a15709775086873ba8e34c3428f492fc400604a5bf0660aecc6c62048da1785689c8e0a3a39f1dc4ac97f3ef72 SHA512 364aa4e465d8fdba7d38881524dda509bd133dfa0197e8272b48008705d5dab5e57be9b9012063d234a25a9ca1b2ca9302f1ffba2b79082f3a459d61b878bdc9
+DIST tracing-wasm-0.2.1.crate 9372 BLAKE2B 5cdca349f6a4552e2d22812260c7ad94a2f2a4d0e94c9fe7edaea22a840d439e90425ed65ed7f572f46451626689cb1609e85722fac80ea9592746df29d2e5f5 SHA512 9ac4db2c9bd3f19351e5ad40a03da2ec9cf4b7d78c1d6ffd5fe55a4f94524adf90a0acdc9d97ef6e4399b90c70b90c413f2726e5cab9e9c79877105b5d00f342
+DIST tracy-client-0.16.5.crate 20125 BLAKE2B 5627a92881ab34ebe5a493a809260039bee084b55745cf51d5125784edfb4f06bd2eff8cf5bb916d4deb2173e5d11e30cf7c345d63f6c31231ed992fe5417bd1 SHA512 d00d7b4e2d48817e68105e7dd17aabc8942b5d56389b6e057f897fa71f29fdb80eb5ee394acb2a0a6e2e8dbba24f88d16c3e16fe0d45757294fb4a13d8793e8e
+DIST tracy-client-sys-0.22.2.crate 308267 BLAKE2B a2f5b6250ed37dbeb526165ac365679d53e5800c8dbfb2780fefc517071f85ed139b5c92ff19ae7bd330d6c6662f3c19aa2d19b2a79d83156974357e458df8d4 SHA512 33fa9f8cfe02594b18dee50629f93f688eaa84fb136a2e526b5ae89ad287038a838726bca5d975197c22473a246fc0dfc7b29d7b2c7c385b78d2211cc8965633
+DIST transpose-0.2.3.crate 10913 BLAKE2B 5af25c7e404121acf68caaa5b4109f4f3cd56093575139ce54a68dc14bd2238ef1d3cd2c7626a1a9e860433b15d517b57af264dea1f16cd59827bfa3cc4e93f2 SHA512 1a624e7baf2c74da48489558f9327d935bde67812eec50e205a4060180612d7e6d7d18f18c1b118bd7b08650cd089d8c1574db3fbd504a6915c9cd3b4ec09b59
+DIST try-lock-0.2.5.crate 4314 BLAKE2B e75c6c0d7c975e294e3d723e2fb023067530ad6db3c7bdbe89b9558764606fd1a74f0d1ba787d85266db1912dbeda85408e85646d0f7cb24496d743b7a18c705 SHA512 433db3c52f55d78220db414ef6a7367791dd66eac935f41dcda85ec9200f0eefeab6e8342e70aabe35c300069c0e7b7c4f8d63a2334b52a081cc98416371ef08
+DIST ttf-parser-0.20.0.crate 161769 BLAKE2B 0c2cce46dac6ad19335f5d4a0182725d347640976f8d1474472b3b0541bc9b8b4360f25d50166de7ebf5237b537a811bf0a4a55e529825689c375ca3777c0fc2 SHA512 57f8b09a47109da06a4472d6a75de41773bc6a4a976684e5490a19b1b6da4631d381650152914ad8ab04ddd01b7c5cccca971ca45054cfdf027ebcd924037929
+DIST type-map-0.4.0.crate 3177 BLAKE2B 6c56ab2600e36679f37319040a529029bf8432959026c95c98490a5f137c64ae30b889dac7e4bab2b4edc656adc22d2a01c6c7a688f8ac46db1505f5c7ff5642 SHA512 c3e81d6dd94d5d8266bf409efb9e9ce6fb5d5889d672422b1f85f406ab62c58e27af5b6031ba5699af9d70c90bd8fca913c7ae0fb75f64358e3b7989f3d32099
+DIST type-map-0.5.0.crate 3464 BLAKE2B 02eb7aec3b683842cbc2daecc5e778719a353c3f9fd24c76262c980acdac2a303b9156718bf7fc15e0ac66345bf1c04befbc218a358f55a97ae0d172390b5367 SHA512 9d35158412917abfd56833a365c32d06df1ce1b2de3411993a43a675833321d9b3120ae4432a4618a887cf087cffc3470b82786a1f67db29a90ebb7b2555012e
+DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+DIST uds_windows-1.1.0.crate 17040 BLAKE2B c77914e150d2f0afc5c55680e28ba242238f4f1291948ae492fe63c16791e443ef33bafa6686cb753e53361ce452f2df27d2bf4088fb1ae203a47df3c55856bf SHA512 092c41f6fac2aacd5b83009b4aabe2cfc487cc1ad5ebc8237d9804aff0c5c823d3c079d99748e9ec3bb1c02b8a51f6a22e41441ec9a72c50600c08b1efdeb0ca
+DIST unic-char-property-0.9.0.crate 6809 BLAKE2B d2bb66259b66e59e831ad74d89528882336a7cf6dfac7a9f49308a70a3d61d5ab88f3ade9df2c086f27ff4a6eae0d2d2b8e63bd154ce3e700cc525769f34542a SHA512 ef969968c61eae6a7d68e6ccb0b40f6618a69bfc4714b51bf4ee8c5ec4532d10b9c6675a4cd5121c904a578ceec7c6471d1496fedbf121059f076ad1c5ccb70d
+DIST unic-char-range-0.9.0.crate 7020 BLAKE2B ab79b4298b999a9fbb769bf191f83e259b40b8d06cc5cb82abac48434162216a283fa82c1bc9af8b40656c2d06e5b6a919ff7888852eabb9001a92db12fa48d7 SHA512 bb0ede1695f4f016bdf9ec83bb49639527248c175c71d24993b8651ea6be0a411251ed8518893101dd5e96fd2913cf15ec27799c677ddb08b8e408da06ae0ceb
+DIST unic-common-0.9.0.crate 2558 BLAKE2B 4efd81198a61076ed45f6fff73561de21b5b7500277de206ed41cfb01ce8e5046a1e2c5f90ac75c03eb1897b7f54a14cf0a8f6d9cb39f624b3a9fac375468e58 SHA512 9212f99afd4c694a3a671963d63e5349f81adde6d5f50c92ec39d15e7ee24aa91eee63ba578a857c8b21380937860968a8e13cd16bb0ee0c0ccd96b3094ad155
+DIST unic-langid-0.9.4.crate 8850 BLAKE2B e95ae483eb531b0ec50c53a0c5499cd593815e7ce7c20e2c5655879361bc0fdb9daa415e7641b2573a0912ea7042a53dd09528660b43027cbeef3b8494f736f5 SHA512 4297a84a8ec8479dd88b34380f882a1b2891d15be5089d7a015baaf172f57a003f92beb2faa96360262ff19ecb9542b7e720631609c69580586fe4a496fdca83
+DIST unic-langid-impl-0.9.4.crate 89401 BLAKE2B 8f3eb98a62624c8d3e49169517d0bda2992dc57caf6dbe7c935a0eadceca4df98048fb8ebdc951bd91541f92b6ad4fdd543bc5bef0d5c3403adf0eec542fc23f SHA512 4dcb307390567d474317a5f9c231624ebe524b393aadbc135e0923b474a14a0a593aa05cba2ee04eb195af0445b9058ddb5648a282a7ed0c44b4b6fcbc791e50
+DIST unic-langid-macros-0.9.4.crate 6332 BLAKE2B 864930823d705f9bb8e630d86f2d17508ae995058f288871cc4710811a663a294d22086c500a77ec02fe4ffe19890e088bda75151cf06bb3a655dd2ebae82a3f SHA512 a5e8ce24962ce3b2e26fefe624fe8d4816c81664acb9d0b852a2f4c2ca792a1855769f65efbd8f24df9d4c12dd68640ec600fe16b0fc2812390ff74322d77986
+DIST unic-langid-macros-impl-0.9.4.crate 6202 BLAKE2B fba2c4580e08f474e209ed9599433a8a8d95ef3123448e83157e942aabf3d9a4aaf715ac95dfdf71bb38b3b9a18ea34cc1bb672ab4ff8b00e8ba67276e70ae94 SHA512 8bf869f70bc599b7b55e0d671dc88e24c0cf7e16dfecec84baec5156261c5c2e72fc6314436cedf776afd92a2776367facf26985cf863b7b4f525abd6061c59e
+DIST unic-segment-0.9.0.crate 34848 BLAKE2B cf04b1d875ebc835758b17f8fa0937da8e47b5c3aa3d2389b9ee35160805b1a0696c3a654d68b60a515fd31dba0571b0a087e97f6815ebd075e1bfeefd0a623a SHA512 cc2a27459dca554a78ce24fee42f0e4d0fbac37c42b4c5a1275f9e3b412cd1c813a4b4864857ddc33b549d99f10c9ce9c277b00f9fa7d93f130f5e47106d8fb3
+DIST unic-ucd-segment-0.9.0.crate 39262 BLAKE2B 73a2f0bfeb17ee731c17e7eb4b7188a800fcd3745c5c6480916240d087df5a856e4f51556e1aaee1e6668b216377acdaf4879beee6b285da040f6871f0c04e6b SHA512 04aab71f97785453dce7f561acfb2382a23d60a68735f3664577015a256191463dd6b1f90694e4440c4889eb9b6380c16c7a0ec2dfc2d49fc44a284eeca43c09
+DIST unic-ucd-version-0.9.0.crate 2246 BLAKE2B c546ee182387db997e6cd699a25bc201fc943306d8e87f96edc1a3dc1cd5ab8ad96f34e8275721a5604765aa6fb6f81e3d8d9eae690d04e5ba71325a769b065b SHA512 153219ff18be02e23ff3dc90bba11fa8c7cda11b972e0d84500d9a0742fb7d84466f2cc63ee278a24098c39634e50742af3317cd942f4ea882ef5a2a8e003d7b
+DIST unicase-2.7.0.crate 23783 BLAKE2B 2b74b932b45c9d5b984b57bfe8249496c192944e2e66916919177eac81c509e2d7a5d30a85ea58e8cd5a0b47fec746bdb18723f3f14002fc64af3a0d320a9e7d SHA512 c2b05a3bbd8996e1cf65d7458f5ad95de9797c8349484f8db04967bde15c1f057f62b2f7a60e7367871512071ed5076c0da042169dbbdcaf4d6c16cae62da828
+DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8
+DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5
+DIST unicode-segmentation-1.11.0.crate 102740 BLAKE2B 6ab5de53073ff56da4924e8c6ecbfa4bbd72a66b8d86f2c32b2f0ccfefee8064997a6b5311af5de2b71943089c9f52862e3cb13cf366cd645f57c96f2ac8673a SHA512 4914543cf022680f341c4a235f6d9204b3ac9a9098f34a80ee8c94e3d8ccbb82e78af016978eda910987533044593ac629a35286dc80707d349b33e405e86bef
+DIST unicode-width-0.1.11.crate 19187 BLAKE2B 6baf7f3b32eb838925e591792abfe11968206d177facefb89ef51daf44c18f3fef1e41c19a47b88b81be50667af626af2024ccc540b240fb6e1d83fdea57076f SHA512 ee06f4144525424327a17578642565f396802f0eea539b3bebc8d9627376a8bc6c5376d83a6ee577068e99fe75815bd765e6d49fb9ab9b253d00594bb15a5ffe
+DIST unicode-xid-0.2.4.crate 15352 BLAKE2B 80c327b39f3b8f2cdb5747cde968cfa1efe7b65b6bee9136adc881fa19f66aa5b1010d9d08de55a61b322d665b5b0cb0395e9ac471f6333c40d8dca5d97e123c SHA512 e67bd1258e1961807d9d5fe583a89ab5b82b2a529ecd32cadfc79aa5331380eb4a2db9fd96b74c8eace47f2f29021587d69bcdbf79f7e2650e92a25f7839d03c
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST url-2.5.0.crate 78605 BLAKE2B f3fec3477248cbbe67866577eebb03f517c284a5e5cb783132b11ef3ad156a03524f4730f188d822dec85169d7474e265099296d6bdd4adf5ffaa0a118821617 SHA512 4aedbc48b85bcc2853189f5fe8265a01c76516b5507f4e958d8d0b860fe2590c69c95f0f4b9fd6fac9b8d5911bcb0a5e9ab7f8e8b600f37a12db1438976ee5c3
+DIST urlencoding-2.1.3.crate 6538 BLAKE2B 65777b0990aa6b3d27a47f36114da8622026ac8946b5ffb6e04172b666ec7244a55c250a7fb626472bb2b636eb32ee945599cee5ce7351c3cef2322366db15ff SHA512 035848d9243ed6a4528377b56edd7f8bcb5f824381b420dc8f5c4bfc3f1246655c54eaa7de0e4aaa7138e0b08fd796b9ace140ab919aed2d94f6952b577386ac
+DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050
+DIST uuid-1.8.0.crate 44043 BLAKE2B 6a5e3008f0399d5606ea4ef51e5932aedf2a02e747b9bee4b4c2c6646cd959a720373c346a734c00554ff0359fe42bdf471dea5029e23a9e70164e20895cacee SHA512 fe254f0bf6b863538ce568405569a4c755b33bce561148661b10985bf4485fa7ee7a6ec650d93656552b3cdead46b2074ebfd45b040edef19cd1648300f68ed5
+DIST valuable-0.1.0.crate 27718 BLAKE2B ef5ded994c9a6dd302bed27f0d757447b0c86dfefa499c1ef0d25c3a6745ce61cfa2c926826534c9f605f9b89b4a19f91f06f94ae7c03f1ddc4c58fab3ae58bb SHA512 a97f65db1f1c5049a276dbb0e45e25c6fc6ce9d27ac1fcd77c945324cd8216ef60344065c79799ca04e338455e4f7422c44078eea32d5fc359dd0211ee7eb387
+DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
+DIST vergen-8.3.1.crate 44665 BLAKE2B be409f3e469592d90fa1b839721b23c7d0bf6f23d04ad74ecb0ae275e44f2b7ad7ddf747180d0009ff6621830b26259f379abc85e89797a015a0d00e25eca26c SHA512 63da805fbe324eb7032d98d3c09e1f71b9f9cb4f9a69f2a7e4560442e7a83be37c7f558b7d3bdb4719b4350decb3a562bbbd8f2e8dfc180f8dc58907411df7c7
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST vfs-0.12.0.crate 47059 BLAKE2B d830cb157cb9b4421b05ad1e59b90c27b33a6c8c0b4d9606ee403feeaa3042c5c2dd19b09ced94000618ed1431ba01e140780709fcf7543ffc621db3ac8feb7a SHA512 1f807681adf20357e4b944bbb1f42790b7134f136bd6b016a434141e7586864da964476486683be38915c35cd6b68ac870ab3decb97e4986381f729f82ee049a
+DIST vswhom-0.1.0.crate 9420 BLAKE2B ad748822fa9650d011c5f240f5e52ae1e27380fc1b22db2ceaaece4fbc814ac2f2792cf6772079199202efe88fb968618a13d91609e5245639f25b32640fad44 SHA512 0ac192e6a1d296904246d89a08021b55384b48959f26f1f0dca893f8fa1e71a012a0d731d1e48e41ca8e4427da84e50fa43ced621e435b010cbcda4f19c45a58
+DIST vswhom-sys-0.1.2.crate 15852 BLAKE2B b21fbc0af440d3feac8ffb769f951f504e01f630d6f806d78a8f218eeb09ff8940328d6a9289e195deae9fdc43fdd55cfd037ae9c57b366ae57906b80d2f4785 SHA512 cd7e7b9e1953c70470d2f17210e83d28cd2c5ab8fc34ef0c9e06390e928853e375ed7bc2bda343b2f15820e989b5adc5bd33d9cea078716bc31545ff019435c8
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
+DIST want-0.3.1.crate 6398 BLAKE2B bcc1384bbb86db27b5e082b29a8dd4d89c37b40f6cdec4df8a86c8d205b418468b6cd42a78bd14ebaba057b28e151c00b474c098d7596f49a823ce33510c13b9 SHA512 f93f765113f035e134b967e8eb3f4511b8e03e793a47899b614d826afac02348fc02865c298a10410ecec4eb64f35f66c22bcbdbe36ed0c4c1665dca1db4d526
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasm-bindgen-0.2.92.crate 184119 BLAKE2B ca256c686bb3854492bad6afe3cd27dab314561a1ea2e0205579820066b462bacdb2cc01075fb420bd20eb33b03a648ce1ff46feee04d8759ea8aa990ff8232a SHA512 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5
+DIST wasm-bindgen-backend-0.2.92.crate 28348 BLAKE2B 425497aa7a023b70549c55d5a15dfed80877c5503863b186c0a9d11b29551c4606c1cd5961c7dfdeee2eab5662952ad7ad215513e93abe727a33f84b30bd181e SHA512 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa
+DIST wasm-bindgen-futures-0.4.42.crate 15380 BLAKE2B a20ba9f2bc814d7aac031f1cbaec90289f63893b76c60b536a65af85379771e102d6c3d949a8528328587ac776d7a3b684c12a217f9e186bf10046a1fcb34652 SHA512 0a77203499381b6bc4e9258480d7ef499d9c26b195baf38d0b7b228872f844d24c827cd57c8e2b0176927fd5957428084f53fe80cf60b35b7ba02d02b27a4682
+DIST wasm-bindgen-macro-0.2.92.crate 13835 BLAKE2B 1f2202fdaeb78c32813eaf08b2fbd7aa9c469228386df71b8ffd81a46374e39a7104b79991f702505f9b7e97957fda8574517fbb03e3f9e93098c4d6e1e46be3 SHA512 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462
+DIST wasm-bindgen-macro-support-0.2.92.crate 20092 BLAKE2B 8e274a4053e7afc680740e811c3941478caf5342e2206e3d28cdea9f9514bedbfa4f2b6bc608817306a1c455dd7134b7e17f0f04499f6bfb5302f29b041ac7ae SHA512 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7
+DIST wasm-bindgen-shared-0.2.92.crate 7263 BLAKE2B e54895486b9a31cc4651b7bb042059cc84421708346c06a9764315ebd4f440a1077520c7d325d6889a690b2c06aa185d40cede2dc4d061b363594cbde20fac31 SHA512 70e3a22731ed8aec428433bf30500eb3f62e3b7f4f1be34d8bb3b6f34f99690fc85d49eb413caecab807064494cfec64242c6a42709dffd638046e370bf86e07
+DIST wasm-streams-0.4.0.crate 34328 BLAKE2B a29fc66c00b9fab42ba1691ddbc251bebba429837875989874073427cfcd2ed1874597d7f7a9f1097e0bab74a3cef04ba6d312ee9138a5cd973d71837a545d6c SHA512 9a729b183999bd5cd6a31e69014381371d7c750bd0ff5c3ef0b08682fa4563ad8de1a2db0901bfc53f6721269c937cfdc4742b34388829513dfee1337d30d60d
+DIST wayland-backend-0.3.3.crate 70455 BLAKE2B 9c6bbb5c8982411b8d63305cd109d5dba3b396ea1c130e0327dc31d4f6d0df56e8d8fe5992fc80c000bb8127ad4e8d32d2ef5e7fec925fe3b0b508e63b4149d9 SHA512 fb3c7f25074747954b5dbf8455c2faa92862ae53864599f49ed64b74e5f114d7e578ed388cb3b7240fac3fff98a5d231a977154bbe976354938d66fc5da5b8e4
+DIST wayland-client-0.31.2.crate 62976 BLAKE2B f7c4e1f581bace8b491c7ffd393106db44b7be028c136b1ab99c9f091f828c6ff6e5157234882a7926da5cc0de22c1ce14dda7e00ccd5e2ecc5e3356dec86e71 SHA512 1f15b1f8787e1b25b90369106ac6119f208a60ab9c3fe851287fa9c7c8d9fb03217c3f33ffb1dfba5df4f2a749be19402d25ed80e1ed9d7301c1c40e847911b8
+DIST wayland-csd-frame-0.3.0.crate 5696 BLAKE2B cc475e52f9cb0bd06569b7a6996cc78158a07ed2cad7282973806d4b4dd345b968088d5d035ce1f52909aeb3aeb804b93243f6fe98c38c0e8032d961992cbc1a SHA512 2ae56291ebf40e84ff690f15ce43cee36a29fc67975cb1331c47a44cd93aab7c19fc8b385b67149a62836b3bcbe1d5bdb646078b9cf2b00e5288893ba9840bb8
+DIST wayland-cursor-0.31.1.crate 6883 BLAKE2B b70a56f45fc16d0dbb63ac64c69270ef1ef4185101c77751fd063913489e49e0c0257e83a07a136f2f6ac8d923a495d52bfd6bbbaca69b5f3de2f4f50fe0ae44 SHA512 42b975a1c9097b588505243c2923ff3acfe0aa312e8dce5390cb7aea98924f3e29d1cf29245a54a54b617829028c96ad2b5ad51f3854a3e85ce840eaf0edf844
+DIST wayland-protocols-0.31.2.crate 147062 BLAKE2B 62d5ea52833d9edc661d405c83159f97c5bdbc41bdefbc9418a08971236cb74d317efe11e2e23ed6d96f0be27e4a830b4d47bf27d5b269e30e5a4cb97c469c8b SHA512 8f295413b20f308fbf337d8d6e2b6905061d32baa0aeea2aac55edeceadc754a121c56b8b96ca218aa902cfb26fa168c84334ef5033f8cc72e1505f1cfba06fa
+DIST wayland-protocols-plasma-0.2.0.crate 59992 BLAKE2B e43993c207db0ab01c09ca2ad523adaefa1b07978fe2bf67c1e16a8d7e24f443e181a4ebaab2555bc45119d0c66a26ac4f91de932d13b3fe1c881d9bcf0a211a SHA512 d72a03ae0c34b9102567b584971714734aa97e0bd85a3447663a0f88b05bc06a295b1aabc46b6c92701e620c2af87ad6a321a5daddab0df08e7e09f1337f3cb6
+DIST wayland-protocols-wlr-0.2.0.crate 25804 BLAKE2B 226af653146d7eef2ee0a7b6d1484048c5f8b1d2618d3bb9d33eca7e019579c9868d42e5488ba8dc830457ca186a0aa07599accef22902b982d653e381b2f4ef SHA512 b1e5025dbe50a9b90bfd7a38d7564ea8a02c84c8c802d2200864dc604847a4b0979f8a0e05d8d76c2b7c1e198c7847e4d59ad49311b00ab2d4d36eceb776a16a
+DIST wayland-scanner-0.31.1.crate 35419 BLAKE2B adaf9d19f395c5b11e35113ef31b5e11e76fda4929365e61f5a40fbc3f8505e68cacc4e31eb0137da2a07edaca898a2835a22e7236affddf7fea012f087197b7 SHA512 61521f39f414bce7bf372656544294382676649a42d3e2751b6a33874bf12ea3fe87d55c9389799197bbbab36fade2f386a6a83437434d4e0175347b232f7f62
+DIST wayland-sys-0.31.1.crate 8577 BLAKE2B 9252740742340e1f4a4192f610c3c8e6788e08e9c37528c97371762a8949d5eedcc9c052f2b74edf23218e8a6dfce3c63adea0da769ff805e3f68d689d041fab SHA512 79d6feda8a2a4307218ad51b292efd7d0e80707630908a9ae9bca6c0ceed57af874f3b6467915fefd078279ff4f7d39291d84d6250312f692305d38d7f0bed3e
+DIST weak-table-0.3.2.crate 23989 BLAKE2B f5b12d62704a86f77fabaac918d084a4f7471b52994307da20376d48264b811eaeffe2cae2f28ebeeefa4338c758516bcdba5d138cd7ac12ebfccc697009e167 SHA512 78936f2afca36575d3faa823ef4e621d7dea9e3eb4c8c3e1d66af296951fc25476dc8cbadae184322f6e1e8166410df617fe74794b2d3696d599bb2406499562
+DIST web-sys-0.3.69.crate 728877 BLAKE2B 9f1678cbddb15f5a37331216a43785c72896f87e8ce62c6b9e69007316ca6eeaa7edbb33b9f2d9bf96c98de2a1e10afe491d8734657b186e2c3905ad1ff19ad9 SHA512 78b79ceb6a47485c766ad660bb8b971ba549424542a020c35c7db64a19f7b161617e464eaea0602f433b6ac4973b8d1a86a56e76dcda179ccea60aef1245347b
+DIST web-time-0.2.4.crate 15743 BLAKE2B b0255c2d8742c736a2900e32422c439c90878b3bf883943bb6772b91ab13411fbe6617b7801434062b1529843c57d7debfc454cc7a67553c6247047e4def4413 SHA512 d52025a11a11e3286aa0fcd20639eac6cb93ac189b368419adc0ccd2045b288bee9df8c0042a65744a78700e4576f3055478fd52c5a5381088f9a6e28ca3e3c3
+DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f
+DIST webbrowser-0.8.15.crate 39264 BLAKE2B c33d3def837e89f9c52635a401dc5db56adb3fef4cf57907c0770cbe7b576da4d6147c0a93c24a309b99a59cff91be7756f609c840db0d11c81de7f27a04a0e8 SHA512 b34d6fed1833b03dcc949429443acbabe9f5fc59ab559b87cdc3764303eb817d628f27c46b6361a6163a60cffe6b0f0acc93d2129b8503dbfe9711fda3e21442
+DIST webpki-roots-0.26.1.crate 249748 BLAKE2B 6a2468eb2f868c65c599d2f6664798f75e77cb7a7228a2c7285ee5256cb01d110709474feb389991f12ba0d143211770c6922932c7fab01b4b0e37b612cbd453 SHA512 89ac53267d850953aa78550a60f58f5bcb0f9e885c4c448911dc55bbb8dbc3fb845cd7545fc40ff26998b0c360756de85206adcb148ca6190e50bc2daea7f61f
+DIST weezl-0.1.8.crate 42175 BLAKE2B 2a8dc84f018a4364ef814044a590477724b79655cd01d605e02442bdc8de1f7df3003946041dbcc17bc82315f0c11e7fc3c3b0b0375f65436f53bcac11b2bc71 SHA512 6012de47d6bb5177820be9794e70ce6354577247750b8a125dad1d3e093d96cacba62471d8f67f056a72447bb6bf7fffabc6254ae96d93014a5200c71d571c97
+DIST wgpu-0.19.4.crate 140361 BLAKE2B e1cab07eec353b487f7cec5ef7924dfd8b892a58332ef492ad0ed2baff77766dfcdd4aab4b16c1e28b5704702b12e5f8c0cec6a33836283b628cec4bda2b332b SHA512 6a4e92be70b639ad7870db2a1425f145448e480315ae1d2f5de061c4a2b4be3dd83a2971138dc6de107356947a8bc40ec869b7b0f03a99873065f07217cd8b62
+DIST wgpu-core-0.19.3.crate 235851 BLAKE2B 40ffb89a2e4b960c4b88239980c007d70dbc4196cab10bedc5fcf9092cf2cba3423261eec34eaae1be098b83d82987f37c18e908a73118007f471cfa545d7d0a SHA512 330df424655981937f11e32c70fc2ada5f21dbfe5e82961eb3c0093ff329f5cd7db69b7e05126bbdca5fd04c4f16a08392daa0b3afee609b18ad67f5cb2091a8
+DIST wgpu-hal-0.19.3.crate 289888 BLAKE2B 4fbbecaaa29b3691156a4923d8c9bfed7fe1f84a7bd633449bf70c196ec7e96deb1f85953b2511d1c7fb471f3663431e22d4cb12a6d174507686e448fc846f11 SHA512 372e63533c796859152b21babce39e8decc8e5ee533a9ffd203f08fb7eafbbcffcdf8057008cb0fe36756ccb42eca77baeb35c501bff27b4c6640eaf547ffa08
+DIST wgpu-types-0.19.2.crate 59463 BLAKE2B 25d333b889e4fa21a79d0ae2a4b613cc317afa1eb57cfc73e08191facc29a2536a00a0cbb67470da9f98b1dcb11e96e3d63d0b434a6ddaec479db2beea2faa2f SHA512 5476fb614a92cd74197831ee7f7aa16e7cd1ed8258d699458c7a77d2ea2d6224c58076f994e01554cee8010b826a8d0dc15fa2c03a25797f87f4d92060c69ce6
+DIST which-4.4.2.crate 15953 BLAKE2B 40ca22cd2f625cb035a1d919ed457a300b482c7751dcee4441974c53d56ce13f1f502535e1f7c0746a01981f4de2e2f761c3a255902d6353db1a4c3c62637448 SHA512 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5
+DIST wide-0.7.15.crate 80990 BLAKE2B 6e9321206e1929257130c18074304f69000cf69f61df42b7924fec6cf0416c05cac02062d910b73b90371a7e6fd3c4e7253644516708bbf1cc688bf0d9b7718d SHA512 ba28b5583b524bc32878b07bf183ce293776006c514fe7a6ee95e6fb9abe8ef4e832c4dfb0642b224df3e8f7f39d9023a50492b414c3a77c28caff8eb1f4a19b
+DIST widestring-1.0.2.crate 79706 BLAKE2B 64423d0c485d1596015e9fcee691222a2a69b85a1b13a91651c50c1e3c5ec61c5105232904c6239bb442a2b3f2e808379d802856b93bb62ec8779cbf3db77655 SHA512 cbebac37d87808e791d7839ad69e0b86af49b0e8a354a22e11797915c719937ed5b0cb638e5afc9d710cd1e073eaa9f7db76cd3ca1ec35a71b565f0b8f55407b
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.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.48.0.crate 11864177 BLAKE2B 39c0e4f058f68a829ee08721818a0b04287af20dfe6e03a125b75566b4c8a58b56557d685600f1f9c215811154f9782f12368d42848445d54dcf9bfd6471349d SHA512 7c906f885fa0a730f1cb1ef4e62f5b602a49d44343febe1d38fcd4cbc28e0342766983796042585fe457aa229333558715b6270e378946faa8f398a7ecc2af8c
+DIST windows-0.52.0.crate 11843715 BLAKE2B 0d35225f5d61f71b0cb768f03825031101e05c83d7f12e05cb17b14ba28e6bc6a3d5aaee5ba07e54c1a773b6eadde4ce3523ab87e8e313e5578e2de01a3dcdc7 SHA512 8a9d443cfae3b44ab50bdffd70b70ea3b3d536f464e4beb7cfa9e15eb4e4505cbac20266b44d589bb7231790a87f473ead6d2160b8cd18d62f31b78bf61417da
+DIST windows-0.54.0.crate 11096265 BLAKE2B d9e2741577ef5a8cdd66ff0dc3de16d92b5005a43c4d521f9c9670ec15fdf0ef5f9656219695d80e2f9bc2ed51e31b5e3b867c484a00dae1a388b647f2eca6b9 SHA512 703d9de3d8624b9179e3b4aae24c8ba384c823d54e9f55133c9ae8bec8090019280674aa6c8e47872d91fb0f194c692ef5cbaff710714bddef12cf3fe98552db
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-core-0.54.0.crate 44015 BLAKE2B 2ec7bdc09eef66ca4360dbe6b6c75548b91abc6cbc7272818108d3f37b97141bf4ee57e1b70cd33a5ee9d637be9f3674067ab26cdd204d97aa195e4f59b98935 SHA512 eb83e67ea04b7fc6cb33fa470e43683588a26c842f6949abd3b5ef26753dab3f8ce6924872a3dfae4b497f7980921027162c6d364a02430d3af7d2f63fa9f45f
+DIST windows-result-0.1.0.crate 10486 BLAKE2B d830c0edaf913014dbb61e108b5c8967c50bd8b8741155b1ea6d0d3a0181d1fcd9d6bd260e3c1413697e6c1f8e4828547ae44f5c4c5ec0cec57022d6803ab13c SHA512 69cd05d1ddc61e52d1f5c76d48a8de716aee40874ab6cfa5b72143873fa4b09bcfa82be6744c9ed87b551e0b0d0489f87801ece5b74d4993cfc1a10580c6b29d
+DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-targets-0.42.2.crate 5492 BLAKE2B 42fc4a7d3e287fe2a70637e890304b49737776596f4a94a6d216668247092135e84322bd04caddd19c83b7700b0f27278e600ce8ed326957fabc21bffcae89b0 SHA512 84fbaffcad9a80beca77506aac26d0c5cb75aa0f21a5a70bcd3f6a16e71e8753ae00d3b89da9262c99756624163dcc0d6074fa9f99dfaae0dc098018209025f9
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.4.crate 6310 BLAKE2B 0393bf3e7f8823edc455055e9977798bd6cdc1e523127cf840ee1b9e36febe40e01dcad9875a06aea283dd55443d02f643d42752103a5ec1de933285fe410b17 SHA512 4b2c26468df54b9801e6badd120dcffc15429fc78a614f45efa16d5fed1a36983198fbb621cc3beb4a4f9f0161ef8ddeca3a5c6a6ac48b5589681936f4d2bf50
+DIST windows_aarch64_gnullvm-0.42.2.crate 364071 BLAKE2B 97c4e3b2a2dd3f936f9bfcdad23639c9c4c499eed220aec361d26d6013d798efa118e6b298f9cf841ac149d2ae5d58ca653731718450fcf2910bb5f6fa39159f SHA512 75cd7eb1def8ce9d0ff3d7468d2b1cc31cc76c08f981a2460c3d1eb09cff7100d7442863a3591621c1f5f3b3f4badf0b5c95285b6ed583e37283a8403f1095f1
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.4.crate 433373 BLAKE2B 5678cf2371e4c566b7ff0dd1fabcae92d12ce9f97670524c93fd8c34bf6b09d054e7de2f852302b8d994f52c81015b7cc8a74f529490c7bdd17a3b5d2c88a12e SHA512 dbb914a866873892a8cffecd4ed4977fe6c3fc48a58bb9f88655d86e7f8969cc27e6f5bb7d40eee41ae7d78f6f4be65d46650719321a7697c7b5b99a0f07a5dd
+DIST windows_aarch64_msvc-0.42.2.crate 666981 BLAKE2B 9f3cc5592cdede08bcdc1e7c455325279e3b763d96942695e10dccf1dfc37a81c749b69a7d6de883d4c0fa6e8a0d2f578fe2a8d6c42ad8ef6282590bf8fc87b7 SHA512 d2dafa8c94d01c1b65ca1bd631d31f2ef842f1db7accb132ff78c3f8483221b991afd3391563e03dcec42bbc9cbdc0ebdab47b991d25af85b5ba2ac1bbf8db63
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.4.crate 828055 BLAKE2B 3088f2f66fc91ad698906315eae7e6c0dd7da5414c28cfa25b24e138fc4a7da40535be09129cd37b8e331d8d6e8c41d0106fba1ef9e5b4ac561140653e9ded4d SHA512 dcc538d0a9c276e7ec415575ec1392bf476219348984d9567f56d5cc7af0f9beeac523a9a6651f763dd4f50f89535a3ea2275d5321ec022c2ee8814e4e84e95b
+DIST windows_i686_gnu-0.42.2.crate 736236 BLAKE2B 4ef0496462afc73d9d72af7e5da1e6d3506a92f8172930e88ae64ab97596ffd31c4f97fb969e9b677e30159c27f00a8e756deb006b630fb98ce83f03c8b762e2 SHA512 ad09d650a05cb91cb6b40f59025c023a4c286bc1194586697c506016df2b9b0d5b02606b81687bc634795a0d9a9b8a73e486599328ae09c853e8e5ba662fc59c
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.4.crate 875736 BLAKE2B 31ee3017a6db246b0d5fc02e10cdb517a69ceac3dbbc9d41b4051f5dfa1196e4a46e7b3f5f90935560c03bb139b897e5dce69989a3698d9c88ebae923e24ef30 SHA512 9d57260744607eb63453040c532bf3693cf3d8d93c56543ee00aa66adf3a71919e72bdef7811f287167403ade893248f189b797a5d2dcb24ef4e6f3d915a88c6
+DIST windows_i686_msvc-0.42.2.crate 724951 BLAKE2B b084286cd4927efd2889b149abf8a9fe9d3d777130db9e592982660dbf9a96a0f5e723ca121465787aa11877d2d29a5a7d7cf066cdc8fa7e90d7ca7dcb7677f1 SHA512 c1706fc36d4b157c020744a11b3eb5d7dfbf05a0b56775bc717e94b7fd725816b20154fdbcd69ac08dbfb8b8bbfa74fab72d7a9c10399aad6a1cc54cf597e804
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.4.crate 895530 BLAKE2B 87ec4628472beec8697317662fd599a8ea0ba5a11a0cad6b23f2481f39b3a4e0546d37fade4d715ad06a4798cf7faa6435bafa1e5054105c064cb560468b6025 SHA512 0d5526b21bfb96ab352b5181dcf84ff31007ce338245a374b3b413805239359a689b1a21de56ae998cc13444e40867bc30c4200454b84ef9ffa7117318baef1e
+DIST windows_x86_64_gnu-0.42.2.crate 699373 BLAKE2B 01c70809d564b16b268656e47295e99c992d8f9839fac8a51338a0e7c3b9cdcd0429c456ca8c1c139a8c687ed7ed6c43a82250889d881aadaa65bd037223e0a6 SHA512 5767af3c86e717f93137a89d442230e6b60a649057edb3ab104b1f82c0bcd64fe089dcdf2f4fd486a799bece1ddb5f0449641536b678211945e749ae24f35c1f
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.4.crate 831627 BLAKE2B 64d29f6e0837be822d89cc8aaea2514382d2c03b33deb5684df1d6b81573b3817add39d99f66181a762fae7c155e60a8c070affe43a0f2e247fb0c5ddcc7afd9 SHA512 96c673fb330af597fc3c71b53b9b66cacc9f3f64f05dc7cfe4a77447b7545280f065df22b7d91a6b7cf681a442d8b71c9d2dd128e76580664d8598c481cbb95e
+DIST windows_x86_64_gnullvm-0.42.2.crate 364068 BLAKE2B 64bc53e98eb3fc649c9b43a6e734de4e65088e41edacabd49f7afcc5dc6e1065c563ecfc682747dda05978dea2dba4f45c16fcc18c3b00684c3d93681e5a7deb SHA512 d39a8bc948110fe612d3f8d6628b3f0d56620df11d8a49e0fabb6c90389ad407582b3af10e4eab46c79b3d11d2e10753d73d9e55963fbeac085f41e9749bdba3
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.4.crate 433358 BLAKE2B ffd55fba15ef713bd48caec5ed5f32936e05ac4897b721bd2b041229bc8c7beeca77ca018c3258dcdb09495629aa359d1dadaaf5112d38e7ea54670309d0ddf4 SHA512 f153d86b01e47f17ef08271b69becf7883bab92f96d40cdb1d74432f2bc6a7a65aa4ed931d8f6f4c2679e360bbd8d12037dc2a74a6a444fcaec5e4c784c54c74
+DIST windows_x86_64_msvc-0.42.2.crate 666936 BLAKE2B bc3a456e7f8bc272f8978ec69506ec9d89f97b7582ebbe05d8bd57bdf8156ef62d0d2dc6137a97e81d54059d70db97a24af9a038adff357f5dfd28805d6193b5 SHA512 53a35f438903fceb59e36bd2ac331773fb8e6c8c5a6d984e79021761f91b3b4a23efe49d219667a4d0d23dcdbf906da9c24e74fb1cff93395b5c55ff524e3788
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.4.crate 828019 BLAKE2B 08163b63d934114457cd64b1c372f8a0cfc1ebf48a2efb41d79031c58ea64e023acd32d2f5075b8b78536998188138562e584ece95f2021b4bc71087ac45f026 SHA512 0671fa3c0463c6d65b525ece8bc91eab2f75cb534de86ba2b1e854d4136fcb439717441881206dba7cfb602493bc24d2aefa96abf8977f5a0fe38d41eadc90f1
+DIST winit-0.29.15.crate 588797 BLAKE2B a22d11d2f6a733624ff093df348e0b4fb2dfb01b40d2e6483a4c72ed93a964df9af6a15d624f99a54c0e0e4cf9a751036be4bd8c3f3bbfd7a3fb8eb41118d9f7 SHA512 eb1ffc450eb4254b45e44d0291e6574247254eea39e0703379c81a14a4ac77429710f5b8e2f25b84c44ad0fa080318cbff12012bcf28b892f56321aa8eb13160
+DIST winnow-0.5.40.crate 159316 BLAKE2B aae5076d59b3459c901d918d8aaa97ba8bfcc993b8484344f52e45f1f37deb96d6cd3a1663a67f3c367be2b05d633286f270274c621bda9f3ab72b98bb652cc2 SHA512 525156f08514b0110697360be6e331a68d08f0cb65ee4ba3ac9d101dd2d42a8c89601e7409bdb5652c5b05145626506651010f58a854c47712065334c61ff39c
+DIST winnow-0.6.5.crate 159316 BLAKE2B d28c6a069e3d557335c09ae04f1d90a9086b1744d711e259da230c031a0302e270e304f8f9e8bc690c01cedcf07b46e05938ab3468b3e388ae8c51ac361b6408 SHA512 5395db16797beb158e9458099279abf53c5ea62c65584bbb9e0111213ab21c88cd0b0674062757e57ceb6c762a349f22db6ef60deef866fe15ebb0818287ab99
+DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25
+DIST wio-0.2.2.crate 11214 BLAKE2B 7356229f90aa50d6ac8a7651637967de3e06755a7a45eab2a144e13c876058553c22129abffb07717b1715233f6cfc1efe90ff60c1877f4291fabaa4b5ea283d SHA512 13838de6e01b20de8996c7aa9efbaca5bcd9e4551614cfc10bee45ecca4bcc70b953b2c59fe460d1a054b3ecac13445b020aa244ea70686fd19be8d65c539b0e
+DIST x11-dl-2.21.0.crate 66823 BLAKE2B 83305b44ec89e765ecb2dc48fc3aa93bc67d30f12e9782348bca822ca636207e9a9c2b707ab33b6dfc7fadd2b2cdaa599480470eef7a29a15332e923413a7cce SHA512 b864b0865720a9b2afc6d986fb7ebe19734671433449897d7f00488e019f3781f417f8e3763f09fa0db100a1d0c7e709ea9ac43c6dd48775f3daf803ebaebee5
+DIST x11rb-0.13.0.crate 222396 BLAKE2B 279dd73a1b342d773097cbbac7ce3ce198ee503c809f6d3b89c2c69b2e40dd21005e47cde708c0e9b12f2d944c0c1965a815eee774b86d9620d4dd51289cf0fa SHA512 9e86c7fab70d20193804a85608aaf46697b56f3d78eec50dd835c4ddd4a45ff56c0819309b443baa4a58f93e7d37f303e29ef279dbcd5d8c917c559751ca00b8
+DIST x11rb-protocol-0.13.0.crate 507838 BLAKE2B 11955c1908fef177bef859c1207f8fb9e644a8841ccbef885446a021152cb37a113bcb988a0d645e8b9289dc760d03d66ea0a6836e28bc25717e6ba571d02cb0 SHA512 36f412ed83634c402cfb3fea3fc64b9782b348fde3e98617a6c478867a0e93bacd9a69b1feb8d7ee5c01de578ddb85fff1ab86dfaaf88391c3e03dc7aeb3dca7
+DIST xcursor-0.3.5.crate 6256 BLAKE2B 09af0002e0fc70790dd4a132fd74525c18d45cd285fc5ba263e9e6faf83a97aeaaef2ef6e04fc7eb939c501e865623a0f454cbc93913d9821fa6005b8f4445e7 SHA512 284f0012a07776f351d9951de33187636f8410651ed71cee3169c0cc082fda6a01a39fddbed4185dae894f7d5314ce204078ce0848308672ee19789a1fdfb05c
+DIST xdg-home-1.1.0.crate 3600 BLAKE2B 9ebd05881f0b835ad8647691d05b168f0cc807ccd02bbeff4da9db0a4f6b9c5458a891d6df2867f8597f70789d7e4d49d4b81dcd266ed05d1c3d4b67ad9f11f6 SHA512 3f4d6d81b84beab8eb549e124c9dcf5dbcad8b6471cd87edcebf5c0011371667718104c7ea6eba7301fde7524137b18484621c820c75b182bafd7b9b2972957a
+DIST xkbcommon-dl-0.4.2.crate 5879 BLAKE2B f80fdcd23e71ac64a302f89d572ae8eb61be3115f298c4a6a5b65345cc625bac089c131aa7f77a3601ee898405c0b1a6a1cb4d754fae200c932456964d12ee1e SHA512 71d6a8468bb05d5c1dac130c90135dec88804708f8f2061b861953a980948b1e7c1f893b86ba8bbf251012d834398394deaa26934939ad161fd4ab9a28578cba
+DIST xkeysym-0.2.0.crate 101431 BLAKE2B 626c023f399c3fb2dc155934e2b0d14d74e0b4cda25353a03b6bba3060e11e8ebba017571c7e704d5df8e658207149899cf741bc84262734e464be1a7efb55be SHA512 7dc5893f91aacafacce66f14ec27a6c792e7bf82c116e6d2221d2ed5ba3ef2889243f4af3f407d0370b46db6ac27568708b431d59b82c5d056f89d11e42ae44f
+DIST xml-rs-0.8.19.crate 54051 BLAKE2B 667358226fd5fa1829110ee9b587dae7d95fe1f010f8106f515af12435d3c49b0f9f3c09bb4ec4fa019f8e9b25575b3c5fc2dd5858b37b5bbca9bfa263df842a SHA512 a46796ed542a7396e760ee327ec191e96d61b3fd8b78cef2ab2da75c5290433f422a34cabef20267e8a6a162e0a48fc8f81cd66a5dcf997ddd539e55d9130199
+DIST yansi-0.5.1.crate 16525 BLAKE2B 3b5a93b98293daae72f53bf3f13bfc05feba8d5b27921f79595f7448fbcb9a0dfa6cd70f467c5735b914c46b7d3592e6cce080c540a458a904308525eb3aa839 SHA512 7b33005a066cc612408a65df6533e8718d1de43efc0fd57416a19dc2b811497570e6e18f100fb26073565e395e711518c27de7d644ae64777713f1a102eb16d2
+DIST zbus-4.1.2.crate 153356 BLAKE2B c6ca76de9305bcb9d1d8f0b21236feeee339aa1b0ce021336953df858fd3655045bffd7d8d95878d35db19bef264f719f0a74b0585b15a13bec2d612a597502e SHA512 2ac175d2ab04d3ac53567f44420d8cc61d2c67907072b9b08673ec776a6c6e0fc07c776e3893429ae6a488c79b7b382ecf242933803a55bad09b4fb1256f40c7
+DIST zbus_macros-4.1.2.crate 28306 BLAKE2B eb65d96bcb1f28e8cf7ce3196c6a1679d187229cbf66183c10315bed34c5d5f660e0e2920be0522f19aa0ec42ae32ee8f1748c129ee76d8dd42fd7d764b5f992 SHA512 394dcc0ef553e18e4dbed66f480bd444a24160d95498784615dc30c8611cb08a419a34324e8d761580d1c38e7da0489f9479b63b76b968f210590ff06fae85aa
+DIST zbus_names-3.0.0.crate 10650 BLAKE2B 0c8a0ee67c9236ef51a1add3038d5ac5a9f00dccd9df059b16454754db44e7c5ac66b74f3f98c317ee73a1c982b8439d6a92995d984b9b9d744c3c9203edbed3 SHA512 e0ebd468f152ef8063faa547f60b58d2d87948e24741d1cec0e97eef1817653d524ce5519795db64a3a7d9101ee2c6b67f0bf2bade894c57b5c37aee19fc82ab
+DIST zerocopy-0.7.32.crate 151096 BLAKE2B 12c7c329ec0e0865467af08306ff4b55ce1e39fd77b094ee48ed9c6e266dfa807bda9ea72a3f7ea989916327f4d9e803d8868995728bfe2fb1c2dc1e5ecff78e SHA512 6729b05eb88029555b88c75feff4f8bc28ad9675edb02b07486381f775c8650c95e2e59612906bd9c34c5e390fd339857ca91573ee9f9ca7948572cff4171c82
+DIST zerocopy-derive-0.7.32.crate 37623 BLAKE2B 8b583d39d7bf9c3dbbba578120751c664f87363c5ba3fc45f6506a4059b9e599c43d9fc7bd498a257ff7c9d872af77d39bebdb0e65fb8009eaa2ae9903dece46 SHA512 3ce8528871fd18d6abe92b98503927451d25791c9c4af0ba39a3b6ba2006030bdc137084d080e9b1ac8b5ddf5f2121e0a3ef34bb2033a040f2c72c8149a9fc0d
+DIST zeroize-1.7.0.crate 19039 BLAKE2B 2f94a5025f409bd2b96a456d2f78a34c6b05b5554abe7ef3fad2a55a8fcff8a6a1b971be660aa4c2954ab7d6e89bebc431036e349edef74711292f9f64b1dbae SHA512 9d31e3e76e8c861309a3579c21f6da5fd6b056c7d7a350427445a1a832e8827204804783f7f9b808acaa2148efef883d9078bf84943b1db55526bba5bf5a2756
+DIST zip-0.6.6.crate 65789 BLAKE2B acefc076297468d72cb20d8c6234fe5406875056fbf78fc0eac3ac430af78f320ed839f8683bd96fa1a03c457d6ac568d42bd703a902bc37bd126791d8b4c709 SHA512 affd46c17ceaa0545a155250dfd16756f8706dda43bae8a322ec0481dbfb41e4cf3166bf9662fc139ef9d0ab3b0f9f158535b21d2a61b21d38b8b2407813eeef
+DIST zstd-0.11.2+zstd.1.5.2.crate 28987 BLAKE2B e04fe25ec6661819efeca08698c207922c38447459aa291961d3512d7c30016c51ddf49a8dadac0b7b2bf677b6a89d22670ec1e214607b476584a7e1b2dbf36d SHA512 d3f053c4acbdb45f3dadc9590db56095c761f0ff8899d22461f664701de766dde2fac2960a4477cd05d0a9c7ec200caa02ff891eb1f04630734996e0c38d10dd
+DIST zstd-safe-5.0.2+zstd.1.5.2.crate 17273 BLAKE2B 74dc561046f9bc595c58b62bc6ff291325bc23fd06a1249148426bb853271393eab5121d2e1e29e433eff562c9eab72c1be265f3fe3bf14cc35d4a741db03c38 SHA512 03a6f07ada211fd6c364f03d06acff705fa5b08129aa09c29ad310f05b233553f8ea697e504470d4c104bd947f5d4102328c4df0df5e1da6d8e537f51451a014
+DIST zstd-sys-2.0.10+zstd.1.5.6.crate 749088 BLAKE2B 89ec471502281a65841e1c38b313571ac0ba1d2bb3aacba11297f782db9f0f8ed9cf945b757840e7851da0b7400b8c58fc79a60f24a6535fc271d28f07b2ffe9 SHA512 588008a436a9c7751fa7c088620bf04434751e508c9a729e6840e42a14a2cc26c8ee252e8f129a5ae00eb1f76ae6ecfffaac043d854b61381d386f71d80993f9
+DIST zvariant-4.0.2.crate 81443 BLAKE2B 5bf2cb6b2e2b34c2397d9579a60ea7cf28a060456e8dc86498e07c9d1bbf8313d5c2235cadd5be8ec30646cf9e224312efff49ed3c41e010678ec498ed586ae9 SHA512 2811d3b9da164d3848684ceb74ce928f5951b135a40be11502a67f8a6506342efcab0e9c4f9401b5ca0d7b7a14df02f6f4f1c4375c418e5a20ec5faf2a878a3e
+DIST zvariant_derive-4.0.2.crate 10974 BLAKE2B ae6c23021ded15d76305e9b3f3fa3a65d4e68f369cc3300e1d17206ca44c632b5ea624affb2df302f955f08a344b235cf01602168618980bc489bf490f3811a1 SHA512 87c17ad302c5f30f7677cc15b8db5b939e579b6bc0261534bb7321440266bfba9f43bbcf19e65603cdca8077bda8a4f3b7c7d4f177cd89980e2bfec39c98409d
+DIST zvariant_utils-1.1.0.crate 6858 BLAKE2B ed117144cdd1b3351cddb0403b7b8fa3290e097dc527456ca7580910a0ad07b323c5c221f2c796eefd8dd5c7945e594c5bffe6b72caf26f2d416b58889b8cc34 SHA512 5ab70e347a3251c029688b0e8060f640168da3d20d1f0ceef054096209b9101fbb48ba74eb04aabd4c39f4c8090eb94a0594750b85d9955542f0bf7732a66aa7
diff --git a/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch
new file mode 100644
index 000000000000..ef39453b7d58
--- /dev/null
+++ b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch
@@ -0,0 +1,16 @@
+Running renderer tests using mesa's software rendering has a tendency
+to misbehave (esp. on tinderboxes) and does not reflect usage on real
+hardware.
+
+These are auto-skipped if mesa[-gles2] and perhaps [-llvm], but pretend
+we lack support even if conditions are met.
+
+https://bugs.gentoo.org/903295
+https://bugs.gentoo.org/911320
+https://bugs.gentoo.org/911367
+--- a/tests/framework/src/options.rs
++++ b/tests/framework/src/options.rs
+@@ -170,2 +170,3 @@
+ if let Some(render) = &self.with_renderer {
++ if check_renderer { return false; }
+ // If we don't actually want to check the renderer (ie we're just listing potential tests),
diff --git a/app-emulation/ruffle/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_p20240422.ebuild b/app-emulation/ruffle/ruffle-0_p20240422.ebuild
new file mode 100644
index 000000000000..3429c8fc5d64
--- /dev/null
+++ b/app-emulation/ruffle/ruffle-0_p20240422.ebuild
@@ -0,0 +1,767 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ab_glyph@0.2.23
+ ab_glyph_rasterizer@0.1.8
+ accesskit@0.12.3
+ addr2line@0.21.0
+ adler32@1.2.0
+ adler@1.0.2
+ aes@0.8.4
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ allocator-api2@0.2.16
+ alsa-sys@0.3.1
+ alsa@0.9.0
+ android-activity@0.5.2
+ android-properties@0.2.2
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.13
+ anstyle-parse@0.2.3
+ anstyle-query@1.0.2
+ anstyle-wincon@3.0.2
+ anstyle@1.0.6
+ anyhow@1.0.82
+ approx@0.5.1
+ arboard@3.3.2
+ arc-swap@1.7.1
+ arrayref@0.3.7
+ arrayvec@0.7.4
+ ashpd@0.8.1
+ ash@0.37.3+1.3.251
+ async-broadcast@0.7.0
+ async-channel@2.2.1
+ async-executor@1.8.0
+ async-fs@2.1.1
+ async-io@2.3.2
+ async-lock@2.8.0
+ async-lock@3.3.0
+ async-net@2.0.0
+ async-process@2.1.0
+ async-recursion@1.1.0
+ async-signal@0.2.5
+ async-task@4.7.0
+ async-trait@0.1.79
+ as-raw-xcb-connection@1.0.1
+ atomic-waker@1.1.2
+ autocfg@1.2.0
+ backtrace@0.3.71
+ base64ct@1.6.0
+ base64@0.21.7
+ base64@0.22.0
+ bindgen@0.69.4
+ bitflags@1.3.2
+ bitflags@2.5.0
+ bitstream-io@2.2.0
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ block2@0.3.0
+ blocking@1.5.1
+ block-buffer@0.10.4
+ block-sys@0.2.1
+ block@0.1.6
+ bstr@1.9.1
+ bumpalo@3.15.4
+ bytemuck@1.15.0
+ bytemuck_derive@1.6.0
+ byteorder@1.5.0
+ bytes@1.6.0
+ bzip2-sys@0.1.11+1.0.8
+ bzip2@0.4.4
+ calloop-wayland-source@0.2.0
+ calloop@0.12.4
+ camino@1.1.6
+ cargo-platform@0.1.8
+ cargo_metadata@0.18.1
+ cc@1.0.90
+ cesu8@1.1.0
+ cexpr@0.6.0
+ cfg-if@1.0.0
+ cfg_aliases@0.1.1
+ chrono@0.4.38
+ cipher@0.4.4
+ clang-sys@1.7.0
+ clap@4.5.4
+ clap_builder@4.5.2
+ clap_derive@4.5.4
+ clap_lex@0.7.0
+ clipboard-win@5.3.0
+ codespan-reporting@0.11.1
+ colorchoice@1.0.0
+ color_quant@1.1.0
+ combine@4.6.6
+ com@0.6.0
+ com_macros@0.6.0
+ com_macros_support@0.6.0
+ concurrent-queue@2.4.0
+ console@0.15.8
+ console_error_panic_hook@0.1.7
+ constant_time_eq@0.1.5
+ convert_case@0.6.0
+ cookie-factory@0.3.3
+ cookie@0.17.0
+ cookie_store@0.20.0
+ core2@0.4.0
+ coreaudio-rs@0.11.3
+ coreaudio-sys@0.2.15
+ core-foundation-sys@0.8.6
+ core-foundation@0.9.4
+ core-graphics-types@0.1.3
+ core-graphics@0.23.1
+ cpal@0.15.3
+ cpufeatures@0.2.12
+ crc32fast@1.4.0
+ crc-catalog@2.4.0
+ crc@3.0.1
+ crossbeam-channel@0.5.12
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.19
+ crypto-common@0.1.6
+ csv-core@0.1.11
+ csv@1.3.0
+ cursor-icon@1.1.0
+ d3d12@0.19.0
+ darling@0.20.8
+ darling_core@0.20.8
+ darling_macro@0.20.8
+ dary_heap@0.3.6
+ dasp@0.11.0
+ dasp_envelope@0.11.0
+ dasp_frame@0.11.0
+ dasp_interpolate@0.11.0
+ dasp_peak@0.11.0
+ dasp_ring_buffer@0.11.0
+ dasp_rms@0.11.0
+ dasp_sample@0.11.0
+ dasp_signal@0.11.0
+ dasp_slice@0.11.0
+ dasp_window@0.11.1
+ data-encoding@2.5.0
+ deranged@0.3.11
+ derivative@2.2.0
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.4.1
+ dirs@5.0.1
+ dispatch@0.2.0
+ displaydoc@0.2.4
+ dlib@0.5.2
+ document-features@0.2.8
+ downcast-rs@1.2.1
+ ecolor@0.27.2
+ egui-wgpu@0.27.2
+ egui-winit@0.27.2
+ egui@0.27.2
+ egui_extras@0.27.2
+ either@1.11.0
+ emath@0.27.2
+ embed-resource@2.4.2
+ encode_unicode@0.3.6
+ encoding_rs@0.8.34
+ endi@1.1.0
+ enumflags2@0.7.9
+ enumflags2_derive@0.7.9
+ enumn@0.1.13
+ enumset@1.1.3
+ enumset_derive@0.8.1
+ enum-map-derive@0.17.0
+ enum-map@2.7.3
+ env_filter@0.1.0
+ env_logger@0.11.3
+ epaint@0.27.2
+ equivalent@1.0.1
+ errno@0.3.8
+ error-code@3.2.0
+ escape8259@0.5.2
+ euclid@0.22.9
+ event-listener-strategy@0.4.0
+ event-listener-strategy@0.5.0
+ event-listener@2.5.3
+ event-listener@4.0.3
+ event-listener@5.2.0
+ fastrand@2.0.2
+ fdeflate@0.3.4
+ filetime@0.2.23
+ flate2@1.0.28
+ float-cmp@0.9.0
+ float_next_after@1.0.0
+ fluent-bundle@0.15.2
+ fluent-langneg@0.13.0
+ fluent-syntax@0.11.0
+ fluent-templates@0.9.2
+ fluent-template-macros@0.9.2
+ fluent@0.16.0
+ flume@0.10.14
+ flume@0.11.0
+ fnv@1.0.7
+ fontconfig-parser@0.5.6
+ fontdb@0.16.2
+ foreign-types-macros@0.2.3
+ foreign-types-shared@0.3.1
+ foreign-types@0.5.0
+ form_urlencoded@1.2.1
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@2.3.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gc-arena-derive@0.5.0
+ gc-arena@0.5.0
+ generator@0.7.5
+ generic-array@0.14.7
+ gethostname@0.4.3
+ getrandom@0.2.14
+ gif@0.13.1
+ gilrs-core@0.5.11
+ gilrs@0.10.6
+ gimli@0.28.1
+ globset@0.4.14
+ glob@0.3.1
+ gloo-net@0.5.0
+ gloo-utils@0.2.0
+ glow@0.13.1
+ glutin_wgl_sys@0.5.0
+ gl_generator@0.14.0
+ gpu-allocator@0.25.0
+ gpu-alloc-types@0.3.0
+ gpu-alloc@0.6.0
+ gpu-descriptor-types@0.1.2
+ gpu-descriptor@0.2.4
+ h2@0.4.4
+ hashbrown@0.13.2
+ hashbrown@0.14.3
+ hassle-rs@0.11.0
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hexf-parse@0.2.1
+ hex@0.4.3
+ hmac@0.12.1
+ home@0.5.9
+ httparse@1.8.0
+ http-body-util@0.1.1
+ http-body@1.0.0
+ http@0.2.12
+ http@1.1.0
+ humantime@2.1.0
+ hyper-rustls@0.26.0
+ hyper-util@0.1.3
+ hyper@1.2.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ icrate@0.0.4
+ id3@1.13.1
+ ident_case@1.0.1
+ idna@0.3.0
+ idna@0.5.0
+ ignore@0.4.22
+ image@0.24.9
+ image@0.25.1
+ indexmap@2.2.6
+ indicatif@0.17.8
+ inotify-sys@0.1.5
+ inotify@0.10.2
+ inout@0.1.3
+ instant@0.1.12
+ insta@1.38.0
+ intl-memoizer@0.5.1
+ intl_pluralrules@7.0.2
+ io-kit-sys@0.4.1
+ ipnet@2.9.0
+ itertools@0.12.1
+ itoa@1.0.11
+ jni-sys@0.3.0
+ jni@0.21.1
+ jobserver@0.1.28
+ jpeg-decoder@0.3.1
+ js-sys@0.3.69
+ khronos-egl@6.0.0
+ khronos_api@3.1.0
+ lazycell@1.3.0
+ lazy_static@1.4.0
+ libc@0.2.153
+ libflate@2.0.0
+ libflate_lz77@2.0.0
+ libloading@0.7.4
+ libloading@0.8.3
+ libm@0.2.8
+ libredox@0.0.1
+ libredox@0.0.2
+ libtest-mimic@0.7.2
+ libudev-sys@0.1.4
+ linked-hash-map@0.5.6
+ linkme-impl@0.3.25
+ linkme@0.3.25
+ linux-raw-sys@0.4.13
+ litrs@0.4.1
+ lock_api@0.4.11
+ log@0.4.21
+ loom@0.7.1
+ lru@0.12.3
+ lyon@1.0.1
+ lyon_algorithms@1.0.4
+ lyon_geom@1.0.5
+ lyon_path@1.0.4
+ lyon_tessellation@1.0.13
+ lzma-rs@0.3.0
+ mach2@0.4.2
+ macro_rules_attribute-proc_macro@0.2.0
+ macro_rules_attribute@0.2.0
+ malloc_buf@0.0.6
+ matchers@0.1.0
+ memchr@2.7.2
+ memmap2@0.9.4
+ memoffset@0.9.1
+ metal@0.27.0
+ mime@0.3.17
+ mime_guess2@2.0.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.7.2
+ mio@0.8.11
+ naga@0.19.2
+ naga_oil@0.13.0
+ ndk-context@0.1.1
+ ndk-sys@0.5.0+25.2.9519653
+ ndk@0.8.0
+ nix@0.28.0
+ nohash-hasher@0.2.0
+ nom@7.1.3
+ number_prefix@0.4.0
+ num-bigint@0.4.4
+ num-complex@0.4.5
+ num-conv@0.1.0
+ num-derive@0.4.2
+ num-integer@0.1.46
+ num-traits@0.2.18
+ num_cpus@1.16.0
+ num_enum@0.7.2
+ num_enum_derive@0.7.2
+ num_threads@0.1.7
+ nu-ansi-term@0.46.0
+ objc2-encode@3.0.0
+ objc2@0.4.1
+ objc-foundation@0.1.1
+ objc-sys@0.3.2
+ objc@0.2.7
+ objc_exception@0.1.2
+ objc_id@0.1.1
+ object@0.32.2
+ oboe-sys@0.6.1
+ oboe@0.6.1
+ once_cell@1.19.0
+ option-ext@0.2.0
+ orbclient@0.3.47
+ ordered-stream@0.2.0
+ os_info@3.8.2
+ overload@0.1.1
+ owned_ttf_parser@0.20.0
+ parking@2.2.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ password-hash@0.4.2
+ paste@1.0.14
+ path-slash@0.2.1
+ pbkdf2@0.11.0
+ percent-encoding@2.3.1
+ pin-project-internal@1.1.5
+ pin-project-lite@0.2.13
+ pin-project@1.1.5
+ pin-utils@0.1.0
+ piper@0.2.1
+ pkg-config@0.3.30
+ png@0.17.13
+ polling@3.6.0
+ pollster@0.3.0
+ portable-atomic@1.6.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ pp-rs@0.2.1
+ presser@0.3.1
+ prettyplease@0.2.17
+ pretty_assertions@1.4.0
+ primal-check@0.3.3
+ proc-macro2@1.0.81
+ proc-macro-crate@3.1.0
+ proc-macro-hack@0.5.20+deprecated
+ profiling-procmacros@1.0.14
+ profiling@1.0.14
+ psl-types@2.0.11
+ publicsuffix@2.2.3
+ quick-xml@0.31.0
+ quote@1.0.36
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ range-alloc@0.1.3
+ raw-window-handle@0.5.2
+ raw-window-handle@0.6.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ realfft@3.3.0
+ redox_syscall@0.3.5
+ redox_syscall@0.4.1
+ redox_users@0.4.4
+ regex-automata@0.1.10
+ regex-automata@0.4.6
+ regex-syntax@0.6.29
+ regex-syntax@0.8.3
+ regex@1.10.4
+ regress@0.9.1
+ renderdoc-sys@1.1.0
+ renderdoc@0.12.1
+ reqwest@0.12.3
+ rfd@0.14.1
+ ring@0.17.8
+ rle-decode-fast@1.0.3
+ ron@0.8.1
+ roxmltree@0.19.0
+ rustc-demangle@0.1.23
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustdct@0.7.1
+ rustfft@6.2.0
+ rustix@0.38.32
+ rustls-pemfile@2.1.2
+ rustls-pki-types@1.4.1
+ rustls-webpki@0.102.2
+ rustls@0.22.4
+ rustversion@1.0.14
+ ryu@1.0.17
+ safe_arch@0.7.1
+ same-file@1.0.6
+ scoped-tls@1.0.1
+ scopeguard@1.2.0
+ sctk-adwaita@0.8.1
+ self_cell@0.10.3
+ self_cell@1.0.3
+ semver@1.0.22
+ serde-wasm-bindgen@0.6.5
+ serde@1.0.198
+ serde_derive@1.0.198
+ serde_json@1.0.116
+ serde_repr@0.1.18
+ serde_spanned@0.6.5
+ serde_urlencoded@0.7.1
+ sha1@0.10.6
+ sha2@0.10.8
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-registry@1.4.1
+ simd-adler32@0.3.7
+ similar@2.5.0
+ simple_asn1@0.6.2
+ slab@0.4.9
+ slotmap@1.0.7
+ smallvec@1.13.2
+ smithay-client-toolkit@0.18.1
+ smithay-clipboard@0.7.1
+ smol_str@0.2.1
+ socket2@0.5.6
+ spin@0.9.8
+ spirv@0.3.0+sdk-1.3.268.0
+ sptr@0.3.2
+ static_assertions@1.1.0
+ strength_reduce@0.2.4
+ strict-num@0.1.1
+ strsim@0.11.0
+ subtle@2.5.0
+ symphonia-bundle-mp3@0.5.4
+ symphonia-core@0.5.4
+ symphonia-metadata@0.5.4
+ symphonia@0.5.4
+ sync_wrapper@0.1.2
+ synstructure@0.13.1
+ syn@1.0.109
+ syn@2.0.60
+ system-configuration-sys@0.5.0
+ system-configuration@0.5.1
+ sys-locale@0.3.1
+ tempfile@3.10.1
+ termcolor@1.4.1
+ thiserror-impl@1.0.58
+ thiserror@1.0.58
+ threadpool@1.8.1
+ thread_local@1.1.8
+ tiff@0.9.1
+ time-core@0.1.2
+ time-macros@0.2.17
+ time@0.3.34
+ tinystr@0.7.5
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tiny-skia-path@0.11.4
+ tiny-skia@0.11.4
+ tokio-macros@2.2.0
+ tokio-rustls@0.25.0
+ tokio-util@0.7.10
+ tokio@1.37.0
+ toml@0.8.12
+ toml_datetime@0.6.5
+ toml_edit@0.21.1
+ toml_edit@0.22.9
+ tower-layer@0.3.2
+ tower-service@0.3.2
+ tower@0.4.13
+ tracing-appender@0.2.3
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing-log@0.2.0
+ tracing-subscriber@0.3.18
+ tracing-tracy@0.10.4
+ tracing-wasm@0.2.1
+ tracing@0.1.40
+ tracy-client-sys@0.22.2
+ tracy-client@0.16.5
+ transpose@0.2.3
+ try-lock@0.2.5
+ ttf-parser@0.20.0
+ typenum@1.17.0
+ type-map@0.4.0
+ type-map@0.5.0
+ uds_windows@1.1.0
+ unicase@2.7.0
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unicode-segmentation@1.11.0
+ unicode-width@0.1.11
+ unicode-xid@0.2.4
+ unic-char-property@0.9.0
+ unic-char-range@0.9.0
+ unic-common@0.9.0
+ unic-langid-impl@0.9.4
+ unic-langid-macros-impl@0.9.4
+ unic-langid-macros@0.9.4
+ unic-langid@0.9.4
+ unic-segment@0.9.0
+ unic-ucd-segment@0.9.0
+ unic-ucd-version@0.9.0
+ untrusted@0.9.0
+ urlencoding@2.1.3
+ url@2.5.0
+ utf8parse@0.2.1
+ uuid@1.8.0
+ valuable@0.1.0
+ vec_map@0.8.2
+ vergen@8.3.1
+ version_check@0.9.4
+ vfs@0.12.0
+ vswhom-sys@0.1.2
+ vswhom@0.1.0
+ walkdir@2.5.0
+ want@0.3.1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.92
+ wasm-bindgen-futures@0.4.42
+ wasm-bindgen-macro-support@0.2.92
+ wasm-bindgen-macro@0.2.92
+ wasm-bindgen-shared@0.2.92
+ wasm-bindgen@0.2.92
+ wasm-streams@0.4.0
+ wayland-backend@0.3.3
+ wayland-client@0.31.2
+ wayland-csd-frame@0.3.0
+ wayland-cursor@0.31.1
+ wayland-protocols-plasma@0.2.0
+ wayland-protocols-wlr@0.2.0
+ wayland-protocols@0.31.2
+ wayland-scanner@0.31.1
+ wayland-sys@0.31.1
+ weak-table@0.3.2
+ webbrowser@0.8.15
+ webpki-roots@0.26.1
+ web-sys@0.3.69
+ web-time@0.2.4
+ web-time@1.1.0
+ weezl@0.1.8
+ wgpu-core@0.19.3
+ wgpu-hal@0.19.3
+ wgpu-types@0.19.2
+ wgpu@0.19.4
+ which@4.4.2
+ widestring@1.0.2
+ wide@0.7.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.6
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-core@0.54.0
+ windows-result@0.1.0
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.48.5
+ windows-targets@0.52.4
+ windows@0.48.0
+ windows@0.52.0
+ windows@0.54.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.4
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.4
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.4
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.4
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.4
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.4
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.4
+ winit@0.29.15
+ winnow@0.5.40
+ winnow@0.6.5
+ winreg@0.52.0
+ wio@0.2.2
+ x11rb-protocol@0.13.0
+ x11rb@0.13.0
+ x11-dl@2.21.0
+ xcursor@0.3.5
+ xdg-home@1.1.0
+ xkbcommon-dl@0.4.2
+ xkeysym@0.2.0
+ xml-rs@0.8.19
+ yansi@0.5.1
+ zbus@4.1.2
+ zbus_macros@4.1.2
+ zbus_names@3.0.0
+ zerocopy-derive@0.7.32
+ zerocopy@0.7.32
+ zeroize@1.7.0
+ zip@0.6.6
+ zstd-safe@5.0.2+zstd.1.5.2
+ zstd-sys@2.0.10+zstd.1.5.6
+ zstd@0.11.2+zstd.1.5.2
+ zvariant@4.0.2
+ zvariant_derive@4.0.2
+ zvariant_utils@1.1.0
+"
+declare -A GIT_CRATES=(
+ [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f770555ea49c6db49c57c1dd46c7cc686e8dacc;rust-flash-lso-%commit%/flash-lso"
+ [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/deblock'
+ [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/yuv"
+ [h263-rs]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/h263"
+ [jpegxr]="https://github.com/ruffle-rs/jpegxr;688021cb0a4935295f9aa8b488ca05bb4f1e9b34;jpegxr-%commit%"
+ [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;754b1184037aa9952a907107284fb73897e26adc;nellymoser-%commit%"
+ [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support"
+ [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core"
+ [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck"
+)
+inherit cargo desktop optfeature xdg
+
+MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Flash Player emulator written in Rust"
+HOMEPAGE="https://ruffle.rs/"
+SRC_URI="
+ https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+LICENSE+="
+ Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT
+ MPL-2.0 OFL-1.1 openssl Unicode-DFS-2016 ZLIB
+" # crates
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# dlopen: libX* (see winit+x11-dl crates)
+RDEPEND="
+ media-libs/alsa-lib
+ virtual/libudev:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/jre:*
+ virtual/pkgconfig
+ >=virtual/rust-1.76
+"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch
+)
+
+src_configure() {
+ local workspaces=(
+ ruffle_{desktop,scanner}
+ exporter
+ $(usev test tests)
+ )
+
+ cargo_src_configure "${workspaces[@]/#/--package=}"
+}
+
+src_test() {
+ local skip=(
+ # may need more investigation, strangely "pass" (xfail) when
+ # RUSTFLAGS is unset, skip for now (bug #915726)
+ --skip from_avmplus/as3/Types/Int/wraparound
+ )
+
+ cargo_src_test -- "${skip[@]}"
+}
+
+src_install() {
+ dodoc README.md
+
+ newicon web/packages/extension/assets/images/icon180.png ${PN}.png
+ make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
+ "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
+
+ # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510
+ cd target/$(usex debug{,} release) || die
+
+ newbin ${PN}_desktop ${PN}
+ newbin exporter ${PN}_exporter
+ dobin ${PN}_scanner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "${PN} is experimental software that is still under heavy development"
+ elog "and only receiving nightly releases. Plans in Gentoo is to update"
+ elog "roughly every months if no known major regressions (feel free to"
+ elog "report if you feel a newer nightly is needed ahead of time)."
+ elog
+ elog "There is currently no plans to support wasm builds / browser"
+ elog "extensions, this provides the desktop viewer and other tools."
+ fi
+
+ optfeature "the in-application file picker" sys-apps/xdg-desktop-portal
+}
diff --git a/app-emulation/ruffle/ruffle-9999.ebuild b/app-emulation/ruffle/ruffle-9999.ebuild
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 bf55e8a0f792..000000000000
--- a/app-emulation/runc/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST runc-1.0.0_rc8.tar.gz 1665924 BLAKE2B 542cbdefaaa1ef89d2abf8e31ca8116f26cddbfc3fb94dc8c7e94c51750b179ed557bee857ec80ede7280856c66c01c7961a26dc7e6202276baca46c691a3903 SHA512 f213b6a7fa96597d2ba1068f77752bccc0a1d62e0aac02ec8d2a2552dc3c1140fd4e52b2daeb0ac8fc09c48abe4521834450baae01ad4165308813eee7654a2b
-DIST runc-1.0.0_rc9.tar.gz 1885161 BLAKE2B 638f00b857f43204cdc2b4e65927d6280e48b075d8363570e9da166ec35febaa749c733478d5c190c0119e0d95418e3295adcc129b68afbc5fec20ca3d9e9b59 SHA512 56c46fbe4d637a83d67e0aabf2549ba687d8b1e357fdecfffca343c8b166edf4158830aa0a4419edd6994c589b874bb8504eb3969ed3430cda6e233940d34194
diff --git a/app-emulation/runc/metadata.xml b/app-emulation/runc/metadata.xml
deleted file mode 100644
index d38c867c132b..000000000000
--- a/app-emulation/runc/metadata.xml
+++ /dev/null
@@ -1,30 +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>
- <maintainer type="person">
- <email>mrueg@gentoo.org</email>
- <name>Manuel Rüger</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_rc8.ebuild b/app-emulation/runc/runc-1.0.0_rc8.ebuild
deleted file mode 100644
index 2ceb623d765e..000000000000
--- a/app-emulation/runc/runc-1.0.0_rc8.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/opencontainers/${PN}"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-build golang-vcs
-else
- MY_PV="${PV/_/-}"
- RUNC_COMMIT="425e105d5a03fabd737a126ad93d62a9eeede87f" # Change this when you update the ebuild
- SRC_URI="https://${EGO_PN}/archive/${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
- inherit golang-build golang-vcs-snapshot
-fi
-
-DESCRIPTION="runc container cli tools"
-HOMEPAGE="http://runc.io"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="+ambient apparmor hardened +kmem +seccomp"
-
-RDEPEND="
- apparmor? ( sys-libs/libapparmor )
- seccomp? ( sys-libs/libseccomp )
- !app-emulation/docker-runc
-"
-
-src_prepare() {
- pushd src/${EGO_PN}
- default
- sed -i -e "/^GIT_BRANCH/d"\
- -e "/^GIT_BRANCH_CLEAN/d"\
- -e "/^COMMIT_NO/d"\
- -e "s/COMMIT :=.*/COMMIT := ${RUNC_COMMIT}/"\
- Makefile || die
- popd || die
-}
-
-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')
- )
-
- 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/runc/runc-1.0.0_rc9.ebuild b/app-emulation/runc/runc-1.0.0_rc9.ebuild
deleted file mode 100644
index 8ee71c06ab27..000000000000
--- a/app-emulation/runc/runc-1.0.0_rc9.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/opencontainers/${PN}"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-build golang-vcs
-else
- MY_PV="${PV/_/-}"
- RUNC_COMMIT="d736ef14f0288d6993a1845745d6756cfc9ddd5a" # Change this when you update the ebuild
- SRC_URI="https://${EGO_PN}/archive/${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
- inherit golang-build golang-vcs-snapshot
-fi
-
-DESCRIPTION="runc container cli tools"
-HOMEPAGE="http://runc.io"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="+ambient apparmor hardened +kmem +seccomp"
-
-RDEPEND="
- apparmor? ( sys-libs/libapparmor )
- seccomp? ( sys-libs/libseccomp )
- !app-emulation/docker-runc
-"
-
-src_prepare() {
- pushd src/${EGO_PN}
- default
- sed -i -e "/^GIT_BRANCH/d"\
- -e "/^GIT_BRANCH_CLEAN/d"\
- -e "/^COMMIT_NO/d"\
- -e "s/COMMIT :=.*/COMMIT := ${RUNC_COMMIT}/"\
- Makefile || die
- popd || die
-}
-
-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')
- )
-
- 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 1982ba7173f5..000000000000
--- a/app-emulation/s6-overlay/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="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <longdescription lang="en">
- This is an s6-based custom init to be used in containers.
- </longdescription>
- <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 a730e2201567..000000000000
--- a/app-emulation/sen/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST sen-0.5.1.tar.gz 70930 BLAKE2B 93758076d014a36996ece021f1de2f3ece749453d32554fe79ffec0ab1101bf4cc5c11d80934817fa5b10d73b811e738c87ce8e745a642507ec8406ad2eb59fa SHA512 0faf2c12e6361d3b4e9d093e0830867976a1fbd03cadc7a527c88460244532a8b636d8d4b732bb0c7f4041a0bb0819d20caabe62327b5edbf731b4eb8a4898a6
-DIST sen-0.6.0.tar.gz 55113 BLAKE2B 5f6affbea94005c0adc9ac544d40d94cd9a9eca930b979c19174d21d73fdd887d21802a5241c02ba212a45c4a7873f22c7372aeb69955e1f97e444ef74d91929 SHA512 5573a0d6da5ae395e947bf34c54313e4e3a0251dc1868c52bbfe9ad11463397da83a0c9ac3f1912da2e6f49341c84d40dcab900d41b4a32ebac44d1dde3ac82b
-DIST sen-0.6.1.tar.gz 55357 BLAKE2B 0d58f0ea11eeff29161925018425c918b3260c754d1b658e2ebd3c88e0c371feb0f1815af61979206bee529c369a90ace895d25e645ef0d76c563abd8b74c943 SHA512 2f1cadf745ca7e12d3e92534e76984072b9678055b9911f76b1a6d3cbd43266ad1eeb4d5e7bb8742db91c4da4aef684fa644c33de6fa2494c37688e9747e0efa
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.5.1.ebuild b/app-emulation/sen/sen-0.5.1.ebuild
deleted file mode 100644
index 4ba87ce42c27..000000000000
--- a/app-emulation/sen/sen-0.5.1.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_5 )
-
-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=""
-
-DEPEND="dev-python/urwid[${PYTHON_USEDEP}]
- dev-python/urwidtrees[${PYTHON_USEDEP}]
- dev-python/docker-py[${PYTHON_USEDEP}]"
-RDEPEND="${DEPEND}"
-
-python_install_all() {
- distutils-r1_python_install_all
- dodoc docs/*
-}
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 d8c239c34073..000000000000
--- a/app-emulation/sen/sen-0.6.0.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{5,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"
-
-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 a1159468c541..000000000000
--- a/app-emulation/sen/sen-0.6.1.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{5,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"
-
-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/Manifest b/app-emulation/simh/Manifest
index 5da6120f5d2b..1673f7380dc6 100644
--- a/app-emulation/simh/Manifest
+++ b/app-emulation/simh/Manifest
@@ -1 +1 @@
-DIST simhv39-0.zip 3103657 BLAKE2B 3b5fcaa7f1aa24bd5afa78452fb2d5e2822654bcaa3caa478dbdf939770c13f7f1d3f95859674fc02e2cc35a4cfff239bb9ee6a726fb9e31586f639cdf40ca10 SHA512 5e8cbf92e980b7cb40d68ff60a266f70c0bef0eecdc169a8077ae72a6a71fe12a7be5c62bd033ca36727e2cb8f266a5a6f8a5ed6dd509afbf0a9d7b618f1a4f6
+DIST simh-3.11.1.tar.gz 2576391 BLAKE2B bebaba75d4264c47202cc0daca2023c03d2e87722798f1ab37c9e3b2cec0b80cd180fccc0077347b2cb5255d26e1ce35f99a908deaf252c1e60e22e0a381e66d SHA512 7c2f81a64d3016b9a44409fc336c804c0da836317745d47594cc48c64cb57dc8f22084d9086e3f86868ec485ee56ac63301f350cee6d275e705b7c5fc82875db
diff --git a/app-emulation/simh/files/simh-3.11.0-fcommon.patch b/app-emulation/simh/files/simh-3.11.0-fcommon.patch
new file mode 100644
index 000000000000..b23866aaab49
--- /dev/null
+++ b/app-emulation/simh/files/simh-3.11.0-fcommon.patch
@@ -0,0 +1,37 @@
+From ca4b7338836edb7325c82f86dccdeb4808cb4a89 Mon Sep 17 00:00:00 2001
+From: Mark Pizzolato <mark@infocomm.com>
+Date: Wed, 29 Jan 2020 11:39:36 -0800
+Subject: [PATCH] makefile: Force gcc/clang -fcommon to address future gcc
+ -fno-common default
+
+as reported and discussed in #794
+---
+ makefile | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/makefile
++++ b/makefile
+@@ -506,9 +506,13 @@ else
+ ifneq (3,$(GCC_MAJOR_VERSION))
+ ifeq (,$(GCC_OPTIMIZERS_CMD))
+ GCC_OPTIMIZERS_CMD = $(GCC) --help=optimizers
++ GCC_COMMON_CMD = $(GCC) --help=common
+ endif
+ GCC_OPTIMIZERS = $(shell $(GCC_OPTIMIZERS_CMD))
+ endif
++ ifneq (,$(GCC_COMMON_CMD))
++ GCC_OPTIMIZERS += $(shell $(GCC_COMMON_CMD))
++ endif
+ ifneq (,$(findstring $(GCC_VERSION),$(LTO_EXCLUDE_VERSIONS)))
+ NO_LTO = 1
+ endif
+@@ -530,6 +534,9 @@ else
+ ifneq (,$(findstring -fstrict-overflow,$(GCC_OPTIMIZERS)))
+ CFLAGS_O += -fno-strict-overflow
+ endif
++ ifneq (,$(findstring -fcommon,$(GCC_OPTIMIZERS))$(findstring -fno-common,$(GCC_OPTIMIZERS)))
++ CFLAGS_O += -fcommon
++ endif
+ ifeq (,$(NO_LTO))
+ ifneq (,$(findstring -flto,$(GCC_OPTIMIZERS)))
+ CFLAGS_O += -flto -fwhole-program
diff --git a/app-emulation/simh/files/simh-3.9.0-fix-mkdir-race.patch b/app-emulation/simh/files/simh-3.11.0-fix-mkdir-race.patch
index 3a2aae35207c..e2b1b5547efb 100644
--- a/app-emulation/simh/files/simh-3.9.0-fix-mkdir-race.patch
+++ b/app-emulation/simh/files/simh-3.11.0-fix-mkdir-race.patch
@@ -1,11 +1,11 @@
--- simh-3.9.0/makefile
+++ simh-3.9.0/makefile
-@@ -249,7 +249,7 @@
- NETWORK_OPT = $(NETWORK_CCDEFS)
- endif
- ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
-- MKDIRBIN = if $(TEST) ! -e BIN; then mkdir BIN; fi
-+ MKDIRBIN = mkdir -p BIN
- endif
- else
- #Win32 Environments (via MinGW32)
+@@ -249,7 +249,7 @@
+ NETWORK_OPT = $(NETWORK_CCDEFS)
+ endif
+ ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
+- MKDIRBIN = if $(TEST) ! -e BIN; then mkdir BIN; fi
++ MKDIRBIN = mkdir -p BIN
+ endif
+ else
+ #Win32 Environments (via MinGW32)
diff --git a/app-emulation/simh/files/simh-3.11.0-respect-FLAGS.patch b/app-emulation/simh/files/simh-3.11.0-respect-FLAGS.patch
new file mode 100644
index 000000000000..0ceca7b0abf8
--- /dev/null
+++ b/app-emulation/simh/files/simh-3.11.0-respect-FLAGS.patch
@@ -0,0 +1,13 @@
+--- a/makefile
++++ b/makefile
+@@ -497,8 +497,8 @@ ifneq ($(DEBUG),)
+ CFLAGS_O = -O0
+ BUILD_FEATURES = - debugging support
+ else
+- CFLAGS_O = -O2
+- LDFLAGS_O =
++ CFLAGS_O ?= -O2
++ LDFLAGS_O ?=
+ ifeq (Darwin,$(OSTYPE))
+ NO_LTO = 1
+ endif
diff --git a/app-emulation/simh/files/simh-3.9.0-respect-FLAGS.patch b/app-emulation/simh/files/simh-3.9.0-respect-FLAGS.patch
deleted file mode 100644
index 0f7cd1d114ea..000000000000
--- a/app-emulation/simh/files/simh-3.9.0-respect-FLAGS.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- simh-3.9.0/makefile
-+++ simh-3.9.0/makefile
-@@ -300,8 +300,8 @@
- CFLAGS_O = -O0
- BUILD_FEATURES = - debugging support
- else
-- CFLAGS_O = -O2
-- LDFLAGS_O =
-+ CFLAGS_O ?= -O2
-+ LDFLAGS_O ?=
- GCC_MAJOR_VERSION = $(firstword $(subst ., ,$(GCC_VERSION)))
- ifneq (3,$(GCC_MAJOR_VERSION))
- ifeq (,$(GCC_OPTIMIZERS_CMD))
diff --git a/app-emulation/simh/metadata.xml b/app-emulation/simh/metadata.xml
index 7a38bb900964..b67c0c2fbff6 100644
--- a/app-emulation/simh/metadata.xml
+++ b/app-emulation/simh/metadata.xml
@@ -1,5 +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-needed -->
+ <upstream>
+ <remote-id type="github">simh/simh</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/simh/simh-3.9.0-r1.ebuild b/app-emulation/simh/simh-3.11.1.ebuild
index ee884176530e..b0bc38984ccf 100644
--- a/app-emulation/simh/simh-3.9.0-r1.ebuild
+++ b/app-emulation/simh/simh-3.11.1.ebuild
@@ -1,14 +1,14 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=4
+EAPI=7
-inherit eutils toolchain-funcs versionator
+inherit toolchain-funcs
-MY_P="${PN}v$(get_version_component_range 1)$(get_version_component_range 2)-$(get_version_component_range 3)"
+MY_PV="$(ver_rs 2 '-')" # 'a.b.c' -> 'a.b-c'
DESCRIPTION="a simulator for historical computers such as Vax, PDP-11 etc.)"
HOMEPAGE="http://simh.trailing-edge.com/"
-SRC_URI="http://simh.trailing-edge.com/sources/${MY_P}.zip"
+SRC_URI="https://github.com/simh/simh/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
@@ -16,17 +16,18 @@ KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE=""
RDEPEND="net-libs/libpcap"
-DEPEND="${RDEPEND}
- app-arch/unzip"
+DEPEND="${RDEPEND}"
-S=${WORKDIR}
+S=${WORKDIR}/simh-${MY_PV}
-src_prepare() {
- # convert makefile from dos format to unix format
- edos2unix makefile
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.11.0-respect-FLAGS.patch
+ "${FILESDIR}"/${PN}-3.11.0-fix-mkdir-race.patch
+ "${FILESDIR}"/${PN}-3.11.0-fcommon.patch
+)
- epatch "${FILESDIR}"/${P}-respect-FLAGS.patch \
- "${FILESDIR}"/${P}-fix-mkdir-race.patch
+src_prepare() {
+ default
# fix linking on Darwin
if [[ ${CHOST} == *-darwin* ]] ; then
@@ -40,8 +41,8 @@ src_compile() {
export LDFLAGS_O="${LDFLAGS}"
export CFLAGS_O="${CFLAGS}"
- local my_makeopts="USE_NETWORK=1"
- if [ "$(gcc-major-version)" -le "4" -a "$(gcc-minor-version)" -lt "6" ] ; then
+ local my_makeopts=""
+ if tc-is-gcc && ver_test $(gcc-version) -lt 4.6 ; then
my_makeopts+=" NO_LTO=1"
fi
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 25e89f9e5959..000000000000
--- a/app-emulation/simplevirt/metadata.xml
+++ /dev/null
@@ -1,18 +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>
- <longdescription lang="en">
- Simple virtual machine manager for Linux (QEMU/KVM)
- </longdescription>
- <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.ebuild b/app-emulation/simplevirt/simplevirt-0.0_p20181012.ebuild
deleted file mode 100644
index b888608e83fa..000000000000
--- a/app-emulation/simplevirt/simplevirt-0.0_p20181012.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2019 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 user
-
-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="BSD"
-SLOT="0"
-KEYWORDS=""
-IUSE=""
-
-RDEPEND="
- 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"
-
-pkg_setup() {
- enewgroup simplevirt
-
- linux-info_pkg_setup
-}
-
-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/files/ski-1.3.2-binutils-2.34.patch b/app-emulation/ski/files/ski-1.3.2-binutils-2.34.patch
new file mode 100644
index 000000000000..dcb3f6793fba
--- /dev/null
+++ b/app-emulation/ski/files/ski-1.3.2-binutils-2.34.patch
@@ -0,0 +1,22 @@
+diff --git a/src/linux/dwarf-linux.c b/src/linux/dwarf-linux.c
+index 73be0e6..c4051a3 100644
+--- a/src/linux/dwarf-linux.c
++++ b/src/linux/dwarf-linux.c
+@@ -116,14 +116,14 @@ find_in_section (bfd * bfd, asection * sect, PTR obj)
+ /*
+ * we're looking at loadable code only
+ */
+- if ((bfd_get_section_flags (bfd, sect) & (SEC_CODE | SEC_ALLOC)) == 0)
++ if ((bfd_section_flags (sect) & (SEC_CODE | SEC_ALLOC)) == 0)
+ return;
+
+ /*
+ * check if address belongs to this section
+ */
+- vma = bfd_get_section_vma (bfd, sect);
+- size = bfd_section_size (bfd, sect);
++ vma = bfd_section_vma (sect);
++ size = bfd_section_size (sect);
+
+ offset = info->address - vma;
+ if (offset >= size)
diff --git a/app-emulation/ski/files/ski-1.3.2-gcc-10.patch b/app-emulation/ski/files/ski-1.3.2-gcc-10.patch
new file mode 100644
index 000000000000..bfe5de33acbf
--- /dev/null
+++ b/app-emulation/ski/files/ski-1.3.2-gcc-10.patch
@@ -0,0 +1,22 @@
+--- a/src/linux/syscall-linux.c
++++ b/src/linux/syscall-linux.c
+@@ -538,7 +538,7 @@ pid_t cons_pid = -1;
+ static int cfd = -1;
+ BOOL trace_syscalls;
+ char *consLog = NULL;
+-extern BOOL noConsole;
++BOOL noConsole;
+ extern BOOL userint;
+ static struct termios sane_ttyIos;
+
+--- a/src/platform.c
++++ b/src/platform.c
+@@ -29,7 +29,7 @@
+ #include "platform.h"
+ #include "state.h"
+
+-BOOL autoAlloc, noConsole;
++extern BOOL autoAlloc, noConsole;
+ extern char *consLog;
+ extern unsigned va_len, pa_len, rid_len, key_len;
+ extern unsigned mips;
diff --git a/app-emulation/ski/files/ski-1.3.2-lex-deps.patch b/app-emulation/ski/files/ski-1.3.2-lex-deps.patch
new file mode 100644
index 000000000000..1dc8470864e2
--- /dev/null
+++ b/app-emulation/ski/files/ski-1.3.2-lex-deps.patch
@@ -0,0 +1,17 @@
+escan.l depends on generated eparse.h.
+If eparse.h is not present yet escan.o
+could be built before ${YACC) is ran.
+
+https://bugs.gentoo.org/744676
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -113,7 +113,8 @@ BUILT_SOURCES= \
+ $(DAS_INSTR_DERIVED) \
+ $(ASM_HASH_DERIVED) \
+ $(ICNT_DERIVED) \
+- instr.c
++ instr.c \
++ eparse.h
+
+ ski_SOURCES= \
+ main.c
diff --git a/app-emulation/ski/metadata.xml b/app-emulation/ski/metadata.xml
index a82c03848dd3..fab9a91d89c3 100644
--- a/app-emulation/ski/metadata.xml
+++ b/app-emulation/ski/metadata.xml
@@ -1,11 +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="project">
- <email>ia64@gentoo.org</email>
- <name>Gentoo Linux IA-64 Development</name>
- </maintainer>
+ <!-- maintainer-needed -->
+ <use>
+ <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-r2.ebuild b/app-emulation/ski/ski-1.3.2-r2.ebuild
deleted file mode 100644
index 389d021a5d24..000000000000
--- a/app-emulation/ski/ski-1.3.2-r2.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools
-
-DESCRIPTION="ia64 instruction set simulator"
-HOMEPAGE="http://ski.sourceforge.net/ http://www.gelato.unsw.edu.au/IA64wiki/SkiSimulator"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="motif"
-
-RDEPEND="dev-libs/libltdl:0=
- sys-libs/ncurses:0=
- virtual/libelf
- motif? ( x11-libs/motif:0= )"
-DEPEND="${RDEPEND}
- sys-devel/bison
- sys-devel/flex
- dev-util/gperf"
-
-PATCHES=(
- "${FILESDIR}"/${P}-syscall-linux-includes.patch
- "${FILESDIR}"/${P}-remove-hayes.patch
- "${FILESDIR}"/${P}-no-local-ltdl.patch
- "${FILESDIR}"/${P}-AC_C_BIGENDIAN.patch
- "${FILESDIR}"/${P}-configure-withval.patch
- "${FILESDIR}"/${P}-binutils.patch
- "${FILESDIR}"/${P}-uselib.patch #592226
- "${FILESDIR}"/${P}-ncurses-config.patch
- "${FILESDIR}"/${P}-prototypes.patch
-)
-
-src_prepare() {
- default
-
- rm -rf libltdl src/ltdl.[ch] macros/ltdl.m4
-
- AT_M4DIR="macros" eautoreconf
-}
-
-src_configure() {
- econf \
- --without-included-ltdl \
- --without-gtk \
- $(use_with motif x11)
-}
diff --git a/app-emulation/ski/ski-1.3.2-r3.ebuild b/app-emulation/ski/ski-1.3.2-r4.ebuild
index a6551f5c0b89..ae695b1a8056 100644
--- a/app-emulation/ski/ski-1.3.2-r3.ebuild
+++ b/app-emulation/ski/ski-1.3.2-r4.ebuild
@@ -1,29 +1,32 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
inherit autotools
DESCRIPTION="ia64 instruction set simulator"
-HOMEPAGE="http://ski.sourceforge.net/ http://www.gelato.unsw.edu.au/IA64wiki/SkiSimulator"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+HOMEPAGE="http://ski.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="motif"
+IUSE="debug motif"
RDEPEND="dev-libs/libltdl:0=
- sys-libs/binutils-libs:0=
sys-libs/ncurses:0=
virtual/libelf
+ 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
+RDEPEND="${RDEPEND} !!games-sports/ski"
+
PATCHES=(
"${FILESDIR}"/${P}-syscall-linux-includes.patch
"${FILESDIR}"/${P}-remove-hayes.patch
@@ -35,11 +38,17 @@ PATCHES=(
"${FILESDIR}"/${P}-ncurses-config.patch
"${FILESDIR}"/${P}-prototypes.patch
"${FILESDIR}"/${P}-glibc-2.28.patch
+ "${FILESDIR}"/${P}-gcc-10.patch #707144
+ "${FILESDIR}"/${P}-lex-deps.patch #744676
)
src_prepare() {
default
+ if has_version ">=sys-libs/binutils-libs-2.34"; then
+ eapply "${FILESDIR}"/${PN}-1.3.2-binutils-2.34.patch
+ fi
+
rm -rf libltdl src/ltdl.[ch] macros/ltdl.m4
AT_M4DIR="macros" eautoreconf
@@ -49,5 +58,6 @@ src_configure() {
econf \
--without-included-ltdl \
--without-gtk \
- $(use_with motif x11)
+ $(use_with motif x11) \
+ $(use_with debug bfd)
}
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 c49672d8a487..000000000000
--- a/app-emulation/skopeo/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST skopeo-0.1.37.tar.gz 2766509 BLAKE2B 59e3f4cf37694b4ae59fe4eca6afd8abe4f7ab1aec3c0cee409be6f0f648fd2929092ee9b5a2b167c5041202dac908cd39f693d8ae8eebf621be47f302bd885c SHA512 e2de3c65f864572fe74ca55ee107703a49855f0da71c440784b06d13ed724456cf7bf30e18a5cb15cf2e136edc688b56321cf7838a2cc66f39c4ea9d9686441e
-DIST skopeo-0.1.38.tar.gz 2947365 BLAKE2B 1d2d6ea2ed677f2b068ecca9b8dcee9d31280acb3f7acd8e0a59321d178244b506f4124eba8dd0519a3f5b307a6001d05a093cdf93189eccb55cf7c9cc41895b SHA512 83e53eb7632761eb444d4f824b6fee7a2e265e386fd1ba58e2d3194750f794a0e1cdc94a76222d12f589f851c459b165756661a76c09cc9c7dd9b2d6fff2b39f
-DIST skopeo-0.1.39.tar.gz 3850036 BLAKE2B e635be475f22cc25ab98e446424f4a6b0babe34f827a73f9c9c1533db782490e9af94e759ac78fbeeec1c0e1fa42eef9d09fb4e7ff1f4df654f65fe4c1a9f7b0 SHA512 c4aadc40f9d637c628cd96c204b3e9bc3a928c145521bed2e5046508fc936ff99442dda8b4a4cdd85c4d04e64a9ccee5ea8d563c6ebf4e6020d50d96b921716c
diff --git a/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch b/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch
deleted file mode 100644
index 1e81d8bff341..000000000000
--- a/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From a49f22efd84d1cc656242319cca27cbdf8852e05 Mon Sep 17 00:00:00 2001
-From: William Hubbs <whubbs@gaikai.com>
-Date: Fri, 23 Jun 2017 12:34:25 -0500
-Subject: [PATCH] make ostree optional
-
----
- vendor/github.com/containers/image/README.md | 14 ++++++---
- .../transports/alltransports/alltransports.go | 2 +-
- .../image/transports/alltransports/ostree.go | 8 +++++
- .../image/transports/alltransports/ostree_stub.go | 9 ++++++
- .../github.com/containers/image/transports/stub.go | 36 ++++++++++++++++++++++
- .../containers/image/transports/stub_test.go | 18 +++++++++++
- 6 files changed, 82 insertions(+), 5 deletions(-)
- create mode 100644 vendor/github.com/containers/image/transports/alltransports/ostree.go
- create mode 100644 vendor/github.com/containers/image/transports/alltransports/ostree_stub.go
- create mode 100644 vendor/github.com/containers/image/transports/stub.go
- create mode 100644 vendor/github.com/containers/image/transports/stub_test.go
-
-diff --git a/vendor/github.com/containers/image/README.md b/vendor/github.com/containers/image/README.md
-index ca8afd4..8e812bb 100644
---- a/vendor/github.com/containers/image/README.md
-+++ b/vendor/github.com/containers/image/README.md
-@@ -51,14 +51,20 @@ Ensure that the dependencies documented [in vendor.conf](https://github.com/cont
- are also available
- (using those exact versions or different versions of your choosing).
-
--This library, by default, also depends on the GpgME C library. Either install it:
-+This library, by default, also depends on the GpgME and libostree C libraries. Either install them:
- ```sh
--Fedora$ dnf install gpgme-devel libassuan-devel
-+Fedora$ dnf install gpgme-devel libassuan-devel libostree-devel
- macOS$ brew install gpgme
- ```
--or use the `containers_image_openpgp` build tag (e.g. using `go build -tags …`)
--This will use a Golang-only OpenPGP implementation for signature verification instead of the default cgo/gpgme-based implementation;
-+or use the build tags described below to avoid the dependencies (e.g. using `go build -tags …`)
-+
-+### Supported build tags
-+
-+- `containers_image_openpgp`: Use a Golang-only OpenPGP implementation for signature verification instead of the default cgo/gpgme-based implementation;
- the primary downside is that creating new signatures with the Golang-only implementation is not supported.
-+- `containers_image_ostree_stub`: Instead of importing `ostree:` transport in `github.com/containers/image/transports/alltransports`, use a stub which reports that the transport is not supported. This allows building the library without requiring the `libostree` development libraries.
-+
-+ (Note that explicitly importing `github.com/containers/image/ostree` will still depend on the `libostree` library, this build tag only affects generic users of …`/alltransports`.)
-
- ## Contributing
-
-diff --git a/vendor/github.com/containers/image/transports/alltransports/alltransports.go b/vendor/github.com/containers/image/transports/alltransports/alltransports.go
-index dc70fad..dd80b7f 100644
---- a/vendor/github.com/containers/image/transports/alltransports/alltransports.go
-+++ b/vendor/github.com/containers/image/transports/alltransports/alltransports.go
-@@ -12,7 +12,7 @@ import (
- _ "github.com/containers/image/docker/daemon"
- _ "github.com/containers/image/oci/layout"
- _ "github.com/containers/image/openshift"
-- _ "github.com/containers/image/ostree"
-+ // The ostree transport is registered by ostree*.go
- _ "github.com/containers/image/storage"
- "github.com/containers/image/transports"
- "github.com/containers/image/types"
-diff --git a/vendor/github.com/containers/image/transports/alltransports/ostree.go b/vendor/github.com/containers/image/transports/alltransports/ostree.go
-new file mode 100644
-index 0000000..0fc5d7e
---- /dev/null
-+++ b/vendor/github.com/containers/image/transports/alltransports/ostree.go
-@@ -0,0 +1,8 @@
-+// +build !containers_image_ostree_stub
-+
-+package alltransports
-+
-+import (
-+ // Register the ostree transport
-+ _ "github.com/containers/image/ostree"
-+)
-diff --git a/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go b/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go
-new file mode 100644
-index 0000000..8b01afe
---- /dev/null
-+++ b/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go
-@@ -0,0 +1,9 @@
-+// +build containers_image_ostree_stub
-+
-+package alltransports
-+
-+import "github.com/containers/image/transports"
-+
-+func init() {
-+ transports.Register(transports.NewStubTransport("ostree"))
-+}
-diff --git a/vendor/github.com/containers/image/transports/stub.go b/vendor/github.com/containers/image/transports/stub.go
-new file mode 100644
-index 0000000..087f69b
---- /dev/null
-+++ b/vendor/github.com/containers/image/transports/stub.go
-@@ -0,0 +1,36 @@
-+package transports
-+
-+import (
-+ "fmt"
-+
-+ "github.com/containers/image/types"
-+)
-+
-+// stubTransport is an implementation of types.ImageTransport which has a name, but rejects any references with “the transport $name: is not supported in this build”.
-+type stubTransport string
-+
-+// NewStubTransport returns an implementation of types.ImageTransport which has a name, but rejects any references with “the transport $name: is not supported in this build”.
-+func NewStubTransport(name string) types.ImageTransport {
-+ return stubTransport(name)
-+}
-+
-+// Name returns the name of the transport, which must be unique among other transports.
-+func (s stubTransport) Name() string {
-+ return string(s)
-+}
-+
-+// ParseReference converts a string, which should not start with the ImageTransport.Name prefix, into an ImageReference.
-+func (s stubTransport) ParseReference(reference string) (types.ImageReference, error) {
-+ return nil, fmt.Errorf(`The transport "%s:" is not supported in this build`, string(s))
-+}
-+
-+// ValidatePolicyConfigurationScope checks that scope is a valid name for a signature.PolicyTransportScopes keys
-+// (i.e. a valid PolicyConfigurationIdentity() or PolicyConfigurationNamespaces() return value).
-+// It is acceptable to allow an invalid value which will never be matched, it can "only" cause user confusion.
-+// scope passed to this function will not be "", that value is always allowed.
-+func (s stubTransport) ValidatePolicyConfigurationScope(scope string) error {
-+ // Allowing any reference in here allows tools with some transports stubbed-out to still
-+ // use signature verification policies which refer to these stubbed-out transports.
-+ // See also the treatment of unknown transports in policyTransportScopesWithTransport.UnmarshalJSON .
-+ return nil
-+}
-diff --git a/vendor/github.com/containers/image/transports/stub_test.go b/vendor/github.com/containers/image/transports/stub_test.go
-new file mode 100644
-index 0000000..f181a1a
---- /dev/null
-+++ b/vendor/github.com/containers/image/transports/stub_test.go
-@@ -0,0 +1,18 @@
-+package transports
-+
-+import (
-+ "testing"
-+
-+ "github.com/stretchr/testify/assert"
-+)
-+
-+func TestStubTransport(t *testing.T) {
-+ const name = "whatever"
-+
-+ s := NewStubTransport(name)
-+ assert.Equal(t, name, s.Name())
-+ _, err := s.ParseReference("this is rejected regardless of content")
-+ assert.Error(t, err)
-+ err = s.ValidatePolicyConfigurationScope("this is accepted regardless of content")
-+ assert.NoError(t, err)
-+}
---
-2.13.0
-
diff --git a/app-emulation/skopeo/metadata.xml b/app-emulation/skopeo/metadata.xml
deleted file mode 100644
index c36c37139fad..000000000000
--- a/app-emulation/skopeo/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/skopeo/skopeo-0.1.37.ebuild b/app-emulation/skopeo/skopeo-0.1.37.ebuild
deleted file mode 100644
index a3641ef7199d..000000000000
--- a/app-emulation/skopeo/skopeo-0.1.37.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN=github.com/containers/skopeo
-COMMIT=e079f9d
-inherit golang-vcs-snapshot 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"
-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}"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS="containers_image_ostree_stub"
- set -- env -u GOCACHE -u XDG_CACHE_HOME GOPATH="${WORKDIR}/${P}" \
- go build -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.1.38.ebuild b/app-emulation/skopeo/skopeo-0.1.38.ebuild
deleted file mode 100644
index d6afc826266f..000000000000
--- a/app-emulation/skopeo/skopeo-0.1.38.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-EGO_PN=github.com/containers/skopeo
-COMMIT=37f616e
-inherit golang-vcs-snapshot 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"
-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}"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS="containers_image_ostree_stub"
- set -- env -u GOCACHE -u XDG_CACHE_HOME GOPATH="${WORKDIR}/${P}" \
- go build -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.1.39.ebuild b/app-emulation/skopeo/skopeo-0.1.39.ebuild
deleted file mode 100644
index 3af894ea4f9a..000000000000
--- a/app-emulation/skopeo/skopeo-0.1.39.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-EGO_PN=github.com/containers/skopeo
-COMMIT=1cf1e06
-inherit golang-vcs-snapshot 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"
-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}"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS="containers_image_ostree_stub"
- set -- env -u GOCACHE -u XDG_CACHE_HOME GO111MODULE=on GOPATH="${WORKDIR}/${P}" \
- 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 7fcfd053711f..000000000000
--- a/app-emulation/slirp4netns/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST slirp4netns-0.3.3.tar.gz 162154 BLAKE2B b4a477ca94ee17e14ae0d255eb1f22713388d32cee1faff308e902a8134bc52e08cfa92537c19fbfc9869d936637c1196fee462d9699c1b5f97a0d0138dc4792 SHA512 9cccbfd30348d895c8c3f6a80ebe7991131c5a5f4907733ec65df5ce70b63427e5f666bf7c4dcb08e8dd50f1769aff0f6642c23c29eb6b9921a2d10f62d46f63
-DIST slirp4netns-0.4.1.tar.gz 168785 BLAKE2B 90e2510121177771fb77d5e48baa8a1acb95f9778e72add244b2df10d92c9cc6ef284bfbeef699bd8e58724b50254a4eb6fa485a58c7c8e6cca8469cf722e1f2 SHA512 bb2a0946f4e360eb08efb46e097d21ab1bf05d199d1e3d381e065617eb9ba15434bccb5d1e76ac27664f23c8da79349383095b4d28d2a1a8ddc0fb9675aebf34
diff --git a/app-emulation/slirp4netns/metadata.xml b/app-emulation/slirp4netns/metadata.xml
deleted file mode 100644
index 2cab48fc0192..000000000000
--- a/app-emulation/slirp4netns/metadata.xml
+++ /dev/null
@@ -1,19 +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>
- <longdescription lang="en">
- slirp4netns provides user-mode networking ("slirp")
- for unprivileged network namespaces.
- </longdescription>
- <upstream>
- <remote-id type="github">rootless-containers/slirp4netns</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/slirp4netns/slirp4netns-0.3.3.ebuild b/app-emulation/slirp4netns/slirp4netns-0.3.3.ebuild
deleted file mode 100644
index a87e63fe9495..000000000000
--- a/app-emulation/slirp4netns/slirp4netns-0.3.3.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2019 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"
-
-LICENSE="GPL-2"
-SLOT="0"
-
-KEYWORDS="~amd64"
-
-RDEPEND="dev-libs/glib:2=
- dev-libs/libpcre:="
-DEPEND="${RDEPEND}"
-RESTRICT="test"
-
-src_prepare() {
- 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/slirp4netns/slirp4netns-0.4.1.ebuild b/app-emulation/slirp4netns/slirp4netns-0.4.1.ebuild
deleted file mode 100644
index a87e63fe9495..000000000000
--- a/app-emulation/slirp4netns/slirp4netns-0.4.1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2019 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"
-
-LICENSE="GPL-2"
-SLOT="0"
-
-KEYWORDS="~amd64"
-
-RDEPEND="dev-libs/glib:2=
- dev-libs/libpcre:="
-DEPEND="${RDEPEND}"
-RESTRICT="test"
-
-src_prepare() {
- 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/Manifest b/app-emulation/softgun/Manifest
index 3284509fa941..849e9260fefb 100644
--- a/app-emulation/softgun/Manifest
+++ b/app-emulation/softgun/Manifest
@@ -1,2 +1 @@
-DIST softgun-0.21.tgz 1126433 BLAKE2B 367ef0b200efc46c9727fc5e465f8e7ba036804ef29ff782955cb4b58ade9100279a16fb3cf0d1d9321d5a5db01a6ac0a4d69cd50b700d9a7a04b1ca798fe5d8 SHA512 145c6e8407e57353212dcb7ab8193c9b5d5c7fa6271dfbe3f4637c236b07989ef61729f55850da14639dc7d7d64ad5b68c73783e634dc5d2763865977c62ca8a
DIST softgun-0.22.tgz 1239881 BLAKE2B 34bbb67ee0f359fd75e19ec455ccb674e613a25b7a68fa638b7b9c4c2021fbbebe1aee5a4e4184e2e5a92d4ae81fe95acd68f7c68ae3700b2284e64f5b785a30 SHA512 5c13840874b09aab6c0921d705c0ea94da87cc1a80d2fcbc9f329ade25f33bb2c8eba2fe284b4c3b41e70b8f258a45fc83caa296880bfa3e7870994de587e591
diff --git a/app-emulation/softgun/files/softgun-0.21-make.patch b/app-emulation/softgun/files/softgun-0.21-make.patch
deleted file mode 100644
index bb3ded406a0a..000000000000
--- a/app-emulation/softgun/files/softgun-0.21-make.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- softgun-0.21/config.mk
-+++ softgun-0.21/config.mk
-@@ -9,7 +9,7 @@ bindir=$(prefix)/bin
- libdir=$(prefix)/lib/softgun/
-
- #CFLAGS=-Wall -pg -O1 -g
--CFLAGS=-Wall -O9 -g -fomit-frame-pointer -fno-strict-overflow -Wstrict-overflow=3 -Wno-unused-but-set-variable
-+CFLAGS+=-fno-strict-overflow -Wstrict-overflow=3 -Wno-unused-but-set-variable
- DEFS=-D_GNU_SOURCE
- INCLUDES:=-I$(top_srcdir) -I.
-
-@@ -19,13 +19,13 @@
- SHAREDLDFLAGS=-nostdlib -shared
- CYGWIN=$(findstring CYGWIN,$(shell uname))
- ifeq ($(shell uname),Linux)
--LDFLAGS=-lpthread -lrt -lm -lz -lasound
-+LDLIBS=-lpthread -ldl -lrt -lm -lz -lasound
- else
- ifeq ($(shell uname),FreeBSD)
-- LDFLAGS=-lpthread -lm -lz -lSDL
-+ LDLIBS=-lpthread -lm -lz -lSDL
- else
- ifeq ($(CYGWIN),CYGWIN)
-- LDFLAGS=-lpthread -lrt -lm -lz
-+ LDLIBS=-lpthread -lrt -lm -lz
- else
- $(error "Unknown architecture $(shell uname)")
- endif
---- softgun-0.21/Makefile
-+++ softgun-0.21/Makefile
-@@ -116,7 +116,7 @@
-
-
- softgun: $(OBJS)
-- $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
-+ $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS)
-
- boards/libboards.a:
- $(MAKE) -C boards libboards.a
---- softgun-0.21/printer/module.mk
-+++ softgun-0.21/printer/module.mk
-@@ -5,5 +5,5 @@
- INSTALL_BINS += pcl3gui2png
-
- pcl3gui2png: $(PRINTER_OBJS) printer/pcl3gui2png.c
-- $(CC) -o $@ $(PRINTER_OBJS) printer/pcl3gui2png.c
-+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
-
---- softgun-0.21/tools/Makefile
-+++ softgun-0.21/tools/Makefile
-@@ -2,7 +2,7 @@ include ../config.mk
-
- ifeq ($(shell uname),Linux)
- sg_tunctl: tunctl.c
-- $(CC) $(CFLAGS) tunctl.c -o sg_tunctl
-+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
-
- install:
- install -m 0755 sg_tunctl $(bindir)
-@@ -14,7 +14,7 @@ install:
- endif
-
- to_c_array: to_c_array.c
-- $(CC) $(CFLAGS) to_c_array.c -o to_c_array
-+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
-
-
- clean:
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.21.ebuild b/app-emulation/softgun/softgun-0.21.ebuild
deleted file mode 100644
index ceb15acaf31c..000000000000
--- a/app-emulation/softgun/softgun-0.21.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="4"
-
-inherit toolchain-funcs eutils
-
-DESCRIPTION="ARM software emulator"
-HOMEPAGE="http://softgun.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE=""
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-0.21-make.patch
- sed -i \
- -e "/^CFLAGS/s:-O9.*-Werror:${CFLAGS}:" \
- config.mk || die
-}
-
-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-r1.ebuild b/app-emulation/softgun/softgun-0.22-r1.ebuild
new file mode 100644
index 000000000000..f36e66a00487
--- /dev/null
+++ b/app-emulation/softgun/softgun-0.22-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="ARM software emulator"
+HOMEPAGE="https://softgun.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="media-libs/alsa-lib"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.22-make.patch
+ "${FILESDIR}"/${PN}-0.22-fix-implicit-int.patch
+ "${FILESDIR}"/${PN}-0.22-fix-declarations-with-type-mismatches.patch
+)
+
+src_configure() {
+ append-cflags -fcommon
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dodir /usr/bin
+ emake install prefix="${D}/usr"
+ dodoc README configs/*.sg
+}
diff --git a/app-emulation/softgun/softgun-0.22.ebuild b/app-emulation/softgun/softgun-0.22.ebuild
index 15758fcf1687..50138146342f 100644
--- a/app-emulation/softgun/softgun-0.22.ebuild
+++ b/app-emulation/softgun/softgun-0.22.ebuild
@@ -1,24 +1,26 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2024 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/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+SRC_URI="https://downloads.sourceforge.net/${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/files/spectemu-0.99.3-automagic.patch b/app-emulation/spectemu/files/spectemu-0.99.3-automagic.patch
index 6e813d6373e5..0fd6ebc7e6f6 100644
--- a/app-emulation/spectemu/files/spectemu-0.99.3-automagic.patch
+++ b/app-emulation/spectemu/files/spectemu-0.99.3-automagic.patch
@@ -1,5 +1,5 @@
---- configure.in
-+++ configure.in
+--- a/configure.in
++++ b/configure.in
@@ -121,13 +121,22 @@
dnl -----------------------------------------------------------
dnl Check for SVGALIB
diff --git a/app-emulation/spectemu/files/spectemu-0.99.3-build.patch b/app-emulation/spectemu/files/spectemu-0.99.3-build.patch
index 1c354a5fa933..9c5ac95c594b 100644
--- a/app-emulation/spectemu/files/spectemu-0.99.3-build.patch
+++ b/app-emulation/spectemu/files/spectemu-0.99.3-build.patch
@@ -1,5 +1,5 @@
---- Makefile.in
-+++ Makefile.in
+--- a/Makefile.in
++++ b/Makefile.in
@@ -44,17 +44,19 @@
./mkinstalldirs $(i_bindir) $(i_mandir)
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/spectemu/spectemu-0.99.3-r1.ebuild b/app-emulation/spectemu/spectemu-0.99.3-r1.ebuild
index 14d083630681..907f557d003d 100644
--- a/app-emulation/spectemu/spectemu-0.99.3-r1.ebuild
+++ b/app-emulation/spectemu/spectemu-0.99.3-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=4
+EAPI=7
-inherit autotools eutils
+inherit autotools
DESCRIPTION="48k ZX Spectrum Emulator"
HOMEPAGE="http://kempelen.iit.bme.hu/~mszeredi/spectemu/spectemu.html"
@@ -16,17 +16,25 @@ IUSE="readline svga +X"
REQUIRED_USE="|| ( svga X )"
-DEPEND="X? ( x11-base/xorg-proto
+DEPEND="
+ X? (
+ x11-base/xorg-proto
>=x11-libs/libX11-1.0.0
>=x11-libs/libXext-1.0.0
- >=x11-libs/libXxf86vm-1.0.0 )
- readline? ( sys-libs/readline )"
+ >=x11-libs/libXxf86vm-1.0.0
+ )
+ readline? ( sys-libs/readline:= )
+"
RDEPEND="${DEPEND}
svga? ( media-libs/svgalib )"
+PATCHES=(
+ "${FILESDIR}"/${P}-automagic.patch
+ "${FILESDIR}"/${P}-build.patch
+)
+
src_prepare() {
- epatch "${FILESDIR}"/${P}-automagic.patch
- epatch "${FILESDIR}"/${P}-build.patch
+ default
eautoreconf
}
@@ -38,5 +46,5 @@ src_configure() {
}
src_install() {
- emake install_root="${D}" install
+ emake install_root="${ED}" install
}
diff --git a/app-emulation/spice-html5/Manifest b/app-emulation/spice-html5/Manifest
deleted file mode 100644
index 0d427219c727..000000000000
--- a/app-emulation/spice-html5/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST spice-html5-spice-html5-0.2.1.tar.gz 486871 BLAKE2B 4b44ad772ab5abf13e8d3fe7c651169b340c8978f4163b9b679046efaa554f86d5919d154f16262ea28ddb512ac55ea7b6651ae63f64cf6b69033d8306191dc3 SHA512 c6e17aa465da1a0b882184bb19f2560f43fd3b345fdc00ec71774c7aec37c3453fd87b2448202011e217dda21b602d20dd4d552d49d9a52b64cb91aff092eff7
diff --git a/app-emulation/spice-html5/metadata.xml b/app-emulation/spice-html5/metadata.xml
deleted file mode 100644
index 86afbba5af5e..000000000000
--- a/app-emulation/spice-html5/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>prometheanfire@gentoo.org</email>
- <name>Matthew Thode</name>
- </maintainer>
- <maintainer type="project">
- <email>openstack@gentoo.org</email>
- <name>Openstack</name>
- </maintainer>
- <longdescription lang="en">
- Spice Javascript client
- </longdescription>
-</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-protocol/Manifest b/app-emulation/spice-protocol/Manifest
index 2b17dbc0565a..b8a9464a18fa 100644
--- a/app-emulation/spice-protocol/Manifest
+++ b/app-emulation/spice-protocol/Manifest
@@ -1,3 +1,3 @@
-DIST spice-protocol-0.12.14.tar.bz2 74471 BLAKE2B ee90514f3c6ee0c8f6930e5fd0140e20447b1613f202186883a9a17eefaacbd83ff2f2cdb68b46cd1573de4cce288965a1b531ded1ab4da52c24c2c3ad098192 SHA512 4266bcbef9f641a97a2ff72f1b01380a41e51f4b1a0dbb73fdf68baf552598a62d5cf0c526adf2997a55ee5d4fe9392927c3d7f4556827bfb2933f59bfab55bb
-DIST spice-protocol-0.12.15.tar.bz2 74598 BLAKE2B d8116e3905d4345fc0bc51d488d2ca4d90d1302c8f0a14bd126eb4c753660c98bd54ac5561a6464adeba6a0ed16e55f681e59c2a73b3ee9288acd3fce5624a93 SHA512 1a3c3c26239d092c6c24708f5bd070ae1cb146f92f2329b63bec2d21a7276cdf1b9567f434bfbeeb1f7cd7dd4ad47494c51dcdbbba5af8e271e66dfe5b11de9d
-DIST spice-protocol-0.14.0.tar.bz2 70938 BLAKE2B 66dfa75f7e2f5a9c0c5d9ec34744386760393908f02bd7c662e51b3bee41c3c825eac512494bbd5ffdab5375e132bc4b567f65003cca88314c9ef2e3d529f219 SHA512 797df5f529731e9fd395b5946af2490ecf02c26982cc4a0aef24c1766887a35222f68525a996f8bc7459c2c4a25fde0c9a10c489ee6cab6eed7a68a9b5d90f76
+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.12.14.ebuild b/app-emulation/spice-protocol/spice-protocol-0.12.14.ebuild
deleted file mode 100644
index b4a375b4daea..000000000000
--- a/app-emulation/spice-protocol/spice-protocol-0.12.14.ebuild
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Headers defining the SPICE protocol"
-HOMEPAGE="https://www.spice-space.org/"
-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"
-IUSE=""
-
-DEPEND=""
-RDEPEND=""
diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.0.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild
index 811162510d41..f62cd0b98d8c 100644
--- a/app-emulation/spice-protocol/spice-protocol-0.14.0.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -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.12.15.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild
index 811162510d41..2d8171ddeca0 100644
--- a/app-emulation/spice-protocol/spice-protocol-0.12.15.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild
@@ -1,16 +1,14 @@
-# Copyright 1999-2019 Gentoo Authors
+# 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.bz2"
+SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND=""
+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 781224a6a4c7..8908284a7192 100644
--- a/app-emulation/spice-protocol/spice-protocol-9999.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-9999.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2019 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 autotools
+ 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"
@@ -18,12 +18,3 @@ HOMEPAGE="https://spice-space.org/"
LICENSE="BSD"
SLOT="0"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- [[ ${PV} = *9999* ]] && eautoreconf
- default
-}
diff --git a/app-emulation/spice-vdagent/Manifest b/app-emulation/spice-vdagent/Manifest
index fd06cd9a0baf..49738685af14 100644
--- a/app-emulation/spice-vdagent/Manifest
+++ b/app-emulation/spice-vdagent/Manifest
@@ -1,3 +1 @@
-DIST spice-vdagent-0.17.0-patches-20180319.tar.xz 38924 BLAKE2B c7c7f851d307cd7dde620278c6ea240d71f8b1f25d6367f81213c7e902d2b2c15f72c71344f965743a45b5693832a2937041ca7b5511ce1db479dafe137bc7b1 SHA512 8ac627f56605151aebc100a6c6d61243776662150095c768196d750929971f98f4b6d1a831cfb547d29ae8a6734795c93e51a9c4f27dcf53bd66aca6df437c51
-DIST spice-vdagent-0.17.0.tar.bz2 130413 BLAKE2B b2fb522f491512d94ac15fa8d253e8e682210ad40657eb9e5e40489eaab18c9f1d5ef5f97075a4389501050a758e1f56d47132de6b1c74bb153fc6b5e87a698d SHA512 b26e44f6463ba70d5815956b301cc2351db22de41ed2ce8b2828d9bfa1cc581c86acd433f8f0d35d552d20f6ca140f88fa39b079ba26e9166dc07ad35bee502e
-DIST spice-vdagent-0.19.0.tar.bz2 151356 BLAKE2B b7a99a7205d955b27edfe483746e3f267a6e0b7885c4b8146ba42d99b581cf4e1748b503a37a3d6b66623ef2515b42756f2e6a5a4775d56def7aa396bd0dfb4f SHA512 f5056dfe66df3ee8205549be22bbc8c17d2196c8448eda97f01659ff30c34d9929f330767d7fafec557dc5f7fb9b65eaf85973193b38df774042de9b72d6e60d
+DIST spice-vdagent-0.22.1.tar.bz2 165560 BLAKE2B 4fd4318592d20d305d515c65d7491b90ac79bcc7f5bdfafd9df7858bdce24aa57c79f2121bbf9cbadec8e6297890f4b8598b9abcadcce5a9f39712b96deaa396 SHA512 5a4d2661145f33a0583880a128d925b15ca5aec05df83271c80f8baa0fcdd28fab0242301bc38443ccddf70fbdcfd76b5d30bb5a6b4b7c895c3cea0eb38bdf92
diff --git a/app-emulation/spice-vdagent/files/spice-vdagent.initd-3 b/app-emulation/spice-vdagent/files/spice-vdagent.initd-3
deleted file mode 100644
index 255051192b15..000000000000
--- a/app-emulation/spice-vdagent/files/spice-vdagent.initd-3
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- after dbus
-}
-
-PIDFILE="/var/run/spice-vdagentd/spice-vdagentd.pid"
-
-start() {
- PORT="${PORT:-/dev/virtio-ports/com.redhat.spice.0}"
- DEVICE="${DEVICE:-/dev/uinput}"
-
- ebegin "Checking for required modules and devices"
-
- if [ ! -d /sys/module/uinput ]; then
- modprobe -q uinput
- fi
-
- if [ ! -d /sys/module/uinput ]; then
- eerror "Module 'uinput' not loaded or not enabled in the kernel"
- eend 1
- return 1
- fi
-
- if [ ! -c "${PORT}" ] ; then
- eerror "Required virtio port does not exist. Make sure you"
- eerror "started the virtual machine with appropriate parameters."
- eend 1
- return 1
- fi
- eend 0
-
- if [ ! -c ${DEVICE} -a -c /dev/input/uinput ]; then
- DEVICE=/dev/input/uinput
- fi
-
- # recreate the directory since /var/run may reside on a ramdisk
- mkdir -p /var/run/spice-vdagentd
-
- # cleanup stalled socket
- rm -f /var/run/spice-vdagentd/spice-vdagent-sock
-
- ebegin "Starting spice VD agent daemon"
- start-stop-daemon \
- --start \
- --pidfile "${PIDFILE}" \
- --exec /usr/sbin/spice-vdagentd \
- -- -u "${DEVICE}" ${SPICE_VDAGENT_ARGS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping spice VD agent daemon"
- start-stop-daemon \
- --stop \
- --pidfile "${PIDFILE}"
- eend $?
-}
diff --git a/app-emulation/spice-vdagent/metadata.xml b/app-emulation/spice-vdagent/metadata.xml
index 50477de61e16..cfac6f8ac4ff 100644
--- a/app-emulation/spice-vdagent/metadata.xml
+++ b/app-emulation/spice-vdagent/metadata.xml
@@ -1,15 +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>dev-zero@gentoo.org</email>
- <name>Tiziano Müller</name>
- </maintainer>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
<name>Gentoo Virtualization Project</name>
</maintainer>
- <use>
- <flag name="consolekit">Use <pkg>sys-auth/consolekit</pkg> to determine the master vdagentd in case of multiple running vdagentds (highly recommended)</flag>
- </use>
</pkgmetadata>
diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.17.0_p20180319-r1.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.17.0_p20180319-r1.ebuild
deleted file mode 100644
index 5a356f6ee6ef..000000000000
--- a/app-emulation/spice-vdagent/spice-vdagent-0.17.0_p20180319-r1.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools linux-info
-
-MY_P="${P/_*/}"
-PATCHSET="${P/*_p/}"
-
-DESCRIPTION="SPICE VD Linux Guest Agent"
-HOMEPAGE="https://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/releases/${MY_P}.tar.bz2
- https://dev.gentoo.org/~tamiko/distfiles/${MY_P}-patches-${PATCHSET}.tar.xz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="consolekit selinux systemd"
-S="${WORKDIR}/${MY_P}"
-
-CDEPEND="
- >=app-emulation/spice-protocol-0.12.8
- media-libs/alsa-lib
- >=x11-libs/libpciaccess-0.10
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libX11
- x11-libs/libXinerama
- consolekit? ( sys-auth/consolekit sys-apps/dbus )
- 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"
-
-PATCHES=(
- "${WORKDIR}"/patches
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- local opt=()
- if use consolekit; then
- opt+=( --with-session-info=console-kit )
- elif use systemd; then
- opt+=( --with-session-info=systemd )
- else
- opt+=( --with-session-info=none )
- fi
-
- econf \
- --with-init-script=systemd \
- --localstatedir="${EPREFIX}"/var \
- "${opt[@]}"
-}
-
-src_install() {
- default
-
- cd "${ED}" && rmdir -p var/run/spice-vdagentd || die
-
- keepdir /var/log/spice-vdagentd
-
- newinitd "${FILESDIR}/${PN}.initd-3" "${PN}"
- newconfd "${FILESDIR}/${PN}.confd-2" "${PN}"
-}
diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
index de4e147bf833..c58c80ea1479 100644
--- a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild
+++ b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
@@ -1,54 +1,45 @@
-# 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 autotools linux-info
-
-MY_P="${P/_*/}"
-PATCHSET="${P/*_p/}"
+inherit linux-info tmpfiles udev
DESCRIPTION="SPICE VD Linux Guest Agent"
HOMEPAGE="https://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/releases/${MY_P}.tar.bz2"
+SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="consolekit gtk selinux systemd"
-S="${WORKDIR}/${MY_P}"
+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
- consolekit? ( sys-auth/consolekit sys-apps/dbus )
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"
ERROR_VIRTIO_CONSOLE="VirtIO console/serial device support (VIRTIO_CONSOLE) is required"
-src_prepare() {
- default
- eautoreconf
-}
-
src_configure() {
local opt=()
- if use consolekit; then
- opt+=( --with-session-info=console-kit )
- elif use systemd; then
+ if use systemd; then
opt+=( --with-session-info=systemd )
else
opt+=( --with-session-info=none )
@@ -64,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 e7646821caa9..c75ff310017c 100644
--- a/app-emulation/spice/Manifest
+++ b/app-emulation/spice/Manifest
@@ -1,2 +1,2 @@
-DIST spice-0.14.0.tar.bz2 1330195 BLAKE2B 08f93e8ddeb79adb4feac0557a854cc41fd096a9dfefc0baaca176803c2a03ef9286c4f61a135d62ad22e3ac3f4bb31ffd1614c8ddeaec7ae8c01eca34da1750 SHA512 84532146aa628ca6ca459a82afb89d6391892e063668fd4a68023c92cee7ca868b6c82e31dd9886819b76ea745ebdae0d0030e1f608d8f58f51c00f0b09bae1f
-DIST spice-0.14.2.tar.bz2 1406009 BLAKE2B e6c57bedd8c8ec0444da194be7279b895bf348dfa9b427d20301cc223627bcd65b7037280bc2a3d0b531b0cdcd8cb62d34ee132c549ac3dc8f6e5a2959339ce2 SHA512 1093b618ea4a7ff31944429ce2903abecfc8d20c35f2d9c8c837a6e053ee429c0115e40665542637a717869209523ac05d15cdb5e77563102d5d3915e4aaaf76
+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/files/spice-0.14.0-fix-flexible-array-buffer-overflow.patch b/app-emulation/spice/files/spice-0.14.0-fix-flexible-array-buffer-overflow.patch
deleted file mode 100644
index a05bbb7545aa..000000000000
--- a/app-emulation/spice/files/spice-0.14.0-fix-flexible-array-buffer-overflow.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/spice-common/python_modules/demarshal.py b/spice-common/python_modules/demarshal.py
-index 1ea131d..7172762 100644
---- a/spice-common/python_modules/demarshal.py
-+++ b/spice-common/python_modules/demarshal.py
-@@ -318,6 +318,7 @@ def write_validate_array_item(writer, container, item, scope, parent_scope, star
- writer.assign(nelements, array.size)
- elif array.is_remaining_length():
- if element_type.is_fixed_nw_size():
-+ writer.error_check("%s > message_end" % item.get_position())
- if element_type.get_fixed_nw_size() == 1:
- writer.assign(nelements, "message_end - %s" % item.get_position())
- else:
diff --git a/app-emulation/spice/files/spice-0.14.0-libressl_fix.patch b/app-emulation/spice/files/spice-0.14.0-libressl_fix.patch
deleted file mode 100644
index 1dfce9480e9c..000000000000
--- a/app-emulation/spice/files/spice-0.14.0-libressl_fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/spice-common/common/ssl_verify.c b/spice-common/common/ssl_verify.c
-index a9ed650..27aa5d3 100644
---- a/spice-common/common/ssl_verify.c
-+++ b/spice-common/common/ssl_verify.c
-@@ -33,7 +33,7 @@
- #include <string.h>
- #include <gio/gio.h>
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
- static const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *asn1)
- {
- return M_ASN1_STRING_data(asn1);
diff --git a/app-emulation/spice/files/spice-0.14.0-openssl1.1_fix.patch b/app-emulation/spice/files/spice-0.14.0-openssl1.1_fix.patch
deleted file mode 100644
index c1c5a1c04ba1..000000000000
--- a/app-emulation/spice/files/spice-0.14.0-openssl1.1_fix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- spice-0.13.90-orig/server/reds.c 2017-07-27 01:04:10.000000000 +1000
-+++ spice-0.13.90/server/reds.c 2017-10-18 21:42:12.054934199 +1100
-@@ -34,6 +34,8 @@
- #include <ctype.h>
-
- #include <openssl/err.h>
-+#include <openssl/bn.h>
-+#include <openssl/rsa.h>
-
- #if HAVE_SASL
- #include <sasl/sasl.h>
-@@ -2795,9 +2797,12 @@
-
- static gpointer openssl_global_init(gpointer arg)
- {
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined (LIBRESSL_VERSION_NUMBER)
-+ OPENSSL_init_ssl(0, NULL);
-+#else
- SSL_library_init();
- SSL_load_error_strings();
--
-+#endif
- openssl_thread_setup();
-
- return NULL;
-
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.0-r2.ebuild b/app-emulation/spice/spice-0.14.0-r2.ebuild
deleted file mode 100644
index d3948b0830a6..000000000000
--- a/app-emulation/spice/spice-0.14.0-r2.ebuild
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
-
-inherit autotools ltprune python-any-r1 readme.gentoo-r1 xdg-utils
-
-DESCRIPTION="SPICE server"
-HOMEPAGE="https://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
-IUSE="libressl lz4 sasl smartcard static-libs gstreamer"
-
-# the libspice-server only uses the headers of libcacard
-RDEPEND="
- dev-lang/orc[static-libs(+)?]
- >=dev-libs/glib-2.22:2[static-libs(+)?]
- media-libs/opus[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 )
- sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] )
- gstreamer? (
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- >=app-emulation/spice-protocol-0.12.13
- virtual/pkgconfig
- $(python_gen_any_dep '
- >=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- ')
- smartcard? ( app-emulation/qemu[smartcard] )"
-
-PATCHES=(
- "${FILESDIR}"/${P}-libressl_fix.patch
- "${FILESDIR}"/${P}-openssl1.1_fix.patch
- "${FILESDIR}"/${P}-fix-flexible-array-buffer-overflow.patch
-)
-
-python_check_deps() {
- has_version ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
- has_version "dev-python/six[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && python-any-r1_pkg_setup
-}
-
-src_prepare() {
- default
-
- eautoreconf
-}
-
-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
- addpredict /dev
-
- xdg_environment_reset
-
- local myconf="
- $(use_enable static-libs static)
- $(use_enable lz4)
- $(use_with sasl)
- $(use_enable smartcard)
- --enable-gstreamer=$(usex gstreamer "1.0" "no")
- --disable-celt051
- "
- econf ${myconf}
-}
-
-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
- addpredict /dev
-
- default
-}
-
-src_install() {
- default
- use static-libs || prune_libtool_files
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/spice/spice-0.14.2.ebuild b/app-emulation/spice/spice-0.15.1-r1.ebuild
index 58de3c678521..3a1d525ff2a6 100644
--- a/app-emulation/spice/spice-0.14.2.ebuild
+++ b/app-emulation/spice/spice-0.15.1-r1.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python{3_5,3_6,3_7} )
+EAPI=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,43 +13,41 @@ SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~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}]
dev-python/six[${PYTHON_USEDEP}]
')"
-PATCHES=(
- "${FILESDIR}"/${PN}-0.14.0-openssl1.1_fix.patch
-)
-
python_check_deps() {
- has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
- has_version -b "dev-python/six[${PYTHON_USEDEP}]"
+ python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
+ python_has_version -b "dev-python/six[${PYTHON_USEDEP}]"
}
pkg_setup() {
@@ -69,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 d4bf02488571..22dfed00d335 100644
--- a/app-emulation/spice/spice-9999.ebuild
+++ b/app-emulation/spice/spice-9999.ebuild
@@ -1,98 +1,94 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python{3_5,3_6,3_7} )
+EAPI=8
-inherit autotools eutils git-r3 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="libressl lz4 sasl smartcard static-libs gstreamer"
+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[static-libs(+)?]
- >=dev-libs/glib-2.22:2[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-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}]
- ')"
+ ')
+"
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() {
[[ ${MERGE_TYPE} != binary ]] && python-any-r1_pkg_setup
}
-src_prepare() {
- default
-
- # Delete repo-only Makefile that causes build to fail.
- # https://gitlab.freedesktop.org/spice/spice/issues/35
- rm GNUmakefile || die
-
- eautoreconf
-}
-
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
- addpredict /dev
+ use gstreamer && addpredict /dev
xdg_environment_reset
- local myconf="
- $(use_enable static-libs static)
- $(use_enable lz4)
- $(use_with sasl)
- $(use_enable smartcard)
- --enable-gstreamer=$(usex gstreamer "1.0" "no")
- --disable-celt051
- "
- econf ${myconf}
-}
-
-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
- addpredict /dev
-
- default
+ 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() {
- default
- use static-libs || find "${D}" -name '*.la' -type f -delete || die
+ meson_src_install
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/files/uade-2.13-configure.patch b/app-emulation/uade/files/uade-2.13-configure.patch
new file mode 100644
index 000000000000..305e354766fb
--- /dev/null
+++ b/app-emulation/uade/files/uade-2.13-configure.patch
@@ -0,0 +1,24 @@
+--- uade-2.13/configure 2009-10-29 22:01:12.000000000 +0100
++++ uade-2.13-r1/configure 2020-06-30 20:03:45.237913031 +0200
+@@ -342,8 +342,11 @@
+ if test -z "$prefix"; then
+ prefix="/usr/local"
+ fi
++ if test -z "$libdir" ; then
++ libdir="$prefix/lib"
++ fi
+ uadedatadir="$prefix/share/uade2"
+- uadelibdir="$prefix/lib/uade2"
++ uadelibdir="$libdir/uade2"
+ if test -z "$bindir"; then
+ bindir="$prefix/bin"
+ fi
+@@ -439,7 +442,7 @@
+ fi
+ fi
+
+-pkgconfigdir="$prefix/lib/pkgconfig"
++pkgconfigdir="$libdir/pkgconfig"
+ rm -f uade.pc
+ if test -n "$PKG_CONFIG" ; then
+ installuadepcrule=""
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-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/uade/uade-2.13.ebuild b/app-emulation/uade/uade-2.13.ebuild
deleted file mode 100644
index c11c43b58d14..000000000000
--- a/app-emulation/uade/uade-2.13.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-inherit eutils
-
-DESCRIPTION="Unix Amiga Delitracker Emulator - plays old Amiga tunes through UAE emulation"
-HOMEPAGE="http://zakalwe.fi/uade"
-SRC_URI="http://zakalwe.fi/uade/uade2/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 ppc x86"
-IUSE=""
-
-RDEPEND="media-libs/libao"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-src_configure() {
- ./configure \
- --prefix=/usr \
- --package-prefix="${D}" \
- --with-uade123 \
- --with-text-scope \
- --without-xmms \
- --without-audacious || die
-}
-
-src_install() {
- DOCS="AUTHORS ChangeLog doc/BUGS doc/PLANS" \
- default
- doman doc/uade123.1
-}
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 2f96176657be..45b131565d44 100644
--- a/app-emulation/vagrant/Manifest
+++ b/app-emulation/vagrant/Manifest
@@ -1,4 +1,2 @@
-DIST vagrant-2.1.5.tar.gz 1238788 BLAKE2B 8e3dfeb4d830fde1984c08b16422c99b51ce455fcc63e1fad0eca7860efccbf2e77edc13537bfa495345e585b559fe5462ae872decce036b45c1f54c453983ea SHA512 544216eb25c06a1ebddbadcc9d2d6a6dd9932e33d2554e3d51dba0e24a339b9afe0b85d1322bdb67c5de3d070aa4c854f1ccc931b23ea80f0625eb4d1f120238
-DIST vagrant-2.2.2.tar.gz 1223645 BLAKE2B 595d26a11f27a23a9e66386820dec7c23fbafe079e9e9750e7cbc928cac2e965782abbb062f6b04efd367b56297d040af2b4f4f56d6df06e604f018110e10329 SHA512 70c83fcd896ae3b84fac22c539eb85db9bf08c8f75108d5f2b86841821cf7a885b72565814519b6f2ef3422d84d2f67fc402b983b1a15c1edfd0dc78196cd957
-DIST vagrant-2.2.4.tar.gz 1244111 BLAKE2B ac6b92c1f2b1cc3428b3be8985b07a087f6a075a2b60c93abc74dbff1f5679f648c0bbfc1af772fc10e90899b856a9f318d5d2e4f5a4c9e04452ed95ea356088 SHA512 9d1e9dd42a009d4df159ae3887f43a2664714077a91013a8b63dad72d25d4a236e1dba6daf66443101904f89a5cd37baff65be2714124f7b9f822f26669bcc5a
-DIST vagrant-2.2.5.tar.gz 1272879 BLAKE2B f89aed3e07f12b3390f1db089cc15bc091ee19336174260d39534c32b69a5f4682cc4d84295f81aeec80781e942b66266b37b3032aba562471ecb596d9309e92 SHA512 dc95e566588987b9199e66ee5f548be573bd62e229d2e4de5447f43f25a1a7129377935ec6dc73cc1f53acc29c08b0a4fabebf1a58310f175cc6d37b856c9272
+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-r1.in b/app-emulation/vagrant/files/vagrant-r1.in
deleted file mode 100644
index fd35177c6fe0..000000000000
--- a/app-emulation/vagrant/files/vagrant-r1.in
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env bash
-#
-# This is a wrapper to properly execute Vagrant within the embedded
-# 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
- # not all ruby versions are guaranteed to be installed
- if ! command -v "${r}" >/dev/null 2>&1; then
- continue
- fi
-
- VAGRANT_DIR="$( "${r}" -e 'print Gem::default_path[-1] + "/gems/vagrant-@VAGRANT_VERSION@"' )"
-
- # Export the VAGRANT_EXECUTABLE so that pre-rubygems can optimize a bit
- export VAGRANT_EXECUTABLE="${VAGRANT_DIR}/bin/vagrant"
-
- if [ -f ${VAGRANT_EXECUTABLE} ] ;then
- ruby="${r}"
- break
- fi
-done
-
-if [ -z ${ruby} ]; then
- echo "Error: failed to find any usable ruby"
- exit 1
-fi
-
-# Export GEM_HOME based on VAGRANT_HOME
-#
-# This needs to be set because Bundler includes gem paths
-# from RubyGems' Gem.paths.
-if [ -z ${VAGRANT_HOME} ]; then
- VAGRANT_HOME="~/.vagrant.d"
-fi
-export GEM_HOME="${VAGRANT_HOME}/gems"
-
-# SSL certs
-export SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
-
-# Export an environmental variable to say we're in a Vagrant
-# installer created environment.
-export VAGRANT_INSTALLER_ENV=1
-
-# This is currently used only in Vagrant::Plugin::Manager.system_plugins_file
-# to locate plugins configuration file.
-export VAGRANT_INSTALLER_EMBEDDED_DIR="/var/lib/vagrant"
-export VAGRANT_INSTALLER_VERSION=2
-
-# Export the OS as an environmental variable that Vagrant can access
-# so that it can behave better.
-export VAGRANT_DETECTED_OS="$(uname -s 2>/dev/null)"
-
-# Allow to install plugins even with deps in different slots (Bug #628648)
-export VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT=1
-
-# Make it work with rvm (Bugs #474476 #628648)
-unset GEM_HOME GEM_PATH
-
-# Call the actual Vagrant bin with our arguments
-exec "${ruby}" "${VAGRANT_EXECUTABLE}" "$@"
diff --git a/app-emulation/vagrant/files/vagrant.in b/app-emulation/vagrant/files/vagrant.in
index 86fa86fe5910..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 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 b63908369576..1ca87553dc86 100644
--- a/app-emulation/vagrant/metadata.xml
+++ b/app-emulation/vagrant/metadata.xml
@@ -1,15 +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>gyakovlev@gentoo.org</email>
- <name>Georgy Yakovlev</name>
+ <email>guillaumeseren@gmail.com</email>
+ <name>Guillaume Seren</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
- <use>
- <flag name="virtualbox">
- Use VirtualBox provider.
- </flag>
- </use>
<upstream>
<remote-id type="github">hashicorp/vagrant</remote-id>
</upstream>
diff --git a/app-emulation/vagrant/vagrant-2.1.5.ebuild b/app-emulation/vagrant/vagrant-2.1.5.ebuild
deleted file mode 100644
index 509b0117225e..000000000000
--- a/app-emulation/vagrant/vagrant-2.1.5.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-USE_RUBY="ruby24 ruby25"
-
-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/childprocess-0.6.0
- >=dev-ruby/erubis-2.7.0
- <dev-ruby/i18n-0.8.0:*
- >=dev-ruby/listen-3.1.5
- >=dev-ruby/hashicorp-checkpoint-0.1.5
- >=dev-ruby/log4r-1.1.9 <dev-ruby/log4r-1.1.11
- >=dev-ruby/net-ssh-5.0.0:*
- >=dev-ruby/net-sftp-2.1
- >=dev-ruby/net-scp-1.2.0
- dev-ruby/rest-client:2
- <dev-ruby/mime-types-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.0.0
-"
-
-all_ruby_prepare() {
- # remove bundler support
- sed -i '/[Bb]undler/d' Rakefile || die
- rm Gemfile || die
-
- # loosen dependencies
- sed -e '/hashicorp-checkpoint\|listen\|net-ssh\|net-scp\|rake\|childprocess/s/~>/>=/' \
- -e '/ruby_dep/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
-
- sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die
-}
-
-all_ruby_install() {
- newbashcomp contrib/bash/completion.sh ${PN}
- all_fakegem_install
-
- # 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
-}
diff --git a/app-emulation/vagrant/vagrant-2.2.2-r2.ebuild b/app-emulation/vagrant/vagrant-2.2.2-r2.ebuild
deleted file mode 100644
index 92052b883076..000000000000
--- a/app-emulation/vagrant/vagrant-2.2.2-r2.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-USE_RUBY="ruby24 ruby25"
-
-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.0.0:*
- >=dev-ruby/net-sftp-2.1
- >=dev-ruby/net-scp-1.2.0
- dev-ruby/rest-client:2
- >=dev-ruby/rubyzip-1.2.2
- >=dev-ruby/vagrant_cloud-2.0.0
-"
-
-# 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/~>/>=/' \
- -e '/ruby_dep/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
-
- 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.4.ebuild b/app-emulation/vagrant/vagrant-2.2.4.ebuild
deleted file mode 100644
index 150022d0426d..000000000000
--- a/app-emulation/vagrant/vagrant-2.2.4.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2019 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.2.2
- >=dev-ruby/vagrant_cloud-2.0.2
-"
-
-# 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/~>/>=/' \
- -e '/ruby_dep/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
-
- sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}-r1.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.5.ebuild b/app-emulation/vagrant/vagrant-2.2.5.ebuild
deleted file mode 100644
index 150022d0426d..000000000000
--- a/app-emulation/vagrant/vagrant-2.2.5.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2019 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.2.2
- >=dev-ruby/vagrant_cloud-2.0.2
-"
-
-# 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/~>/>=/' \
- -e '/ruby_dep/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
-
- sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}-r1.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/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch
new file mode 100644
index 000000000000..32ae298d4049
--- /dev/null
+++ b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch
@@ -0,0 +1,23 @@
+https://github.com/gnif/vendor-reset/commit/084881c6e9e11bdadaf05798e669568848e698a3.patch
+From: =?UTF-8?q?Marcus=20K=C3=B6hler?= <khler.marcus@gmail.com>
+Date: Mon, 25 Dec 2023 21:43:41 +0100
+Subject: [PATCH] Allow correct compilation with Clang/LLVM
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Marcus Köhler <khler.marcus@gmail.com>
+--- a/src/hook.c
++++ b/src/hook.c
+@@ -30,7 +30,11 @@ static bool hook_installed = false;
+ static int (*orig_pci_dev_specific_reset)(struct pci_dev *dev, int probe);
+
+ /* TCO breaks the hook, we must disable it for this function */
++#if defined(__GNUC__) && !defined(__llvm__)
+ __attribute__((optimize("-fno-optimize-sibling-calls")))
++#elif defined(__clang__)
++__attribute__((disable_tail_calls))
++#endif
+ static int hooked_pci_dev_specific_reset(struct pci_dev *dev, int probe)
+ {
+ int ret;
diff --git a/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch
new file mode 100644
index 000000000000..d99212c9ee27
--- /dev/null
+++ b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch
@@ -0,0 +1,35 @@
+https://github.com/gnif/vendor-reset/commit/f72619e468846e0bab4426f5e71b069f88c33a11.patch
+From: Sakari <20642596+sakarie9@users.noreply.github.com>
+Date: Thu, 14 Mar 2024 10:59:15 +0800
+Subject: [PATCH] Fix build on kernel 6.8+
+
+--- a/src/amd/amdgpu/atom.c
++++ b/src/amd/amdgpu/atom.c
+@@ -28,6 +28,7 @@
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/delay.h>
++#include <linux/version.h>
+ #include <asm/unaligned.h>
+
+ //#include <drm/drm_util.h>
+@@ -39,6 +40,10 @@
+ #include "atom-names.h"
+ #include "atom-bits.h"
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
++#define strscpy strlcpy
++#endif
++
+ #define ATOM_COND_ABOVE 0
+ #define ATOM_COND_ABOVEOREQUAL 1
+ #define ATOM_COND_ALWAYS 2
+@@ -1424,7 +1429,7 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
+ if (*str != '\0')
+ {
+ pr_info("ATOM BIOS: %s\n", str);
+- strlcpy(ctx->vbios_version, str, sizeof(ctx->vbios_version));
++ strscpy(ctx->vbios_version, str, sizeof(ctx->vbios_version));
+ }
+
+ return ctx;
diff --git a/app-emulation/vendor-reset/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-r2.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r2.ebuild
new file mode 100644
index 000000000000..f34969845915
--- /dev/null
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-mod-r1
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ KEYWORDS="~amd64"
+ EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248"
+ SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="Linux kernel vendor specific hardware reset module"
+HOMEPAGE="https://github.com/gnif/vendor-reset"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.1.1-allow-correct-compilation-with-clang.patch"
+ "${FILESDIR}/${PN}-0.1.1-fix-build-on-kernel-6.8.patch"
+)
+
+src_compile() {
+ local modlist=( vendor-reset )
+ local modargs=( KDIR="${KV_OUT_DIR}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modules-load.d/
+ newins "${FILESDIR}"/modload.conf vendor-reset.conf
+}
diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.1_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 cf78f5afb3d3..7c0058509c3a 100644
--- a/app-emulation/vice/Manifest
+++ b/app-emulation/vice/Manifest
@@ -1 +1 @@
-DIST vice-3.1.tar.gz 30714226 BLAKE2B 75c2cce5294dad5b954cd23b623b6b4610c8142a09aef05dbefed6b3e6b268077d375e644dde6a057682d41ab9cf15e93a9f4a9359bfa0d1567d6d1862053a0e SHA512 bc02a3597a17dadb37c487e6942192c0e9dc1a7d4e440fbf0dc8a165dbb2dee60ddf157697a020d2780ddef56a0a67802768d5c6d117b9cf5cdc124de45bc579
+DIST vice-3.8.tar.gz 13564021 BLAKE2B 709fd6eda874de542e5770a328b0c0308d04f755e3bf1fceba5147156eb894a95ce6f14e9f8848ca6992d4f958082f83a198d2176c1fe54e87027c7dfac8849c SHA512 fe644667736c32386b62af53314a95bf510c75d476eaab14b4c37693f2f57d6815126ab3db2f0cb11300c1a4a07c29b3f25210800ce97a673a0460ab59d0ebba
diff --git a/app-emulation/vice/files/vice-2.4.27-autotools.patch b/app-emulation/vice/files/vice-2.4.27-autotools.patch
deleted file mode 100644
index 7bebd2800ef6..000000000000
--- a/app-emulation/vice/files/vice-2.4.27-autotools.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- vice-2.4.7.orig/configure.ac
-+++ vice-2.4.7/configure.ac
-@@ -124,7 +118,7 @@
- AC_SUBST(VICE_VERSION)
-
- AM_INIT_AUTOMAKE(vice, $VICE_VERSION)
--AM_CONFIG_HEADER(src/config.h)
-+AC_CONFIG_HEADERS(src/config.h)
-
- if test x"$VICE_VERSION_BUILD" = "x" -o x"$VICE_VERSION_BUILD" = "x0" ; then
- VERSION_RC=$VICE_VERSION_MAJOR","$VICE_VERSION_MINOR",0,0"
diff --git a/app-emulation/vice/files/vice-3.1-ffmpeg4.patch b/app-emulation/vice/files/vice-3.1-ffmpeg4.patch
deleted file mode 100644
index d232ee22337e..000000000000
--- a/app-emulation/vice/files/vice-3.1-ffmpeg4.patch
+++ /dev/null
@@ -1,74 +0,0 @@
---- a/src/gfxoutputdrv/ffmpegdrv.c
-+++ b/src/gfxoutputdrv/ffmpegdrv.c
-@@ -46,6 +46,13 @@
- #include "util.h"
- #include "soundmovie.h"
-
-+/** \brief Helper macro to determine ffmpeg version
-+ */
-+#if (LIBAVCODEC_VERSION_MAJOR >= 58) && (LIBAVCODEC_VERSION_MINOR >= 18)
-+# define HAVE_FFMPEG4
-+#endif
-+
-+
- static gfxoutputdrv_codec_t avi_audio_codeclist[] = {
- { AV_CODEC_ID_MP2, "MP2" },
- { AV_CODEC_ID_MP3, "MP3" },
-@@ -354,7 +361,11 @@
- }
-
- audio_is_open = 1;
-+#ifdef HAVE_FFMPEG4
-+ if (c->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE) {
-+#else
- if (c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE) {
-+#endif
- audio_inbuf_samples = 10000;
- } else {
- audio_inbuf_samples = c->frame_size;
-@@ -447,8 +458,13 @@
- audio_st.samples_count = 0;
-
- /* Some formats want stream headers to be separate. */
-- if (ffmpegdrv_oc->oformat->flags & AVFMT_GLOBALHEADER)
-+ if (ffmpegdrv_oc->oformat->flags & AVFMT_GLOBALHEADER) {
-+#ifdef HAVE_FFMPEG4
-+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-+#else
- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+#endif
-+ }
-
- /* create resampler context */
- #ifndef HAVE_FFMPEG_AVRESAMPLE
-@@ -781,7 +797,11 @@
-
- /* Some formats want stream headers to be separate. */
- if (ffmpegdrv_oc->oformat->flags & AVFMT_GLOBALHEADER) {
-+#ifdef HAVE_FFMPEG4
-+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-+#else
- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+#endif
- }
-
- if (audio_init_done) {
-@@ -961,6 +981,7 @@
-
- video_st.frame->pts = video_st.next_pts++;
-
-+#ifdef AVFMT_RAWPICTURE
- if (ffmpegdrv_oc->oformat->flags & AVFMT_RAWPICTURE) {
- AVPacket pkt;
- VICE_P_AV_INIT_PACKET(&pkt);
-@@ -971,7 +992,9 @@
- pkt.pts = pkt.dts = video_st.frame->pts;
-
- ret = VICE_P_AV_INTERLEAVED_WRITE_FRAME(ffmpegdrv_oc, &pkt);
-- } else {
-+ } else
-+#endif
-+ {
- AVPacket pkt = { 0 };
- int got_packet;
-
diff --git a/app-emulation/vice/metadata.xml b/app-emulation/vice/metadata.xml
index ff9234728a4e..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>
@@ -7,9 +7,10 @@
</maintainer>
<use>
<flag name="ethernet">Enable ethernet emulation</flag>
- <flag name="fullscreen">Enable the ability to run fullscreen</flag>
- <flag name="sdlsound">Use <pkg>media-libs/libsdl</pkg> for sound support</flag>
- <flag name="vte">Enable support for <pkg>x11-libs/vte</pkg> in the GTK+ interface</flag>
+ <flag name="headless">Include the headless variant of the emulator</flag>
+ <flag name="mpg123">Enable mp3@64 cartridge support</flag>
+ <flag name="parport">Enable parallel port SID support</flag>
+ <flag name="pci">Enable PCI device discovery using <pkg>sys-apps/pciutils</pkg></flag>
</use>
<upstream>
<remote-id type="sourceforge">vice-emu</remote-id>
diff --git a/app-emulation/vice/vice-3.1.ebuild b/app-emulation/vice/vice-3.1.ebuild
deleted file mode 100644
index 083344470e3c..000000000000
--- a/app-emulation/vice/vice-3.1.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools flag-o-matic toolchain-funcs
-
-DESCRIPTION="Versatile Commodore 8-bit Emulator"
-HOMEPAGE="http://vice-emu.sourceforge.net/"
-SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="alsa ethernet ffmpeg fullscreen +gtk ipv6 lame libav nls oss png pulseaudio sdl +sdlsound threads vte Xaw3d zlib"
-
-# upstream says gtk3 and sdl2 shouldn't be exposed yet.
-#REQUIRED_USE="?? ( gtk2 gtk3 sdl )"
-REQUIRED_USE="?? ( gtk sdl )"
-
-# gtk3? (
-# x11-libs/cairo
-# x11-libs/gtk+:3
-# x11-libs/pango
-# vte? ( x11-libs/vte:2.90 )
-# )
-RDEPEND="
- media-libs/giflib
- virtual/jpeg:0
- virtual/opengl
- alsa? ( media-libs/alsa-lib )
- ethernet? (
- >=net-libs/libpcap-0.9.8
- >=net-libs/libnet-1.1.2.1:1.1
- )
- ffmpeg? (
- libav? ( media-video/libav:= )
- !libav? ( media-video/ffmpeg:= )
- )
- gtk? (
- x11-libs/cairo
- x11-libs/gtk+:2
- x11-libs/gtkglext
- x11-libs/pango
- vte? ( x11-libs/vte:0 )
- )
- lame? ( media-sound/lame )
- nls? ( virtual/libintl )
- png? ( media-libs/libpng:0= )
- pulseaudio? ( media-sound/pulseaudio )
- sdl? ( media-libs/libsdl[joystick,video] )
- !sdl? (
- sys-libs/readline:0=
- x11-libs/libX11
- x11-libs/libXext
- fullscreen? (
- x11-libs/libXrandr
- x11-libs/libXxf86vm
- )
- !gtk? (
- x11-libs/libXmu
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libXv
- Xaw3d? ( x11-libs/libXaw3d )
- !Xaw3d? ( x11-libs/libXaw )
- )
- )
- sdlsound? ( media-libs/libsdl[sound] )
- zlib? ( sys-libs/zlib )
-"
-DEPEND="${RDEPEND}
- media-libs/fontconfig
- x11-apps/bdftopcf
- >=x11-apps/mkfontscale-1.2.0
- x11-base/xorg-proto
- virtual/pkgconfig
- nls? ( sys-devel/gettext )
- !gtk? ( !sdl? (
- x11-libs/libICE
- x11-libs/libSM
- ) )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.27-autotools.patch
- "${FILESDIR}"/${P}-ffmpeg4.patch
-)
-
-src_prepare() {
- default
- sed -i \
- -e 's/building//' \
- doc/Makefile.am || die
- sed -i \
- -e "/^docdir =/s:=.*:=/usr/share/doc/${PF}:" \
- doc/Makefile.am \
- doc/readmes/Makefile.am || die
- sed -i \
- -e "/^docdir =/s:=.*:=/usr/share/doc/${PF}/html:" \
- doc/html/Makefile.am || die
- sed -i \
- -e "s:/usr/local/lib/VICE:/usr/$(get_libdir)/${PN}:" \
- man/vice.1 \
- $(grep -rl --exclude="*texi" /usr/local/lib doc) || die
- sed -i \
- -e "/VICEDIR=/s:=.*:=\"/usr/$(get_libdir)/${PN}\";:" \
- configure.ac || die
- sed -i \
- -e "s:\(#define LIBDIR \).*:\1\"/usr/$(get_libdir)/${PN}\":" \
- -e "s:\(#define DOCDIR \).*:\1\"/usr/share/doc/${PF}\":" \
- src/arch/unix/archdep.h \
- src/arch/sdl/archdep_unix.h || die
- rm -rf src/lib/{libffmpeg,liblame} || die
- sed -i \
- -e '/SUBDIRS/s/libffmpeg//;' \
- -e '/SUBDIRS/s/liblame//;' \
- src/lib/Makefile.am || die
- AT_NO_RECURSIVE=1 eautoreconf
-}
-
-src_configure() {
- local gui_arg=() snd_arg=()
-
- snd_arg+=( $(use_with alsa) )
- snd_arg+=( $(use_with oss) )
- snd_arg+=( $(use_with pulseaudio pulse) )
- snd_arg+=( $(use_with sdlsound) )
-
- gui_arg+=( $(use_enable sdl sdlui) )
- # The gtk UI code has raw calls to XOpenDisplay and
- # is missing -lX11 if vte doesn't pull it in.
- #if use gtk2 || use gtk3 ; then
- if use gtk ; then
- use vte || append-libs -lX11
- fi
- gui_arg+=( $(use_enable gtk gnomeui) )
- #gui_arg+=" $(use_enable gtk3 gnomeui3)"
- gui_arg+=( $(use_enable Xaw3d xaw3d) )
-
- # --with-readline is forced to avoid using the embedded copy
- # don't try to actually run fc-cache (bug #280976)
- FCCACHE=/bin/true \
- PKG_CONFIG=$(tc-getPKG_CONFIG) \
- econf \
- --enable-parsid \
- --with-resid \
- --with-readline \
- --without-arts \
- --without-midas \
- $(use_enable ethernet) \
- $(use_enable ffmpeg) \
- $(use_enable ffmpeg external-ffmpeg) \
- $(use_enable fullscreen) \
- $(use_enable ipv6) \
- $(use_enable lame) \
- $(use_enable nls) \
- $(use_enable vte) \
- $(use_with png) \
- $(use_with threads uithreads) \
- $(use_with zlib) \
- "${gui_arg[@]}" \
- "${snd_arg[@]}" \
- --disable-option-checking
- # --disable-option-checking has to be last
-}
-
-src_install() {
- default
- dodoc FEEDBACK
-}
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..69fdc3b146dc
--- /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="https://downloads.sourceforge.net/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 da619f601671..bead1d85a9f0 100644
--- a/app-emulation/virt-manager/Manifest
+++ b/app-emulation/virt-manager/Manifest
@@ -1,3 +1 @@
-DIST virt-manager-2.0.0.tar.gz 2629465 BLAKE2B 8795985afb8805fdb4f1ee94c7344361a7d09d3e62e361f3126859c4d1b1077286b720de7629fd876e5bff10500cc6cea6f1d4afbba5c2c83fd61b137c40a3a7 SHA512 5d0eb65dceb5c913973edaa52414b1665d1ed9cd3f226e28a592decddec2acd8fdb589f60736edf9b7d95830893812f9aecca2cbdd715033ca7ea53a95472876
-DIST virt-manager-2.2.0.tar.gz 2628726 BLAKE2B d2f6bc7a7bcf8b220109702b7cd65dd9484c197252cf96e4748c27921a45749c476ed9d03eadac6ef3053df01ceb267c4756b0c602fad431ad9de0035d4ed5d5 SHA512 09975f7628ee302687eb6572b5f35797b4710aaae60c17542ee9edd72c65e80e93d7bbc7a2050667a9280effdbab28272886ae155b3ba73c104153ae3c048d99
-DIST virt-manager-2.2.1.tar.gz 2623754 BLAKE2B c81e730f2d685152bd0ef0a0327a74a70c50bff91e80ed0e3de92d0b848183c4bc092be333f2f0785c6a0b39f0b6d6abbd1f38c902f52ba4af7c56d64ee9b026 SHA512 aa97af52b3552c087beab8701762c21e8e6d818c9787d5376ed4e1ae40a34d5e8870c4c00fda9cb17a2340d1dff5b17e853182df720cdd9ea4c91cf01502a33a
+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.0.0.ebuild b/app-emulation/virt-manager/virt-manager-2.0.0.ebuild
deleted file mode 100644
index 78b8321a2e2c..000000000000
--- a/app-emulation/virt-manager/virt-manager-2.0.0.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-DISTUTILS_SINGLE_IMPL=1
-
-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 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 x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="gnome-keyring gtk policykit sasl"
-
-RDEPEND="!app-emulation/virtinst
- ${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[introspection]
- dev-libs/libxml2[python,${PYTHON_USEDEP}]
- dev-python/argcomplete[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/libvirt-python[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
- gnome-base/dconf
- >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
- net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
- x11-libs/gtk+:3[introspection]
- x11-libs/vte:2.91[introspection]
- gnome-keyring? ( gnome-base/libgnome-keyring )
- policykit? ( sys-auth/polkit[introspection] )
- )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/intltool
-"
-
-DOCS=( README.md NEWS.md )
-
-src_prepare() {
- distutils-r1_src_prepare
-}
-
-distutils-r1_python_compile() {
- local defgraphics=
-
- esetup.py configure \
- --default-graphics=spice
-}
-
-src_install() {
- local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas )
-
- distutils-r1_src_install
-}
-
-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-2.2.0.ebuild b/app-emulation/virt-manager/virt-manager-2.2.0.ebuild
deleted file mode 100644
index b1e68c1f3d86..000000000000
--- a/app-emulation/virt-manager/virt-manager-2.2.0.ebuild
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-DISTUTILS_SINGLE_IMPL=1
-
-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=""
- 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 ~x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="gnome-keyring gtk policykit sasl"
-
-RDEPEND="!app-emulation/virtinst
- ${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[introspection]
- dev-libs/libxml2[python,${PYTHON_USEDEP}]
- dev-python/argcomplete[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/libvirt-python[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
- gnome-base/dconf
- >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
- net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
- x11-libs/gtk+:3[introspection]
- x11-libs/gtksourceview:4[introspection]
- x11-libs/vte:2.91[introspection]
- gnome-keyring? ( gnome-base/libgnome-keyring )
- policykit? ( sys-auth/polkit[introspection] )
- )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/intltool
-"
-
-DOCS=( README.md NEWS.md )
-
-src_prepare() {
- distutils-r1_src_prepare
-}
-
-distutils-r1_python_compile() {
- local defgraphics=
-
- esetup.py configure \
- --default-graphics=spice
-}
-
-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-2.2.1.ebuild b/app-emulation/virt-manager/virt-manager-2.2.1.ebuild
deleted file mode 100644
index 00b4e68d53e3..000000000000
--- a/app-emulation/virt-manager/virt-manager-2.2.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=6
-
-PYTHON_COMPAT=( python3_{5,6,7} )
-DISTUTILS_SINGLE_IMPL=1
-
-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 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 x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="gnome-keyring gtk policykit sasl"
-
-RDEPEND="!app-emulation/virtinst
- ${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[introspection]
- dev-libs/libxml2[python,${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/libvirt-python[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
- gnome-base/dconf
- >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
- net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
- x11-libs/gtk+:3[introspection]
- x11-libs/gtksourceview:4[introspection]
- x11-libs/vte:2.91[introspection]
- gnome-keyring? ( gnome-base/libgnome-keyring )
- policykit? ( sys-auth/polkit[introspection] )
- )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/intltool
-"
-
-DOCS=( README.md NEWS.md )
-
-src_prepare() {
- distutils-r1_src_prepare
-}
-
-distutils-r1_python_compile() {
- local defgraphics=
-
- esetup.py configure \
- --default-graphics=spice
-}
-
-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..42dbcb32b7f7
--- /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_{10..12} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_SETUPTOOLS=no
+inherit gnome2 distutils-r1 optfeature
+
+DESCRIPTION="A graphical tool for administering virtual machines"
+HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
+
+if [[ ${PV} == *9999* ]]; then
+ 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 b1e68c1f3d86..377897328f08 100644
--- a/app-emulation/virt-manager/virt-manager-9999.ebuild
+++ b/app-emulation/virt-manager/virt-manager-9999.ebuild
@@ -1,96 +1,105 @@
-# 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
-PYTHON_COMPAT=( python3_{5,6,7} )
+PYTHON_COMPAT=( python3_{10..12} )
DISTUTILS_SINGLE_IMPL=1
-
-inherit gnome2 distutils-r1
+DISTUTILS_USE_SETUPTOOLS=no
+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 ~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="gnome-keyring 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]
- dev-libs/libxml2[python,${PYTHON_USEDEP}]
- dev-python/argcomplete[${PYTHON_USEDEP}]
- dev-python/ipaddr[${PYTHON_USEDEP}]
- dev-python/libvirt-python[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
>=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
+ $(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?]
- 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]
- gnome-keyring? ( gnome-base/libgnome-keyring )
policykit? ( sys-auth/polkit[introspection] )
)
"
-DEPEND="${RDEPEND}
- dev-lang/perl
- 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-r1_python_compile() {
- local defgraphics=
+distutils_enable_tests pytest
- esetup.py configure \
- --default-graphics=spice
+python_configure() {
+ esetup.py configure --default-graphics=spice
}
-src_install() {
- local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas )
- distutils-r1_src_install
+python_test() {
+ export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0
- python_fix_shebang "${ED}"/usr/share/virt-manager
+ epytest
+}
+
+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 6b737cd630da..4bf036f22561 100644
--- a/app-emulation/virt-viewer/Manifest
+++ b/app-emulation/virt-viewer/Manifest
@@ -1,2 +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-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 9e3cc152d67e..000000000000
--- a/app-emulation/virt-viewer/virt-viewer-8.0.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 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 95d2fab1af84..266b97d053ce 100644
--- a/app-emulation/virt-what/Manifest
+++ b/app-emulation/virt-what/Manifest
@@ -1,2 +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.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 be34d3dcfa08..d25679ed78c7 100644
--- a/app-emulation/virt-what/metadata.xml
+++ b/app-emulation/virt-what/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="person">
- <email>eva@gentoo.org</email>
- <name>Gilles Dartiguelongue</name>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
</maintainer>
<use>
<flag name="dmi">Use <pkg>sys-apps/dmidecode</pkg> to read firmware data</flag>
diff --git a/app-emulation/virt-what/virt-what-1.18.ebuild b/app-emulation/virt-what/virt-what-1.21.ebuild
index 59adce2a2542..7b5da45a3537 100644
--- a/app-emulation/virt-what/virt-what-1.18.ebuild
+++ b/app-emulation/virt-what/virt-what-1.21.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
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/virt-what/virt-what-1.19.ebuild b/app-emulation/virt-what/virt-what-1.25.ebuild
index bbc7f8023ffc..a6226954adcb 100644
--- a/app-emulation/virt-what/virt-what-1.19.ebuild
+++ b/app-emulation/virt-what/virt-what-1.25.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2018 Gentoo Authors
+# 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 90e8eb2288f3..51d9ac1c93a3 100644
--- a/app-emulation/virtio-win/Manifest
+++ b/app-emulation/virtio-win/Manifest
@@ -1 +1,3 @@
-DIST virtio-win-0.1.160.iso 322842624 BLAKE2B baa1475055c2df609931e48cc4a18a2e24fcbf07ec9df80a94b1bdb77ca76c1278c5269a95422ea5c2363df424a30b8395b539689982d609096823ebc880afaf SHA512 71c9de9086fa5b5d764d210b5f7d0238c8b294aaf17704eabe16fe65c5649944126924870f0e2eb05d030c2f521770cb5760f4016d29319f5f1bd5deb7955e50
+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 4ded5b79f93d..bc997df6766f 100644
--- a/app-emulation/virtio-win/metadata.xml
+++ b/app-emulation/virtio-win/metadata.xml
@@ -1,8 +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-needed -->
- <upstream>
- <remote-id type="github">crobinso/virtio-win-pkg-scripts</remote-id>
- </upstream>
+ <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.160.ebuild b/app-emulation/virtio-win/virtio-win-0.1.160.ebuild
deleted file mode 100644
index d241154f4ed5..000000000000
--- a/app-emulation/virtio-win/virtio-win-0.1.160.ebuild
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
-HOMEPAGE="https://fedoraproject.org/wiki/Windows_Virtio_Drivers"
-SRC_URI="https://fedorapeople.org/groups/virt/${PN}/direct-downloads/archive-virtio/${PN}-${PV}-1/${PN}-${PV}.iso"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64"
-S=${WORKDIR}
-
-src_install() {
- insinto /usr/share/drivers/windows
- doins "${DISTDIR}/${PN}-${PV}.iso"
-}
diff --git a/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
new file mode 100644
index 000000000000..1bb20ab6f1e2
--- /dev/null
+++ b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1
+
+MY_PV=$(ver_cut 1-3)
+MY_DW=$(ver_rs 3 -)
+
+DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
+HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
+SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
+
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
+SLOT="0"
+KEYWORDS="amd64"
+S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
+
+src_install() {
+ insinto "${INSTALL_PATH}"
+ doins "${DISTDIR}/${PN}-${MY_PV}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
new file mode 100644
index 000000000000..057b187a0c4b
--- /dev/null
+++ b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1
+
+MY_PV=$(ver_cut 1-3)
+MY_DW=$(ver_rs 3 -)
+
+DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
+HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
+SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
+
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
+SLOT="0"
+KEYWORDS="~amd64"
+S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
+
+src_install() {
+ insinto "${INSTALL_PATH}"
+ doins "${DISTDIR}/${PN}-${MY_PV}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
new file mode 100644
index 000000000000..bc890c11f60a
--- /dev/null
+++ b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1
+
+MY_PV=$(ver_cut 1-3)
+MY_DW=$(ver_rs 3 -)
+
+DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
+HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
+SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
+
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
+SLOT="0"
+KEYWORDS="~amd64"
+S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
+
+src_install() {
+ insinto "${INSTALL_PATH}"
+ doins "${DISTDIR}/${PN}-${MY_PV}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/virtiofsd/Manifest b/app-emulation/virtiofsd/Manifest
new file mode 100644
index 000000000000..7fc7bbeb47fc
--- /dev/null
+++ b/app-emulation/virtiofsd/Manifest
@@ -0,0 +1,87 @@
+DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
+DIST anstream-0.3.2.crate 19504 BLAKE2B 617b846c244ea4ccd6c7835a382afe85e14c245ea56b678f57ee12e9c7bcc1c0c3db9620eb4d16bf35e17eca38968bf04420b758f482ac5594670e6292c1fbb9 SHA512 b896e5208a2ee6a3c98bf3bb9ac1c52792de114dfa5709dadcac6183ea19ea63230dffd3217e571354a71d69b8eafbb0189e05f8f77f50922020de54e3aeecc8
+DIST anstyle-1.0.1.crate 13977 BLAKE2B 35be03a7de78737592528967e8ad4851436a74c7863cae9cf5cf7366d3cce9bbbd255b1a89401051f82fe8569a0ff029dcfe427c14a2e0677890453c6119d241 SHA512 2bf9b83ad9772c6a3ef28239cbb98bd667dc631fd1ef76ec5029825c128f6cb22756bb1548dd991e482f86eb9fd94fae5c648f91de2c0d71754b6dca4ec2362c
+DIST anstyle-parse-0.2.1.crate 24802 BLAKE2B 6304a56c6a9fbaf1bb4d1d177b2315684345dc9d71c35836f9544145364f8d6eb56e25c03076690c594ab7db5914501acb569f6c136952e59c93179ced527fb2 SHA512 5c8fc7d88ffc3a6e78340ffe0f3c2d72e865512030ade4509de9c673eba955c536bb1873dac11f6ba11cc8367fb30c67451ed65d19f81507c9e917c702bfd176
+DIST anstyle-query-1.0.0.crate 8620 BLAKE2B 2d296b5066fd6284a2410923215571e6df650c5ef892d6de7a7088a0996ca30608797feabc84f3c325ff4d07001dac80ac5067d2a9c9d15d9ba59a276b399f53 SHA512 2781be5c82293b7ae338ec5046fbeb130de9eb2dbf2e4dfaa73ca5233032e1e52c133e141b02f33d4bc36d996a0a3f680ac82d42d614a5305005f60547133c7a
+DIST anstyle-wincon-1.0.1.crate 11718 BLAKE2B 2500845a23edfb47ecd156424a89789c713a7c367c3fef98d26e4e7b2acb3c6433d39a1c2a59813a98266b0993d4b750e9b6b68b7ced7ec5a04a8b13bad174e7 SHA512 00c380fc0198c49776c40aeef419be2fd2d6809bd2e5d86457f1658c6f4b2e83ebe8feee95855c3bbedd4200a917f582bd41b0ee0cf5d7d1d5017228885a58e6
+DIST arc-swap-1.5.0.crate 65351 BLAKE2B c6b278134f6e29551302e27131639f3bc5bfb05042701cf6c12aab1697f211be0942c44919d374e196ef03605fb137334b42decb9623a137b6ead346586c2105 SHA512 b668a75b2ac77a9d2df3f29b70c8c22e5a961cd2478cd76b6d313e0e1ff809508887451b895f057d160860daa4b02cb74616ab8daa34d163ef3f42a009842031
+DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
+DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.4.1.crate 37043 BLAKE2B f61c45b142265e9c2944c7054e01704de47510735e9ee5351cd02b98676cc4eb42d68b1fc4849ad5f54654617a74f20cb533b4207c2fe76516b724ba9318b414 SHA512 d3fd7abc95acc1cb5bf16d6acc12dbb8eadd250f069268df13c2e8dc3d5f5c15a929cd17ca931c77393b64dce0516ef8674c469789ed32d78e315b5faada062b
+DIST capng-0.2.2.crate 24372 BLAKE2B 85cf114065f0f103a9e1583b11316c5a95d5fa9f5d70448d6749b500e956e4e0c6fb4f5e548a7490d191ecae878624cf4ea1e5026a6a0796c8269e68de70af0e SHA512 132c446c36eea932a39190b284d0f2f29b50334dc8c12043e43a1eca90366a56b2034c649740ac20ded4c4e91147226237cbbcee18750dfc281154644d6fa0db
+DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST clap-4.3.11.crate 54864 BLAKE2B c1b0567950d6df6c6f40d0f0c2fcb4c485a65a3d5abe49ca04ba8c3ff24ffa52eb08a7d17395c20fc0ff09fee06852ff854369dbe033bc049d322b0a61b13142 SHA512 d00a142055671b4986f95e394f01d05cc41e9bb2fed23b2b1f6cc3366fc24204d877bc5220572f2a7a9424136b24d2596cd7ec7d1604c13b1384c0f0d9d1012a
+DIST clap_builder-4.3.11.crate 160795 BLAKE2B ec650dd28d65412f594ad7cb578afb36412840bd7e04734f8c4bd8a40b453cd2c926ad7164dbdd0e33d357a8c3830560ad03d6f8e105463b7ba592ab68ba897c SHA512 9b0dfe5bfa838d6f5fd9388f574a6a880d724dd49eb987955609bc1e754fdade6db9fd9fc6672d42458d9e621e638aa7702205d894d2318a12711791168bb741
+DIST clap_derive-4.3.2.crate 29053 BLAKE2B 9e578a78e92fcb90689c1327a41f446fac64506ac77c4721f5a87094b18beb540704846485585525695de333c301bd6f6da2805bad4d00888664da01e5a1a8c8 SHA512 2d7214eb91517067d6701443440f514648ae1345a326e6d00c1fec9d387e7781d5ce429d340277eb85fd436fec69154ba51d6a10a0e117276656f0187ddc19fe
+DIST clap_lex-0.5.0.crate 11792 BLAKE2B 0409c9d957ea6a566eb8b50f4212702df038d04c4c38f7440d91cb4c58ec887940f0cf500c4c3949c2191399aac3f5cb1ce44868eac587cde90211d3e467b9a2 SHA512 0149ed7c2438a19b4857f895767550d783711078f07bfa9ac8ca531e06f51c7388110f4d558e30bf503536367cc370cb581e8deb6fe51f9b5460a334963daacd
+DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049
+DIST errno-0.3.1.crate 10348 BLAKE2B 72831d0b69f95884a69918249cc0e814eb5eade3205331bec6d2021f8b01a42c4c9b494f2717033d65a4c5230c8490b6ce250d349c1e8e177b20e7e84a860020 SHA512 00d64157d066f1e7601c522c0f4e777eb662ca5cce64682f616de0734857765c343396f7161ac2908c3db0c474995ae157bfe9d8a9880743724d9bd428dfdf54
+DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
+DIST error-chain-0.12.4.crate 29274 BLAKE2B d082bcbce47411477e8b597cfcb76985cc7d6f1696926cb5314f4e84d2c8642939f5263e110aaef56353ec086a21874a8093bcea1d018be81c86ca42c2c30d71 SHA512 c0ee19a0ba2d79ff1843148d0a582045e68466a9dc429e5f3c8a3a75bc1b6e0d6de03ad69fce851bc0297e7db77b2c6817a13c37e1c3d4501ed41db8a454bf79
+DIST futures-0.3.21.crate 49935 BLAKE2B 290dee4f7662a473d82350092c0b12a8270f6d6f5eae9e4f7e06a6abf59e2d9f2d33e5e62e2682fcf6e109d62f651cb37cc467cff2b20f909c72b5fee2cb7683 SHA512 723fc190e4480fd812a852656fa6509a188f0d06adaa1c22ef24ec4afa7688a1c5d3961e5747f0812d073fc672b0e084af6ad5e5c3fac3ea5829466f993ad865
+DIST futures-channel-0.3.21.crate 31961 BLAKE2B e99f37cdeac080c8bad2203fd24b48eb62918166104ad6cc531c8f69d3e0c3a5898ca27f19693e2c143c9049a7d244f9af49c16fecba12233f9ff3f1d01e35b0 SHA512 1c10398657949b53b6df196cc44d8e4b3acf53b4d216be6f5f631d8d4b500f5c344e2cc7d5a5642ced6c5480511884611be6d429f56a0ede4a716b9c5770cb76
+DIST futures-core-0.3.21.crate 14601 BLAKE2B 73cf4c422202a34cc9916509939fab35c79093a6c1aeb99e35763727ebf7d3a06ae203684d75cc74183126f0cd95dec1530f136ffa2a0e69354c554883e3af1f SHA512 b60e7892436ae28fd2240f17816f934f6caeac663d67b8efc7d519ebb4b0bd921f0b732b6176bd4b472d2fbe346d39a37ba394401e15afa93af8294ceea90976
+DIST futures-executor-0.3.21.crate 17306 BLAKE2B fd20c7f0b4996cc10e3b3d30c33630a42eb363ac7893af4ae5c476775f8e4f3724ac110648252b6cfb3d652d352fbb5833f2647d262a4c9ae999de1fa69340a3 SHA512 597732f96b45ce21f7a0b149f62cbdc54a80010bfa5421ab0ef7345c501c197e1c8fe109fa2d1c813d5c2e872b4670e0fbd96e2572cc3e9d2646b68f41c78147
+DIST futures-io-0.3.21.crate 8902 BLAKE2B e673342d3fae38e5a6a20c426cb1127353b4f15459b4c27965566f7f2f13f0773ac6ec850b0d679bea37d68219edf6cdf9d1d0eed37665f4ff51c6060b81466c SHA512 dde0b79c4ba208b4c92c699457efbd515d331ab612e7b7df735b3b8f2ab79c012b1ba329ddaf488d68c69dbd119aa231b833b81cbcc0cc2f55c656f68dc22bd8
+DIST futures-macro-0.3.21.crate 11250 BLAKE2B c981e6d56971871102591b6f14b13f0ed75499627036a90cb71a3e11336db408d11ea0feced484d9ea454f47db74951cdfc61377af267359f46cb6462cc3fc0c SHA512 a79d4d3e487d05554e05e04f3a631fc9f0b5c525126eed550ee30eed16d4c457dc39274efac53558a3e33a119b8ff9d3552ce367359eec9d05105b278f7677c0
+DIST futures-sink-0.3.21.crate 7843 BLAKE2B e4b2ac98e89063b23f5e278cad1df6b1b8f96d4f0df0cb035ce964b91e97f88c7a1a4942ec4010cb4da5f4a3552487eac048a6bfcef637bf1f83398d7f38758e SHA512 9bc0198495b5a1b3ed25fcf7b053a235bba0a43a4226bf085d9027537a57add1686ef61179bf2a2d4189945cb5a05a8d64ba6e6e647c56245666d51e138d113f
+DIST futures-task-0.3.21.crate 11815 BLAKE2B ec3f2e2c025e9a482d86912099e68722099c22c0024669906036504d0e70998cb9cb5fd4074928d21847334611ccfcbe6d3e2f686c4d4d7d4436f1e7f501b8fb SHA512 8f3b27865d8c7a290471903297e3c0b52caebfaa55550a4738d7915008b893fce67c7d9ae5c5bd03f2a42ee72a96aa0245c4bee70fc06977b3493eb81bca2033
+DIST futures-util-0.3.21.crate 153768 BLAKE2B b3bc5632bbc7616d33f74361d68f83e0cb051125475101c84212ea2bd03307e927cd125e2f93eeb0f84946cc45d3964a590dcbfcfff88d3ce1970f127e71aed3 SHA512 ff952fb74a54e793de943e3aee2ac771357bf9f1aa5de89af128868c46a6b44e414fc4ea97f2d9b201ff7ff41023e119f1adf90d314343ff53ab987c3e07f5d4
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST hermit-abi-0.3.2.crate 13783 BLAKE2B 43089507a5ca0731a9e9a54fdc8f4dd5f807244797eba5bdcc072c2c2b3761481df65b8cc65900769777d9d21f8345b502cb1915ec36747160e87f179469a661 SHA512 22901ec8976a7c96e93c9e07a2c5d3db49d7af60ce60c7ee6f61c3cbe93190d1f285e737c1c8b2236d540ab14e5d92e42828ec05f1b212332a862baf2b1b57f6
+DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST is-terminal-0.4.9.crate 8109 BLAKE2B 0fa495da123f6fe5e3ba5f643f1ee097fc4f8e8aa54d9525b6108855a6a2e58556534a5e8dbfe7b5f8e2f1932003ac63f6aa3384317de7b385cf724bee294468 SHA512 0803ea53945715333d9b5fb18feec7230a49cb1a5f7308e2ea8d06a650e376794dd372be111e85622fd21320228706dd589423510dd010cd6ea112f185c46966
+DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593
+DIST libc-0.2.147.crate 686772 BLAKE2B ab2f0c65d071d46b8b88149add1c8429237ef6d9e0563d56ee1adbf23e6147dbb57fb68fbd02498f8ec75327693237a47e5e5259615ce8b0d5ed7a03bbf4fffb SHA512 bfb3c230b59d623b98726f92b7c3f897b47ba3d22fe9834c15f5b4c1b662289aba35a0ae3acfc704ad74696db8c691ee007b9cc6fa03ae65a18eb6bedc81931e
+DIST libseccomp-sys-0.2.1.crate 11601 BLAKE2B 77a77d6d1f8ef6f5d25b35c299032738aed0a404c855cb84223a7334caaf57392fbd8f0915f4f7be875778176cbfdb8062eabbf7b414d3c198a5d41cd8a466ef SHA512 b53b13f95ac487d802ff051b4cee32be2dfa496846f3104a61399a53a07a7d6fb6b4543088765858e26e060e22e0bf93f8cb3a175c06dae4719f918844c7fe0f
+DIST linux-raw-sys-0.4.5.crate 1274380 BLAKE2B e15ca5b63cb994e86a8161e3b6e4bd20da8f574d1a470128f9a209a729ff22c86470f4c2b2a8ccbc1e37d6284b026e0805902645ea4b742425fe34491e519638 SHA512 13c36e03cb5bdb2e9f17622e21eda608057fc9d908bc55a829fdeeb77785094769d4f4b4daf376c5509ceb3abfdb3936f668bd6d5b2fd48e21c5c28b6e597e78
+DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
+DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6
+DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
+DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9
+DIST num_threads-0.1.6.crate 7334 BLAKE2B 416efdf395b0299b6b01e1508823afdda08cf67ca54e1d644fc5accbb0490945a492a34bc5ba70c3e838e6405d17ddce164ef87468bd9da27097de8994ad9577 SHA512 b2d9897e29e59353379b6372a629fc7f9afc89f777b4410eaeac7b4729527948a8dbecb175f056899f9076693ef855cc0d40e725cc54f28af588fbac5f7ce3b6
+DIST once_cell-1.18.0.crate 32969 BLAKE2B a08d5beee50a7add28bd9e50b18709e7b34574f0f55f80909d5efb7ac5917e5f30bdcf3fb43ddd0a4f420a427390c7ffe1cc1c7191a3a1d939bc6e3139e6eef7 SHA512 9328968afdf3535b2d9e0113d75afa725259d76994ef2e1948ad7efa4ec8a65bac7cfdc31b749d5cd55ad4e28d2e28ac57b871e3067b89182453c7e2413a13b8
+DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST proc-macro2-1.0.63.crate 44867 BLAKE2B 54fc0f4f4e328c78609f5c0e26a8e6b1e5f1ad989d68e63d21e094bc20e1be6950d5df98ffb601c89bd3d137f6c05a3d1de74070e493002e793bf159b96f29de SHA512 3855011d0d42e8fe591e7552d224b692d79b194c4452fe9d8f92ed85e5437c0a3524a38e66301412be482cfcfbd468b071a03cf584a1618284dfcdcac9713102
+DIST quote-1.0.29.crate 28345 BLAKE2B 3aeb637a4139730348775caab4d48173650d8bdce08247263d741ccc657dfff7f2facff05725bcaa73486818d394c392c64ecbc61bae3f5b612104aec16ff289 SHA512 d686a3943dca059a8e79689c77e6e8f6dbfa9b16a1a7ecdd27099339b77a55334252eaa8b4340e79c35ebb1f6e4deeb3f6356dfd02484f9c724e66a74387e30b
+DIST regex-1.6.0.crate 239329 BLAKE2B 646405e681ce572ebe2dc51a3339f0f8204143f9b2b8f8e74a4c80379c43c3581363ad347610a384d5ee831cf1425f74ddd944a658b1da2461e8068c5521af69 SHA512 b4861c9cc13d6fb224f67057fd3522f04576591b3d7ae0d3581dce42ca2b2bff96860cf2a7f4dfab00e46a1d29e6473f6723c4aeb02e34ed6d5f205b66f07876
+DIST regex-syntax-0.6.27.crate 297300 BLAKE2B 4ca1a2e23d04e29c5925085ea4ab7ebcc398dfe135eacaab1e686aa8be43a110a28e8bec05a6910183f9a6bb1fd0d635fcb1a60b5a6a03fed4d2cf937a542a5a SHA512 5cc705a5dda08cbdb4dbcf3fa98763cadcda13d9c3ba407b35f3e88d77935efc2704bb40b3fb5aad7dfbad0df43bcb4c4cad9732defb954e2228a0739f7c37c6
+DIST rustix-0.38.7.crate 332031 BLAKE2B c7261d4ef5308a8aca32a919d1ce70980b939333b75fd575978261064789bf673466c892fbee1e0b51cab13b80f21a0355e8a4eddf2375ed2f4c5d6ed7ae7668 SHA512 798a84fb6561ccf6902ce7177b2a555cef4d46a2faa265fe7121c600b543782e2e0970346fab52b1075ea40054f6c8f7b830b45f4b0c9bec3aea824645d3ec89
+DIST slab-0.4.7.crate 16647 BLAKE2B f567cc822e7b84f64a0b0372c22a0463d260871455a33df025808a0476dcbbd4e051a117d8896d96d6d3d0655b7c296cd691ca22edc54486440f4e2e0f5d1e1b SHA512 659a9ca3323fc2cd236f6cb9eb6feeae8a1f5fa046fa239a34cd7a5ab8a7eadb9e5977e8d5cc41e9138900dd7c75ebc0601480771c5fdd2e084ee76619b82521
+DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
+DIST syn-1.0.98.crate 235451 BLAKE2B 0667c24d7f6b9bf4c0a5f45fb51c903303a87c72d445ad824e05ab98a158f9beda0d00721144c486335b6a830db47fe57a34831cff6995f478c969c4d0a039dc SHA512 fe5dda742e085e14b6aea5617d3f9dd19ffd46009f34b119c0d74ec693042f641e594f75ff027dbfa38f3d5149a94eb6187248ee9d09d41dab9cc2cfc18fab18
+DIST syn-2.0.23.crate 241166 BLAKE2B de55798634899162388667e4a68a6525904057a480a6bcd741d0bd0f83ba0d0feed3f9a1bd768ca591602ece1e79866a076b6ca218f86b2cf4827d81224d6ad6 SHA512 3f46b2ae62b2e3378024d057130e48b7ae03316ea38ce1d7d4e6dac9337befd84c9eb20518562917643304de43bbd716c34f508a86dbe21081cccb934b4072a0
+DIST syslog-6.0.1.crate 9552 BLAKE2B eb4414c675842fd8cbde4e0c9ecec5dd0f43ca2877a082d634e145202df6817cee86e2edb11f1b78cfa5b0e5df98a42b6cdb2bf1b70c562661dfa9c03da142ba SHA512 fc3e0ef078d2414420e717b66517e9fc668a03b5d0cd0001aed6e477a92f2873877b873159bdf964e4cd670519e5a308bc7357674bd67ac320754221415aa36c
+DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a
+DIST thiserror-1.0.41.crate 18734 BLAKE2B 4b2fb42333441ce6a93e74c08615293b58c1d614783a328591a6852144c164311c4e660f6f41c99b1279475066f854fe2c764f857fb69cf16ecd18a5770f7b89 SHA512 3f185746f2783f7f25b986e0aa1d8c3137f6aa2997a40531f04b2fbc00cb380226b0916bb266c8697a10d20d042c7dfa0fe7e767e6ca37346169c67ecfdf4a82
+DIST thiserror-impl-1.0.41.crate 15078 BLAKE2B 53d95c0ecfd2c9d50f618e572eac0a6faa7735fd9afdc8e2a9a7d730ceda83a7222be979d592811fe4a25fe4d992a261d6479df9bcc11abffa4a88571f7647ca SHA512 bf30f7391757f6424d585b28cc2501d962d0d85b6a903baa7d9ef9d4cb96c3b71db67719777aace08fe91fdeedd241905a4d9dc5de5fc97d099968e902191c9b
+DIST time-0.3.11.crate 91807 BLAKE2B d5b80416590bf48c8f403cc0e2ad735b95d98048dc335737fe509c44f805cc911fa55d6af611d3a05150b2a9ebedf005e8903a4daf66e245a5d5f290ed661c46 SHA512 214bb8c5573d3ee405a923f55e22ac3d659c30ba413f5e960e17d8f226d094133e2b52084e34efc6ece2311e13a862f2fcded9783937d69709d11144a8d6b48d
+DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c
+DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST vhost-0.10.0.crate 200688 BLAKE2B b541584270497997e3fb133c0ca27b42fafb4d5083d90eb57221e01cfb1e8534d9adc424dd106d52fbb0f4868958c10c0ec4778c3b19617601af1990089af886 SHA512 da970cf6c7df5a432b3a8c6024518e994fd029cf9ddfaae869519b892fcc4d590641acab76a03d6cbe8139d7f35467d6d359bde13bfb2b6bb33a5ecabda206d1
+DIST vhost-user-backend-0.13.1.crate 20534 BLAKE2B 5c06c2aa1009482c1c0ef838e78feb89c864861a4c3300f58725bb3dd673dd85b68d9baeafafb86130a12ce97d722d111cde84f16c6861e2390a598b980e4a87 SHA512 90bcc1c82702e32d7642e479f686a3faa5db6e6d41f9f158dc7f75ef2720c1ffe4b8705683d77248bf0cb2b0408b1e45a1ce7d5bfcd839a93b9c48dcc31d99e6
+DIST virtio-bindings-0.2.2.crate 17617 BLAKE2B 0c4013b8b91be27b242c1bb3f70bef843702d674ed2922cf666009e6dc6b3fceb5febfddf1994cb3c551ff6b3c64296d9171535b1fdb566a41dc3c0bc0428b61 SHA512 bfc99801eb785190d0796045d72589e4ef037ffea91f93fdc8232c8873bfec133b16cfdcca1969347f435983603fc69235d587a0e92517bab06edc1027b4f2cd
+DIST virtio-queue-0.11.0.crate 147937 BLAKE2B 184b191106139ec12d363b389e27144b252612c7ad94eef3cb6c6547d10f720fdc06117b5bf05b0bcfc03c4d232ccade7b4f257b3de705cd0269c17db58ced99 SHA512 e38c9173e26963b552729b0651f7d38d56a4b98995da2eb48f78a53e3ab61c67002c07428d5f1fab7e1450d358601b74afa41e893f660a19812cb67eafada11b
+DIST virtiofsd-v1.10.0.tar.bz2 94982 BLAKE2B 32ce893cc44b99abedd136173b380141fb873cef65c0bd400b15c2ae9957d1b379cfc390d1dd7f2591f4d2930f120dc9bdfc7de087ea50f323db6a70bee36967 SHA512 cde56b446c0baa73a29dea6378f60f0a816fe72d97585acc39d60f3bb19fcd016d094405c2ba2327666d84c1618d1b0164ccb03c8871fa6c76e16a3251acecde
+DIST vm-memory-0.14.0.crate 85354 BLAKE2B f2716e17e4272e0baacc38e9783d6abf337a80a18a63119bb1b644ab2c65a7064c4fa2c229309e5d06ebbfadd25bd566e2c96bbc7d281bbe5b29b163718378f2 SHA512 fa7341be2393a42af6ea6c803c1f9657a5e152abd79af83b41918abb01f2f3a6e33431e39e40297164dfca2f7ef14dfc20d80c0278f27bc7abd4d7a4a7ef7710
+DIST vmm-sys-util-0.12.1.crate 58520 BLAKE2B 6b1d176169caa32fb6cbe77d4058dd1df37fc23e5a92d76b8f0eb5f7e2282c2a120f5ad3fdf7710bb1d0b0a24a34770a34310e5da6bcde4c230b485a81eaf2d7 SHA512 dbaf9e2cd002baa97f43ee7659e2bd259df9aeb029fdd5a7e7473c1d38cf82a8208ba5849c12ecc02571da1702082c3491673c68f8029f43c1234ed8e834f960
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-targets-0.48.1.crate 6902 BLAKE2B 8e6cd47dea52131c66983cbf4982e88f7bd30416dfae4e380f7afb39f67ee0ac88d40769668dd5aba40d4415f9f00cbc2ac98d598506fed26029f5ec4df3a2c5 SHA512 e48179620cce528292167f1d5ee2deea0659569c996dc90eb4ab62b9ea8baee6c0bea3ab739e06d8793c9690bfc895545ed0039cb633ca39293de79c42ea9de2
+DIST windows_aarch64_gnullvm-0.48.0.crate 366543 BLAKE2B 9b10f65089fe6da3ff38a1061783f635644ae84f567f891eaced280af68f7ff3919b34289e8850aa34554bb0346903273ff0a7fa743ca8794c2d23a9f1b0185f SHA512 80c5aa74c5669f7acff3882a8e7575f15e8d7cc58c11a1cb731ff423eb9cc9ba43cc6b80e52803c0d44e6a9001655ba87de6f43a9fe858da6d6e3a5c983a2711
+DIST windows_aarch64_msvc-0.48.0.crate 671479 BLAKE2B 0c80f210437628e1d878d1d14e884fea532c7539b3030aa76d46f27d02372c715c6e33d7efdbbd770666472b44a66c30711a33d819ede9cdcd51c96355802d45 SHA512 617e47a7202f1db4dbd3ecea509682135ccd85e3a458c0331b9bc7aa1d84e5756b59c881cb098d5c6d4c951248d13c8253a8e8a50938e1997bd19ceba77262df
+DIST windows_i686_gnu-0.48.0.crate 741490 BLAKE2B 5a4a584f8d8ee5bbd2d4c5b6749a66f2d43fc9e4ef90faab2227709b270f0d46fc26578c029edd96877c71309316ddb32d91c39f46d88f9a484c614f866e3dbe SHA512 15149fdd48b61b6d993acd392dbd353d0280d984ea88745217e4207937174bb90cdd9701f69ff0fe06a842f03607cbb57937d20d79ab577181e605a8a8fadc68
+DIST windows_i686_msvc-0.48.0.crate 730056 BLAKE2B 4e4ad6ed94948145199c2ed50fc65e4af08455a0fd058bb0f763d481f30b029f99a2b8dbac087b29e762500a19270f6683baf62ba99d141eb002a5b0b5c8ea05 SHA512 11a50800e709712dbea907275bc0faa46d2eb2969118445ed5b932d9c5957a09592a5b26a40e554c1f5fd56c6d074a07637e6f88eedd2224e1001e62df7b469b
+DIST windows_x86_64_gnu-0.48.0.crate 703595 BLAKE2B b227efb78a99c43d0538cceadada3fa1840df29adc665787fdcf845b73e77d782da8a9f9aa602e1da61401b550d0107176feb6c397c922a6240b38cc8f04a180 SHA512 38eff1164fb37dbd2bbe53404b20cba92de84cbbd5e4eb9ad60d51fb43d6fdb8b87a1488e2c88ebd4b3ff3b708f93fdc05df4b14a285d3ff11c33ff0d9828602
+DIST windows_x86_64_gnullvm-0.48.0.crate 366536 BLAKE2B 295dc3aef18c604d1579978045f4058b1a315083a8ab842bddf5800ec3460b1530ad88c3464acab712a229290aca235810de8a3b6a253859a354d9fa97277e58 SHA512 8d82fad4c8445030844708aa026a62f1ca43362b8e15f14b0d226c7e9cda04ffa0715087b6a025dbb738e8891de24fcc4a2df071a532917cf03c4a46f934f396
+DIST windows_x86_64_msvc-0.48.0.crate 671422 BLAKE2B abb063610dcc38581657133182b7d9efeed5553df67bd2bd6f30f1668a645186e4824f9ef556a5abc84ace10b1b437b6325bbda6df5a64ce880d7dcb743ac786 SHA512 6e598b8e3ac54912a8ebac01b0dd2c58fd282072527d7fedc7f6ebecdfb7dcb09ae46c22293bc0117849437f8b053db5e90406e7a38276f0f0afd06be3966795
diff --git a/app-emulation/virtiofsd/metadata.xml b/app-emulation/virtiofsd/metadata.xml
new file mode 100644
index 000000000000..1a78f9677df7
--- /dev/null
+++ b/app-emulation/virtiofsd/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>michal.privoznik@gmail.com</email>
+ <name>Michal Privoznik</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>virtualization@gentoo.org</email>
+ <name>Gentoo Virtualization Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="gitlab">virtio-fs/virtiofsd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild
new file mode 100644
index 000000000000..7358e8fdae58
--- /dev/null
+++ b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ anstream@0.3.2
+ anstyle@1.0.1
+ anstyle-parse@0.2.1
+ anstyle-query@1.0.0
+ anstyle-wincon@1.0.1
+ arc-swap@1.5.0
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.4.1
+ capng@0.2.2
+ cc@1.0.79
+ cfg-if@1.0.0
+ clap@4.3.11
+ clap_builder@4.3.11
+ clap_derive@4.3.2
+ clap_lex@0.5.0
+ colorchoice@1.0.0
+ env_logger@0.8.4
+ errno@0.3.1
+ errno-dragonfly@0.1.2
+ error-chain@0.12.4
+ futures@0.3.21
+ futures-channel@0.3.21
+ futures-core@0.3.21
+ futures-executor@0.3.21
+ futures-io@0.3.21
+ futures-macro@0.3.21
+ futures-sink@0.3.21
+ futures-task@0.3.21
+ futures-util@0.3.21
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.3.2
+ hostname@0.3.1
+ humantime@2.1.0
+ is-terminal@0.4.9
+ itoa@1.0.2
+ libc@0.2.147
+ libseccomp-sys@0.2.1
+ linux-raw-sys@0.4.5
+ log@0.4.17
+ match_cfg@0.1.0
+ memchr@2.5.0
+ num_cpus@1.13.1
+ num_threads@0.1.6
+ once_cell@1.18.0
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ proc-macro2@1.0.63
+ quote@1.0.29
+ regex@1.6.0
+ regex-syntax@0.6.27
+ rustix@0.38.7
+ slab@0.4.7
+ strsim@0.10.0
+ syn@1.0.98
+ syn@2.0.23
+ syslog@6.0.1
+ termcolor@1.1.3
+ thiserror@1.0.41
+ thiserror-impl@1.0.41
+ time@0.3.11
+ unicode-ident@1.0.2
+ utf8parse@0.2.1
+ version_check@0.9.4
+ vhost@0.10.0
+ vhost-user-backend@0.13.1
+ virtio-bindings@0.2.2
+ virtio-queue@0.11.0
+ vm-memory@0.14.0
+ vmm-sys-util@0.12.1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-targets@0.48.1
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.48.0
+"
+
+inherit cargo
+
+DESCRIPTION="Shared file system for virtual machines"
+HOMEPAGE="https://virtio-fs.gitlab.io/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
+ EGIT_BRANCH="main"
+else
+ SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
+ SRC_URI+=" ${CARGO_CRATE_URIS}"
+ KEYWORDS="amd64 ppc64"
+ S="${WORKDIR}/${PN}-v${PV}"
+fi
+
+LICENSE="Apache-2.0 BSD"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+
+DEPEND="
+ sys-libs/libcap-ng
+ sys-libs/libseccomp
+"
+RDEPEND="${DEPEND}"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/libexec/${PN}"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_install() {
+ cargo_src_install
+
+ mkdir "${ED}/usr/libexec" || die
+ mv "${ED}/usr/"{bin,libexec}/${PN} || die
+
+ # Install 50-virtiofsd.json but to avoid conflicts with
+ # <app-emulation/qemu-8.0.0 install it under different name. In this case,
+ # smaller number means higher priority, but that's probably what users want
+ # anyway if they install this package on top of app-emulation/qemu.
+ # TODO: remove once old QEMUs are removed from the portage.
+ insinto "/usr/share/qemu/vhost-user"
+ newins "50-virtiofsd.json" "40-virtiofsd.json"
+}
diff --git a/app-emulation/virtiofsd/virtiofsd-9999.ebuild b/app-emulation/virtiofsd/virtiofsd-9999.ebuild
new file mode 100644
index 000000000000..8eaeb54ded93
--- /dev/null
+++ b/app-emulation/virtiofsd/virtiofsd-9999.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ anstream@0.3.2
+ anstyle@1.0.1
+ anstyle-parse@0.2.1
+ anstyle-query@1.0.0
+ anstyle-wincon@1.0.1
+ arc-swap@1.5.0
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.4.1
+ capng@0.2.2
+ cc@1.0.79
+ cfg-if@1.0.0
+ clap@4.3.11
+ clap_builder@4.3.11
+ clap_derive@4.3.2
+ clap_lex@0.5.0
+ colorchoice@1.0.0
+ env_logger@0.8.4
+ errno@0.3.1
+ errno-dragonfly@0.1.2
+ error-chain@0.12.4
+ futures@0.3.21
+ futures-channel@0.3.21
+ futures-core@0.3.21
+ futures-executor@0.3.21
+ futures-io@0.3.21
+ futures-macro@0.3.21
+ futures-sink@0.3.21
+ futures-task@0.3.21
+ futures-util@0.3.21
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.3.2
+ hostname@0.3.1
+ humantime@2.1.0
+ is-terminal@0.4.9
+ itoa@1.0.2
+ libc@0.2.147
+ libseccomp-sys@0.2.1
+ linux-raw-sys@0.4.5
+ log@0.4.17
+ match_cfg@0.1.0
+ memchr@2.5.0
+ num_cpus@1.13.1
+ num_threads@0.1.6
+ once_cell@1.18.0
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ proc-macro2@1.0.63
+ quote@1.0.29
+ regex@1.6.0
+ regex-syntax@0.6.27
+ rustix@0.38.7
+ slab@0.4.7
+ strsim@0.10.0
+ syn@1.0.98
+ syn@2.0.23
+ syslog@6.0.1
+ termcolor@1.1.3
+ thiserror@1.0.41
+ thiserror-impl@1.0.41
+ time@0.3.11
+ unicode-ident@1.0.2
+ utf8parse@0.2.1
+ version_check@0.9.4
+ vhost@0.10.0
+ vhost-user-backend@0.13.1
+ virtio-bindings@0.2.2
+ virtio-queue@0.11.0
+ vm-memory@0.14.0
+ vmm-sys-util@0.12.1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-targets@0.48.1
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.48.0
+"
+
+inherit cargo
+
+DESCRIPTION="Shared file system for virtual machines"
+HOMEPAGE="https://virtio-fs.gitlab.io/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
+ EGIT_BRANCH="main"
+else
+ SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
+ SRC_URI+=" ${CARGO_CRATE_URIS}"
+ KEYWORDS="~amd64 ~ppc64"
+ S="${WORKDIR}/${PN}-v${PV}"
+fi
+
+LICENSE="Apache-2.0 BSD"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+
+DEPEND="
+ sys-libs/libcap-ng
+ sys-libs/libseccomp
+"
+RDEPEND="${DEPEND}"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/libexec/${PN}"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_install() {
+ cargo_src_install
+
+ mkdir "${ED}/usr/libexec" || die
+ mv "${ED}/usr/"{bin,libexec}/${PN} || die
+
+ # Install 50-virtiofsd.json but to avoid conflicts with
+ # <app-emulation/qemu-8.0.0 install it under different name. In this case,
+ # smaller number means higher priority, but that's probably what users want
+ # anyway if they install this package on top of app-emulation/qemu.
+ # TODO: remove once old QEMUs are removed from the portage.
+ insinto "/usr/share/qemu/vhost-user"
+ newins "50-virtiofsd.json" "40-virtiofsd.json"
+}
diff --git a/app-emulation/virtualbox-additions/Manifest b/app-emulation/virtualbox-additions/Manifest
index e67ea25a3790..e2a3c91640b6 100644
--- a/app-emulation/virtualbox-additions/Manifest
+++ b/app-emulation/virtualbox-additions/Manifest
@@ -1,4 +1,3 @@
-DIST VBoxGuestAdditions_5.2.32.iso 49620992 BLAKE2B 04853f4b9a95898263ca7238a78b5d8751882a21874e4745d675642185542eb617f2a74b3e55b4444067822511d33b6d358e37e179d1b1c6464d701a8ab45a54 SHA512 86f1d7071a9033b7826dcacbcf23822acc772d909af8a8a12345bd5fe68375677b522d0e1987f2908412d5a29369d0a1221fd099f8b692c8d25fe9cbe40fd11e
-DIST VBoxGuestAdditions_5.2.34.iso 49661952 BLAKE2B 2e1455d19e2e6be374b3ab4e2400b838202f8b978884a631317bcfd08ae3adfcb48dadc1ff1d26731c1c55df9e407de005291f37c28d020b7c72acc82fb77e87 SHA512 5e01d3f2692a0e0fa8651bcd4084761d67732f008d4438e3d8428e8ef39e8e5e10f0fb4637901fc733d2d773f9ddce6de7c62e471098824cf72b6fffdaf65f6f
-DIST VBoxGuestAdditions_6.0.12.iso 77195264 BLAKE2B bc7956a8eaf4a3ddc92b20c52696e298af63980bc607f8caea51ac00b826f62a3214a30a232070c3ded7a2db9d81114a81de2f6d9b04bdec1ea5cfb26808287e SHA512 83c9703588f14b6a24d878cb929fc09dddd94510f8a63092ff91864275abf8dd47f10e8bd300128305e1ed2e8504c76260b72e5d534c6d45de1e0d64d038ec58
-DIST VBoxGuestAdditions_6.0.14.iso 77195264 BLAKE2B 5f87fa4f561aaed80678eaadf3cb2b08edc5cc8de49aa6039c23621c736ad5b73b70ea5e4fcfb0a484dbd170010019350a1b1b4c712148648a9eb58d648f1682 SHA512 33b265b5a5635cb490a16ded64739ced39dcd4cc3c12d381f952b24ddac4ec2de9b36d34bc6e425f6d39f6a090250f64d3b517544f9b4ee91cbaf3de3984aea9
+DIST VBoxGuestAdditions_6.1.50.iso 64051200 BLAKE2B 9eff4a3643579ee0426dbe2b62247b8c89321be495e61469628574445fedc06ff2fb9afa108705cbaf24a13db99b4e6e850c61e5c97343095549f444831fcf62 SHA512 d74ce912dbbcef7f644a9f3ba9917782336cbee8e0756727a8753ffc17486a75e833adaa869e205531bc3b81b9cb26aa9b50f44210e78dceece966687122f6c6
+DIST VBoxGuestAdditions_7.0.14.iso 53526528 BLAKE2B 2ec95d9261d3a7f762f333c1e3eb36f7b75cfd7cf722d1bdcd5c0b38a3a311db82b728fe800aed79b41b979ec345cd2586e3fd8c2d2c54f8b83516061d81d304 SHA512 5aa80b04c567d383793c560eb535babd1ebc4f472aaa51753867dbee00e1f5a3efeb5dd4c9eb1a48149ff0fa2e7598aa68792d3da9959709b619d234c2b57544
+DIST VBoxGuestAdditions_7.0.18.iso 52887552 BLAKE2B 03c2b6a777f37286f97d5e2b3f90bf9592e72f5df45f05dd9ae532c092cc38120475795821a31b6106579e49f86ad0e598b15b63ff52107794d0403fdf617ed9 SHA512 21bac2c7c10b0900c0e29cebd546a31cfb058ce0567166c71d45f150824a8818f739284787181678076982dcf40a2e62578b7a5baf19eabcab4f7385e17d2b44
diff --git a/app-emulation/virtualbox-additions/metadata.xml b/app-emulation/virtualbox-additions/metadata.xml
index 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-5.2.34.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-5.2.34.ebuild
deleted file mode 100644
index 6faf7e7e8a0d..000000000000
--- a/app-emulation/virtualbox-additions/virtualbox-additions-5.2.34.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2019 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"
-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.0.12.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.0.12.ebuild
deleted file mode 100644
index 5124a818a150..000000000000
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.12.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
-
-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.0.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.0.14.ebuild
deleted file mode 100644
index 5124a818a150..000000000000
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.14.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
-
-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-5.2.32.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
index d5584316c421..b99d3c3c719a 100644
--- a/app-emulation/virtualbox-additions/virtualbox-additions-5.2.32.ebuild
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
@@ -1,27 +1,19 @@
-# Copyright 1999-2019 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"
-KEYWORDS="amd64 x86"
-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-7.0.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild
new file mode 100644
index 000000000000..1cb70c695bbd
--- /dev/null
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=VBoxGuestAdditions
+MY_P=${MY_PN}_${PV}
+
+DESCRIPTION="CD image containing guest additions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
+
+LICENSE="GPL-3 || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+src_unpack() {
+ return 0
+}
+
+src_install() {
+ insinto /usr/share/${PN/-additions}
+ newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
+}
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild
new file mode 100644
index 000000000000..92124a9f779e
--- /dev/null
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.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-bin/Manifest b/app-emulation/virtualbox-bin/Manifest
deleted file mode 100644
index 434194bbd8f0..000000000000
--- a/app-emulation/virtualbox-bin/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.32-132073.tar.gz 26917593 BLAKE2B e52c746299d32ae908892791d8fb9b4dda264875e66bf0459adfbc64381001e9be1800a8ac93bbea14dceb47a0e81cf79c29a4c0796f7c4a30021e4beb036cfa SHA512 382ed45a90981397da7d46925a73c5aa0cc870fe41992c87ccd3d3a33420b199e4a0a19761a6c6ebeacf93450e2937d81befb6fdaf7fb7961827e23f0f24c645
-DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.34-133893.tar.gz 26985633 BLAKE2B 718bb568a8819250f90d57d57115f84e09da5c2e29539a8585c6916fd794bf2715ea9fc340dc349dbabeab8674230bab2b311686bfb5d343b0a7bdb23578effc SHA512 b932768bbf652f29a4e4ded8e65b944da63b76a02206da77dddf2bf8504cb165c67e215d270cdb4d9ff81adc4a24c146ad9793e074b0cf4e3a3fe77619017716
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.12-133076.tar.gz 23160551 BLAKE2B 6174296d97f9e32a79f29e119804b15d288100017ea9da20235325f095e1d10a7ea5acf478d914b4a2e874da7640520691ad9a881228855b047f5c0c529ad120 SHA512 f7d4785ce8e53836cb4b87920765967cb3148ba09ee5921ab67fc4547d8a90923bfbb8a432d67ec6b878775fd67f1dbd826dcf993b57481f71d2f8a71ce13bfd
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.14-133895.tar.gz 23160651 BLAKE2B c140375bae78f4efe02744ac1b55c76e736eefe58e6adc9edf1fd232433cc572183590963789ab88490f56c6c95154a2755ef16f044b6948801d56ff63edea20 SHA512 fdeedfefeab884a546e7f477b28052c32ab2a2782a66b3afca1e56804552f54d310fbb5dcfd494e4bdb99e7fe1df5f9e4de5263a6db2dcaf9218002607f2967f
-DIST VirtualBox-5.2.32-132073-Linux_amd64.run 83854803 BLAKE2B 3522df31f4f98efcd40adcaaf8ac458078adf0bbfed96c7d309d4726ddb8b8dd78eef830b3cfcb2f1fa6329bcc30ea2449f5c88cab66fa0c7d20818d7b5aa07a SHA512 aea9b27793f3363eba2ed627cc3b35ca51445946e6e9f20382fb3034afbb7470d27fdc476066c04acc595690a9e34109e8b8ce6dcab10fdc990b241b24ec47fb
-DIST VirtualBox-5.2.32-132073-Linux_x86.run 82943439 BLAKE2B 31a22e8b52a53d6948a5af533b5c8f374d703c44736678c0bbe6fd9b5298bed4817996c32902a69c2c59dbf751cea04f22beb7203deaeadf79d2424e123e9d37 SHA512 05f99b673224c2b3d94b0d568067ae5ee74200c88a3b7f6665988a9d0c35f69f81c07292b838d07c07fd6d5484979615fd255650b138387501a593f3833b9071
-DIST VirtualBox-5.2.34-133893-Linux_amd64.run 83895763 BLAKE2B 1f7212410c6cf1b2c58efcc0987980024a130a7d80f392ae5007c02aa7f5c3401f72c563c704a2e87282eb92d7d940e648cf6b4202010f068878005396474186 SHA512 ea369b80b8449280f7d605970f31784141bbc43420edde81ad394cb976eca19038455769d65fff9f9b2e4dd70a1c7ec406cc017dc7e50e1a6292bb7da074b845
-DIST VirtualBox-5.2.34-133893-Linux_x86.run 82974159 BLAKE2B 30e4e41fa3e3e8aaf928638ad6665a3dc874373daf99032c40381ee0e7ab2146daaf02c5b1d65e32e1fa8286cec4f898d924a9b62fc253a097d1f568538a6939 SHA512 f5fb27bb6d338841357445823fbaa5893fa338d8ef7c146f800baf3ceebb778c29239a82a4d9ceb9e23980177c5d0ccf10b3fc9b63b8b2232f23077bda4332d7
-DIST VirtualBox-6.0.12-133076-Linux_amd64.run 127118808 BLAKE2B b654fce2e9134390c7cf27e30e2c2e15e5d3bfd40df85627b266f250c112b0f4f60062d3f50dbb0e5bc0ac7f4b819694cdb65d2148b4b015b8e0c5c71c13e4ec SHA512 cce0e95de6e7ecb879807ec47cff0f4423c471132fc157e4c1656824ab5c914684db53bf73c77f9a98e72f654a7af13b21ad2954ef8f5a961b39ab9bb7c04990
-DIST VirtualBox-6.0.14-133895-Linux_amd64.run 127200729 BLAKE2B dc39bcfd02d48bebba59eda8d70bed42c24ae68385b248f168b372a36145b8eb8043f2f59496ce6fa425c2eae4dcd1c78b0d6b44c147dba29ba1362bf6bd2f14 SHA512 4bb4cb398863ec812de9580a3a831cb5aed3ec8e471a519caf58dc988691deb5de7afe56b0c96d6295d2942da142786b4a014079fbc2f3dedae86680a4460cb1
-DIST VirtualBoxSDK-5.2.32-132073.zip 10200195 BLAKE2B 0de34e166b94889c605014233142887e7a8857d1915866156a0cc63850937730ec063e63b550f0d39ad241259158f033b028dbab7eec3f6f38c3715139413b3a SHA512 ccbe2af819bff46055bd6f079a03d69e721a09286e83d4f650583bc7692f5d19ae1a725cf3a6eb1b75167a2c73ff2e020d1f932bf9cfeee9ee709d1174c4cabf
-DIST VirtualBoxSDK-5.2.34-133893.zip 10199934 BLAKE2B 4f1f82e374b90e002183272c467074608d437ed43b4a0cc6875f5560d7fafa7432c1fe32287e1afbfc5aac91cc65a226f7b164df2fd036c385c211aa11b24b04 SHA512 deaca4f2480771056079bd2f857ea4a4d834a77f19fd5fa04b6e959f6e54141e901de0387e77418fd8e6ba06de528a3dde1c7b335e9c6eb8bb3278ae08a44d7a
-DIST VirtualBoxSDK-6.0.12-133076.zip 10799655 BLAKE2B 93fc5093454a21bf5da26d00f35ab107410cddfed63c9af8494cd194cdc080a70ec8cc8af57233be0472b84a25709a3719f51d399585c1b474ddb4d40e6488ab SHA512 f270a6c404f1bf49ca6bbbc8c4fdba70e6c65001e9731a689f391e6d4c18866ceb14c94a241c15a4e5dd01e08f2c5c61f0fe7feb43ffe36acc9868a72a75603c
-DIST VirtualBoxSDK-6.0.14-133895.zip 10801711 BLAKE2B 30f8befbd52bee336f3a63029061d1ebd76975149af1a1960bca298de2e4fee95cde80f9a7e822e589a2cc0e5a7526d07c006575a0508328b2482034e2bd347a SHA512 fd9dc1f077f8c842e0c52e08750af456973eab534e3de4d771d2c212f6024ad953426a62e82ce89895ad77d8de65d1fb39defd9c370864cb16d3d37fd9a31699
diff --git a/app-emulation/virtualbox-bin/files/virtualbox-bin-3-wrapper b/app-emulation/virtualbox-bin/files/virtualbox-bin-3-wrapper
deleted file mode 100644
index 6f2da490065d..000000000000
--- a/app-emulation/virtualbox-bin/files/virtualbox-bin-3-wrapper
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-#
-# Sun VirtualBox
-#
-# Copyright (C) 2006-2009 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 (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.
-#
-# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
-# Clara, CA 95054 USA or visit http://www.sun.com if you need
-# additional information or have any questions.
-#
-
-PATH="/usr/bin:/bin:/usr/sbin:/sbin"
-CONFIG="/etc/vbox/vbox.cfg"
-
-if [ ! -r "$CONFIG" ]; then
- echo "Could not find VirtualBox installation. Please reinstall."
- exit 1
-fi
-
-. "$CONFIG"
-
-# 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 VirtualBox kernel modules are not loaded.
- Please load all the needed kernel modules 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 \`whoami\` | 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=`which $0`
-APP=`basename $APP`
-APP=${APP##/*/}
-case "$APP" in
- VirtualBox)
- exec "$INSTALL_DIR/VirtualBox" "$@"
- ;;
- VBoxManage)
- exec "$INSTALL_DIR/VBoxManage" "$@"
- ;;
- VBoxSDL)
- exec "$INSTALL_DIR/VBoxSDL" "$@"
- ;;
- VBoxVRDP)
- exec "$INSTALL_DIR/VBoxHeadless" "$@"
- ;;
- VBoxHeadless)
- exec "$INSTALL_DIR/VBoxHeadless" "$@"
- ;;
- vboxwebsrv)
- exec "$INSTALL_DIR/vboxwebsrv" "$@"
- ;;
- *)
- echo "Unknown application - $APP"
- ;;
-esac
diff --git a/app-emulation/virtualbox-bin/files/virtualbox-bin-config b/app-emulation/virtualbox-bin/files/virtualbox-bin-config
deleted file mode 100644
index f69e73e2fcb6..000000000000
--- a/app-emulation/virtualbox-bin/files/virtualbox-bin-config
+++ /dev/null
@@ -1 +0,0 @@
-INSTALL_DIR=/opt/VirtualBox
diff --git a/app-emulation/virtualbox-bin/files/virtualbox-bin.desktop-2 b/app-emulation/virtualbox-bin/files/virtualbox-bin.desktop-2
deleted file mode 100644
index 112e8f81348a..000000000000
--- a/app-emulation/virtualbox-bin/files/virtualbox-bin.desktop-2
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Name=Oracle xVM VirtualBox
-Type=Application
-Comment=Run several virtual systems on a single host computer
-Exec=VirtualBox
-TryExec=VirtualBox
-Icon=virtualbox-bin
-Categories=System;Emulator;
diff --git a/app-emulation/virtualbox-bin/metadata.xml b/app-emulation/virtualbox-bin/metadata.xml
deleted file mode 100644
index 1c0bee6a8e51..000000000000
--- a/app-emulation/virtualbox-bin/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-needed -->
- <use>
- <flag name="additions">Install Guest System Tools ISO</flag>
- <flag name="chm">Install kchmviewer binary to enable online help (in MS CHM format)</flag>
- <flag name="headless">Install without any graphic frontend</flag>
- <flag name="sdk">Enable building of SDK</flag>
- <flag name="vboxwebsrv">Install the VirtualBox webservice</flag>
- <flag name="rdesktop-vrdp">Install the rdesktop client integration</flag>
- </use>
-</pkgmetadata>
-
diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-5.2.32.132073.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-5.2.32.132073.ebuild
deleted file mode 100644
index de48142651ba..000000000000
--- a/app-emulation/virtualbox-bin/virtualbox-bin-5.2.32.132073.ebuild
+++ /dev/null
@@ -1,287 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5)"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
-MY_P="VirtualBox-${VBOX_PV}-Linux"
-# needed as sometimes the extpack gets another build ID
-EXTP_PV="${VBOX_PV}"
-EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
-EXTP_P="${EXTP_PN}-${EXTP_PV}"
-# needed as sometimes the SDK gets another build ID
-SDK_PV="${VBOX_PV}"
-SDK_P="VirtualBoxSDK-${SDK_PV}"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
- x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
- https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
-
-LICENSE="GPL-2 PUEL"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
-RESTRICT="bindist mirror"
-
-if [[ "${PV}" != *beta* ]] ; then
- SRC_URI+="
- sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
- IUSE+=" sdk"
-fi
-
-DEPEND="app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="!!app-emulation/virtualbox
- !app-emulation/virtualbox-additions
- ~app-emulation/virtualbox-modules-${MAIN_PV}
- !headless? (
- dev-libs/glib
- media-libs/fontconfig
- media-libs/freetype
- media-libs/libpng
- media-libs/libsdl[X]
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXft
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- chm? ( dev-libs/expat )
- )
- dev-libs/libxml2
- sys-fs/lvm2
- x11-libs/libXau
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXmu
- x11-libs/libSM
- x11-libs/libICE
- x11-libs/libXdmcp
- ${PYTHON_DEPS}"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-S="${WORKDIR}"
-
-QA_PREBUILT="opt/VirtualBox/*"
-
-PYTHON_UPDATER_IGNORE="1"
-
-src_unpack() {
- unpack_makeself ${MY_P}_${ARCH}.run
- unpack ./VirtualBox.tar.bz2
-
- mkdir "${S}"/${EXTP_PN} || die
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- unpack ${EXTP_P}.tar.gz
- popd &>/dev/null || die
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- unpack VirtualBoxSDK-${SDK_PV}.zip
- fi
-}
-
-src_configure() {
- :;
-}
-
-src_compile() {
- :;
-}
-
-src_install() {
- # create virtualbox configurations files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-config" vbox.cfg
-
- if ! use headless ; then
- newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
-
- # set up symlinks (bug #572012)
- dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
-
- local size ico icofile
- for size in 16 24 32 48 64 72 96 128 256 ; do
- pushd "${S}"/icons/${size}x${size} &>/dev/null || die
- if [[ -f "virtualbox.png" ]] ; then
- doicon -s ${size} virtualbox.png
- fi
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="virtualbox-${ico}.png"
- if [[ -f "${icofile}" ]] ; then
- doicon -s ${size} ${icofile}
- fi
- done
- popd &>/dev/null || die
- done
- doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
- insinto /usr/share/pixmaps
- newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
- fi
-
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
- popd &>/dev/null || die
- rm -rf "${S}"/${EXTP_PN}
-
- insinto /opt/VirtualBox
- dodir /opt/bin
-
- doins UserManual.pdf
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- doins -r sdk
- fi
-
- if use additions; then
- doins -r additions
- fi
-
- if use vboxwebsrv; then
- doins vboxwebsrv
- fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
- fperms 0750 /opt/VirtualBox/vboxwebsrv
- dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- if use rdesktop-vrdp; then
- doins rdesktop-vrdp
- doins -r rdesktop-vrdp-keymaps
- fperms 0750 /opt/VirtualBox/rdesktop-vrdp
- dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
- fi
-
- if ! use headless && use chm; then
- doins kchmviewer VirtualBox.chm
- fowners root:vboxusers /opt/VirtualBox/kchmviewer
- fperms 0750 /opt/VirtualBox/kchmviewer
- fi
-
- # This ebuild / package supports only py2.7. When py3 comes is unknown.
- # The compile phase makes VBoxPython2_7.so.
- # py3 support would presumably require a binary pre-compiled by py3.
- use python && doins VBoxPython.so VBoxPython2_7.so
-
- rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
- vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
- VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
- webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
- 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
- VBoxPython?_*.so
-
- if use headless ; then
- rm -rf VBoxSDL VirtualBox VBoxKeyboard.so
- fi
-
- doins -r * || die
-
- # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
- dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
- dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
- dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
- dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
- dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
-
- local each
- for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 0750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
- # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
- fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl
- fperms 4750 /opt/VirtualBox/VBoxNetDHCP
- fperms 4750 /opt/VirtualBox/VBoxNetNAT
-
- if ! use headless ; then
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- for each in VBox{SDL,Headless} VirtualBox; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4510 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
- else
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
- fperms 4510 /opt/VirtualBox/VBoxHeadless
- pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
- fi
-
- exeinto /opt/VirtualBox
- newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
- fowners root:vboxusers /opt/VirtualBox/VBox.sh
- fperms 0750 /opt/VirtualBox/VBox.sh
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
- dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}/rules.d
- doins "${FILESDIR}"/10-virtualbox.rules
- sed "s@%UDEVDIR%@${udevdir}@" \
- -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
- # move udev scripts into ${udevdir} (bug #372491)
- mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
-}
-
-pkg_postinst() {
- xdg_desktop_database_update
-
- gnome2_icon_cache_update
-
- udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
-
- elog ""
- if ! use headless ; then
- elog "To launch VirtualBox just type: \"VirtualBox\""
- elog ""
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Please visit http://www.virtualbox.org/wiki/Editions for"
- elog "an overview about the different features of ${PN}"
- elog "and virtualbox-ose"
- if [ -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_desktop_database_update
-}
diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-5.2.34.133893.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-5.2.34.133893.ebuild
deleted file mode 100644
index cb4e5663f7c1..000000000000
--- a/app-emulation/virtualbox-bin/virtualbox-bin-5.2.34.133893.ebuild
+++ /dev/null
@@ -1,287 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5)"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
-MY_P="VirtualBox-${VBOX_PV}-Linux"
-# needed as sometimes the extpack gets another build ID
-EXTP_PV="${VBOX_PV}"
-EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
-EXTP_P="${EXTP_PN}-${EXTP_PV}"
-# needed as sometimes the SDK gets another build ID
-SDK_PV="${VBOX_PV}"
-SDK_P="VirtualBoxSDK-${SDK_PV}"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
- x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
- https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
-
-LICENSE="GPL-2 PUEL"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
-RESTRICT="bindist mirror"
-
-if [[ "${PV}" != *beta* ]] ; then
- SRC_URI+="
- sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
- IUSE+=" sdk"
-fi
-
-DEPEND="app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="!!app-emulation/virtualbox
- !app-emulation/virtualbox-additions
- ~app-emulation/virtualbox-modules-${MAIN_PV}
- !headless? (
- dev-libs/glib
- media-libs/fontconfig
- media-libs/freetype
- media-libs/libpng
- media-libs/libsdl[X]
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXft
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- chm? ( dev-libs/expat )
- )
- dev-libs/libxml2
- sys-fs/lvm2
- x11-libs/libXau
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXmu
- x11-libs/libSM
- x11-libs/libICE
- x11-libs/libXdmcp
- ${PYTHON_DEPS}"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-S="${WORKDIR}"
-
-QA_PREBUILT="opt/VirtualBox/*"
-
-PYTHON_UPDATER_IGNORE="1"
-
-src_unpack() {
- unpack_makeself ${MY_P}_${ARCH}.run
- unpack ./VirtualBox.tar.bz2
-
- mkdir "${S}"/${EXTP_PN} || die
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- unpack ${EXTP_P}.tar.gz
- popd &>/dev/null || die
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- unpack VirtualBoxSDK-${SDK_PV}.zip
- fi
-}
-
-src_configure() {
- :;
-}
-
-src_compile() {
- :;
-}
-
-src_install() {
- # create virtualbox configurations files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-config" vbox.cfg
-
- if ! use headless ; then
- newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
-
- # set up symlinks (bug #572012)
- dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
-
- local size ico icofile
- for size in 16 24 32 48 64 72 96 128 256 ; do
- pushd "${S}"/icons/${size}x${size} &>/dev/null || die
- if [[ -f "virtualbox.png" ]] ; then
- doicon -s ${size} virtualbox.png
- fi
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="virtualbox-${ico}.png"
- if [[ -f "${icofile}" ]] ; then
- doicon -s ${size} ${icofile}
- fi
- done
- popd &>/dev/null || die
- done
- doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
- insinto /usr/share/pixmaps
- newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
- fi
-
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
- popd &>/dev/null || die
- rm -rf "${S}"/${EXTP_PN}
-
- insinto /opt/VirtualBox
- dodir /opt/bin
-
- doins UserManual.pdf
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- doins -r sdk
- fi
-
- if use additions; then
- doins -r additions
- fi
-
- if use vboxwebsrv; then
- doins vboxwebsrv
- fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
- fperms 0750 /opt/VirtualBox/vboxwebsrv
- dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- if use rdesktop-vrdp; then
- doins rdesktop-vrdp
- doins -r rdesktop-vrdp-keymaps
- fperms 0750 /opt/VirtualBox/rdesktop-vrdp
- dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
- fi
-
- if ! use headless && use chm; then
- doins kchmviewer VirtualBox.chm
- fowners root:vboxusers /opt/VirtualBox/kchmviewer
- fperms 0750 /opt/VirtualBox/kchmviewer
- fi
-
- # This ebuild / package supports only py2.7. When py3 comes is unknown.
- # The compile phase makes VBoxPython2_7.so.
- # py3 support would presumably require a binary pre-compiled by py3.
- use python && doins VBoxPython.so VBoxPython2_7.so
-
- rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
- vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
- VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
- webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
- 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
- VBoxPython?_*.so
-
- if use headless ; then
- rm -rf VBoxSDL VirtualBox VBoxKeyboard.so
- fi
-
- doins -r * || die
-
- # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
- dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
- dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
- dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
- dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
- dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
-
- local each
- for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 0750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
- # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
- fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl
- fperms 4750 /opt/VirtualBox/VBoxNetDHCP
- fperms 4750 /opt/VirtualBox/VBoxNetNAT
-
- if ! use headless ; then
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- for each in VBox{SDL,Headless} VirtualBox; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4510 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
- else
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
- fperms 4510 /opt/VirtualBox/VBoxHeadless
- pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
- fi
-
- exeinto /opt/VirtualBox
- newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
- fowners root:vboxusers /opt/VirtualBox/VBox.sh
- fperms 0750 /opt/VirtualBox/VBox.sh
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
- dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}/rules.d
- doins "${FILESDIR}"/10-virtualbox.rules
- sed "s@%UDEVDIR%@${udevdir}@" \
- -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
- # move udev scripts into ${udevdir} (bug #372491)
- mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
-}
-
-pkg_postinst() {
- xdg_desktop_database_update
-
- gnome2_icon_cache_update
-
- udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
-
- elog ""
- if ! use headless ; then
- elog "To launch VirtualBox just type: \"VirtualBox\""
- elog ""
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Please visit http://www.virtualbox.org/wiki/Editions for"
- elog "an overview about the different features of ${PN}"
- elog "and virtualbox-ose"
- if [ -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_desktop_database_update
-}
diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-6.0.12.133076.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-6.0.12.133076.ebuild
deleted file mode 100644
index ea3b735a7474..000000000000
--- a/app-emulation/virtualbox-bin/virtualbox-bin-6.0.12.133076.ebuild
+++ /dev/null
@@ -1,291 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- KEYWORDS="~amd64" #~x86
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
-MY_P="VirtualBox-${VBOX_PV}-Linux"
-# needed as sometimes the extpack gets another build ID
-EXTP_PV="${VBOX_PV}"
-EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
-EXTP_P="${EXTP_PN}-${EXTP_PV}"
-# needed as sometimes the SDK gets another build ID
-SDK_PV="${VBOX_PV}"
-SDK_P="VirtualBoxSDK-${SDK_PV}"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
- https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
- #x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
-
-LICENSE="GPL-2 PUEL"
-SLOT="0"
-IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
-RESTRICT="bindist mirror"
-
-if [[ "${PV}" != *beta* ]] ; then
- SRC_URI+="
- sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
- IUSE+=" sdk"
-fi
-
-DEPEND="app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="!!app-emulation/virtualbox
- !app-emulation/virtualbox-additions
- ~app-emulation/virtualbox-modules-${MAIN_PV}
- !headless? (
- dev-libs/glib
- media-libs/fontconfig
- media-libs/freetype
- media-libs/libpng
- media-libs/libsdl[X]
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXft
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- chm? ( dev-libs/expat )
- )
- dev-libs/libxml2
- sys-fs/lvm2
- x11-libs/libXau
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXmu
- x11-libs/libSM
- x11-libs/libICE
- x11-libs/libXdmcp
- ${PYTHON_DEPS}"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-S="${WORKDIR}"
-
-QA_PREBUILT="opt/VirtualBox/*"
-
-PYTHON_UPDATER_IGNORE="1"
-
-src_unpack() {
- unpack_makeself ${MY_P}_${ARCH}.run
- unpack ./VirtualBox.tar.bz2
-
- mkdir "${S}"/${EXTP_PN} || die
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- unpack ${EXTP_P}.tar.gz
- popd &>/dev/null || die
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- unpack VirtualBoxSDK-${SDK_PV}.zip
- fi
-}
-
-src_configure() {
- :;
-}
-
-src_compile() {
- :;
-}
-
-src_install() {
- # create virtualbox configurations files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-config" vbox.cfg
-
- if ! use headless ; then
- newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
-
- # set up symlinks (bug #572012)
- dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
-
- local size ico icofile
- for size in 16 24 32 48 64 72 96 128 256 ; do
- pushd "${S}"/icons/${size}x${size} &>/dev/null || die
- if [[ -f "virtualbox.png" ]] ; then
- doicon -s ${size} virtualbox.png
- fi
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="virtualbox-${ico}.png"
- if [[ -f "${icofile}" ]] ; then
- doicon -s ${size} ${icofile}
- fi
- done
- popd &>/dev/null || die
- done
- doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
- insinto /usr/share/pixmaps
- newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
- fi
-
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
- popd &>/dev/null || die
- rm -rf "${S}"/${EXTP_PN}
-
- insinto /opt/VirtualBox
- dodir /opt/bin
-
- doins UserManual.pdf
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- doins -r sdk
- fi
-
- if use additions; then
- doins -r additions
- fi
-
- if use vboxwebsrv; then
- doins vboxwebsrv
- fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
- fperms 0750 /opt/VirtualBox/vboxwebsrv
- dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- if use rdesktop-vrdp; then
- doins rdesktop-vrdp
- doins -r rdesktop-vrdp-keymaps
- fperms 0750 /opt/VirtualBox/rdesktop-vrdp
- dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
- fi
-
- if ! use headless && use chm; then
- doins kchmviewer VirtualBox.chm
- fowners root:vboxusers /opt/VirtualBox/kchmviewer
- fperms 0750 /opt/VirtualBox/kchmviewer
- fi
-
- # This ebuild / package supports only py2.7. When py3 comes is unknown.
- # The compile phase makes VBoxPython2_7.so.
- # py3 support would presumably require a binary pre-compiled by py3.
- use python && doins VBoxPython.so
-
- rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
- vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
- VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
- webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
- 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
- VBoxPython?_*.so
-
- if use headless ; then
- rm -rf VBoxSDL VirtualBox{,VM} VBoxKeyboard.so
- fi
-
- doins -r * || die
-
- # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
- dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
- dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
- dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
- dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
- dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
-
- local each
- for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,TestOGL,ExtPackHelperApp} $(usex headless '' VirtualBox) ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 0750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
- # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
- for each in VBoxNet{AdpCtl,DHCP,NAT} $(usex headless '' VirtualBoxVM) ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- if ! use headless ; then
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- for each in VBox{SDL,Headless} ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4510 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
- else
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
- fperms 4510 /opt/VirtualBox/VBoxHeadless
- pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
- fi
-
- exeinto /opt/VirtualBox
- newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
- fowners root:vboxusers /opt/VirtualBox/VBox.sh
- fperms 0750 /opt/VirtualBox/VBox.sh
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
- dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}/rules.d
- doins "${FILESDIR}"/10-virtualbox.rules
- sed "s@%UDEVDIR%@${udevdir}@" \
- -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
- # move udev scripts into ${udevdir} (bug #372491)
- mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
-}
-
-pkg_postinst() {
- xdg_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-
- udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
-
- elog ""
- if ! use headless ; then
- elog "To launch VirtualBox just type: \"VirtualBox\""
- elog ""
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Please visit http://www.virtualbox.org/wiki/Editions for"
- elog "an overview about the different features of ${PN}"
- elog "and virtualbox-ose"
- if [ -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_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-}
diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-6.0.14.133895.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-6.0.14.133895.ebuild
deleted file mode 100644
index ea3b735a7474..000000000000
--- a/app-emulation/virtualbox-bin/virtualbox-bin-6.0.14.133895.ebuild
+++ /dev/null
@@ -1,291 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- KEYWORDS="~amd64" #~x86
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
-MY_P="VirtualBox-${VBOX_PV}-Linux"
-# needed as sometimes the extpack gets another build ID
-EXTP_PV="${VBOX_PV}"
-EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
-EXTP_P="${EXTP_PN}-${EXTP_PV}"
-# needed as sometimes the SDK gets another build ID
-SDK_PV="${VBOX_PV}"
-SDK_P="VirtualBoxSDK-${SDK_PV}"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
- https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
- #x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
-
-LICENSE="GPL-2 PUEL"
-SLOT="0"
-IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
-RESTRICT="bindist mirror"
-
-if [[ "${PV}" != *beta* ]] ; then
- SRC_URI+="
- sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
- IUSE+=" sdk"
-fi
-
-DEPEND="app-arch/unzip
- ${PYTHON_DEPS}"
-
-RDEPEND="!!app-emulation/virtualbox
- !app-emulation/virtualbox-additions
- ~app-emulation/virtualbox-modules-${MAIN_PV}
- !headless? (
- dev-libs/glib
- media-libs/fontconfig
- media-libs/freetype
- media-libs/libpng
- media-libs/libsdl[X]
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXft
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- chm? ( dev-libs/expat )
- )
- dev-libs/libxml2
- sys-fs/lvm2
- x11-libs/libXau
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXmu
- x11-libs/libSM
- x11-libs/libICE
- x11-libs/libXdmcp
- ${PYTHON_DEPS}"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-S="${WORKDIR}"
-
-QA_PREBUILT="opt/VirtualBox/*"
-
-PYTHON_UPDATER_IGNORE="1"
-
-src_unpack() {
- unpack_makeself ${MY_P}_${ARCH}.run
- unpack ./VirtualBox.tar.bz2
-
- mkdir "${S}"/${EXTP_PN} || die
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- unpack ${EXTP_P}.tar.gz
- popd &>/dev/null || die
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- unpack VirtualBoxSDK-${SDK_PV}.zip
- fi
-}
-
-src_configure() {
- :;
-}
-
-src_compile() {
- :;
-}
-
-src_install() {
- # create virtualbox configurations files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-config" vbox.cfg
-
- if ! use headless ; then
- newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
-
- # set up symlinks (bug #572012)
- dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
-
- local size ico icofile
- for size in 16 24 32 48 64 72 96 128 256 ; do
- pushd "${S}"/icons/${size}x${size} &>/dev/null || die
- if [[ -f "virtualbox.png" ]] ; then
- doicon -s ${size} virtualbox.png
- fi
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="virtualbox-${ico}.png"
- if [[ -f "${icofile}" ]] ; then
- doicon -s ${size} ${icofile}
- fi
- done
- popd &>/dev/null || die
- done
- doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
- insinto /usr/share/pixmaps
- newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
- fi
-
- pushd "${S}"/${EXTP_PN} &>/dev/null || die
- insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
- popd &>/dev/null || die
- rm -rf "${S}"/${EXTP_PN}
-
- insinto /opt/VirtualBox
- dodir /opt/bin
-
- doins UserManual.pdf
-
- if [[ "${PV}" != *beta* ]] && use sdk ; then
- doins -r sdk
- fi
-
- if use additions; then
- doins -r additions
- fi
-
- if use vboxwebsrv; then
- doins vboxwebsrv
- fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
- fperms 0750 /opt/VirtualBox/vboxwebsrv
- dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- if use rdesktop-vrdp; then
- doins rdesktop-vrdp
- doins -r rdesktop-vrdp-keymaps
- fperms 0750 /opt/VirtualBox/rdesktop-vrdp
- dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
- fi
-
- if ! use headless && use chm; then
- doins kchmviewer VirtualBox.chm
- fowners root:vboxusers /opt/VirtualBox/kchmviewer
- fperms 0750 /opt/VirtualBox/kchmviewer
- fi
-
- # This ebuild / package supports only py2.7. When py3 comes is unknown.
- # The compile phase makes VBoxPython2_7.so.
- # py3 support would presumably require a binary pre-compiled by py3.
- use python && doins VBoxPython.so
-
- rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
- vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
- VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
- webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
- 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
- VBoxPython?_*.so
-
- if use headless ; then
- rm -rf VBoxSDL VirtualBox{,VM} VBoxKeyboard.so
- fi
-
- doins -r * || die
-
- # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
- dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
- dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
- dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
- dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
- dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
-
- local each
- for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,TestOGL,ExtPackHelperApp} $(usex headless '' VirtualBox) ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 0750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
- # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
- for each in VBoxNet{AdpCtl,DHCP,NAT} $(usex headless '' VirtualBoxVM) ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4750 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- if ! use headless ; then
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- for each in VBox{SDL,Headless} ; do
- fowners root:vboxusers /opt/VirtualBox/${each}
- fperms 4510 /opt/VirtualBox/${each}
- pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
- done
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
- else
- # Hardened build: Mark selected binaries set-user-ID-on-execution
- fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
- fperms 4510 /opt/VirtualBox/VBoxHeadless
- pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
- fi
-
- exeinto /opt/VirtualBox
- newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
- fowners root:vboxusers /opt/VirtualBox/VBox.sh
- fperms 0750 /opt/VirtualBox/VBox.sh
-
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
- dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
- dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}/rules.d
- doins "${FILESDIR}"/10-virtualbox.rules
- sed "s@%UDEVDIR%@${udevdir}@" \
- -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
- # move udev scripts into ${udevdir} (bug #372491)
- mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
-}
-
-pkg_postinst() {
- xdg_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-
- udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
-
- elog ""
- if ! use headless ; then
- elog "To launch VirtualBox just type: \"VirtualBox\""
- elog ""
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Please visit http://www.virtualbox.org/wiki/Editions for"
- elog "an overview about the different features of ${PN}"
- elog "and virtualbox-ose"
- if [ -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_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-}
diff --git a/app-emulation/virtualbox-extpack-oracle/Manifest b/app-emulation/virtualbox-extpack-oracle/Manifest
index 376bd99e23ae..1a62942cf04a 100644
--- a/app-emulation/virtualbox-extpack-oracle/Manifest
+++ b/app-emulation/virtualbox-extpack-oracle/Manifest
@@ -1,4 +1,3 @@
-DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.32-132073.tar.gz 26917593 BLAKE2B e52c746299d32ae908892791d8fb9b4dda264875e66bf0459adfbc64381001e9be1800a8ac93bbea14dceb47a0e81cf79c29a4c0796f7c4a30021e4beb036cfa SHA512 382ed45a90981397da7d46925a73c5aa0cc870fe41992c87ccd3d3a33420b199e4a0a19761a6c6ebeacf93450e2937d81befb6fdaf7fb7961827e23f0f24c645
-DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.34-133893.tar.gz 26985633 BLAKE2B 718bb568a8819250f90d57d57115f84e09da5c2e29539a8585c6916fd794bf2715ea9fc340dc349dbabeab8674230bab2b311686bfb5d343b0a7bdb23578effc SHA512 b932768bbf652f29a4e4ded8e65b944da63b76a02206da77dddf2bf8504cb165c67e215d270cdb4d9ff81adc4a24c146ad9793e074b0cf4e3a3fe77619017716
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.12-133076.tar.gz 23160551 BLAKE2B 6174296d97f9e32a79f29e119804b15d288100017ea9da20235325f095e1d10a7ea5acf478d914b4a2e874da7640520691ad9a881228855b047f5c0c529ad120 SHA512 f7d4785ce8e53836cb4b87920765967cb3148ba09ee5921ab67fc4547d8a90923bfbb8a432d67ec6b878775fd67f1dbd826dcf993b57481f71d2f8a71ce13bfd
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.14-133895.tar.gz 23160651 BLAKE2B c140375bae78f4efe02744ac1b55c76e736eefe58e6adc9edf1fd232433cc572183590963789ab88490f56c6c95154a2755ef16f044b6948801d56ff63edea20 SHA512 fdeedfefeab884a546e7f477b28052c32ab2a2782a66b3afca1e56804552f54d310fbb5dcfd494e4bdb99e7fe1df5f9e4de5263a6db2dcaf9218002607f2967f
+DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.50.tar.gz 11175855 BLAKE2B 898ef92a91dbfb39079f8dfa5f4c1e6d91df66e92deb00849ba1da8a2278e3adcfd5754bf70acc6d8b6d7d6273923999860b71c01de3eaabf4d487d718aa14ef SHA512 818f0564a8ee1266f2d03d6e0d5df44278746067ae86279f6e884f519ad3e923382c7b987b3a58fe95e2aa4f0a53b98d553106b0250923e88989e5fdaa9dc3ae
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.14.tar.gz 18331089 BLAKE2B 278341be074c7bb276b90034355da3a55e2ef5efd89ad9a26a8f53b6743890772e1486ed5552ec131a8c80a710405dac284789d71a6c3bbec2dd79cf0e7e0459 SHA512 9301300dd1c2a178c730045128574b99a4a6cd1c2dd3f6a5782a78fa08588a4c5fd9c9ff6b2dbeba04747de915e3342ebbd08a4b9ed4641ff60f90f6a5c7fc3d
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.18.tar.gz 18264093 BLAKE2B 4cd3f87b02f0340e0b226a68a595fd947de490a0eae36471beedb7f154529bc8f095f7512486660c4373a612608f42cbf6764dc84407143a4db9b1b9e684f754 SHA512 c83bdb6de0c98d558b66eaacdcf07baf004559c436201105e97bbdf387743dcefad285528a7de15c75162b38cd3b13d95155304da744a205661adfb692c6d958
diff --git a/app-emulation/virtualbox-extpack-oracle/metadata.xml b/app-emulation/virtualbox-extpack-oracle/metadata.xml
index 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-5.2.32.132073.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.32.132073.ebuild
deleted file mode 100644
index d8c083d99b72..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.32.132073.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 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)"
- 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"
-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-5.2.34.133893.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.34.133893.ebuild
deleted file mode 100644
index 613a651a15e6..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.2.34.133893.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2019 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)"
- 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"
-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.0.12.133076.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.12.133076.ebuild
deleted file mode 100644
index 0252ea9c1872..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.12.133076.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 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.0.14.133895.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.14.133895.ebuild
deleted file mode 100644
index 0252ea9c1872..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.14.133895.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2019 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.50.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild
new file mode 100644
index 000000000000..85967cb38352
--- /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.14-r1.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..14864047f715
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND="
+ || (
+ =app-emulation/virtualbox-${MY_PV}*
+ =app-emulation/virtualbox-kvm-${MY_PV}*
+ )
+"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild
new file mode 100644
index 000000000000..8c44669215ab
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.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 93053c8fdda1..d31f95f4ac26 100644
--- a/app-emulation/virtualbox-guest-additions/Manifest
+++ b/app-emulation/virtualbox-guest-additions/Manifest
@@ -1,7 +1,6 @@
-DIST VirtualBox-5.2.32.tar.bz2 118262502 BLAKE2B f42de23ddbef1bb5472f6730b711452049331cf06c80420205844ea4a46ddb3352e0fd91564d94d018cb03921e7f894b30c79ddb684ad498d3f86dee88bf8994 SHA512 4e98d5df5e9e6445dde268d5eacea82e655ce9b96cd6579a9d470a08a0c066b7cd7e212b276e2671e936b4a73a53ecf9daa666cb3a8b9d7dc353c70c9283505e
-DIST VirtualBox-5.2.34.tar.bz2 118268064 BLAKE2B 2ac0359e35012662e850e16e6ee74c4c00898a02eaa9a3dcf4299c444efaf56c17e02b33f165c37a22598ab3967169d32c03c383ca253aaaaa3d9d5bafc9b50f SHA512 a5f8771ddcdf2271006f2ce7de497cfb73cee46c51b0c761c9e79d03bbdf44441e3f1e4ce569967de5c33c469b7b664901c998ca9107acee7fe0ea83896bf0c2
-DIST VirtualBox-6.0.12.tar.bz2 154250538 BLAKE2B 1c0da29a1d4f4a9ce57280593b219d1fe507fa31dd419d5ef7e62fa8b76bc8b7b21a414edec79ce03b7b4471176e322cb5a0a592a7f61c1f6096c59ca16072ce SHA512 a2182750c6b7e2f7fe8548a923829c05167b739ad84ed025e6cfd85ce787aaa43d41c72c5a93f17e6b976561bae0aa538d81830c52c1d326b75f5a32ba3d441c
-DIST VirtualBox-6.0.14.tar.bz2 154236138 BLAKE2B 18cd508269b2a809ec03b5bacc197131ebd775354e16b9141573ddd037de9ba180e3186347e77067a1767169d2ab1e9ff21590a2702b7705c87cf326204d3424 SHA512 e1a64c6633987e178b368dc17e738c6fbef4ab262c574188819f1186bf33f38d8c5accd6a566279a12ccd3544bab4ee5a1f8dce7c8c56d7373489c5ff7f8556d
-DIST virtualbox-5.2.16-patches-02.tar.xz 3152 BLAKE2B c8d8f3872f544a465c7d1aa07291599307120ac9eabfb299ddd788a11f85ca6c2d84b8e7306ee4ad436270dad0dd39f101ee68a549eac15afd1e3cdc03f23c6c SHA512 85ee8c4045de562d71ab2d761695ea48b6726a6f0c4bcaa2562bb0d147542d3f1a1b5b47cf593a7f22dac1b86f87b59a56bef421dce3e1fa8e5260cd41998450
-DIST virtualbox-5.2.34-patches-01.tar.xz 2960 BLAKE2B e62ab64939e9251a715b3b54b479bc51315acf561ce3d542a4b1358cefb2158353a046003cb0a62e78015f01b626719afb39590090662dd58bfc587bd63cb994 SHA512 25f402c0f96ac25c4d1afdf5d9fff60292caabd2af032a7e2f3e1f70e85bb24f03bbe3625b8bdb7618f77d2890e4c0b9fa7ade2eed590f6658361cca3db4a4b9
-DIST virtualbox-6.0.0_beta2-patches-01.tar.xz 2732 BLAKE2B a138e715d99f135f16ca21c92781bf6cd8913f7f766bb598eddcd63e98280e568e646f56bbd0a3714f273457ca90db0b77ec7940ba25028506a22891f1af7b2d SHA512 954e4b40d6e272efe756ee0965adb4110d45f764433a89080fda7ebaebbc20031f86a3e0027dfdaa1c6a7d6379a1af557cea71512504e4b57b5f5adbfc86b56e
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
+DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
diff --git a/app-emulation/virtualbox-guest-additions/files/vboxguest-4.1.0-log-use-c99.patch b/app-emulation/virtualbox-guest-additions/files/vboxguest-4.1.0-log-use-c99.patch
deleted file mode 100644
index 8f66a0033cc4..000000000000
--- a/app-emulation/virtualbox-guest-additions/files/vboxguest-4.1.0-log-use-c99.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-# https://bugs.gentoo.org/298988
-
---- a/vboxguest/Makefile
-+++ b/vboxguest/Makefile
-@@ -104,7 +104,7 @@
-
- MOD_DEFS = -DVBOX -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_GUEST \
- -DIN_GUEST_R0 -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST \
-- -DVBOX_WITH_HGCM
-+ -DVBOX_WITH_HGCM -DLOG_USE_C99
- ifeq ($(BUILD_TARGET_ARCH),amd64)
- MOD_DEFS += -DRT_ARCH_AMD64
- else
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-6.0.12-linux-5.3+-compatibility.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-6.0.12-linux-5.3+-compatibility.patch
deleted file mode 100644
index ad4b460c8142..000000000000
--- a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-6.0.12-linux-5.3+-compatibility.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-https://bugs.gentoo.org/694614
-https://www.virtualbox.org/ticket/18911#comment:5
-
---- a/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
-+++ b/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
-@@ -2123,7 +2123,9 @@ static int vboxNetFltLinuxEnumeratorCallback(struct notifier_block *self, unsign
- #endif
- if (in_dev != NULL)
- {
-- for_ifa(in_dev) {
-+ struct in_ifaddr *ifa;
-+
-+ for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
- if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address))
- return NOTIFY_OK;
-
-@@ -2137,7 +2139,7 @@ static int vboxNetFltLinuxEnumeratorCallback(struct notifier_block *self, unsign
-
- pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort,
- /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address);
-- } endfor_ifa(in_dev);
-+ }
- }
-
- /*
---- a/Runtime/r0drv/linux/mp-r0drv-linux.c
-+++ b/Runtime/r0drv/linux/mp-r0drv-linux.c
-@@ -283,12 +283,15 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- if (RTCpuSetCount(&OnlineSet) > 1)
- {
- /* Fire the function on all other CPUs without waiting for completion. */
--# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
-+ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
-+# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
- int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
-+ Assert(!rc); NOREF(rc);
- # else
- int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */);
--# endif
- Assert(!rc); NOREF(rc);
-+# endif
- }
- #endif
-
-@@ -326,7 +329,6 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- {
- #ifdef CONFIG_SMP
- IPRT_LINUX_SAVE_EFL_AC();
-- int rc;
- RTMPARGS Args;
-
- RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER;
-@@ -337,14 +339,17 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- Args.cHits = 0;
-
- RTThreadPreemptDisable(&PreemptState);
--# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-- rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
-+ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-+ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+ Assert(rc == 0); NOREF(rc);
- # else /* older kernels */
-- rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
-+ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
-+ Assert(rc == 0); NOREF(rc);
- # endif /* older kernels */
- RTThreadPreemptRestore(&PreemptState);
-
-- Assert(rc == 0); NOREF(rc);
- IPRT_LINUX_RESTORE_EFL_AC();
- #else
- RT_NOREF(pfnWorker, pvUser1, pvUser2);
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-5.2.32.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.2.32.ebuild
deleted file mode 100644
index e3a38e9dd881..000000000000
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.2.32.ebuild
+++ /dev/null
@@ -1,229 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-mod systemd user toolchain-funcs
-
-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-5.2.16-patches-02.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="X"
-
-RDEPEND="
- 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_P}"
-
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${WORKDIR}/vboxguest:${WORKDIR}/vboxguest)
- vboxsf(misc:${WORKDIR}/vboxsf:${WORKDIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${WORKDIR}/vboxvideo::${WORKDIR}/vboxvideo)"
-
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR}"
-}
-
-src_unpack() {
- unpack ${A}
-
- # Create and unpack a tarball with the sources of the Linux guest
- # kernel modules, to include all the needed files
- "${S}"/src/VBox/Additions/linux/export_modules.sh "${WORKDIR}/vbox-kmod.tar.gz"
- unpack ./vbox-kmod.tar.gz
-
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- cd "${S}"
- rm -rf kBuild/bin tools
-}
-
-src_prepare() {
- # PaX fixes (see bug #298988)
- pushd "${WORKDIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-4.1.0-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
-
- # stupid new header references...
- local vboxheader mdir
- for vboxheader in {product,revision,version}-generated.h ; do
- for mdir in vbox{guest,sf} ; do
- ln -sf "${S}"/out/linux.${ARCH}/release/${vboxheader} \
- "${WORKDIR}/${mdir}/${vboxheader}"
- done
- done
-
- # Remove pointless GCC version check
- sed -e '/^check_gcc$/d' -i configure || die
-
- rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || 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 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
- insinto /usr/share/doc/${PF}
- doins "${FILESDIR}"/xorg.conf.vbox
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-}
-
-pkg_preinst() {
- enewgroup vboxguest
- enewuser vboxguest -1 /bin/sh /dev/null vboxguest
- # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
- enewgroup vboxsf
-}
-
-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-5.2.34.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.2.34.ebuild
deleted file mode 100644
index c672d02986f6..000000000000
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.2.34.ebuild
+++ /dev/null
@@ -1,229 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-mod systemd user toolchain-funcs
-
-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-5.2.34-patches-01.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
-
-RDEPEND="
- 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_P}"
-
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${WORKDIR}/vboxguest:${WORKDIR}/vboxguest)
- vboxsf(misc:${WORKDIR}/vboxsf:${WORKDIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${WORKDIR}/vboxvideo::${WORKDIR}/vboxvideo)"
-
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR}"
-}
-
-src_unpack() {
- unpack ${A}
-
- # Create and unpack a tarball with the sources of the Linux guest
- # kernel modules, to include all the needed files
- "${S}"/src/VBox/Additions/linux/export_modules.sh "${WORKDIR}/vbox-kmod.tar.gz"
- unpack ./vbox-kmod.tar.gz
-
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- cd "${S}"
- rm -rf kBuild/bin tools
-}
-
-src_prepare() {
- # PaX fixes (see bug #298988)
- pushd "${WORKDIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-4.1.0-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
-
- # stupid new header references...
- local vboxheader mdir
- for vboxheader in {product,revision,version}-generated.h ; do
- for mdir in vbox{guest,sf} ; do
- ln -sf "${S}"/out/linux.${ARCH}/release/${vboxheader} \
- "${WORKDIR}/${mdir}/${vboxheader}"
- done
- done
-
- # Remove pointless GCC version check
- sed -e '/^check_gcc$/d' -i configure || die
-
- rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || 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 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
- insinto /usr/share/doc/${PF}
- doins "${FILESDIR}"/xorg.conf.vbox
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-}
-
-pkg_preinst() {
- enewgroup vboxguest
- enewuser vboxguest -1 /bin/sh /dev/null vboxguest
- # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
- enewgroup vboxsf
-}
-
-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.14.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.14.ebuild
deleted file mode 100644
index efbf2bd2fdf9..000000000000
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.14.ebuild
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-mod systemd user toolchain-funcs
-
-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.0_beta2-patches-01.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
-
-RDEPEND="
- 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_P}"
-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}"
-}
-
-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
-
- rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || 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 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
- insinto /usr/share/doc/${PF}
- doins "${FILESDIR}"/xorg.conf.vbox
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-}
-
-pkg_preinst() {
- enewgroup vboxguest
- enewuser vboxguest -1 /bin/sh /dev/null vboxguest
- # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
- enewgroup vboxsf
-}
-
-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.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.0.12.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
index 9ac2195b1e09..fe43f7ac3ca9 100644
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.12.ebuild
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
@@ -1,84 +1,86 @@
-# Copyright 1999-2019 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 user 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.0_beta2-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* ]] || \
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 x86"
+IUSE="X +dbus"
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
RDEPEND="
- X? ( x11-apps/xrandr
+ 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/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}"
-}
+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
- popd &>/dev/null || die
-
- pushd src/VBox &>/dev/null || die
- eapply "${FILESDIR}"/virtualbox-guest-additions-6.0.12-linux-5.3+-compatibility.patch
+ 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,55 +89,122 @@ src_prepare() {
# Remove pointless GCC version check
sed -e '/^check_gcc$/d' -i configure || die
- rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || 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 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
@@ -149,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
@@ -172,21 +242,15 @@ src_install() {
doins "${FILESDIR}"/vboxclient.desktop
# sample xorg.conf
- insinto /usr/share/doc/${PF}
- doins "${FILESDIR}"/xorg.conf.vbox
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
systemd_dounit "${FILESDIR}/${PN}.service"
}
-pkg_preinst() {
- enewgroup vboxguest
- enewuser vboxguest -1 /bin/sh /dev/null vboxguest
- # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
- enewgroup vboxsf
-}
-
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."
@@ -206,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 ""
@@ -221,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.14-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..dc971ed17c12
--- /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.18.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.18.ebuild
new file mode 100644
index 000000000000..f704b0857188
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.18.ebuild
@@ -0,0 +1,290 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
+WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
+WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
+
+DOC_CONTENTS="\n
+Please add users to the \"vboxguest\" group so they can\n
+benefit from seamless mode, auto-resize and clipboard.\n
+\n
+The vboxsf group has been added to make automount services work.\n
+These services are part of the shared folders support.\n
+\n
+Please add:\n
+ /etc/init.d/virtualbox-guest-additions\n
+to the default runlevel in order to start\n
+needed services.\n
+\n
+An autostart .desktop file has been installed to start\n
+VBoxClient in desktop sessions.\n
+\n
+You can mount shared folders with:\n
+ mount -t vboxsf <shared_folder_name> <mount_point>\n
+\n
+Warning:\n
+ this ebuild is only needed if you are running gentoo\n
+ inside a VirtualBox Virtual Machine, you don't need\n
+ it to run VirtualBox itself.\n
+\n"
+
+src_prepare() {
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.16/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+
+ if ! use gui ; then
+ elog "The use flag \"gui\" is off, enable it to install the"
+ elog "X Window System drivers and integration."
+ fi
+
+ readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-kvm/Manifest b/app-emulation/virtualbox-kvm/Manifest
new file mode 100644
index 000000000000..36f960878a6f
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/Manifest
@@ -0,0 +1,10 @@
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5
+DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
+DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
+DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
+DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
+DIST virtualbox-kvm-7.0.14_pre20240502.tar.gz 141218 BLAKE2B fd78db709a37fd5239e52a71a5690073631c9376a0a2d6ab9a885a5892ff272d432adeabf03c3317556a9d76cc6819cc5dcd44cd19bd18bd338bb1b84bda5dae SHA512 650bbe3a8c51d7373c25834be129888b624c2d99baebe4105c2a70b1a013cdb7527224778a78f6901b91dea6e22129354ba9269bcd365b9956df5c5b8a77869b
+DIST virtualbox-kvm-7.0.18_pre20240515.tar.gz 114604 BLAKE2B 6db426693022c09bce2d562ee2b8f5ef83eec45b2481e45bc62fe1993b5cd93d83c26c248427515a3f7bd5c3e244d79b2b03bfafd7eaf6256796e3384f1c06d9 SHA512 63e07ce15330714508848b489361650b74970c97e964beef7d4ff5f23c2ad53d3f37860c5297ceae4dfc9d198df94d9531882bb1e870e34ec69494882a4db882
+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-bin/files/10-virtualbox.rules b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules
index 014c164a37f5..014c164a37f5 100644
--- a/app-emulation/virtualbox-bin/files/10-virtualbox.rules
+++ b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules
diff --git a/app-emulation/virtualbox-bin/files/vboxwebsrv-confd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd
index 9ea37a2f0462..fdcd17e9ba0c 100644
--- a/app-emulation/virtualbox-bin/files/vboxwebsrv-confd
+++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd
@@ -1,4 +1,4 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# The host to bind to (defaults to "localhost").
diff --git a/app-emulation/virtualbox-bin/files/vboxwebsrv-initd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd
index e60099701352..f50c3ec099d6 100644
--- a/app-emulation/virtualbox-bin/files/vboxwebsrv-initd
+++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd
@@ -7,11 +7,9 @@ depend() {
}
start() {
- #checkconfig || return $?
-
ebegin "Starting VirtualBox WebService"
start-stop-daemon --start --quiet --user ${VBOXWEBSRV_USER} --pidfile /var/run/vboxwebsrv.pid \
- --background --make-pidfile --exec /opt/bin/vboxwebsrv \
+ --background --make-pidfile --exec /usr/bin/vboxwebsrv \
-- -H ${VBOXWEBSRV_HOST} -p ${VBOXWEBSRV_PORT} -t ${VBOXWEBSRV_TIMEOUT} -i ${VBOXWEBSRV_INTERVAL}
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/files/virtualbox-ose-5-wrapper b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper
index e2249b0e16f9..57b15cc93eba 100644
--- a/app-emulation/virtualbox/files/virtualbox-ose-5-wrapper
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper
@@ -4,7 +4,7 @@
#
#
-# Copyright (C) 2006-2015 Oracle Corporation
+# 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;
@@ -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()!
@@ -84,6 +84,9 @@ case "$APP" in
VirtualBox|virtualbox)
exec "$INSTALL_DIR/VirtualBox" "$@"
;;
+ VirtualBoxVM|virtualboxvm)
+ exec "$INSTALL_DIR/VirtualBoxVM" "$@"
+ ;;
VBoxManage|vboxmanage)
exec "$INSTALL_DIR/VBoxManage" "$@"
;;
@@ -99,6 +102,9 @@ case "$APP" in
VBoxBalloonCtrl|vboxballoonctrl)
exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@"
;;
+ VBoxBugReport|vboxbugreport)
+ exec "$INSTALL_DIR/VBoxBugReport" "$@"
+ ;;
VBoxDTrace|vboxdtrace)
exec "$INSTALL_DIR/VBoxDTrace" "$@"
;;
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_pre20240502.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240502.ebuild
new file mode 100644
index 000000000000..4c808e1dce9f
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240502.ebuild
@@ -0,0 +1,767 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+PATCHES_PV="7.0.14"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PATCHES_PV}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+
+ ORIGIN_PV=${PATCHES_PV}
+ EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
+else
+ ORIGIN_PV=${PV%_pre*}
+ PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+ SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
+fi
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+SRC_URI+="
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ !app-emulation/virtualbox
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
+ # fix help path #891879
+ echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+ # 489208
+ # Cannot patch the whole text, many translations. Use sed instead to replace the command
+ find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+ 's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+ sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+ src/VBox/Frontends/VirtualBox/src/main.cpp \
+ src/VBox/VMM/VMMR3/VM.cpp || die
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+ if ! use nls && ! use gui; then
+ cat >> LocalConfig.kmk <<-EOF || die
+ VBOX_WITH_NLS :=
+ VBOX_WITH_MAIN_NLS :=
+ VBOX_WITH_PUEL_NLS :=
+ VBOX_WITH_VBOXMANAGE_NLS :=
+ EOF
+ fi
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+ export HOST_CC="$(tc-getBUILD_CC)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-kmods
+ --with-kvm
+
+ # this is required for kvm to work.
+ # also this prohibits installation with suid.
+ --disable-hardening
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vde --enable-vde)
+ $(usev vnc --enable-vnc)
+ )
+
+ if use gui || use sdl || use opengl; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 0750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 0750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 0750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ newmenu ${MY_PN}.desktop ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png
+ done
+ newicon ${MY_PN}-48px.png ${PN}.png
+ newicon -s scalable ${MY_PN}.svg ${PN}.png
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${MY_PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 0750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ fi
+ dodoc ${PATCHES_DIR}/README.*
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240515.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240515.ebuild
new file mode 100644
index 000000000000..2b901786ab78
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240515.ebuild
@@ -0,0 +1,768 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+PATCHES_PV="7.0.16"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PATCHES_PV}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+
+ ORIGIN_PV=${PATCHES_PV}
+ EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
+else
+ ORIGIN_PV=${PV%_pre*}
+ PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+ SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
+fi
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+SRC_URI+="
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ !app-emulation/virtualbox
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
+ # fix help path #891879
+ echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+ # 489208
+ # Cannot patch the whole text, many translations. Use sed instead to replace the command
+ find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+ 's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+ sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+ src/VBox/Frontends/VirtualBox/src/main.cpp \
+ src/VBox/VMM/VMMR3/VM.cpp || die
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+ if ! use nls && ! use gui; then
+ cat >> LocalConfig.kmk <<-EOF || die
+ VBOX_WITH_NLS :=
+ VBOX_WITH_MAIN_NLS :=
+ VBOX_WITH_PUEL_NLS :=
+ VBOX_WITH_VBOXMANAGE_NLS :=
+ EOF
+ fi
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+ export HOST_CC="$(tc-getBUILD_CC)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-kmods
+ --with-kvm
+
+ # this is required for kvm to work.
+ # also this prohibits installation with suid.
+ --disable-hardening
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vde --enable-vde)
+ $(usev vnc --enable-vnc)
+ )
+
+ if use gui || use sdl || use opengl; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 0750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 0750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 0750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ newmenu ${MY_PN}.desktop ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png
+ done
+ newicon ${MY_PN}-48px.png ${PN}.png
+ newicon -s scalable ${MY_PN}.svg ${PN}.png
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${MY_PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 0750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ fi
+ dodoc ${PATCHES_DIR}/README.*
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+ sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || die
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild
new file mode 100644
index 000000000000..f501f05d7084
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild
@@ -0,0 +1,768 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+PATCHES_PV="7.0.16"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PATCHES_PV}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+
+ ORIGIN_PV=${PATCHES_PV}
+ EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
+else
+ ORIGIN_PV=${PV%_pre*}
+ PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+ SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
+fi
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+SRC_URI+="
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ !app-emulation/virtualbox
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
+ # fix help path #891879
+ echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+ # 489208
+ # Cannot patch the whole text, many translations. Use sed instead to replace the command
+ find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+ 's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+ sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+ src/VBox/Frontends/VirtualBox/src/main.cpp \
+ src/VBox/VMM/VMMR3/VM.cpp || die
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+ if ! use nls && ! use gui; then
+ cat >> LocalConfig.kmk <<-EOF || die
+ VBOX_WITH_NLS :=
+ VBOX_WITH_MAIN_NLS :=
+ VBOX_WITH_PUEL_NLS :=
+ VBOX_WITH_VBOXMANAGE_NLS :=
+ EOF
+ fi
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+ export HOST_CC="$(tc-getBUILD_CC)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-kmods
+ --with-kvm
+
+ # this is required for kvm to work.
+ # also this prohibits installation with suid.
+ --disable-hardening
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vde --enable-vde)
+ $(usev vnc --enable-vnc)
+ )
+
+ if use gui || use sdl || use opengl; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 0750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 0750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 0750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ newmenu ${MY_PN}.desktop ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png
+ done
+ newicon ${MY_PN}-48px.png ${PN}.png
+ newicon -s scalable ${MY_PN}.svg ${PN}.png
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${MY_PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 0750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ fi
+ dodoc ${PATCHES_DIR}/README.*
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox-modules/Manifest b/app-emulation/virtualbox-modules/Manifest
index 21a6ff22e2c5..617a35d3e008 100644
--- a/app-emulation/virtualbox-modules/Manifest
+++ b/app-emulation/virtualbox-modules/Manifest
@@ -1,4 +1,3 @@
-DIST vbox-kernel-module-src-5.2.32.tar.xz 642428 BLAKE2B 0dda5cb5608c1eed22bea209564d53c5f7eab58ca620db2cc441e3c1ba9ad66609c4ef13df07fd29b691f2941a070f9852e8729cd386081df6a82ede345f33c5 SHA512 fadedab690cb7dee8b9a6747ed711d924bf3bce8999b24e7b64cb8738c53c2fa7372b1a8e8535e7e4ef0235aec02d4a3f1f67cd07d7621934fab684c5163329e
-DIST vbox-kernel-module-src-5.2.34.tar.xz 642756 BLAKE2B 8a1dacc71b0c033130db84f46ab6029839e4c95cd20b6c982716fde9a83070f4597a9418ef2747c5b5714eafd5c1453c67eb1477104cd1185baf408301bc0226 SHA512 2feefa7867c664f1a1af04181e6db4cf2ab18e8a42dc57afe5fe13d35de889c2a88b79eb43642e024d99decfdd79c42891989158016edb09d5001783c4cb7ac3
-DIST vbox-kernel-module-src-6.0.12.tar.xz 669148 BLAKE2B 2291e3fcb9f049ce5657288151d182dfc9a3d6d6e8e1b32047e4b682f35e56f0a5bb5d3ad7efbc98082d2d1823aeb821099e9878b8a237322e8900fb2e2d65de SHA512 e9d8fcbfc076bf4e7d4dc5954e0c24509273c6358ee2de9ddfa87ea650b69fdc31d223595d610c1dd921efd6620ba5285f7f6a10170e90e706bf731e3629dc51
-DIST vbox-kernel-module-src-6.0.14.tar.xz 669396 BLAKE2B e2dc77f33176af16be0fcad8851dd42eb2b7b21da35dc434951e3300e45fec4b516741f6122ae43aed2ee332323221098f047b5206ca63eb7741925a40682728 SHA512 1bcc78dff3305bb7186cec2a844188411a62fe32d0581c4de21843ee513925d5dfc9bd4dedb3cc90f0e1c165c7ae6d856590cc359e36cc8605b164c2c9979380
+DIST vbox-kernel-module-src-6.1.50.tar.xz 680700 BLAKE2B c3a10ce8f3eb7e6c0c05f81cd3c072296557b9f9f6f501bb0aec3f04aabfe1fbb67b553510104139cef290c09ff9e67161085781b8d28c968dfafd15958a1b1a SHA512 7822e421b595263cbdaae08103255742360ca7ab0c385818ec895f10570c5b9ed5c7614742d8fa8bc2414cd426907cd1c49d735cde8caf9d2b7692898058f592
+DIST vbox-kernel-module-src-7.0.14.tar.xz 718532 BLAKE2B 64df92802ab5e9fa3fdf9ba3e3b13004dc687dd2d5f3d41d24354f116a79000fe6ea07bfa8877113ab263d4f75210b600e61d983616f66b6e96324b3ea6a4b2d SHA512 2a0b9a0bbcb0a21a580000309be3a71722ee3cb9a63a5e12cd0d8a391b3832a6cc92ff806f8ca4b5fcb80fed02a44aa4de6a2d49f4583d704cec0902572a68bb
+DIST vbox-kernel-module-src-7.0.18.tar.xz 719604 BLAKE2B 44e9d895791a7ff50681dd8860456a87078b41a4eb3005a6b249f9b34c37de709e190cbd6f352d21010ddcb9d8d1c35303bafd765e999664288df9e0ead94e6c SHA512 1cc17e302ef8251abd08a078abf11fede242154b0bb78d03f8d7c2821ba7cff410bd255802316a2f13100884b35a6f14fdf0b594304bd041521b66d264f51b77
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
deleted file mode 100644
index 6251e33ce59e..000000000000
--- a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- vboxdrv/SUPDrvIDC.h
-+++ vboxdrv/SUPDrvIDC.h
-@@ -160,7 +160,7 @@ typedef struct SUPDRVIDCREQGETSYM
- {
- /** The symbol address. */
- PFNRT pfnSymbol;
-- } Out;
-+ } __no_const Out;
- } u;
- } SUPDRVIDCREQGETSYM;
- /** Pointer to a SUPDRV IDC get symbol request. */
---- vboxnetflt/include/VBox/intnet.h
-+++ vboxnetflt/include/VBox/intnet.h
-@@ -783,7 +783,7 @@ typedef struct INTNETTRUNKFACTORY
- DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(struct INTNETTRUNKFACTORY *pIfFactory, const char *pszName,
- PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags,
- PINTNETTRUNKIFPORT *ppIfPort));
--} INTNETTRUNKFACTORY;
-+} __no_const INTNETTRUNKFACTORY;
- /** Pointer to the trunk factory. */
- typedef INTNETTRUNKFACTORY *PINTNETTRUNKFACTORY;
-
---- vboxnetflt/linux/VBoxNetFlt-linux.c
-+++ vboxnetflt/linux/VBoxNetFlt-linux.c
-@@ -840,7 +840,7 @@ typedef struct ethtool_ops OVR_OPSTYPE;
-
- # else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) */
-
--typedef struct net_device_ops OVR_OPSTYPE;
-+typedef net_device_ops_no_const OVR_OPSTYPE;
- # define OVR_OPS netdev_ops
- # define OVR_XMIT pOrgOps->ndo_start_xmit
-
---- vboxpci/include/VBox/rawpci.h
-+++ vboxpci/include/VBox/rawpci.h
-@@ -545,7 +545,7 @@ typedef struct RAWPCIFACTORY
- DECLR0CALLBACKMEMBER(void, pfnDeinitVm,(PRAWPCIFACTORY pFactory,
- PVM pVM,
- PRAWPCIPERVM pVmData));
--} RAWPCIFACTORY;
-+} __no_const RAWPCIFACTORY;
-
- #define RAWPCIFACTORY_UUID_STR "ea089839-4171-476f-adfb-9e7ab1cbd0fb"
-
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-6.0.12-linux-5.3+-compatibility.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-6.0.12-linux-5.3+-compatibility.patch
deleted file mode 100644
index ff573dd69b67..000000000000
--- a/app-emulation/virtualbox-modules/files/virtualbox-modules-6.0.12-linux-5.3+-compatibility.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-https://bugs.gentoo.org/694560
-
-https://www.virtualbox.org/ticket/18911#comment:5
-
---- a/vboxnetflt//linux/VBoxNetFlt-linux.c
-+++ b/vboxnetflt//linux/VBoxNetFlt-linux.c
-@@ -2123,7 +2123,9 @@ static int vboxNetFltLinuxEnumeratorCallback(struct notifier_block *self, unsign
- #endif
- if (in_dev != NULL)
- {
-- for_ifa(in_dev) {
-+ struct in_ifaddr *ifa;
-+
-+ for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
- if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address))
- return NOTIFY_OK;
-
-@@ -2137,7 +2139,7 @@ static int vboxNetFltLinuxEnumeratorCallback(struct notifier_block *self, unsign
-
- pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort,
- /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address);
-- } endfor_ifa(in_dev);
-+ }
- }
-
- /*
---- a/vboxdrv/r0drv/linux/mp-r0drv-linux.c
-+++ b/vboxdrv/r0drv/linux/mp-r0drv-linux.c
-@@ -283,12 +283,15 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- if (RTCpuSetCount(&OnlineSet) > 1)
- {
- /* Fire the function on all other CPUs without waiting for completion. */
--# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
-+ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
-+# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
- int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
-+ Assert(!rc); NOREF(rc);
- # else
- int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */);
--# endif
- Assert(!rc); NOREF(rc);
-+# endif
- }
- #endif
-
-@@ -326,7 +329,6 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- {
- #ifdef CONFIG_SMP
- IPRT_LINUX_SAVE_EFL_AC();
-- int rc;
- RTMPARGS Args;
-
- RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER;
-@@ -337,14 +339,17 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
- Args.cHits = 0;
-
- RTThreadPreemptDisable(&PreemptState);
--# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-- rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
-+ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
-+ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+ Assert(rc == 0); NOREF(rc);
- # else /* older kernels */
-- rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
-+ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
-+ Assert(rc == 0); NOREF(rc);
- # endif /* older kernels */
- RTThreadPreemptRestore(&PreemptState);
-
-- Assert(rc == 0); NOREF(rc);
- IPRT_LINUX_RESTORE_EFL_AC();
- #else
- RT_NOREF(pfnWorker, pvUser1, pvUser2);
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-r1
index c8c79a249887..39b882494993 100644
--- a/app-emulation/virtualbox-modules/files/virtualbox.conf
+++ b/app-emulation/virtualbox-modules/files/virtualbox.conf-r1
@@ -1,4 +1,3 @@
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-5.2.32.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.32.ebuild
deleted file mode 100644
index c0ab27d0eef5..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-5.2.32.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2019 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 user
-
-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"
-KEYWORDS="amd64 x86"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
-
-pkg_setup() {
- enewgroup vboxusers
- 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/
- doins "${FILESDIR}"/virtualbox.conf
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-5.2.34.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-5.2.34.ebuild
deleted file mode 100644
index c4b01a1b3f96..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-5.2.34.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2019 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 user
-
-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"
-KEYWORDS="~amd64 ~x86"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
-
-pkg_setup() {
- enewgroup vboxusers
- 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/
- doins "${FILESDIR}"/virtualbox.conf
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.12.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.0.12.ebuild
deleted file mode 100644
index 90528f502491..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.12.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2019 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 user
-
-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"
-
-PATCHES=( "${FILESDIR}"/${PN}-6.0.12-linux-5.3+-compatibility.patch )
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
-
-pkg_setup() {
- enewgroup vboxusers
- 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/
- doins "${FILESDIR}"/virtualbox.conf
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.14.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.0.14.ebuild
deleted file mode 100644
index 7257cb3b5812..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.14.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2019 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 user
-
-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"
-BUILD_TARGET_ARCH="${ARCH}"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
-
-pkg_setup() {
- enewgroup vboxusers
- 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/
- doins "${FILESDIR}"/virtualbox.conf
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild
new file mode 100644
index 000000000000..83d34d6f3df3
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..83f50d5bdec4
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild
new file mode 100644
index 000000000000..08e22e5e0379
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 93053c8fdda1..05788a2aa308 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,7 +1,10 @@
-DIST VirtualBox-5.2.32.tar.bz2 118262502 BLAKE2B f42de23ddbef1bb5472f6730b711452049331cf06c80420205844ea4a46ddb3352e0fd91564d94d018cb03921e7f894b30c79ddb684ad498d3f86dee88bf8994 SHA512 4e98d5df5e9e6445dde268d5eacea82e655ce9b96cd6579a9d470a08a0c066b7cd7e212b276e2671e936b4a73a53ecf9daa666cb3a8b9d7dc353c70c9283505e
-DIST VirtualBox-5.2.34.tar.bz2 118268064 BLAKE2B 2ac0359e35012662e850e16e6ee74c4c00898a02eaa9a3dcf4299c444efaf56c17e02b33f165c37a22598ab3967169d32c03c383ca253aaaaa3d9d5bafc9b50f SHA512 a5f8771ddcdf2271006f2ce7de497cfb73cee46c51b0c761c9e79d03bbdf44441e3f1e4ce569967de5c33c469b7b664901c998ca9107acee7fe0ea83896bf0c2
-DIST VirtualBox-6.0.12.tar.bz2 154250538 BLAKE2B 1c0da29a1d4f4a9ce57280593b219d1fe507fa31dd419d5ef7e62fa8b76bc8b7b21a414edec79ce03b7b4471176e322cb5a0a592a7f61c1f6096c59ca16072ce SHA512 a2182750c6b7e2f7fe8548a923829c05167b739ad84ed025e6cfd85ce787aaa43d41c72c5a93f17e6b976561bae0aa538d81830c52c1d326b75f5a32ba3d441c
-DIST VirtualBox-6.0.14.tar.bz2 154236138 BLAKE2B 18cd508269b2a809ec03b5bacc197131ebd775354e16b9141573ddd037de9ba180e3186347e77067a1767169d2ab1e9ff21590a2702b7705c87cf326204d3424 SHA512 e1a64c6633987e178b368dc17e738c6fbef4ab262c574188819f1186bf33f38d8c5accd6a566279a12ccd3544bab4ee5a1f8dce7c8c56d7373489c5ff7f8556d
-DIST virtualbox-5.2.16-patches-02.tar.xz 3152 BLAKE2B c8d8f3872f544a465c7d1aa07291599307120ac9eabfb299ddd788a11f85ca6c2d84b8e7306ee4ad436270dad0dd39f101ee68a549eac15afd1e3cdc03f23c6c SHA512 85ee8c4045de562d71ab2d761695ea48b6726a6f0c4bcaa2562bb0d147542d3f1a1b5b47cf593a7f22dac1b86f87b59a56bef421dce3e1fa8e5260cd41998450
-DIST virtualbox-5.2.34-patches-01.tar.xz 2960 BLAKE2B e62ab64939e9251a715b3b54b479bc51315acf561ce3d542a4b1358cefb2158353a046003cb0a62e78015f01b626719afb39590090662dd58bfc587bd63cb994 SHA512 25f402c0f96ac25c4d1afdf5d9fff60292caabd2af032a7e2f3e1f70e85bb24f03bbe3625b8bdb7618f77d2890e4c0b9fa7ade2eed590f6658361cca3db4a4b9
-DIST virtualbox-6.0.0_beta2-patches-01.tar.xz 2732 BLAKE2B a138e715d99f135f16ca21c92781bf6cd8913f7f766bb598eddcd63e98280e568e646f56bbd0a3714f273457ca90db0b77ec7940ba25028506a22891f1af7b2d SHA512 954e4b40d6e272efe756ee0965adb4110d45f764433a89080fda7ebaebbc20031f86a3e0027dfdaa1c6a7d6379a1af557cea71512504e4b57b5f5adbfc86b56e
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
+DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
+DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
+DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
+DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
+DIST virtualbox-patches-7.1.0_pre20240419.tar.bz2 5316 BLAKE2B 1a890b7d19cb252c7801b68c299676e2cd7a209a57a03cb39025e1a969a1c73142eb96154dae8469405f93d61969154428ea0fe3950a00d8a0a69dc8aefb4fc9 SHA512 ce4f850ce87652ef4eab039332048333949c94f0627bec8eb00d9689d7f8edcce372e2185ef8bbda9aef97781a2008b7c6464468cc38f3454dee862efc0ecdc9
diff --git a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
deleted file mode 100644
index 7eb1e1793a7f..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-2017-02-20 Quentin Minster <quentin@minster.io>
-
- #https://bugs.gentoo.org/show_bug.cgi?id=591582
- * Config.kmk: add paxmark befor VBOX_VBOXTPG get run.
- * src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run.
- * src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run.
-
---- a/Config.kmk
-+++ b/Config.kmk 2016-09-21 02:22:28
-@@ -3719,11 +3719,13 @@
- $(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \
- -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_HDR_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED :=
- TOOL_VBoxTpG_DTRACE_OBJ_FLAGS := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_OBJ_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) \
- $(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
- $(flags) \
-@@ -3738,6 +3740,7 @@
- TOOL_VBoxTpG-Disabled_DTRACE_DEPORD = $(VBOX_VBOXTPG)
- TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h
- define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES)
-@@ -3752,6 +3755,7 @@
- TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS =
- define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS
- $(TOOL_StandardDTrace_DTRACE_HDR_CMDS)
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \
- $(filter-out -C, $(filter-out -h,$(flags))) \
- -o "$(out).tmp" -s "$(source)"
---- a/src/VBox/VMM/Makefile.kmk 2018-04-10 15:26:24.622867735 +0300
-+++ b/src/VBox/VMM/Makefile.kmk 2018-04-10 15:24:35.901998796 +0300
-@@ -896,6 +896,7 @@
- $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
- $$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- $$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2)
-+ $$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)"
- $$(QUIET)$(VBOX_VBOXCPP) -d \
- -D VBOX_FOR_DTRACE_LIB \
- -D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
---- a/src/VBox/Main/Makefile.kmk 2018-04-10 15:26:15.292793067 +0300
-+++ b/src/VBox/Main/Makefile.kmk 2018-04-10 15:25:14.042303341 +0300
-@@ -607,6 +607,7 @@
- $(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@)
- $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- $(call MSG_GENERATE,USBIdDatabase,$@,$(USBIdDatabaseGenerator_1_TARGET))
-+ $(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)"
- $(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^)
-
- BLDPROGS += USBIdDatabaseGenerator
diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.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/files/virtualbox-ose.desktop-2 b/app-emulation/virtualbox/files/virtualbox-ose.desktop-2
deleted file mode 100644
index ce798dacbdf3..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-ose.desktop-2
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Name=Oracle xVM VirtualBox
-Type=Application
-Comment=Run several virtual systems on a single host computer
-Exec=VirtualBox
-TryExec=VirtualBox
-Icon=virtualbox
-Categories=System;Emulator;
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-5.2.32.ebuild b/app-emulation/virtualbox/virtualbox-5.2.32.ebuild
deleted file mode 100644
index a55c3b9db734..000000000000
--- a/app-emulation/virtualbox/virtualbox-5.2.32.ebuild
+++ /dev/null
@@ -1,497 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-inherit flag-o-matic gnome2-utils java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg-utils
-
-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}-5.2.16-patches-02.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-RDEPEND="!app-emulation/virtualbox-bin
- ~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? ( virtual/opengl media-libs/freeglut )
- 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 )
- ${PYTHON_DEPS}"
-DEPEND="${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- 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
- )
- !headless? ( x11-libs/libXinerama )
- java? ( >=virtual/jdk-1.6 )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
- ${PYTHON_DEPS}"
-RDEPEND="${RDEPEND}
- 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
-
- rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || die
- 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 --build-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_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
- TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
- TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
- TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
- VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- all
-}
-
-src_install() {
- local binpath="release"
- use debug && binpath="debug"
- cd "${S}"/out/linux.${ARCH}/${binpath}/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each fwfile size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binray 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-5-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{ExtPackHelperApp,Manage,SVC,Tunctl,XPCOMIPCD} *so *r0 ${rcfiles} ; 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)
- pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
- for fwfile in VBoxEFI{32,64}.fd ; do
- vbox_inst ${fwfile} 0644
- done
- popd &>/dev/null || die
-
- # 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{headless,manage} VBox{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 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 4750
- pax-mark -m "${ED%/}"${vbox_inst_path}/VirtualBox
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED%/}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox VirtualBox ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${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
-
- if use vnc ; then
- insinto ${vbox_inst_path}/ExtensionPacks
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${vbox_inst_path}/ExtensionPacks
- 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_postinst() {
- gnome2_icon_cache_update
- xdg_desktop_database_update
-
- 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() {
- gnome2_icon_cache_update
- xdg_desktop_database_update
-}
diff --git a/app-emulation/virtualbox/virtualbox-5.2.34.ebuild b/app-emulation/virtualbox/virtualbox-5.2.34.ebuild
deleted file mode 100644
index 99e428abb937..000000000000
--- a/app-emulation/virtualbox/virtualbox-5.2.34.ebuild
+++ /dev/null
@@ -1,496 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-inherit flag-o-matic gnome2-utils java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg-utils
-
-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}-5.2.34-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="alsa debug doc dtrace headless java libressl lvm pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-RDEPEND="!app-emulation/virtualbox-bin
- ~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=
- media-libs/opus
- 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? ( virtual/opengl media-libs/freeglut )
- 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 )
- udev? ( >=virtual/udev-171 )
- vnc? ( >=net-libs/libvncserver-0.9.9 )
- ${PYTHON_DEPS}"
-DEPEND="${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- 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
- )
- !headless? ( x11-libs/libXinerama )
- java? ( >=virtual/jdk-1.6 )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
- ${PYTHON_DEPS}"
-RDEPEND="${RDEPEND}
- 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
-
- rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || die
- 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 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_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
- TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
- TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
- TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
- VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- all
-}
-
-src_install() {
- local binpath="release"
- use debug && binpath="debug"
- cd "${S}"/out/linux.${ARCH}/${binpath}/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each fwfile size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binray 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-5-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{ExtPackHelperApp,Manage,SVC,Tunctl,XPCOMIPCD} *so *r0 ${rcfiles} ; 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)
- pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
- for fwfile in VBoxEFI{32,64}.fd ; do
- vbox_inst ${fwfile} 0644
- done
- popd &>/dev/null || die
-
- # 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{headless,manage} VBox{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 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 4750
- pax-mark -m "${ED%/}"${vbox_inst_path}/VirtualBox
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED%/}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox VirtualBox ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${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
-
- if use vnc ; then
- insinto ${vbox_inst_path}/ExtensionPacks
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${vbox_inst_path}/ExtensionPacks
- 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_postinst() {
- gnome2_icon_cache_update
- xdg_desktop_database_update
-
- 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() {
- gnome2_icon_cache_update
- xdg_desktop_database_update
-}
diff --git a/app-emulation/virtualbox/virtualbox-6.0.12.ebuild b/app-emulation/virtualbox/virtualbox-6.0.12.ebuild
deleted file mode 100644
index 7b77c1872296..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.0.12.ebuild
+++ /dev/null
@@ -1,510 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-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.0_beta2-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
- ~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? ( virtual/opengl media-libs/freeglut )
- 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 )
- 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
-
- rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || die
- 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_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
- TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
- TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
- TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
- 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.0.14.ebuild b/app-emulation/virtualbox/virtualbox-6.0.14.ebuild
deleted file mode 100644
index 7b77c1872296..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.0.14.ebuild
+++ /dev/null
@@ -1,510 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-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.0_beta2-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
- ~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? ( virtual/opengl media-libs/freeglut )
- 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 )
- 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
-
- rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || die
- 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_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
- TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
- TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
- TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
- 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.50-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
new file mode 100644
index 000000000000..a41107315c77
--- /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.14-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
new file mode 100644
index 000000000000..5b6ec05dfcd1
--- /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.18.ebuild b/app-emulation/virtualbox/virtualbox-7.0.18.ebuild
new file mode 100644
index 000000000000..bf56c96cb843
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.18.ebuild
@@ -0,0 +1,741 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="
+ https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-7.0.16/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
+ # fix help path #891879
+ echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+ # 489208
+ # Cannot patch the whole text, many translations. Use sed instead to replace the command
+ find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+ 's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+ sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+ src/VBox/Frontends/VirtualBox/src/main.cpp \
+ src/VBox/VMM/VMMR3/VM.cpp || die
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+ if ! use nls && ! use gui; then
+ cat >> LocalConfig.kmk <<-EOF || die
+ VBOX_WITH_NLS :=
+ VBOX_WITH_MAIN_NLS :=
+ VBOX_WITH_PUEL_NLS :=
+ VBOX_WITH_VBOXMANAGE_NLS :=
+ EOF
+ fi
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+ export HOST_CC="$(tc-getBUILD_CC)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-kmods
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vde --enable-vde)
+ $(usev vnc --enable-vnc)
+ )
+
+ if use gui || use sdl || use opengl; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 4750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 4750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 4750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ domenu ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+ done
+ newicon ${PN}-48px.png ${PN}.png
+ doicon -s scalable ${PN}.svg
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 4750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ fi
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+ sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || die
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-9999.ebuild
new file mode 100644
index 000000000000..7c503c7ea1c8
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-9999.ebuild
@@ -0,0 +1,769 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Important!
+# This compiles the latest svn version.
+# It also compiles the kernel modules. Does not depend on virtualbox-modules.
+# It is not meant to be used, might be very unstable.
+# Upstream seem to have added support for python 3.12, but it crashes.
+#
+# USE=doc does not work for now.
+#
+#
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-mod-r1 multilib optfeature pax-utils \
+ python-single-r1 subversion tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+BASE_PV=7.0.16
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+ESVN_REPO_URI="https://www.virtualbox.org/svn/vbox/trunk"
+SRC_URI="
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0_pre20240419.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) )
+"
+S="${WORKDIR}/trunk"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ app-arch/xz-utils
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtbase:6[widgets]
+ dev-qt/qtscxml:6
+ dev-qt/qttools:6[assistant]
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ x11-libs/libXt
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? (
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !app-emulation/virtualbox-modules
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/qttools:6[linguist] )
+ nls? ( dev-qt/qttools:6[linguist] )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-7.1.0_pre20240419/patches
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+ linux-mod-r1_pkg_setup
+}
+
+src_unpack() {
+ subversion_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
+ # fix help path #891879
+ echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+ # 489208
+ # Cannot patch the whole text, many translations. Use sed instead to replace the command
+ find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+ 's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+ sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+ src/VBox/Frontends/VirtualBox/src/main.cpp \
+ src/VBox/VMM/VMMR3/VM.cpp || die
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+ if ! use nls && ! use gui; then
+ cat >> LocalConfig.kmk <<-EOF || die
+ VBOX_WITH_NLS :=
+ VBOX_WITH_MAIN_NLS :=
+ VBOX_WITH_PUEL_NLS :=
+ VBOX_WITH_VBOXMANAGE_NLS :=
+ EOF
+ fi
+}
+
+src_configure() {
+ tc-ld-disable-gold # bug #488176
+
+ tc-export AR CC CXX LD RANLIB
+ export HOST_CC="$(tc-getBUILD_CC)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-kmods
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vde --enable-vde)
+ $(usev vnc --enable-vnc)
+ )
+
+ if use gui || use sdl || use opengl; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc:"out/linux.${ARCH}/release/bin/src" )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins - virtualbox.conf <<-EOF
+ vboxdrv
+ vboxnetflt
+ vboxnetadp
+ EOF
+
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 4750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 4750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 4750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ domenu ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+ done
+ newicon ${PN}-48px.png ${PN}.png
+ doicon -s scalable ${PN}.svg
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 4750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${PN}-help-${BASE_PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ fi
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+
+ # upstream added a /bin/sh stub here
+ # use /usr/bin/python3, python_doscript will take care of it
+ sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir%vboxapi*}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${BASE_PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/vkd3d-proton/Manifest b/app-emulation/vkd3d-proton/Manifest
new file mode 100644
index 000000000000..816f990db156
--- /dev/null
+++ b/app-emulation/vkd3d-proton/Manifest
@@ -0,0 +1,8 @@
+DIST dxil-spirv-b03d68d6ed30e87a3bcef9a861fa3c6b4429e5cc.tar.gz 915224 BLAKE2B 137f4b187300261d922ecc66542c5b38e6fa825cbb4e9adb43a7ca15ea9b968e24111bcaf9142782a44a6a7abb342a4ccfbd863af3c01287936e47b6162b7139 SHA512 890c0a0e638b9bffc9ce2cee871c60a2a552d691e60ad6ffa087dfae988e559151b7025e025e4346d1389b7d8f39f8b9bf93e43c7427c883662c1d6c86ff9b1a
+DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959
+DIST vkd3d-proton-2.12.tar.gz 2109289 BLAKE2B 805298efa2f49a82dcc4b989856fb24469a1de9a1d175d5844be3e72187d14f3454ced52bcd65f557ec6776fda00112f4b9849dd48679e10aadf277d82b928ca SHA512 fbd4102fc9917a8e7c28edcaa500c26352a0652a008da453108cd21325ef2c757b5c0842a50e2e5ea6efcacdabe86b2ce570647313d0036967a135b01850fbe8
+DIST vkd3d-proton-2.6.tar.gz 1271948 BLAKE2B 02d2574a66614613748fe3471a6fd5aac2650fdae15a17b17ea2ed028fa53a0579b866e7240036a26108afc343395826474bb99e015b9299c2abec811bb872ab SHA512 6f27d213652e2380a9ba4534ac9ffe4b752b4608fbc2e8acd273fa151ab19ad0b132e3436384d2b8591cd1a59f0b69d342c893dc3a64be85188b5e3274bcf3f1
+DIST vkd3d-proton-dxil-spirv-b537bbb91b.tar.gz 631130 BLAKE2B 99f40c5efde87d0af86542b427e5b0429be68ca69ba0c2b6d10a821811756d8dadff4449f268ae404f8ace09a91b3e8aaa135e534a77c0239e58c1a970a044cc SHA512 3c20090b7a1b53c30fd4967622fc7384e1bcc504c30d8075068b87dad1bd2c6f4a12459bf42e61bf76b9dd454ec17a9d529f74ab0d5583627e966d94bb341dc3
+DIST vkd3d-proton-spirv-headers-ae217c1780.tar.gz 415130 BLAKE2B 0c6444c4c1cb43b9c69757d7c2257ce2fe1bc6be308341f3189766f120994e4920bc738b737d9eefc299359dab568fb8809782e3663dd589c0e4d13aecb8873a SHA512 02cf1d63b29e48ef0efe489eb32237ba2f9f4bf58a182b00dc96aab18faba94de79283398e9e945cd81130f83fff228c59b04e496716ea9ccc148a5f4465282c
+DIST vkd3d-proton-vulkan-headers-83e1a9ed8c.tar.gz 1299014 BLAKE2B 0b1e635aaa6eebec3525b13698a064e0e5b8a78829a772cbe9e1890148059bf396bc5c830e8d6ee3070a3343775991642565283994c65acfa0d82a91590b7d84 SHA512 ecb2158cad55edb4ba069383668f3b311a2f6aa6777b5b7ed94795d454622426ee34fee52b13c97d2f07b5b2f965815ee61a0203b76a0b0d2c708a4786d06b96
+DIST vulkan-headers-f030d9dd8ca297b84b10330cee87f72acc3b0aab.tar.gz 2255357 BLAKE2B 07cfa8ccdd26966116e7c35e0d350be94936469f2b9af77c84b8c61495b6ba76813047b5d26bba1fabd44a8f35396b32b6ad32c3b93b0b1a818ce9ed45f93db2 SHA512 6adf81d16d07710322b7c92a0e0436ee33be94d55116e3c460eabb4196a180f8c7b481c19a84a8bbea4e98dda6cf63ff2876f196348921a0c1d9c8c1005cd521
diff --git a/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch
new file mode 100644
index 000000000000..413852460d54
--- /dev/null
+++ b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch
@@ -0,0 +1,14 @@
+Dirty workaround to try syswow64 if paths are the same. This can happen
+with USE=wow64 on wine where wine64 is a symlink to wine.
+
+TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged
+separately (shared) as upstream hardly support these (dxvk dropped altogether).
+--- a/setup_vkd3d_proton.sh
++++ b/setup_vkd3d_proton.sh
+@@ -81,2 +81,6 @@
+ win32_sys_path="${win32_sys_path/$'\r'/}"
++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then
++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null)
++ win32_sys_path="${win32_sys_path/$'\r'/}"
++ fi
+ fi
diff --git a/app-emulation/vkd3d-proton/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.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 dd36273926d6..e46132d73bb4 100644
--- a/app-emulation/vkd3d/Manifest
+++ b/app-emulation/vkd3d/Manifest
@@ -1,2 +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.11.tar.xz 1016132 BLAKE2B 634f5f99f7605814d36a90270ddb82a6a11e2b6bfc2cdc6a6d4d31b730b9d5739479770fe00704f27a726c39aa115272c0a79dbcff8baf251188a4b3ead8faeb SHA512 2b14f7f8d4d58c2bfc6c30aa0d24b6789c0887b2869cfb6be98d03b7b001a74a1fbe24439229fa4d3a618a69fe8eeb77d7a520a16276ae494fe6ee2357dd31d0
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.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-9999.ebuild b/app-emulation/vkd3d/vkd3d-9999.ebuild
deleted file mode 100644
index 56cb485915fe..000000000000
--- a/app-emulation/vkd3d/vkd3d-9999.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-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"
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/wine-any/Manifest b/app-emulation/wine-any/Manifest
deleted file mode 100644
index 154b718a4988..000000000000
--- a/app-emulation/wine-any/Manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
-DIST gentoo-wine-patches-20190316.tar.xz 58848 BLAKE2B 76e66749638589dd6d6eceb4b78690483d14353597a4e47fe9e5325d8bdb2bceff66040c110f63b8bae698bc5838c280c048ff7375ba2ed8cc387cbe0422c79a SHA512 de2cf844ae686144c3f95f0a360c7fa8a62185500758f994b5a65836798bdc3092138dcd9c36d0267a6fcfdc13585258d31b281244a97b45965f40e0f2b29eda
-DIST wine-3.20.tar.xz 21541928 BLAKE2B 9183dacd1c6ec15ae5283eca3d17db5a869bcba9a93800a422f0dea5d9cfb5d3124a3e942e8b6487cd4ba31cfeacdd66de39128dd66d64e1226d265eae922d3a SHA512 fb66d1d4b427f46dd048b13e53bcd15a5eaeb19039221fe98ec771140c33b3c245a974e52242eab5731ffa0de15f5932204032fe24f86e1a313ff8f11da59cc4
-DIST wine-3.21.tar.xz 21573872 BLAKE2B 54d8733b19f1377f856c9496f6263eef1916e03caf82c6fcfa39b3e7bec1fecd87466dc92f3739d704a9161a32d9ee680b2cc5e5cdf27a582dc1d89d0b1a6639 SHA512 dd64a6778bf1b848c8fe14dc26cfca21f6c1c92714ca1b2e932a28560a2adc1f69aa1b2cba250f49a5df4f91a4accde677a2afaf960c200d3998eac1957b5c6b
-DIST wine-4.0.tar.xz 21644692 BLAKE2B 9c426ef2249c16e908a3617c2844d8b12a2df843721338b1cfb69459815b902cfa0ddf3d74c09dc900fb2ceb003e54d97a7c0afaac51a9caab7d21beb82e26c3 SHA512 7607fa7a3d5f7bcd3d8c4c9e7bb6e1987466110bbfc672782ebe57c6d9da348c58e76abf40b0a70c725dfd703163db6e194ee0e3db11a47b6b60e225163308dd
-DIST wine-4.1.tar.xz 21680916 BLAKE2B 1a040606e34e1aec6f63d9692c6cbf915f5b32c817116aed68203e6bdedb8cb129dad440f7e51e9fb2ebaf1aa537d1584333f06b8b2c5d68f9ff37921d5b8b95 SHA512 2b28fc82111552009a042d682ea8f4e54d90f14bb99f1fbe12732090e7562527c229683562630edada0b1f4143de226734337b20d1b23d711191dcc0a834e4dc
-DIST wine-d3d9-3.20.tar.gz 50539 BLAKE2B 53549364113f9dd9d7c9383ec74cc7eafec61dca5bf1943bd87e51b810e6d85d5d0f86f426a22042ee8a23eb21b6b13c691c43d67de19e66550dd0abc3c0319b SHA512 67d452d46807ee9ca44414326a9b2b90403b5c4c611e34ade03a9b624066b62b056f3adde2c0b6d6bdd73066775a1b3eb43d7cf52f82456eb979f788c3e591b4
-DIST wine-d3d9-3.21.tar.gz 50545 BLAKE2B fec93df7a464feba5ebd5c1f9f9b511a89065cc668122c4ddb2c91027b68e2aa93fe58832c4e143832c5b5f4ace57c640ab218525f0749bd5f1c632e80009660 SHA512 b2263d26b671b45a59c03ca5dc88aff35444e4d47caccf3de1493fa86ac834bb178819b9a80aa52838e510f814ed404e6c3ce9724aa6eea6a6d5f019253e6248
-DIST wine-d3d9-4.0.tar.gz 50535 BLAKE2B a5815c4d1b8ea34a0afac565b01aaaa6af418a7d84bf12c4c0591e316d31987770d1d5e99837f1c63e91810db821a2cb76cba1b97c71d5fcee8060a48915e83d SHA512 98e2d4d47fdc376e4e8fed0624657d40ea0a077998baab1d89ef0320714e66f4899414b04fa747b78c172fb85732e9376553c0b20cfd1ae0807cb3de58cfe78a
-DIST wine-d3d9-4.1.tar.gz 50520 BLAKE2B 53f1c4a7fe077776d648a927e75f11a8fa627d3fa15b01e22c18da7a4489ebc883470901e75afc99e07b85201ec05132be4c357923b8ab2ce6ac5f0beedeadd0 SHA512 2e8e3dca86a919a6e6bbdf87f2ffa67f90febcd4ba11351a20785c8dcf732077e1ae1ec0f34f3a4743cb23bb3d8483fd67d9e746e2887d000dd9f0220404b672
-DIST wine-staging-3.20.tar.gz 9950555 BLAKE2B ee66217b708287bd95d61e23fb92009d927a75556f22e89b9c5af66cb6c6445f77a1c3153da168da92ebac58606843c4639f1a99bd5089941595181f390980f0 SHA512 4b92e53e84046d99c3f7ec5e0d0d7e62fdb767b1c44e23605125744686439fe62991c8adea941950b390a01d251ecbb79f3b329cfe5a1b1fbc76c5372283579d
-DIST wine-staging-3.21.tar.gz 9945982 BLAKE2B 988927c644e9abf472c42021cae39f38cdae24b397072fb53dc803da32bc80e8b6256554d787db0b6bffafac4104a9abf4ab8fa6e78fd0a308bf8906d658a65d SHA512 17f8194954a420d1424d564ba9ad5e6d4dd574dc38da4895d5b6740c1990f8655cb573bd57c77ace2c78c71da4782b511a5ac937ca1f0fc958e3c925abaeefde
-DIST wine-staging-4.0.tar.gz 9945756 BLAKE2B bfd27d5677d01b4a14c4ef593b741b6fa6e75194de04a90659ecceaa8b087d594cafdd0a53cc2ad2d05e9c73928d70d0b6681ac0052df79f7b45cbb370b31d3d SHA512 4c2277449be17b83235bab7898818a886e84e82c0c5eb8216a5bc42e3d9a0e1dcf09d4522e1165d503fd9237673fa91c2c07d837cde58897f1b6fc8bc6fa5d33
-DIST wine-staging-4.1.tar.gz 9941329 BLAKE2B e455a411d782dcb52b29ad6150b108a4a9b3fd7cd548e35c1392ee3bce581206d99520df19a153ddb80f135156a8d33f6acbbfe086c28f6bfe404fe9eae96556 SHA512 8f52fdae4f98fe67053b00d03234e0937652a9a9506c9e94b717502244eb741c062990678ede11342dc182a4fe9c066227814ebe394ef5f6aedec73983c08554
diff --git a/app-emulation/wine-any/metadata.xml b/app-emulation/wine-any/metadata.xml
deleted file mode 100644
index 04e20b914190..000000000000
--- a/app-emulation/wine-any/metadata.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://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.
-
-Think of Wine as a compatibility layer for running Windows programs. Wine does not require Microsoft Windows, as it is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, however Wine can optionally use native Windows DLLs if they are available. Wine provides both a development toolkit for porting Windows source code to Unix as well as a program loader, allowing many unmodified Windows programs to run on x86-based Unixes, including Linux, FreeBSD, and Solaris.
-
-This variant of the wine packaging allows for the use of the Wine-Staging patchset and the Gallium Nine 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="d3d9">Apply highly experimental patches for Gallium Nine support.
- This patch may break some applications.</flag>
- <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag>
- <flag name="ffmpeg">Use <pkg>media-video/ffmpeg</pkg> to decode WMA formats</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="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="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag>
- <flag name="vulkan">Enable Vulkan drivers</flag>
- </use>
- <upstream>
- <remote-id type="github">sarnex/wine-d3d9-patches</remote-id>
- <remote-id type="github">wine-compholio/wine-staging</remote-id>
- <remote-id type="sourceforge">wine</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/wine-any/wine-any-3.20.ebuild b/app-emulation/wine-any/wine-any-3.20.ebuild
deleted file mode 100644
index 23b93ceac9f9..000000000000
--- a/app-emulation/wine-any/wine-any-3.20.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# Copyright 1999-2018 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional 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
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${MULTILIB_USEDEP}]
- )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.7.3 )
- 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}-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 ${pn_live_val} ]]; then
- if use staging || use d3d9; 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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_COMMIT_WINE=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_COMMIT_WINE=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_COMMIT_WINE}" != "${COMPAT_COMMIT_WINE}" ]]; 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 EGIT_OVERRIDE_COMMIT_WINE."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_COMMIT_WINE} emerge -1 wine"
- fi
- fi
- if use d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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=""
- 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
- if use d3d9; then
- if use staging; then
- PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
- else
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- fi
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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 ffmpeg)
- $(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)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- if use d3d9; then
- eselect wine register --d3d9 ${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
- if use d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-any/wine-any-3.21.ebuild b/app-emulation/wine-any/wine-any-3.21.ebuild
deleted file mode 100644
index 23b93ceac9f9..000000000000
--- a/app-emulation/wine-any/wine-any-3.21.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# Copyright 1999-2018 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional 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
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${MULTILIB_USEDEP}]
- )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.7.3 )
- 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}-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 ${pn_live_val} ]]; then
- if use staging || use d3d9; 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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_COMMIT_WINE=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_COMMIT_WINE=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_COMMIT_WINE}" != "${COMPAT_COMMIT_WINE}" ]]; 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 EGIT_OVERRIDE_COMMIT_WINE."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_COMMIT_WINE} emerge -1 wine"
- fi
- fi
- if use d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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=""
- 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
- if use d3d9; then
- if use staging; then
- PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
- else
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- fi
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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 ffmpeg)
- $(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)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- if use d3d9; then
- eselect wine register --d3d9 ${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
- if use d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-any/wine-any-4.0.ebuild b/app-emulation/wine-any/wine-any-4.0.ebuild
deleted file mode 100644
index 618c9dd15249..000000000000
--- a/app-emulation/wine-any/wine-any-4.0.ebuild
+++ /dev/null
@@ -1,645 +0,0 @@
-# Copyright 1999-2019 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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)
- 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}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional 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
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${MULTILIB_USEDEP}]
- )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[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 )
- 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}-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 ${pn_live_val} ]]; then
- if use staging || use d3d9; 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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_COMMIT_WINE=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_COMMIT_WINE=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_COMMIT_WINE}" != "${COMPAT_COMMIT_WINE}" ]]; 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 EGIT_OVERRIDE_COMMIT_WINE."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_COMMIT_WINE} emerge -1 wine"
- fi
- fi
- if use d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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=""
- 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
- if use d3d9; then
- if use staging; then
- PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
- else
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- fi
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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 ffmpeg)
- $(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)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- if use d3d9; then
- eselect wine register --d3d9 ${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
- if use d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-any/wine-any-4.1.ebuild b/app-emulation/wine-any/wine-any-4.1.ebuild
deleted file mode 100644
index 0a8c0641c7c3..000000000000
--- a/app-emulation/wine-any/wine-any-4.1.ebuild
+++ /dev/null
@@ -1,644 +0,0 @@
-# Copyright 1999-2019 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 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}-2"
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional 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
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}-2.tar.gz -> ${STAGING_P}.tar.gz )
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${MULTILIB_USEDEP}]
- )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[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 )
- 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}-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 ${pn_live_val} ]]; then
- if use staging || use d3d9; 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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_COMMIT_WINE=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_COMMIT_WINE=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_COMMIT_WINE}" != "${COMPAT_COMMIT_WINE}" ]]; 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 EGIT_OVERRIDE_COMMIT_WINE."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_COMMIT_WINE} emerge -1 wine"
- fi
- fi
- if use d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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=""
- 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
- if use d3d9; then
- if use staging; then
- PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
- else
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- fi
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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 ffmpeg)
- $(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)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- if use d3d9; then
- eselect wine register --d3d9 ${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
- if use d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-any/wine-any-9999.ebuild b/app-emulation/wine-any/wine-any-9999.ebuild
deleted file mode 100644
index af955b3caf31..000000000000
--- a/app-emulation/wine-any/wine-any-9999.ebuild
+++ /dev/null
@@ -1,645 +0,0 @@
-# Copyright 1999-2019 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 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}"
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20190316"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with optional 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
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${MULTILIB_USEDEP}]
- )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[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 )
- 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}-4.4-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 ${pn_live_val} ]]; then
- if use staging || use d3d9; 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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 " EGIT_OVERRIDE_COMMIT_SARNEX_WINE_D3D9_PATCHES"
- 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_COMMIT_WINE=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_COMMIT_WINE=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_COMMIT_WINE}" != "${COMPAT_COMMIT_WINE}" ]]; 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 EGIT_OVERRIDE_COMMIT_WINE."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_COMMIT_WINE} emerge -1 wine"
- fi
- fi
- if use d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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=""
- 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
- if use d3d9; then
- if use staging; then
- PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
- else
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- fi
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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 ffmpeg)
- $(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)
- $(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)
- )
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- if use d3d9; then
- eselect wine register --d3d9 ${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
- if use d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-d3d9/Manifest b/app-emulation/wine-d3d9/Manifest
deleted file mode 100644
index 2e917ddd8ca5..000000000000
--- a/app-emulation/wine-d3d9/Manifest
+++ /dev/null
@@ -1,9 +0,0 @@
-DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
-DIST wine-3.20.tar.xz 21541928 BLAKE2B 9183dacd1c6ec15ae5283eca3d17db5a869bcba9a93800a422f0dea5d9cfb5d3124a3e942e8b6487cd4ba31cfeacdd66de39128dd66d64e1226d265eae922d3a SHA512 fb66d1d4b427f46dd048b13e53bcd15a5eaeb19039221fe98ec771140c33b3c245a974e52242eab5731ffa0de15f5932204032fe24f86e1a313ff8f11da59cc4
-DIST wine-3.21.tar.xz 21573872 BLAKE2B 54d8733b19f1377f856c9496f6263eef1916e03caf82c6fcfa39b3e7bec1fecd87466dc92f3739d704a9161a32d9ee680b2cc5e5cdf27a582dc1d89d0b1a6639 SHA512 dd64a6778bf1b848c8fe14dc26cfca21f6c1c92714ca1b2e932a28560a2adc1f69aa1b2cba250f49a5df4f91a4accde677a2afaf960c200d3998eac1957b5c6b
-DIST wine-4.0.tar.xz 21644692 BLAKE2B 9c426ef2249c16e908a3617c2844d8b12a2df843721338b1cfb69459815b902cfa0ddf3d74c09dc900fb2ceb003e54d97a7c0afaac51a9caab7d21beb82e26c3 SHA512 7607fa7a3d5f7bcd3d8c4c9e7bb6e1987466110bbfc672782ebe57c6d9da348c58e76abf40b0a70c725dfd703163db6e194ee0e3db11a47b6b60e225163308dd
-DIST wine-4.1.tar.xz 21680916 BLAKE2B 1a040606e34e1aec6f63d9692c6cbf915f5b32c817116aed68203e6bdedb8cb129dad440f7e51e9fb2ebaf1aa537d1584333f06b8b2c5d68f9ff37921d5b8b95 SHA512 2b28fc82111552009a042d682ea8f4e54d90f14bb99f1fbe12732090e7562527c229683562630edada0b1f4143de226734337b20d1b23d711191dcc0a834e4dc
-DIST wine-d3d9-3.20.tar.gz 50539 BLAKE2B 53549364113f9dd9d7c9383ec74cc7eafec61dca5bf1943bd87e51b810e6d85d5d0f86f426a22042ee8a23eb21b6b13c691c43d67de19e66550dd0abc3c0319b SHA512 67d452d46807ee9ca44414326a9b2b90403b5c4c611e34ade03a9b624066b62b056f3adde2c0b6d6bdd73066775a1b3eb43d7cf52f82456eb979f788c3e591b4
-DIST wine-d3d9-3.21.tar.gz 50545 BLAKE2B fec93df7a464feba5ebd5c1f9f9b511a89065cc668122c4ddb2c91027b68e2aa93fe58832c4e143832c5b5f4ace57c640ab218525f0749bd5f1c632e80009660 SHA512 b2263d26b671b45a59c03ca5dc88aff35444e4d47caccf3de1493fa86ac834bb178819b9a80aa52838e510f814ed404e6c3ce9724aa6eea6a6d5f019253e6248
-DIST wine-d3d9-4.0.tar.gz 50535 BLAKE2B a5815c4d1b8ea34a0afac565b01aaaa6af418a7d84bf12c4c0591e316d31987770d1d5e99837f1c63e91810db821a2cb76cba1b97c71d5fcee8060a48915e83d SHA512 98e2d4d47fdc376e4e8fed0624657d40ea0a077998baab1d89ef0320714e66f4899414b04fa747b78c172fb85732e9376553c0b20cfd1ae0807cb3de58cfe78a
-DIST wine-d3d9-4.1.tar.gz 50520 BLAKE2B 53f1c4a7fe077776d648a927e75f11a8fa627d3fa15b01e22c18da7a4489ebc883470901e75afc99e07b85201ec05132be4c357923b8ab2ce6ac5f0beedeadd0 SHA512 2e8e3dca86a919a6e6bbdf87f2ffa67f90febcd4ba11351a20785c8dcf732077e1ae1ec0f34f3a4743cb23bb3d8483fd67d9e746e2887d000dd9f0220404b672
diff --git a/app-emulation/wine-d3d9/metadata.xml b/app-emulation/wine-d3d9/metadata.xml
deleted file mode 100644
index 3116c6dc74c6..000000000000
--- a/app-emulation/wine-d3d9/metadata.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://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 type="person">
- <email>sarnex@gentoo.org</email>
- <name>Nick Sarnie</name>
- </maintainer>
- <longdescription>
-Wine is an Open Source implementation of the Windows API on top of X and Unix.
-
-Think of Wine as a compatibility layer for running Windows programs. Wine does not require Microsoft Windows, as it is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, however Wine can optionally use native Windows DLLs if they are available. Wine provides both a development toolkit for porting Windows source code to Unix as well as a program loader, allowing many unmodified Windows programs to run on x86-based Unixes, including Linux, FreeBSD, and Solaris.
-
-This variant of the Wine packaging includes the Gallium Nine 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="d3d9">Apply highly experimental patches for Gallium Nine support.
- This patch may break some applications.</flag>
- <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</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="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="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag>
- <flag name="vulkan">Enable Vulkan drivers</flag>
- </use>
- <upstream>
- <remote-id type="sourceforge">wine</remote-id>
- <remote-id type="github">sarnex/wine-d3d9-patches</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/wine-d3d9/wine-d3d9-3.20.ebuild b/app-emulation/wine-d3d9/wine-d3d9-3.20.ebuild
deleted file mode 100644
index b7f926def60f..000000000000
--- a/app-emulation/wine-d3d9/wine-d3d9-3.20.ebuild
+++ /dev/null
@@ -1,577 +0,0 @@
-# Copyright 1999-2018 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${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: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}] )
- 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.3 )
- 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 ${pn_live_val} ]]; then
- if use d3d9; 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_SARNEX_WINE_D3D9_PATCHES"
- 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_SARNEX_WINE_D3D9_PATCHES"
- 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 d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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 d3d9; then
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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)
- )
-
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use d3d9; then
- eselect wine register --d3d9 ${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 d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-d3d9/wine-d3d9-3.21.ebuild b/app-emulation/wine-d3d9/wine-d3d9-3.21.ebuild
deleted file mode 100644
index b7f926def60f..000000000000
--- a/app-emulation/wine-d3d9/wine-d3d9-3.21.ebuild
+++ /dev/null
@@ -1,577 +0,0 @@
-# Copyright 1999-2018 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${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: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}] )
- 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.3 )
- 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 ${pn_live_val} ]]; then
- if use d3d9; 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_SARNEX_WINE_D3D9_PATCHES"
- 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_SARNEX_WINE_D3D9_PATCHES"
- 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 d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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 d3d9; then
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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)
- )
-
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use d3d9; then
- eselect wine register --d3d9 ${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 d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-d3d9/wine-d3d9-4.0.ebuild b/app-emulation/wine-d3d9/wine-d3d9-4.0.ebuild
deleted file mode 100644
index 421d3c0d5108..000000000000
--- a/app-emulation/wine-d3d9/wine-d3d9-4.0.ebuild
+++ /dev/null
@@ -1,578 +0,0 @@
-# Copyright 1999-2019 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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)
- 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}"
-
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${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: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}] )
- 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 ${pn_live_val} ]]; then
- if use d3d9; 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_SARNEX_WINE_D3D9_PATCHES"
- 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_SARNEX_WINE_D3D9_PATCHES"
- 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 d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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 d3d9; then
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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)
- )
-
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use d3d9; then
- eselect wine register --d3d9 ${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 d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-d3d9/wine-d3d9-4.1.ebuild b/app-emulation/wine-d3d9/wine-d3d9-4.1.ebuild
deleted file mode 100644
index 3a9f0461d366..000000000000
--- a/app-emulation/wine-d3d9/wine-d3d9-4.1.ebuild
+++ /dev/null
@@ -1,577 +0,0 @@
-# Copyright 1999-2019 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${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: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}] )
- 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 ${pn_live_val} ]]; then
- if use d3d9; 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_SARNEX_WINE_D3D9_PATCHES"
- 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_SARNEX_WINE_D3D9_PATCHES"
- 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 d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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 d3d9; then
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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)
- )
-
- use d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use d3d9; then
- eselect wine register --d3d9 ${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 d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-d3d9/wine-d3d9-9999.ebuild b/app-emulation/wine-d3d9/wine-d3d9-9999.ebuild
deleted file mode 100644
index 4128b502f603..000000000000
--- a/app-emulation/wine-d3d9/wine-d3d9-9999.ebuild
+++ /dev/null
@@ -1,578 +0,0 @@
-# Copyright 1999-2019 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 sk sl sr_RS@cyrillic sr_RS@latin sv 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}"
-
-D3D9_P="wine-d3d9-${PV}"
-D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Gallium Nine patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- D3D9_EGIT_REPO_URI="https://github.com/sarnex/wine-d3d9-patches.git"
-else
- SRC_URI="${SRC_URI}
- d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/${D3D9_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 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}] )
- d3d9? (
- media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libxcb[${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: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}] )
- 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 ${pn_live_val} ]]; then
- if use d3d9; 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_SARNEX_WINE_D3D9_PATCHES"
- 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_SARNEX_WINE_D3D9_PATCHES"
- 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 d3d9; then
- EGIT_CHECKOUT_DIR="${D3D9_DIR}" EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}" git-r3_src_unpack
- 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 d3d9; then
- PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
- PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
- 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=/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)
- --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)
- $(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 d3d9 && myconf+=( $(use_with d3d9 d3d9-nine) )
-
- 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
- else
- if use d3d9; then
- eselect wine register --d3d9 ${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 d3d9; then
- eselect wine deregister --d3d9 ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
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 05966e9787c0..0924bbaa755b 100644
--- a/app-emulation/wine-gecko/Manifest
+++ b/app-emulation/wine-gecko/Manifest
@@ -1,2 +1,12 @@
-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 41e683d85cb6..8b46426a7860 100644
--- a/app-emulation/wine-gecko/metadata.xml
+++ b/app-emulation/wine-gecko/metadata.xml
@@ -1,14 +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>
- <longdescription>
- A Mozilla Gecko based version of Internet Explorer for Wine
- </longdescription>
- <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 598b063ec466..000000000000
--- a/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# 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.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 b50f25d6cd58..dd0016c86352 100644
--- a/app-emulation/wine-mono/Manifest
+++ b/app-emulation/wine-mono/Manifest
@@ -1,11 +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-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-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..4e84f540f297
--- /dev/null
+++ b/app-emulation/wine-proton/Manifest
@@ -0,0 +1,3 @@
+DIST proton-wine-7.0-6.tar.gz 45780326 BLAKE2B f140fcfdd1a47904c34a49d0795fa3326d7cf0d3fac8d6c2ef2a4926181a46223f43a2d1ca96c543e800c8c46b2a3cc51ae306a029d68a42608876e869e177d5 SHA512 793bbe2b23042301a1b518717d78cfff01eaffa0388883d010659a45779b9136d33cfac63f0c3fbb1e458953a954b423eb70ac4fa87633352267db890ceb2fef
+DIST proton-wine-8.0-5c.tar.gz 48710071 BLAKE2B 99627baea6fb3d51231aa1e75a2734c3c1baba88326baf15b3d421d57a00472d25ba51c2140b51152c8aeae7dd240d3d77bb0d8835aa7eb3b745a51be120f8bb SHA512 0cf98d4e67866e55cc8cd5ea8da0d76aee8e37b130b3cbca604083c913e98ddf9038ecd6f9761d2e11443e282b372977400e251456c6d40e1365210c7578234d
+DIST proton-wine-9.0-1.tar.gz 49048661 BLAKE2B cf237c314e8b222bb36f52f316baae2351a30d22995d610c7977accc9588c474d0e598702000aa81b34fc2f3daeccd09f54ef53b7a2250c0b012ca47d69628eb SHA512 d7d3e4725a86ca120d059e5b8f9760bce45a5db0ae814cd76aa51dc361bb67af9c2834917ddad3858fc324a1d048acdd9942492c77d0f396aae7d537c70e3ca1
diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo
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..546bcaf60b4a
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild
@@ -0,0 +1,370 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.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[X,${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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-proton-9 has proper fixes and builds with gcc-14, but would
+ # rather not have to worry about fixing old branches (bug #924486)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ 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..e5b25d63323f
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
@@ -0,0 +1,387 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.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[X,${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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-proton-9 has proper fixes and builds with gcc-14, but would
+ # rather not have to worry about fixing old branches (bug #924486)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ 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.1.ebuild b/app-emulation/wine-proton/wine-proton-9.0.1.ebuild
new file mode 100644
index 000000000000..4558c65461b2
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-9.0.1.ebuild
@@ -0,0 +1,419 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=8.1.0
+WINE_PV=$(ver_rs 2 -)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+ EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+ SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Valve Software's fork of Wine"
+HOMEPAGE="https://github.com/ValveSoftware/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags
+ +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa
+ perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind
+ usb v4l video_cards_amdgpu wow64 +xcomposite xinerama
+"
+REQUIRED_USE="wow64? ( abi_x86_64 !abi_x86_32 )"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
+ media-libs/freetype[${MULTILIB_USEDEP}]
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ media-libs/vulkan-loader[X,${MULTILIB_USEDEP}]
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? (
+ dev-libs/gmp:=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}]
+ )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
+# gcc: for -latomic with clang
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ sys-devel/gcc:*
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ x11-base/xorg-proto
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900332)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.4-musl.patch
+ "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
+ "${FILESDIR}"/${PN}-8.0.1c-unwind.patch
+ "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch
+ "${FILESDIR}"/${PN}-9.0-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # and it still gets used in install phase despite --with-mingw,
+ # drop as a quick fix for now which hopefully should be safe
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+
+ # needed by Valve's fsync patches if using clang (undef atomic_load_8)
+ sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+ -i dlls/{ntdll,winevulkan}/Makefile.in || die
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # similarly to staging, append to `wine --version` for identification
+ sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # proton variant also needs specfiles and vulkan
+ tools/make_specfiles || die # perl
+ dlls/winevulkan/make_vulkan -x vk.xml || die # python
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-proton
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ # upstream (Valve) doesn't really support misc configurations (e.g.
+ # adds vulkan code not always guarded by --with-vulkan), so force
+ # some major options that are typically needed by games either way
+ # TODO?: --without-mingw could make sense *if* using clang, assuming
+ # bug #912237 is resolved (consider when do USE=wow64 in proton-9)
+ --with-freetype
+ --with-mingw # needed by many, notably Blizzard titles
+ --with-opengl
+ --with-vulkan
+ --with-x
+
+ # ...and disable most options unimportant for games and unused by
+ # Proton rather than expose as volatile USEs with little support
+ --without-capi
+ --without-cups
+ --without-gphoto
+ --without-gssapi
+ --without-krb5
+ --without-netapi
+ --without-opencl
+ --without-pcap
+ --without-pcsclite
+ --without-sane
+ ac_cv_lib_soname_odbc=
+
+ # afaik wayland support in 9.0.x currently cannot do opengl/vulkan
+ # yet making it mostly pointless for a gaming-oriented build
+ # (IUSE="X wayland" may be added in wine-proton-10 or 11)
+ --without-wayland
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ $(use_enable video_cards_amdgpu amd_ags_x64)
+ --disable-tests
+ $(use_with alsa)
+ $(use_with fontconfig)
+ $(use_with gstreamer)
+ $(use_with nls gettext)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pulseaudio pulse)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
+}
+
+pkg_postinst() {
+ [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
+
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
new file mode 100644
index 000000000000..ceddb4a00eec
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
@@ -0,0 +1,421 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+WINE_PV=$(ver_rs 2 -)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+ EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+ SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Valve Software's fork of Wine"
+HOMEPAGE="https://github.com/ValveSoftware/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags
+ +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa
+ perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind
+ usb v4l video_cards_amdgpu wow64 +xcomposite xinerama
+"
+REQUIRED_USE="wow64? ( abi_x86_64 !abi_x86_32 )"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
+ media-libs/freetype[${MULTILIB_USEDEP}]
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ media-libs/vulkan-loader[X,${MULTILIB_USEDEP}]
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? (
+ dev-libs/gmp:=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}]
+ )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
+# gcc: for -latomic with clang
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ sys-devel/gcc:*
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ x11-base/xorg-proto
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900332)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.4-musl.patch
+ "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
+ "${FILESDIR}"/${PN}-8.0.1c-unwind.patch
+ "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch
+ "${FILESDIR}"/${PN}-9.0-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # and it still gets used in install phase despite --with-mingw,
+ # drop as a quick fix for now which hopefully should be safe
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+
+ # needed by Valve's fsync patches if using clang (undef atomic_load_8)
+ sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+ -i dlls/{ntdll,winevulkan}/Makefile.in || die
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # similarly to staging, append to `wine --version` for identification
+ sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # proton variant also needs specfiles and vulkan
+ tools/make_specfiles || die # perl
+ dlls/winevulkan/make_vulkan -x vk.xml || die # python
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-proton
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ # upstream (Valve) doesn't really support misc configurations (e.g.
+ # adds vulkan code not always guarded by --with-vulkan), so force
+ # some major options that are typically needed by games either way
+ # TODO?: --without-mingw could make sense *if* using clang, assuming
+ # bug #912237 is resolved (consider when do USE=wow64 in proton-9)
+ --with-freetype
+ --with-mingw # needed by many, notably Blizzard titles
+ --with-opengl
+ --with-vulkan
+ --with-x
+
+ # ...and disable most options unimportant for games and unused by
+ # Proton rather than expose as volatile USEs with little support
+ --without-capi
+ --without-cups
+ --without-gphoto
+ --without-gssapi
+ --without-krb5
+ --without-netapi
+ --without-opencl
+ --without-pcap
+ --without-pcsclite
+ --without-sane
+ ac_cv_lib_soname_odbc=
+
+ # afaik wayland support in 9.0.x currently cannot do opengl/vulkan
+ # yet making it mostly pointless for a gaming-oriented build
+ # (IUSE="X wayland" may be added in wine-proton-10 or 11)
+ --without-wayland
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ $(use_enable video_cards_amdgpu amd_ags_x64)
+ --disable-tests
+ $(use_with alsa)
+ $(use_with fontconfig)
+ $(use_with gstreamer)
+ $(use_with nls gettext)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pulseaudio pulse)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+
+ --without-vosk # unpackaged, file a bug if you need this
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
+}
+
+pkg_postinst() {
+ [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
+
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest
index 69a94593d44b..fe42d750defe 100644
--- a/app-emulation/wine-staging/Manifest
+++ b/app-emulation/wine-staging/Manifest
@@ -1,9 +1,10 @@
-DIST gentoo-wine-patches-20190511.tar.xz 58996 BLAKE2B 571c30d94341f567261893f884345b39eab42adc8b5c306a30d03943fd770055e070ae01e41e5add5b873063d3aaa69641faf81b16ac6039970d8a22b177dd7e SHA512 ccd74d0d6acecc7b24dc89466f93099bd6991d607a4fe89d68637d1fa82e02ebd76b532fe1afd8ab8de8ef3f2d49fe8d71f797796a9434f4b0f7a8183c084969
-DIST wine-4.15.tar.xz 22196108 BLAKE2B d3b28ad1bbfb7e1522a3acb120049dd3ac3fe0473d0f84529e86b5b9163401869e39f7c4c0e14795a97362722c41ea1476e4afbd1a545e5518504df2628c928a SHA512 f8290bbfd3779cb967c1cf689106fa48d1a1daeac2bd42fb91a2d4beed48e0c398ed9239437756bdbe3cd826cef59f5cd660381f637e184c47a865ff3ace91aa
-DIST wine-4.16.tar.xz 22205248 BLAKE2B e7f7daeb4f75a5cf38478609512317e55ead862812a409e4f094178c0b7dec2a969b0a96e83059a1bede3610d3986529f926041765cfa536b786ee53fdc27b84 SHA512 f3097b06e490356e68484239b7a2ac1cfa968818565c79386ba6c0e70a318c092af5549da8218935cbe891876fa519d361a3775d0ab5d4adc192555ae0e45d86
-DIST wine-4.17.tar.xz 22230616 BLAKE2B 428d9b781acbadabb2ce677b08c1a38f130c39d2acb95364dc0ac4cfef8f7c9efe4199846bf0bfc745dc25ba632847f224da1b0a09b8ee6c4927154771a538cf SHA512 f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8
-DIST wine-4.18.tar.xz 22263936 BLAKE2B 710d6d90ff1ef9adeb5bb9012c8f354985c1610f46607a144ef12499571373563f8ce204dc3dbed975a9ab47e0b07e65f8fe0ff3e38a698076d95c58fc0797c4 SHA512 794802289fa021092a86c939a3618563ad1523689cdafb6fd58aed06c6a5c867fc5ef0d3dbb2435a65c3eb0d3b982b37e983257a7a7d20c3b6d71df9bf5bf1f1
-DIST wine-staging-4.15.tar.gz 9904734 BLAKE2B 163d6f51a6fe649c8c107b013aafa5c5729bb93cafe94446cde966138c18d5aed2e950ce9a71ae4c719efb358406af079efb21cc8546d97e2b7146a5cae27a56 SHA512 0c34695c1d39773fb34a58f0cdb91d427945615e7b76b8a7222bc84fda8df08125832297b75aca55e69511b6b3686df70dade84bcc7cc9324f30c042146761b0
-DIST wine-staging-4.16.tar.gz 9905714 BLAKE2B fe72d1123c7f418dc9702b113679de7d21a8f20b2bed5e9b2f7a2b411ca28b407e0d2d134dee19ee06414df7a3ccfaa784d5689e3dc79043544d17c6768e6a17 SHA512 8782e4aecb34443404b1ac02c6b1ba91887ad12f07c7960601f879b034937d5ee6f1c1493437e765804beed6e68fa20383f7c02a09534526cc5f4bb857048faf
-DIST wine-staging-4.17.tar.gz 9914906 BLAKE2B a5a430588aaede6f6ac2e30710bf58d57100a37444a2610b57529116b2d9b88a6f4bcfb56ad71153734d8f1a99a70eab4cb568d3cfb6d5ce6198eb662e3cc201 SHA512 1f27511c8ff6619f4138eb3b2cd0cc1cdf42c0cd4206c68bdf792ae17c339611016e32babad121f0decf20331f7ce4400033be03c4db26cb6a4dc601c9c4b14d
-DIST wine-staging-4.18.tar.gz 9917480 BLAKE2B 477da02f5177e7efad33ca30267b2a8755c493972c2ff4ebec32275b699a4c08fd9d4b72181f8ad87c58b1c120b7a7b47951057db36963bcd161afe10b1a89aa SHA512 e5ddb7ac09322b5f2c8e8facff9639699a6a3e72a96f4028e88e23e81f73c766bde1479e54a9a80bd7f33c7747a8220e2699f4dcfe55117b9832ff4cdba60a04
+DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
+DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
+DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
+DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
+DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
+DIST wine-staging-9.0.tar.gz 9577631 BLAKE2B 0012978f54c618e73d407dd49dccff02853912d0c015098889802518e8c51b280f5d60e11291335dafc68944ee01cbcb7fd6c5825ef10ae1520c7b82d9846718 SHA512 362209fcadcf029152b681c76beb231d0cc8de1609b994094f1dc88ab871fddda08b3d8c2fe36ceb38909a9d634c1ade864ca0f28a6a7715ec286a8b2884981f
+DIST wine-staging-9.5.tar.gz 9526239 BLAKE2B a6f5a351a3979fc81a0d8c6325da4f08021d19eb7ac6ad52906a6fcf19552f01bdc8fbebc9b33fc82e14cdd6e6d50347dc7bc73e622d589d2e9eec5d577d3158 SHA512 8c756fe505092e21dd37c709ac3917c305b70881c05270f0e188ccdf9ff36b9fd224adad424d37c6919637d2af55afbfba49079eb5b6708a6cf4f2dd98966784
+DIST wine-staging-9.6.tar.gz 9522775 BLAKE2B 5598d408774e3142d6de5ccddccb68d8e1e4544c43b5691751599e6b86df6b8899f6113b8b58d75fb8e032a6c7aed9ffbb3ecb1553aa2d7593d69513e9a0177a SHA512 83691eb560c860d40669a524196a522007c76420b5b5076da4f446a4180fee7558ef228cf1f4179eb78a6d36c8ab78fd2784ffc879b0aacbef7c72a7f88e7ed2
+DIST wine-staging-9.7.tar.gz 9573710 BLAKE2B 34eee97f51268c07d649f0ed498b5e92bbc8bb1d8cee860040ee660d968307a7d9d3b59305567c50338d2ce97b3071f615b8782ca74716b42904ae4514404316 SHA512 3c5f100f715c6b3399c356b304b8eca1e51706e03782f2f834965474a7efeca4174ae806dff85080cded93501e9cfcd097eca43230d9425c78ae73a6f4485c76
+DIST wine-staging-9.8.tar.gz 9580231 BLAKE2B 74d0b7d4eb49b5cb16abf17a2aae52bad9db04d3e207762f1d37a9f18870683c0115ce41b29e24edad827557de4a07235980588115b61fa86eeaaa5573460535 SHA512 8132c1fd98b55ef04993e894e11063e43ac1cae059f80e0dc3b2a4c6bf08a6ab80f7bdd02b97f62733f31850b41e5d2d6c5085b22bf873fc03ab67b79bdd3c1d
diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-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/files/wine-staging-9.8-musl-ioctls-header.patch b/app-emulation/wine-staging/files/wine-staging-9.8-musl-ioctls-header.patch
new file mode 100644
index 000000000000..7aa1a4c00587
--- /dev/null
+++ b/app-emulation/wine-staging/files/wine-staging-9.8-musl-ioctls-header.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/931341
+https://gitlab.winehq.org/wine/wine/-/commit/24ca848c568d5a2786abd26f2e7314b2e3f509f3
+From: Fotios Valasiadis <fvalasiad@gmail.com>
+Date: Sun, 5 May 2024 03:34:57 +0300
+Subject: [PATCH] ntdll/unix: Fix building on musl by explicitly including
+ asm/ioctls.h.
+
+After commit 898ab8dab19d498c17859f39a55e317ee7e367a5 wine would no longer
+build on musl.
+
+Issue is that apparently TCSETS2 isn't defined when including sys/ioctl.h.
+
+A little digging shows that glibc goes ahead and includes asm/ioctls.h in
+sys/ioctl.h, providing said macro. Musl on the other hand doesn't and relies
+on bits/ioctl.h, which lacks said macro.
+
+Signed-off-by: Fotios Valasiadis <fvalasiad@gmail.com>
+--- a/dlls/ntdll/unix/serial.c
++++ b/dlls/ntdll/unix/serial.c
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #ifdef HAVE_ASM_TERMBITS_H
+ # include <asm/termbits.h>
++# include <asm/ioctls.h>
+ #else
+ # include <termios.h>
+ #endif
+--
+GitLab
+
diff --git a/app-emulation/wine-staging/metadata.xml b/app-emulation/wine-staging/metadata.xml
index 2021448c4735..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,38 +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="ffmpeg">Use <pkg>media-video/ffmpeg</pkg> to decode WMA formats</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="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-4.15.ebuild b/app-emulation/wine-staging/wine-staging-4.15.ebuild
deleted file mode 100644
index 1c459adafb0f..000000000000
--- a/app-emulation/wine-staging/wine-staging-4.15.ebuild
+++ /dev/null
@@ -1,620 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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 ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.2 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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 ${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=""
- 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 ffmpeg)
- $(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)
- )
-
- 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-4.16.ebuild b/app-emulation/wine-staging/wine-staging-4.16.ebuild
deleted file mode 100644
index 1c459adafb0f..000000000000
--- a/app-emulation/wine-staging/wine-staging-4.16.ebuild
+++ /dev/null
@@ -1,620 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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 ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.2 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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 ${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=""
- 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 ffmpeg)
- $(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)
- )
-
- 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-4.17.ebuild b/app-emulation/wine-staging/wine-staging-4.17.ebuild
deleted file mode 100644
index 2d1bd8b5970e..000000000000
--- a/app-emulation/wine-staging/wine-staging-4.17.ebuild
+++ /dev/null
@@ -1,620 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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 ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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 ${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=""
- 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 ffmpeg)
- $(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)
- )
-
- 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-4.18.ebuild b/app-emulation/wine-staging/wine-staging-4.18.ebuild
deleted file mode 100644
index 2d1bd8b5970e..000000000000
--- a/app-emulation/wine-staging/wine-staging-4.18.ebuild
+++ /dev/null
@@ -1,620 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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 ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- ffmpeg? ( staging )
- 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}] )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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 ${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=""
- 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 ffmpeg)
- $(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)
- )
-
- 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..c7ad9c55076f
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.0.ebuild
@@ -0,0 +1,480 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+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[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ # patches known broken with USE=-mingw, retry occasionally (bug #921360)
+ $(usev !mingw '
+ -W winedevice-Default_Drivers
+ -W fltmgr.sys-FltBuildDefaultSecurityDescriptor
+ ')
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.5.ebuild b/app-emulation/wine-staging/wine-staging-9.5.ebuild
new file mode 100644
index 000000000000..e0290114c53b
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.5.ebuild
@@ -0,0 +1,483 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+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[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ # patches known broken with USE=-mingw, retry occasionally (bug #921360)
+ $(usev !mingw '
+ -W winedevice-Default_Drivers
+ -W fltmgr.sys-FltBuildDefaultSecurityDescriptor
+ ')
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.6.ebuild b/app-emulation/wine-staging/wine-staging-9.6.ebuild
new file mode 100644
index 000000000000..1a169317c27f
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.6.ebuild
@@ -0,0 +1,478 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+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[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.7.ebuild b/app-emulation/wine-staging/wine-staging-9.7.ebuild
new file mode 100644
index 000000000000..1a169317c27f
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.7.ebuild
@@ -0,0 +1,478 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+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[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.8.ebuild b/app-emulation/wine-staging/wine-staging-9.8.ebuild
new file mode 100644
index 000000000000..dff82e982ed2
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.8.ebuild
@@ -0,0 +1,479 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit autotools edo flag-o-matic multilib multilib-build optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
+WINE_P=wine-$(ver_cut 1-2)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
+
+S="${WORKDIR}/${WINE_P}"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[X?,wayland?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+ "${FILESDIR}"/${P}-musl-ioctls-header.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild
index 2d1bd8b5970e..1b010ac0cc44 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-9999.ebuild
@@ -1,620 +1,478 @@
-# Copyright 1999-2019 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="20190511"
-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 ffmpeg +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 pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks 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 )
- ffmpeg? ( staging )
- 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[X?,wayland?,${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}] )
- ffmpeg? ( >=media-video/ffmpeg-4:=[${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: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}] )
- 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}
+ 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
+ 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-memset-O3.patch" #480508
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
+ "${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}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ 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=""
- 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
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
- # 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)
-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_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(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 ffmpeg)
$(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)
)
- 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.
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
fi
- 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
-}
+ # 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)
-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
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
- einstalldocs
- prune_libtool_files --all
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
- 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
+ # 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 2ed1e0e543ea..fd6dd151ecd7 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -1,9 +1,7 @@
-DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
-DIST gentoo-wine-patches-20190511.tar.xz 58996 BLAKE2B 571c30d94341f567261893f884345b39eab42adc8b5c306a30d03943fd770055e070ae01e41e5add5b873063d3aaa69641faf81b16ac6039970d8a22b177dd7e SHA512 ccd74d0d6acecc7b24dc89466f93099bd6991d607a4fe89d68637d1fa82e02ebd76b532fe1afd8ab8de8ef3f2d49fe8d71f797796a9434f4b0f7a8183c084969
-DIST wine-4.0.1.tar.xz 21665840 BLAKE2B b33b5ce8b4624dfbbbf473a88ed8c52d5e53855fa98ac3128e9b89dbeee6e92044ed1e662e1dc9669bd8d805424c36f2dd2c836c51bf6a5e4d78350926a13150 SHA512 dd240525e389f841123a569fd2f9b8da698b7707bc0de408dfd60ae73c5e24d522abb42b76571c840df52c686fdeae56e0a9c69db2cd31f04cdb345feeacf1dc
-DIST wine-4.0.2.tar.xz 21668348 BLAKE2B f1aa8ba3add9ae1e6fbb930a0c557c0015a699b21ba9988c6832c9a1b5180f98cbaadc561fbe4a22e97ff78732ee121a14f5a82b0637c71a4856fa5524ff2f5a SHA512 14cb7eeba188562b73125c668f2020e1df6802e486552e422d3aa75b95f6fccedc0f87868f7e58ce71697941ff49757981ec93b9ef288da37ca8570658f194fc
-DIST wine-4.0.tar.xz 21644692 BLAKE2B 9c426ef2249c16e908a3617c2844d8b12a2df843721338b1cfb69459815b902cfa0ddf3d74c09dc900fb2ceb003e54d97a7c0afaac51a9caab7d21beb82e26c3 SHA512 7607fa7a3d5f7bcd3d8c4c9e7bb6e1987466110bbfc672782ebe57c6d9da348c58e76abf40b0a70c725dfd703163db6e194ee0e3db11a47b6b60e225163308dd
-DIST wine-4.15.tar.xz 22196108 BLAKE2B d3b28ad1bbfb7e1522a3acb120049dd3ac3fe0473d0f84529e86b5b9163401869e39f7c4c0e14795a97362722c41ea1476e4afbd1a545e5518504df2628c928a SHA512 f8290bbfd3779cb967c1cf689106fa48d1a1daeac2bd42fb91a2d4beed48e0c398ed9239437756bdbe3cd826cef59f5cd660381f637e184c47a865ff3ace91aa
-DIST wine-4.16.tar.xz 22205248 BLAKE2B e7f7daeb4f75a5cf38478609512317e55ead862812a409e4f094178c0b7dec2a969b0a96e83059a1bede3610d3986529f926041765cfa536b786ee53fdc27b84 SHA512 f3097b06e490356e68484239b7a2ac1cfa968818565c79386ba6c0e70a318c092af5549da8218935cbe891876fa519d361a3775d0ab5d4adc192555ae0e45d86
-DIST wine-4.17.tar.xz 22230616 BLAKE2B 428d9b781acbadabb2ce677b08c1a38f130c39d2acb95364dc0ac4cfef8f7c9efe4199846bf0bfc745dc25ba632847f224da1b0a09b8ee6c4927154771a538cf SHA512 f762aab2596a4b5cf73d3282be561d25a2fe69e5d4a5ec2e29db47b3eda7496ca9eb7e57ff7765853d258422898bfa775bf9b458e61eef837b213e422bd748b8
-DIST wine-4.18.tar.xz 22263936 BLAKE2B 710d6d90ff1ef9adeb5bb9012c8f354985c1610f46607a144ef12499571373563f8ce204dc3dbed975a9ab47e0b07e65f8fe0ff3e38a698076d95c58fc0797c4 SHA512 794802289fa021092a86c939a3618563ad1523689cdafb6fd58aed06c6a5c867fc5ef0d3dbb2435a65c3eb0d3b982b37e983257a7a7d20c3b6d71df9bf5bf1f1
+DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a
+DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f
+DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
+DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
+DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
+DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
+DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.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/files/wine-vanilla-9.8-musl-ioctls-header.patch b/app-emulation/wine-vanilla/files/wine-vanilla-9.8-musl-ioctls-header.patch
new file mode 100644
index 000000000000..7aa1a4c00587
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-9.8-musl-ioctls-header.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/931341
+https://gitlab.winehq.org/wine/wine/-/commit/24ca848c568d5a2786abd26f2e7314b2e3f509f3
+From: Fotios Valasiadis <fvalasiad@gmail.com>
+Date: Sun, 5 May 2024 03:34:57 +0300
+Subject: [PATCH] ntdll/unix: Fix building on musl by explicitly including
+ asm/ioctls.h.
+
+After commit 898ab8dab19d498c17859f39a55e317ee7e367a5 wine would no longer
+build on musl.
+
+Issue is that apparently TCSETS2 isn't defined when including sys/ioctl.h.
+
+A little digging shows that glibc goes ahead and includes asm/ioctls.h in
+sys/ioctl.h, providing said macro. Musl on the other hand doesn't and relies
+on bits/ioctl.h, which lacks said macro.
+
+Signed-off-by: Fotios Valasiadis <fvalasiad@gmail.com>
+--- a/dlls/ntdll/unix/serial.c
++++ b/dlls/ntdll/unix/serial.c
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #ifdef HAVE_ASM_TERMBITS_H
+ # include <asm/termbits.h>
++# include <asm/ioctls.h>
+ #else
+ # include <termios.h>
+ #endif
+--
+GitLab
+
diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml
index 359856c711db..99ab7d2e9aab 100644
--- a/app-emulation/wine-vanilla/metadata.xml
+++ b/app-emulation/wine-vanilla/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,33 +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="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.1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.1.ebuild
deleted file mode 100644
index fde52036375d..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.0.1.ebuild
+++ /dev/null
@@ -1,533 +0,0 @@
-# Copyright 1999-2019 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 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_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=/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-4.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.2.ebuild
deleted file mode 100644
index 78f6dd16ff0e..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.0.2.ebuild
+++ /dev/null
@@ -1,533 +0,0 @@
-# Copyright 1999-2019 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 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_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=/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-4.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.ebuild
deleted file mode 100644
index 70e34aebbe37..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.0.ebuild
+++ /dev/null
@@ -1,533 +0,0 @@
-# Copyright 1999-2019 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 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)
- 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_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=/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-4.15.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.15.ebuild
deleted file mode 100644
index 85ad8429a752..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.15.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.2 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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-4.16.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.16.ebuild
deleted file mode 100644
index 85ad8429a752..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.16.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.2 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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-4.17.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.17.ebuild
deleted file mode 100644
index d502188edebb..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.17.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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-4.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.18.ebuild
deleted file mode 100644
index d502188edebb..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.18.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2019 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="20190511"
-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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
- 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-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-7.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
new file mode 100644
index 000000000000..262638ea8d31
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
@@ -0,0 +1,383 @@
+# 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[X?,${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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # would rather not have to worry about fixing old branches
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ 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..800c33d6ae95
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
@@ -0,0 +1,389 @@
+# 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[X?,${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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # would rather not have to worry about fixing old branches
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ 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..0c9ff2f4151d
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
@@ -0,0 +1,428 @@
+# 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[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ 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..5c5dff913f13
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild
@@ -0,0 +1,431 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[X?,wayland?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild
new file mode 100644
index 000000000000..868d1a000777
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild
@@ -0,0 +1,431 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild
new file mode 100644
index 000000000000..868d1a000777
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild
@@ -0,0 +1,431 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[X?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild
new file mode 100644
index 000000000000..9b130d772adf
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild
@@ -0,0 +1,432 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[X?,wayland?,${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+ "${FILESDIR}"/${P}-musl-ioctls-header.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
index d502188edebb..2685dfbc9d27 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -1,538 +1,431 @@
-# Copyright 1999-2019 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="20190511"
-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 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}] )
+ 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[X?,wayland?,${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}] )
+ odbc? ( dev-db/unixODBC[${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}] )
- 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}
+ 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[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.3 )
+ 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}-4.8-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-4.7-memset-O3.patch" #480508
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
+ "${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
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
- 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
+ # 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)
-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_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(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 odbc)
$(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)
)
- 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.
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
fi
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
-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
+ # 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)
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
-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
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
- einstalldocs
- prune_libtool_files --all
+ # 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,*'
- 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
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
- # 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
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
- 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
+ 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 e34b9baa5e2a..bb6973b41b47 100644
--- a/app-emulation/winetricks/Manifest
+++ b/app-emulation/winetricks/Manifest
@@ -1,3 +1,3 @@
-DIST winetricks-20190310.tar.gz 673467 BLAKE2B b6c6a6d28e49f9b2745ac623f9a9d35bdcaa402c11b3f2055f3d2ef2d13ccff6adcda47261447aff7b70bfcd9bc65ea2a278368616df93f031fe212aa3201a5d SHA512 4f08228306a84cd2e1ecf0df46e951dfc5844716fadab903eca7ed09f15ed2bbba7ca5bf48384f934783be6a85b812129427a296a580561ee5b8483df0e64025
-DIST winetricks-20190912.tar.gz 679544 BLAKE2B 633c407f8560fa3aa38806befded957d0bf1276164483b08fb3ef285fe873531d6362ae6305f5a33a85891d75990e6e0271fe954358e49425c4f36f0f918f48d SHA512 a0017cc08c56a511e523116daf2024b1462460d00b3d07de87720c7912dccab3d953db3653d7d611c5ae3b457a45de8d36688ee703e805c1e1f5be5c0fa7739f
+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 5e0912d7287a..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>
+ <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-20190310.ebuild b/app-emulation/winetricks/winetricks-20230212.ebuild
index dab00adc9eb3..afdf44a0f734 100644
--- a/app-emulation/winetricks/winetricks-20190310.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"
@@ -27,12 +27,19 @@ HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winet
LICENSE="LGPL-2.1+"
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=""
@@ -77,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-20190912.ebuild b/app-emulation/winetricks/winetricks-20240105.ebuild
index 900a5b539221..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-20190912.ebuild
+++ b/app-emulation/winetricks/winetricks-20240105.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
+EAPI=8
-inherit desktop xdg
+inherit xdg
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
@@ -27,12 +27,19 @@ HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winet
LICENSE="LGPL-2.1+"
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=""
@@ -77,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 900a5b539221..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-99999999.ebuild
+++ b/app-emulation/winetricks/winetricks-99999999.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
+EAPI=8
-inherit desktop xdg
+inherit xdg
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
@@ -27,12 +27,19 @@ HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winet
LICENSE="LGPL-2.1+"
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=""
@@ -77,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/files/x48-0.6.4-configure.patch b/app-emulation/x48/files/x48-0.6.4-configure.patch
new file mode 100644
index 000000000000..ea3a883991a8
--- /dev/null
+++ b/app-emulation/x48/files/x48-0.6.4-configure.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac 2024-05-12 12:01:50.591368113 -0000
++++ b/configure.ac 2024-05-12 12:05:39.116023749 -0000
+@@ -10,6 +10,8 @@
+ AC_CONFIG_SRCDIR([config.h.in])
+ AC_CONFIG_HEADER([config.h])
+
++
++AC_USE_SYSTEM_EXTENSIONS
+ # Checks for programs.
+ AC_PROG_CC
+ AC_PROG_INSTALL
diff --git a/app-emulation/x48/files/x48-0.6.4-static.patch b/app-emulation/x48/files/x48-0.6.4-static.patch
new file mode 100644
index 000000000000..f832e877b76e
--- /dev/null
+++ b/app-emulation/x48/files/x48-0.6.4-static.patch
@@ -0,0 +1,12 @@
+diff -Naur x48-0.6.4.orig/src/emulate.c x48-0.6.4/src/emulate.c
+--- x48-0.6.4.orig/src/emulate.c 2011-11-15 04:03:40.000000000 +0100
++++ x48-0.6.4/src/emulate.c 2020-06-23 21:30:30.895538239 +0200
+@@ -695,7 +695,7 @@
+ }
+ }
+
+-inline int
++static inline int
+ #ifdef __FunctionProto__
+ decode_8_thru_f(int op1)
+ #else
diff --git a/app-emulation/x48/files/x48-0.6.4-void_return.patch b/app-emulation/x48/files/x48-0.6.4-void_return.patch
new file mode 100644
index 000000000000..521ab6cd0546
--- /dev/null
+++ b/app-emulation/x48/files/x48-0.6.4-void_return.patch
@@ -0,0 +1,24 @@
+diff -Naur x48-0.6.4.orig/src/debugger.c x48-0.6.4/src/debugger.c
+--- x48-0.6.4.orig/src/debugger.c 2011-11-15 04:03:40.000000000 +0100
++++ x48-0.6.4/src/debugger.c 2020-06-23 21:33:16.071667987 +0200
+@@ -1528,7 +1528,7 @@
+ struct se *se_next;
+ };
+
+-char *
++void
+ #ifdef __FunctionProto__
+ get_stack (void)
+ #else
+diff -Naur x48-0.6.4.orig/src/x48_x11.c x48-0.6.4/src/x48_x11.c
+--- x48-0.6.4.orig/src/x48_x11.c 2011-11-15 04:03:40.000000000 +0100
++++ x48-0.6.4/src/x48_x11.c 2020-06-23 21:33:32.132680745 +0200
+@@ -3833,7 +3833,7 @@
+
+ int last_button = -1;
+
+-extern char *get_stack(void);
++extern void get_stack(void);
+
+ int
+ #ifdef __FunctionProto__
diff --git a/app-emulation/x48/metadata.xml b/app-emulation/x48/metadata.xml
index 727692a8fcbd..44a724679bcf 100644
--- a/app-emulation/x48/metadata.xml
+++ b/app-emulation/x48/metadata.xml
@@ -1,18 +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>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
- <longdescription lang="en">
- The x48 package is an emulator of the Saturn Processor and the I/O of an
- HP48 calculator.
- </longdescription>
- <longdescription lang="es">
- El paquete x48 es un emulador del procesador Saturn y de la E/S de una
- calculadora HP48.
- </longdescription>
<use>
<flag name="readline">Enables support for libreadline</flag>
</use>
diff --git a/app-emulation/x48/x48-0.6.4-r2.ebuild b/app-emulation/x48/x48-0.6.4-r2.ebuild
index 60123e66d5ad..190b92ee0d07 100644
--- a/app-emulation/x48/x48-0.6.4-r2.ebuild
+++ b/app-emulation/x48/x48-0.6.4-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,11 +7,11 @@ inherit autotools
DESCRIPTION="HP48 Calculator Emulator"
HOMEPAGE="http://x48.berlios.de/"
-SRC_URI="mirror://sourceforge/x48.berlios/${P}.tar.bz2"
+SRC_URI="https://downloads.sourceforge.net/x48.berlios/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86"
+KEYWORDS="~alpha amd64 ~hppa ~ia64 ppc ppc64 sparc x86"
IUSE="readline"
RDEPEND="
@@ -22,15 +22,15 @@ DEPEND="${RDEPEND}
virtual/pkgconfig
x11-libs/libXt"
-src_unpack() {
- mkdir -p "${S}"
- cd "${S}"
- unpack ${A}
-}
+PATCHES=(
+ "${FILESDIR}"/${P}-static.patch
+ "${FILESDIR}"/${P}-void_return.patch
+ )
+
+S=${WORKDIR}
src_prepare() {
default
- sed -i '698s/inline/static inline/' src/emulate.c || die
eautoreconf
}
diff --git a/app-emulation/x48/x48-0.6.4-r3.ebuild b/app-emulation/x48/x48-0.6.4-r3.ebuild
new file mode 100644
index 000000000000..c584c99e820a
--- /dev/null
+++ b/app-emulation/x48/x48-0.6.4-r3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="HP48 Calculator Emulator"
+HOMEPAGE="https://sourceforge.net/projects/x48.berlios/"
+SRC_URI="https://downloads.sourceforge.net/x48.berlios/${P}.tar.bz2"
+S=${WORKDIR}
+
+LICENSE="GPL-3"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="readline"
+
+RDEPEND="
+ x11-libs/libX11
+ x11-libs/libXext
+ readline? ( sys-libs/readline:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ x11-libs/libXt"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-static.patch
+ "${FILESDIR}"/${P}-void_return.patch
+ "${FILESDIR}"/${P}-configure.patch
+ )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable readline)
+}
+
+src_install() {
+ default
+
+ insinto /usr/share/"${PN}"/romdump
+ doins -r romdump/{README,ROMDump*}
+}
+
+pkg_postinst() {
+ elog "The X48 emulator requires an HP48 ROM image to run."
+ elog
+ elog "If you own an HP-48 calculator, you can use the ROMDump utility"
+ elog "included with this package to obtain it from your calculator."
+ elog "The instructions of how to do this are included in the package."
+ elog
+ elog "Alternatively, HP has provided the ROM images for non-commercial"
+ elog "use only."
+ elog
+ elog "Due to confusion over the legal status of these ROMs you must"
+ elog "manually download one from http://www.hpcalc.org/hp48/pc/emulators/"
+ elog
+ elog "If you do not know which one to use, try 'HP 48GX Revision R ROM.'"
+ elog
+ elog "Once you have a ROM, you will need to install it by running:"
+ elog
+ elog "x48 -rom gxrom-r"
+ elog
+ elog "You will only have to do this the first time you run X48. The"
+ elog "ROM will be stored in ~/.hp48/rom for future runs."
+}
diff --git a/app-emulation/xcpc/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/Manifest b/app-emulation/xe-guest-utilities/Manifest
index f4ad73ba36dc..46d04c29c53a 100644
--- a/app-emulation/xe-guest-utilities/Manifest
+++ b/app-emulation/xe-guest-utilities/Manifest
@@ -1,3 +1 @@
-DIST xe-guest-utilities-5.6.0-595.src.rpm 454569 BLAKE2B ded5b93d74f268d069ddeebbf36aad7c098a8009e7f19e538343d71a5fe07e6a25e1089aba90540ae82511c2807dd792d3c3e59a40c1a55c9ef02ba1fe160154 SHA512 967f7708f074f4382c95a823e24dcf07c677e44d75a97e57078d63284584c85d2acf24e0a4b58ec2f26ba034ccaa1baad5793391f736fa4d72c04f7511bd78aa
-DIST xe-guest-utilities-6.1.0-1033.src.rpm 554621 BLAKE2B c76db0e9ab163f18c59687f33af3a91a75c602b3ff90a5e2a4405dd4797c31be215b599e01829d874c4f69e2bb1a675d8d017c09cdfa8818add167d886c3fbf1 SHA512 65ab85974fb5e73619aa3bac22c861cf989d6256e4f856da3c14767a0e8fe8f1c34713db32166c6f901c589e61f2fcc3c285bd8eded4925daa829e4adb07e9e2
DIST xe-guest-utilities-6.2.0-1120.src.rpm 566881 BLAKE2B b2c727c551996f218c021d509ba1841baa07c70cbaf7660c0ec9cbeae696c4e77921d8ca12e8dfdf934a6894058c62ee6bf4e86bd1918e304cc76ee28d396fad SHA512 b945b3bf8175816b41b3a07a7dd8f0d9d2fdb1a7144448a5bb7fb4b6729736c67cea88fd45031df41abdd99416addb17fa1ee9cfe1fc76acf610cde3b3213880
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 b680abcf6169..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>
@@ -20,8 +20,7 @@
<email>xen@gentoo.org</email>
<name>Gentoo Xen Project</name>
</maintainer>
-<longdescription>XenServer Virtual Machine Tools</longdescription>
<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-5.6.0_p595.ebuild b/app-emulation/xe-guest-utilities/xe-guest-utilities-5.6.0_p595.ebuild
deleted file mode 100644
index 9a057370c6ba..000000000000
--- a/app-emulation/xe-guest-utilities/xe-guest-utilities-5.6.0_p595.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# 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/"
-PV_BASE=${PV/_*}
-PV_FULL=${PV/_p/-}
-SRC_URI="http://updates.vmd.citrix.com/XenServer/${PV_BASE}/rhel4x/SRPMS/xe-guest-utilities-${PV_FULL}.src.rpm"
-LICENSE="LGPL-3 LGPL-2.1"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="xenstore"
-DEPEND="app-arch/rpm2targz"
-RDEPEND="
- !xenstore? ( app-emulation/xen-tools )
- xenstore? ( !app-emulation/xen-tools )"
-S=${WORKDIR}
-CONFIG_CHECK="~XEN_COMPAT_XENFS ~XENFS"
-QA_PREBUILT="usr/bin/xenstore* usr/bin/xeninfo"
-
-src_unpack() {
- rpm_src_unpack ${A}
- # Upstream includes xenstore-sources.tar.bz2
- # but it is NOT the complete source :-(
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-5.6.100_p651-gentoo.patch
- epatch "${FILESDIR}"/${PN}-5.6.100_p651-update-guest-attrs.patch
-}
-
-src_install() {
- 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
-
- if use xenstore; then
- dobin usr/bin/xeninfo
- dobin usr/bin/xenstore
- dobin usr/bin/xenstore-*
- fi
-}
-
-pkg_postinst() {
- 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 :"
- elog "'rc-update add xe-daemon boot'"
- elog
- fi
-}
diff --git a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.1.0_p1033.ebuild b/app-emulation/xe-guest-utilities/xe-guest-utilities-6.1.0_p1033.ebuild
deleted file mode 100644
index c8993996dc9b..000000000000
--- a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.1.0_p1033.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# 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/"
-PV_BASE=${PV/_*}
-PV_FULL=${PV/_p/-}
-SRC_URI="http://updates.vmd.citrix.com/XenServer/${PV_BASE}/rhel4x/SRPMS/xe-guest-utilities-${PV_FULL}.src.rpm"
-LICENSE="LGPL-3 LGPL-2.1"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="xenstore"
-DEPEND="app-arch/rpm2targz"
-RDEPEND="
- !xenstore? ( app-emulation/xen-tools )
- xenstore? ( !app-emulation/xen-tools )"
-S=${WORKDIR}
-CONFIG_CHECK="~XEN_COMPAT_XENFS ~XENFS"
-QA_PREBUILT="usr/bin/xenstore* usr/bin/xeninfo"
-
-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
- 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
-
- if use xenstore; then
- dobin usr/bin/xeninfo
- dobin usr/bin/xenstore
- dobin usr/bin/xenstore-*
- fi
-}
-
-pkg_postinst() {
- 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 :"
- elog "'rc-update add xe-daemon boot'"
- elog
- fi
-}
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 58e31d19f420..000000000000
--- a/app-emulation/xen-pvgrub/Manifest
+++ /dev/null
@@ -1,10 +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.10.3.tar.gz 24695778 BLAKE2B 50a9e31fb4cf587eeedb357fc710405a1cd4506174a38eb9b032a0cdd9b7f7343d98624ecb07cf605b1403664c7117cdc8f011290309caa18ca9604b4008b906 SHA512 030d23109ce4c0ebf50ade6841d5525a39032bcf8fd0599ccaa9502ff301c1f61f9c5f49233b41a5934a71228958febc1e529a9fc6822ba401a0c18c490ad412
-DIST xen-4.11.1.tar.gz 25152217 BLAKE2B a8dfbeb3d490787725c589e1ce82dcbbcd0be7fb4743b38daf3a8704dffda34d1faabb07d74e01d2fab1572ce0b730c21192469317545e8b3edb3fae1130ef8c SHA512 c1655c5decdaed95a2b9a99652318cfc72f6cfdae957cfe60d635f7787e8850f33e8fafc4c4b8d61fb579c9b9d93028a6382903e71808a0418b931e76d72a649
-DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
-DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
-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-4.3-externals.patch b/app-emulation/xen-pvgrub/files/xen-4.3-externals.patch
deleted file mode 100644
index 0d8956fac098..000000000000
--- a/app-emulation/xen-pvgrub/files/xen-4.3-externals.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -ur xen-4.3.0.orig/stubdom/Makefile xen-4.3.0/stubdom/Makefile
---- stubdom/Makefile 2013-07-09 18:46:56.000000000 +0800
-+++ 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 64e6e971243c..000000000000
--- a/app-emulation/xen-pvgrub/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="project">
- <email>xen@gentoo.org</email>
- <name>Gentoo Xen Project</name>
-</maintainer>
-</pkgmetadata>
diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.10.3.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.10.3.ebuild
deleted file mode 100644
index f2ffbddfdde7..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.10.3.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='xml,threads'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-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/${PV}/xen-${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-${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="custom-cflags"
-
-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}"
-
-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
- sed -e 's:^AR=ar rc:AR=ar:' \
- -e s':$(AR) $@:$(AR) rc $@:' \
- -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in}
- einfo "zlib Makefile edited"
-
- cd "${WORKDIR}"
- tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz
- tar czp grub-0.97 -f grub-0.97.tar.gz
- tar czp lwip -f lwip-1.3.0.tar.gz
- tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz
- tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz
- mv $set "${S}"/stubdom/
- 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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \;
- 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() {
- use custom-cflags || 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.11.1.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.11.1.ebuild
deleted file mode 100644
index b9022166805e..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.11.1.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='xml,threads'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-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/${PV}/xen-${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-${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="custom-cflags"
-
-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}"
-
-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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \;
- 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() {
- use custom-cflags || 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.11.2.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.11.2.ebuild
deleted file mode 100644
index 90600bb0eeef..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.11.2.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='xml,threads'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-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/${PV}/xen-${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-${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="custom-cflags"
-
-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}"
-
-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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \;
- 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() {
- use custom-cflags || 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.12.0.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.12.0.ebuild
deleted file mode 100644
index 90600bb0eeef..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.12.0.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='xml,threads'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-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/${PV}/xen-${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-${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="custom-cflags"
-
-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}"
-
-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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \;
- 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() {
- use custom-cflags || 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 e545dae8abda..f5c6218ff757 100644
--- a/app-emulation/xen-tools/Manifest
+++ b/app-emulation/xen-tools/Manifest
@@ -1,19 +1,10 @@
-DIST edk2-ef529e6ab7c31290a33045bb1f1837447cc0eb56.tar.gz 38714813 BLAKE2B 1c0670c6447aa7d2610e59481324eafe3dbf54cc0480c855380372cf5b95469de4182b569d1c4429df71ceb9be014cb414e070a808609d185b488519955b8677 SHA512 8eb88006500d9d6982e5565bdb71bf47dfe2b9669e107f48b6b237d7efbbfb54b9fd81841421c347e5c0ca45ef9c08f0b95983c8b922c2e1072b0e42b8ede92c
-DIST ipxe-git-d2063b7693e0e35db97b2264aa987eb6341ae779.tar.gz 3792227 BLAKE2B 720ac29ab3187d7abaec33823dda967caab7eea9631123a7619d2f83d3ad6c7bb47db01665a4c54548fe367866606936d36690a06ecf42323b9bd0ef00e41569 SHA512 2b4ae8e65cd678dbb376f24001294eb54aead8d66456e06fc270dec178d90b282c1eb19731234d8b458054e49c5b8b8c4a89345c63ed0a4dafaf205e642b00b7
-DIST ovmf-20170321.tar.xz 22141096 BLAKE2B 79e991c8f9deb297865c319e88b6e6d46b1d08067d3fd639c83f2a379670779ecc60c74c2671ea4eb4a6659fe08ac2d7d4ff337b010b42a908a50829a2d18eeb SHA512 f65dabde3df967224e2072817211786ee4fc3994ee31f8f9d6f67fd74e3479e1da459c720169dd81020cdc1777e4600e531bb124b4625c2ded42c6005bdc802a
-DIST seabios-1.10.0.tar.gz 588213 BLAKE2B 254eb4572a1dac06020a545820efb53a130a027aaab035cd916009b424475f89bd151f82f1bc5103c01c4657d09da3219d2fbcc7728add473011dcfc7bff7410 SHA512 f1b83ce37b59070b488e19f98c95ca9f413cf4969663331b631c3ccb884c90b2db793d32a779ef05cead538c2fd123be4b73391ad2fa20c900a1f14237178d8c
-DIST seabios-1.12.0.tar.gz 613542 BLAKE2B f145c2db716996bfa9e5c014086ccfaa8ae96ebc158f34303b122b7bf209408c567665d8691364df8d8e886f63e0e72a3f3cd319dfa86ef581023201b5d94e53 SHA512 e52c5363e5bb37b5286e55545aa06bd126218f9d0e3a06ac2e189de68fe3de3256c11ca1bb13357a9c384d7e3af6284083ff3aa587688b5de04ef11b97bdfa27
-DIST seabios-rel-1.11.1.tar.gz 604125 BLAKE2B df2b7322f5169fb74e7f5dd3f680e7d8ad3e6f93e8b1376d15bbda8865458648a0d6086011a8a6549e7ad1794844878736441e70067580c0eb416e20ee038d95 SHA512 69622460475b54ba77a10509dae0ef46d9c733c6c8527ab56a4f2298534dcf1f7722eb501df873ab612222e5867e334c2831cc4c95dd23771aee10740acf0273
-DIST xen-4.10.3-upstream-patches-1.tar.xz 24064 BLAKE2B ec9339d00afd4057738a78165a82dbebbab73eb561984a049daff84dfb115c0550e67796bfa775d5e5a3a4576c4ea7db408d491fe745a68c412f93a04719c58d SHA512 b3761acdb7a581d172e1e2b1e09406c4748eda3e25c81c19bb53b38e005d27e10ac64109870b47ce72372dc7b7c63ec3eca6156389c174f28ab4ad1c2b9e5634
-DIST xen-4.10.3.tar.gz 24695778 BLAKE2B 50a9e31fb4cf587eeedb357fc710405a1cd4506174a38eb9b032a0cdd9b7f7343d98624ecb07cf605b1403664c7117cdc8f011290309caa18ca9604b4008b906 SHA512 030d23109ce4c0ebf50ade6841d5525a39032bcf8fd0599ccaa9502ff301c1f61f9c5f49233b41a5934a71228958febc1e529a9fc6822ba401a0c18c490ad412
-DIST xen-4.11.1-upstream-patches-2.tar.xz 78292 BLAKE2B 762c0b33500503854d3195af752a4510090b22a7212abb6bd72a74fd55b64ffc622db5d3b18ff5c2f1b804002537a82bdf5036ec23acf15c8b8e3f0ed8c722fb SHA512 4850ab53de811dc7a5499f603584624c7879f41cbacc223cbfd5fdf0042d39ba0195aa51356215d26136dab536f1b713274d21e3d265b62ca06fdab0aa923a77
-DIST xen-4.11.1.tar.gz 25152217 BLAKE2B a8dfbeb3d490787725c589e1ce82dcbbcd0be7fb4743b38daf3a8704dffda34d1faabb07d74e01d2fab1572ce0b730c21192469317545e8b3edb3fae1130ef8c SHA512 c1655c5decdaed95a2b9a99652318cfc72f6cfdae957cfe60d635f7787e8850f33e8fafc4c4b8d61fb579c9b9d93028a6382903e71808a0418b931e76d72a649
-DIST xen-4.11.2-upstream-patches-0.tar.xz 11532 BLAKE2B e36509d6256ac4018f20711baba77619a7c3a684d81e25a94cffba9c9f53ec9e0efdcefcd6a7ffa26b49fd3d4e0dfc2126f1ea620f0bd35ea83188b4587e5b38 SHA512 4a97d1e56cb3e5152372f0c0b99f8838194b2e03ed1255e87611d8bb28af9c9199fe123d3542f5ba9b3f652c29a519b5e4255b8925c0c8dfbd588f83ed8806d9
-DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
-DIST xen-4.12.0-upstream-patches-0.tar.xz 32864 BLAKE2B 994ca1f9fdd89f25e225348870ec97257795644f0314437f8d2927b77ce5b53de6b9e043636cc2c9e4f8fda4ff7b7c26917f2912f2a287c57bc00606846fb617 SHA512 6f7ab80cac0afd8bcd88109cd052e29f9b028b0c363a4e1f1e845f4fdbb3d7782dffd1f20dd80f2923c507625abe9648d7fbe7d52c6fd565ab550c9c5a416eeb
-DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
-DIST xen-gentoo-patches-16.tar.xz 36980 BLAKE2B a59fcb221a915e39fbbc463fa8b1ca1ef00007654936cc17f64853d91737478a6f78480a3e459b07b8c3ddcc81ab9400beb9ea3906750ba69864d1b97db349d2 SHA512 7727e5c7f4ef997eea830618bc26b26f3a99539a1c702264132401e41a328b384346a06b6721f18e3056fc91a2d2d2bf6320e0ae3c79432c7458a24a0d269c56
-DIST xen-gentoo-patches-17.tar.xz 15688 BLAKE2B d5e3bdb15e182c5f0c21adfa5cb5b88e3453e5035659823e3322074646c3ea89b55bf54d0ec6c54966d9739544d156de365a60acf928b799b68978be3380a002 SHA512 f1000ca36166fa21d4b18fb9ecf36f55b1450c312622fbe38545f78aabc150e2d6cce4bd58472c41bd9be8945940a0bc953ba7e470cd5095cf2e7d8a87769b2b
-DIST xen-gentoo-patches-18.tar.xz 16840 BLAKE2B 7243b363c78250ae1928d75813cfd6035a87ca03f1605cbe02233e009a19105a0712711d622eef8606f3e7e1a5db5203342e56a1b00496d5ce37ddc4ffb9e4ea SHA512 328d7b1a57ab6bf9c7200b934aeb241f6d4fecccc600130d1c80460540212eb658cb74ae0502c008e040fdb2d95db20c2a3d71a8e73fd1361070d70adeab6e30
-DIST xen-gentoo-patches-19.tar.xz 17460 BLAKE2B 6f25c4c9bb438ba0ceded75d04ba6c05ca74e6319d14cf744ea23ecbed2e8283c3c00275a4609b583402d352216520a10197fd4ab9e056eac1c841b0f79bc6b8 SHA512 586e88eea0f2dcc5bae0eb4691cc1d722a8b1a7ca849fd8992d72c0990b2832b3e78738c936e8e46bc9623aa1c8e8afa341a22608479629ea012474d5ff6b69a
-DIST xen-ovmf-patches-3.tar.xz 4208 BLAKE2B 0df8f85667a33c91cbfd86c59aec2ae65eca892b45d66eed76f793a52e2748989bc2785861f8bfdf94235ef7a6c0be6572c6e6cce9695469e40f0facd0ce3947 SHA512 abe001053ca702138bbcdd6bea14e2daae5c785f862d6a15001ca894c8ed8617f0c5dc439c6f54a41433b988acf57c71911af1db074aa76732c39d98622a3b5b
+DIST OpenSSL_1_1_1t.tar.gz 10061233 BLAKE2B aef89c338644230305bcc75dbc13d6799a04ed8c712b6aed07a782703031e977c3e300924f26e5854d0b89ecf39d2d516a50838167754e8f63322fba51de9478 SHA512 f28a323fd78be0b16ae6db9a8f163e64c74410e12ddd1a9836dfdda34c264112184f4e22583c84b6fa56716e5aaac9cb860cb183bd3d0cb064091eea1e21815e
+DIST berkeley-softfloat-b64af41c3276f97f0e181920400ee056b9c88037.tar.gz 148741 BLAKE2B 72014022926b636147e202d74c42df2ce9cfed00b91c275d5b2e0afbc5c68765445cbe7ac6389d7c2512bd1d45b0e16e999936552d09bbc733ab66c92968bd31 SHA512 8420c29faa7ff57e06d6758b03e81ca0630c59946bc031e8611f1449e23634cf901b502161f2c1423c0cff949b5481445e36a3aa53dc885b61ca2c673b3ba567
+DIST brotli-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 6c12664cca1c..000000000000
--- a/app-emulation/xen-tools/files/gentoo-patches.conf
+++ /dev/null
@@ -1,96 +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"
-
-# Prevent file collision with qemu package Bug 478064
-_gx043=" xen-4.10-qemu-bridge.patch"
-_gx051=" xen-4.12-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
-_gx047=" xen-tools-4.10.1-gcc8.patch"
-_gx048=" xen-tools-4.11.1-gcc8.patch"
-_gx052=" xen-tools-4.10.3-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"
-
-# xen-tools-4.10.3 patches set
-_gpv_xen_tools_4103_0="
-${_gx038} ${_gx017} ${_gx043}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx045} ${_gx046} ${_gx047}
-${_gx049}
-"
-
-# xen-tools-4.10.3 patches set r1
-_gpv_xen_tools_4103_1="
-${_gx038} ${_gx017} ${_gx043}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx045} ${_gx046} ${_gx052}
-${_gx049}
-"
-
-# xen-tools-4.11.1 patches set
-_gpv_xen_tools_4111_0="
-${_gx038} ${_gx017} ${_gx043}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx045} ${_gx046} ${_gx048}
-${_gx049}
-"
-
-# xen-tools-4.11.2 patches set
-_gpv_xen_tools_4112_0="
-${_gx038} ${_gx017} ${_gx043}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx045} ${_gx046} ${_gx048}
-${_gx049} ${_gx055}
-"
-
-# xen-tools-4.12.0 patches set
-_gpv_xen_tools_4120_0="
-${_gx038}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx053} ${_gx050} ${_gx051}
-${_gx054}
-"
diff --git a/app-emulation/xen-tools/files/xenstored.initd b/app-emulation/xen-tools/files/xenstored.initd
deleted file mode 100644
index 1b7eec92658a..000000000000
--- a/app-emulation/xen-tools/files/xenstored.initd
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- before xendomains xend sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp
- need xencommons
-}
-
-xenstored_dir_check() {
- # create dir dynamically
- local i
- for i in /var/lock/subsys /run/xen /run/xend/boot /run/xenstored; do
- [ -x $i ] || mkdir -p $i
- done
-}
-
-start() {
- ebegin "Starting xenstored daemon"
- xenstored_dir_check
- start-stop-daemon --start --exec /usr/sbin/xenstored \
- --pidfile /run/xenstored.pid \
- -- --pid-file=/run/xenstored.pid \
- $XENSTORED_OPTS
- until xenstore-exists / || $((15 < ++i))
- do
- echo -n .
- sleep 1
- done
- einfo "Setting domain0 name record"
- /usr/bin/xenstore-write "/local/domain/0/name" "Domain-0"
- local V=$(xl info| awk "/xen_minor/ { print \$3 }")
- [ $V -ge 4 ] && /usr/bin/xenstore-write "/local/domain/0/domid" 0
-
- eend $*
-}
-
-stop() {
- ebegin "Stopping xenstored daemon"
- start-stop-daemon --stop --exec /usr/sbin/xenstored \
- --pidfile /run/xenstored.pid
- eend $?
-}
-
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 3d5273174a37..fb98e4a01835 100644
--- a/app-emulation/xen-tools/metadata.xml
+++ b/app-emulation/xen-tools/metadata.xml
@@ -1,18 +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" proxied="yes">
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomáš Mózes</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <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>
<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="pam">Enable pam support</flag>
<flag name="pygrub">Install the pygrub boot loader</flag>
<flag name="qemu">Enable IOEMU support via the use of qemu-dm</flag>
<flag name="qemu-traditional">Build the old qemu traditional device model (useful only if you cannot change to the new device model e.g. Windows VMs)</flag>
diff --git a/app-emulation/xen-tools/xen-tools-4.10.3-r2.ebuild b/app-emulation/xen-tools/xen-tools-4.10.3-r2.ebuild
deleted file mode 100644
index 11abf9ebb62f..000000000000
--- a/app-emulation/xen-tools/xen-tools-4.10.3-r2.ebuild
+++ /dev/null
@@ -1,468 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-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=
- # xen-tools's gentoo patches tarball
- GENTOO_VER=16
- # xen-tools's gentoo patches version which apply to this specific ebuild
- GENTOO_GPV=1
- # xen-tools ovmf's patches
- OVMF_VER=3
-
- SEABIOS_VER=1.10.0
- # OVMF upstream 5920a9d16b1ab887c2858224316a98e961d71b05
- OVMF_PV=20170321
-
- [[ -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"
- [[ -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
- http://code.coreboot.org/p/seabios/downloads/get/seabios-${SEABIOS_VER}.tar.gz
- https://dev.gentoo.org/~dlan/distfiles/seabios-${SEABIOS_VER}.tar.gz
- ovmf? ( https://dev.gentoo.org/~dlan/distfiles/ovmf-${OVMF_PV}.tar.xz
- ${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 docs/README.xen-bugtool )
-
-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 custom-cflags debug doc flask hvm ocaml ovmf +pam pygrub python +qemu +qemu-traditional screen sdl static-libs system-qemu system-seabios"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
- pygrub? ( python )
- ovmf? ( hvm )
- ^^ ( 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
- dev-python/lxml[${PYTHON_USEDEP}]
- x86? ( sys-devel/dev86
- sys-power/iasl )
- pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
- 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-devel/bin86
- system-seabios? ( sys-firmware/seabios )
- sys-firmware/ipxe
- sys-devel/dev86
- sys-power/iasl )
- dev-lang/perl
- app-misc/pax-utils
- doc? (
- app-text/ghostscript-gpl
- app-text/pandoc
- dev-python/markdown[${PYTHON_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] )
- )
- system-qemu? ( app-emulation/qemu[xen] )
- ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )"
-
-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/s390-ccw.img
- usr/share/qemu-xen/qemu/u-boot.e500
-"
-
-QA_PREBUILT="
- usr/libexec/xen/bin/ivshmem-client
- usr/libexec/xen/bin/ivshmem-server
- usr/libexec/xen/bin/qemu-img
- usr/libexec/xen/bin/qemu-io
- usr/libexec/xen/bin/qemu-nbd
- 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-${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}"/ovmf-*/ > /dev/null
- eapply "${WORKDIR}"/patches-ovmf
- popd > /dev/null
- fi
- mv ../ovmf-${OVMF_PV} tools/firmware/ovmf-dir-remote || 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"
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
-
- # try and remove all the default cflags
- find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
- -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} + || die "failed to re-set custom-cflags"
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- unset CPPFLAGS
- fi
-
- 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 -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i 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 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 pam) \
- $(use_enable api xenapi) \
- $(use_enable ovmf) \
- $(use_enable ocaml ocamltools) \
- --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"
-
- 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
-}
-
-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.11.1-r5.ebuild b/app-emulation/xen-tools/xen-tools-4.11.1-r5.ebuild
deleted file mode 100644
index aa27319fb101..000000000000
--- a/app-emulation/xen-tools/xen-tools-4.11.1-r5.ebuild
+++ /dev/null
@@ -1,474 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-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=2
- SECURITY_VER=
- # xen-tools's gentoo patches tarball
- GENTOO_VER=17
- # 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.11.1
- EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56
-
- [[ -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"
- [[ -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://git.seabios.org/cgit/seabios.git/snapshot/seabios-rel-${SEABIOS_VER}.tar.gz
- ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_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 docs/README.xen-bugtool )
-
-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 custom-cflags debug doc flask +hvm ocaml ovmf +pam pygrub python +qemu +qemu-traditional screen sdl static-libs system-qemu system-seabios"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
- ovmf? ( hvm )
- pygrub? ( python )
- ?? ( 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
- dev-python/lxml[${PYTHON_USEDEP}]
- x86? ( sys-devel/dev86
- sys-firmware/ipxe[qemu]
- sys-power/iasl )
- pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
- 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-devel/bin86
- sys-devel/dev86
- sys-firmware/ipxe[qemu]
- sys-power/iasl
- system-seabios? ( sys-firmware/seabios ) )
- dev-lang/perl
- app-misc/pax-utils
- doc? (
- app-text/ghostscript-gpl
- app-text/pandoc
- dev-python/markdown[${PYTHON_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] )
- )
- system-qemu? ( app-emulation/qemu[xen] )
- ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )"
-
-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/s390-ccw.img
- usr/share/qemu-xen/qemu/u-boot.e500
-"
-
-QA_PREBUILT="
- usr/libexec/xen/bin/ivshmem-client
- usr/libexec/xen/bin/ivshmem-server
- 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
- cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || 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"
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
-
- # try and remove all the default cflags
- find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
- -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} + || die "failed to re-set custom-cflags"
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- unset CPPFLAGS
- fi
-
- 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 -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i 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 pam) \
- $(use_enable ocaml ocamltools) \
- $(use_enable ovmf) \
- --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"
-
- 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
-}
-
-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.11.2.ebuild b/app-emulation/xen-tools/xen-tools-4.11.2.ebuild
deleted file mode 100644
index 409d2a256949..000000000000
--- a/app-emulation/xen-tools/xen-tools-4.11.2.ebuild
+++ /dev/null
@@ -1,474 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-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=0
- SECURITY_VER=
- # xen-tools's gentoo patches tarball
- GENTOO_VER=19
- # 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.11.1
- EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56
-
- [[ -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"
- [[ -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://git.seabios.org/cgit/seabios.git/snapshot/seabios-rel-${SEABIOS_VER}.tar.gz
- ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_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 docs/README.xen-bugtool )
-
-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 custom-cflags debug doc flask +hvm ocaml ovmf +pam pygrub python +qemu +qemu-traditional screen sdl static-libs system-qemu system-seabios"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
- ovmf? ( hvm )
- pygrub? ( python )
- ?? ( 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
- dev-python/lxml[${PYTHON_USEDEP}]
- x86? ( sys-devel/dev86
- sys-firmware/ipxe[qemu]
- sys-power/iasl )
- pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
- 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-devel/bin86
- sys-devel/dev86
- sys-firmware/ipxe[qemu]
- sys-power/iasl
- system-seabios? ( sys-firmware/seabios ) )
- dev-lang/perl
- app-misc/pax-utils
- doc? (
- app-text/ghostscript-gpl
- app-text/pandoc
- dev-python/markdown[${PYTHON_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] )
- )
- system-qemu? ( app-emulation/qemu[xen] )
- ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )"
-
-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/s390-ccw.img
- usr/share/qemu-xen/qemu/u-boot.e500
-"
-
-QA_PREBUILT="
- usr/libexec/xen/bin/ivshmem-client
- usr/libexec/xen/bin/ivshmem-server
- 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
- cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || 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"
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
-
- # try and remove all the default cflags
- find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
- -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} + || die "failed to re-set custom-cflags"
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- unset CPPFLAGS
- fi
-
- 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 -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i 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 pam) \
- $(use_enable ocaml ocamltools) \
- $(use_enable ovmf) \
- --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"
-
- 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
-}
-
-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.17.4.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
new file mode 100644
index 000000000000..c4bcc325110c
--- /dev/null
+++ b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
@@ -0,0 +1,524 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
+
+inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ REPO="xen.git"
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/${REPO}"
+ S="${WORKDIR}/${REPO}"
+else
+ KEYWORDS="amd64 ~arm ~arm64 x86"
+
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
+ EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
+ 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
+ https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
+ )
+ "
+
+ if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+ XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+ XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
+ XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+ fi
+ if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+ XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_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://xenproject.org"
+DOCS=( README )
+
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
+# >=dev-lang/ocaml-4 stable
+# Masked in profiles/eapi-5-files instead
+IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ ipxe? ( rombios )
+ ovmf? ( hvm )
+ pygrub? ( python )
+ rombios? ( hvm )
+ system-ipxe? ( rombios )
+ ?? ( ipxe system-ipxe )
+ ?? ( qemu system-qemu )"
+
+COMMON_DEPEND="
+ lzma? ( app-arch/xz-utils )
+ qemu? (
+ dev-libs/glib:2
+ sys-libs/pam
+ )
+ zstd? ( app-arch/zstd )
+ app-arch/bzip2
+ app-arch/zstd
+ dev-libs/libnl:3
+ dev-libs/lzo:2
+ dev-libs/yajl
+ sys-apps/util-linux
+ sys-fs/e2fsprogs
+ sys-libs/ncurses
+ sys-libs/zlib
+ ${PYTHON_DEPS}
+"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/iproute2[-minimal]
+ net-misc/bridge-utils
+ screen? (
+ app-misc/screen
+ app-admin/logrotate
+ )
+ selinux? ( sec-policy/selinux-xen )"
+
+DEPEND="${COMMON_DEPEND}
+ app-misc/pax-utils
+ >=sys-kernel/linux-headers-4.11
+ x11-libs/pixman
+ $(python_gen_cond_dep '
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ')
+ x86? ( sys-devel/dev86
+ system-ipxe? ( sys-firmware/ipxe[qemu] )
+ sys-power/iasl )
+ api? ( dev-libs/libxml2
+ net-misc/curl )
+
+ ovmf? (
+ !arm? ( !arm64? ( dev-lang/nasm ) )
+ $(python_gen_impl_dep sqlite)
+ )
+ !amd64? ( >=sys-apps/dtc-1.4.0 )
+ amd64? ( sys-power/iasl
+ system-seabios? (
+ || (
+ sys-firmware/seabios
+ sys-firmware/seabios-bin
+ )
+ )
+ system-ipxe? ( sys-firmware/ipxe[qemu] )
+ rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
+ arm64? ( sys-power/iasl
+ rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
+ doc? (
+ app-text/ghostscript-gpl
+ $(python_gen_cond_dep '
+ dev-python/markdown[${PYTHON_USEDEP}]
+ ')
+ dev-texlive/texlive-latexextra
+ >=media-gfx/fig2dev-3.2.9-r1
+ virtual/pandoc
+ )
+ hvm? ( x11-base/xorg-proto )
+ qemu? (
+ app-arch/snappy:=
+ dev-build/meson
+ sdl? (
+ media-libs/libsdl[X]
+ media-libs/libsdl2[X]
+ )
+ )
+ system-qemu? ( app-emulation/qemu[xen] )
+ ocaml? ( dev-ml/findlib
+ dev-lang/ocaml[ocamlopt] )
+ python? ( >=dev-lang/swig-4.0.0 )"
+
+BDEPEND="dev-lang/perl
+ 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
+ usr/libexec/xen/bin/ivshmem-server
+ usr/libexec/xen/bin/qemu-edid
+ usr/libexec/xen/bin/qemu-img
+ usr/libexec/xen/bin/qemu-io
+ usr/libexec/xen/bin/qemu-keymap
+ usr/libexec/xen/bin/qemu-nbd
+ usr/libexec/xen/bin/qemu-pr-helper
+ usr/libexec/xen/bin/qemu-storage-daemon
+ usr/libexec/xen/bin/qemu-system-i386
+ usr/libexec/xen/bin/virtfs-proxy-helper
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
+ usr/libexec/xen/libexec/qemu-pr-helper
+ usr/libexec/xen/libexec/virtfs-proxy-helper
+ usr/libexec/xen/libexec/virtiofsd
+ usr/libexec/xen/libexec/xen-bridge-helper
+ usr/share/qemu-xen/qemu/s390-ccw.img
+ usr/share/qemu-xen/qemu/s390-netboot.img
+ usr/share/qemu-xen/qemu/u-boot.e500
+"
+
+RESTRICT="test"
+
+pkg_setup() {
+ python_setup
+ export "CONFIG_LOMOUNT=y"
+
+ #bug 522642, disable compile tools/tests
+ export "CONFIG_TESTS=n"
+
+ if [[ -z ${XEN_TARGET_ARCH} ]] ; then
+ if use x86 && use amd64; then
+ die "Confusion! Both x86 and amd64 are set in your use flags!"
+ elif use x86; then
+ export XEN_TARGET_ARCH="x86_32"
+ elif use amd64 ; then
+ export XEN_TARGET_ARCH="x86_64"
+ elif use arm; then
+ export XEN_TARGET_ARCH="arm32"
+ elif use arm64; then
+ export XEN_TARGET_ARCH="arm64"
+ else
+ die "Unsupported architecture!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
+ mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
+ pushd tools/firmware/ > /dev/null
+ ln -s seabios-dir-remote seabios-dir || die
+ popd > /dev/null
+
+ if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+ eapply "${XEN_UPSTREAM_PATCHES_DIR}"
+ fi
+
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
+ fi
+
+ # Rename qemu-bridge-helper to xen-bridge-helper to avoid file
+ # collisions with app-emulation/qemu.
+ sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
+ tools/qemu-xen/include/net/net.h \
+ tools/qemu-xen/meson.build \
+ tools/qemu-xen/qemu-bridge-helper.c \
+ tools/qemu-xen/qemu-options.hx \
+ || die
+ mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
+
+ if use ovmf; then
+ mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
+ 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
+
+ # 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
+
+ # Fix texi2html build error with new texi2html, qemu.doc.html
+ sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
+
+ # Drop .config, fixes to gcc-4.6
+ sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+ # drop flags
+ unset CFLAGS
+ unset LDFLAGS
+ unset ASFLAGS
+ unset CPPFLAGS
+
+ if ! use pygrub; then
+ sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
+ fi
+
+ if ! use python; then
+ sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
+ fi
+
+ if ! use hvm; then
+ sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
+ # Bug 351648
+ elif ! use x86 && ! has x86 $(get_all_abis); then
+ mkdir -p "${WORKDIR}"/extra-headers/gnu || die
+ touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
+ export CPATH="${WORKDIR}"/extra-headers
+ fi
+
+ if use qemu; then
+ if use sdl; then
+ sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
+ tools/Makefile || die
+ else
+ sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
+ tools/qemu-xen-traditional/xen-setup || die
+ sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
+ tools/Makefile || die
+ fi
+ else
+ # Don't bother with qemu, only needed for fully virtualised guests
+ sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
+ fi
+
+ # Reset bash completion dir; Bug 472438
+ sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
+ -i config/Paths.mk.in || die
+
+ # xencommons, Bug #492332, sed lighter weight than patching
+ sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
+ -i tools/hotplug/Linux/init.d/xencommons.in || die
+
+ # fix bashishm
+ sed -e '/Usage/s/\$//g' \
+ -i tools/hotplug/Linux/init.d/xendriverdomain.in || die
+
+ # respect multilib, usr/lib/libcacard.so.0.0.0
+ sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
+ -i tools/qemu-xen/configure || die
+
+ #bug 518136, don't build 32bit exactuable for nomultilib profile
+ if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
+ sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
+ fi
+
+ # uncomment lines in xl.conf
+ sed -e 's:^#autoballoon=:autoballoon=:' \
+ -e 's:^#lockfile=:lockfile=:' \
+ -e 's:^#vif.default.script=:vif.default.script=:' \
+ -i tools/examples/xl.conf || die
+
+ # disable capstone (Bug #673474)
+ sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
+ -i tools/Makefile || die
+
+ # disable glusterfs
+ sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
+ -i tools/Makefile || die
+
+ # disable jpeg automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
+ -i tools/Makefile || die
+
+ # disable png automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
+ -i tools/Makefile || die
+
+ # disable docker (Bug #732970)
+ sed -e "s:\$\$source/configure:\0 --disable-containers:" \
+ -i tools/Makefile || die
+
+ # disable abi-dumper (Bug #791172)
+ sed -e 's/$(ABI_DUMPER) /echo /g' \
+ -i tools/libs/libs.mk || die
+
+ # Remove -Werror
+ find . -type f \( -name Makefile -o -name "*.mk" \) \
+ -exec sed -i \
+ -e 's/-Werror //g' \
+ -e '/^CFLAGS *+= -Werror$/d' \
+ -e 's/, "-Werror"//' \
+ {} + || die
+
+ default
+}
+
+src_configure() {
+ local myconf=(
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --libexecdir="${EPREFIX}/usr/libexec"
+ --localstatedir="${EPREFIX}/var"
+ --disable-golang
+ --disable-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[@]}
+}
+
+src_compile() {
+ local myopt
+ use debug && myopt="${myopt} debug=y"
+ use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
+
+ if test-flag-CC -fno-strict-overflow; then
+ append-flags -fno-strict-overflow
+ fi
+
+ # bug #845099
+ if use ipxe; then
+ local -x NO_WERROR=1
+ fi
+
+ emake \
+ 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
+ else
+ emake -C docs man-pages
+ fi
+}
+
+src_install() {
+ # Override auto-detection in the build system, bug #382573
+ export INITD_DIR=/tmp/init.d
+ export CONFIG_LEAF_DIR=../tmp/default
+
+ # Let the build system compile installed Python modules.
+ local PYTHONDONTWRITEBYTECODE
+ export PYTHONDONTWRITEBYTECODE
+
+ emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
+ XEN_PYTHON_NATIVE_INSTALL=y install-tools
+
+ # Created at runtime
+ rm -rv "${ED}/var/run" || die
+
+ # Fix the remaining Python shebangs.
+ python_fix_shebang "${D}"
+
+ # Remove RedHat-specific stuff
+ rm -rf "${D}"/tmp || die
+
+ if use doc; then
+ emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
+ dodoc -r docs/{pdf,txt}
+ else
+ emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
+ fi
+ dodoc ${DOCS[@]}
+
+ newconfd "${FILESDIR}"/xendomains.confd xendomains
+ newconfd "${FILESDIR}"/xenstored.confd xenstored
+ newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
+ newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
+ newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
+ newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
+ newinitd "${FILESDIR}"/xencommons.initd xencommons
+ newconfd "${FILESDIR}"/xencommons.confd xencommons
+ newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
+ newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
+ newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
+
+ if use screen; then
+ cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
+ cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
+ keepdir /var/log/xen-consoles
+ fi
+
+ # For -static-libs wrt Bug 384355
+ if ! use static-libs; then
+ rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
+ fi
+
+ # for xendomains
+ keepdir /etc/xen/auto
+
+ # Remove files failing QA AFTER emake installs them, avoiding seeking absent files
+ find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
+ -o -name openbios-ppc -o -name palcode-clipper \) -delete || die
+
+ keepdir /var/lib/xen/dump
+ keepdir /var/lib/xen/xenpaging
+ keepdir /var/lib/xenstored
+ keepdir /var/log/xen
+
+ if use python; then
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
+ fi
+
+ python_optimize
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/xen-tools/xen-tools-4.12.0-r3.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
index 8a13631173e4..e283301b0bd5 100644
--- a/app-emulation/xen-tools/xen-tools-4.12.0-r3.ebuild
+++ b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
@@ -1,68 +1,75 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python2_7 )
-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=0
- SECURITY_VER=
- # xen-tools's gentoo patches tarball
- GENTOO_VER=18
- # 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.0
- EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56
- IPXE_COMMIT=d2063b7693e0e35db97b2264aa987eb6341ae779
-
- [[ -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"
- [[ -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
+ KEYWORDS="amd64 ~arm ~arm64 x86"
+
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
+ EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
+ 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? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.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
- ${OVMF_PATCHSET_URI} )
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
+ https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
+ https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
+ https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
+ )
+ "
- 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 custom-cflags 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}
@@ -75,80 +82,124 @@ 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
- dev-python/lxml[${PYTHON_USEDEP}]
+ x11-libs/pixman
+ $(python_gen_cond_dep '
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ')
x86? ( sys-devel/dev86
system-ipxe? ( sys-firmware/ipxe[qemu] )
sys-power/iasl )
- pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
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-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
- dev-python/markdown[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/markdown[${PYTHON_USEDEP}]
+ ')
dev-texlive/texlive-latexextra
- media-gfx/transfig
+ >=media-gfx/fig2dev-3.2.9-r1
+ virtual/pandoc
)
hvm? ( x11-base/xorg-proto )
qemu? (
app-arch/snappy:=
- x11-libs/pixman
- sdl? ( media-libs/libsdl[X] )
+ dev-build/meson
+ sdl? (
+ media-libs/libsdl[X]
+ media-libs/libsdl2[X]
+ )
)
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
usr/libexec/xen/bin/ivshmem-server
+ usr/libexec/xen/bin/qemu-edid
usr/libexec/xen/bin/qemu-img
usr/libexec/xen/bin/qemu-io
usr/libexec/xen/bin/qemu-keymap
usr/libexec/xen/bin/qemu-nbd
usr/libexec/xen/bin/qemu-pr-helper
+ usr/libexec/xen/bin/qemu-storage-daemon
usr/libexec/xen/bin/qemu-system-i386
usr/libexec/xen/bin/virtfs-proxy-helper
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
+ usr/libexec/xen/libexec/qemu-pr-helper
+ usr/libexec/xen/libexec/virtfs-proxy-helper
+ usr/libexec/xen/libexec/virtiofsd
usr/libexec/xen/libexec/xen-bridge-helper
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/s390-netboot.img
@@ -182,111 +233,63 @@ 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-${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
+
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
fi
- # Ovmf's patchset
+ # 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 "${WORKDIR}/patches-gentoo/${PN}-4.12.0-ipxe-gcc9.patch" \
- tools/firmware/etherboot/patches/ipxe-gcc9.patch || die
- echo "ipxe-gcc9.patch" >> tools/firmware/etherboot/patches/series || die
- fi
+ cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
- mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || 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
# 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"
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
-
- # try and remove all the default cflags
- find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
- -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} + || die "failed to re-set custom-cflags"
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- unset CPPFLAGS
- fi
+ # drop flags
+ unset CFLAGS
+ unset LDFLAGS
+ unset ASFLAGS
+ unset CPPFLAGS
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
@@ -317,13 +320,12 @@ src_prepare() {
fi
else
# Don't bother with qemu, only needed for fully virtualised guests
- sed -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i Makefile || die
+ 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
+ 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" \&\& &:' \
@@ -356,44 +358,85 @@ 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() {
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}
+ # 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
@@ -465,27 +508,17 @@ src_install() {
keepdir /var/lib/xen/xenpaging
keepdir /var/lib/xenstored
keepdir /var/log/xen
-}
-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."
+ if use python; then
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
fi
- 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
+ python_optimize
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest
index 5d4adb54d575..50042de97f70 100644
--- a/app-emulation/xen/Manifest
+++ b/app-emulation/xen/Manifest
@@ -1,8 +1,4 @@
-DIST xen-4.10.3-upstream-patches-1.tar.xz 24064 BLAKE2B ec9339d00afd4057738a78165a82dbebbab73eb561984a049daff84dfb115c0550e67796bfa775d5e5a3a4576c4ea7db408d491fe745a68c412f93a04719c58d SHA512 b3761acdb7a581d172e1e2b1e09406c4748eda3e25c81c19bb53b38e005d27e10ac64109870b47ce72372dc7b7c63ec3eca6156389c174f28ab4ad1c2b9e5634
-DIST xen-4.10.3.tar.gz 24695778 BLAKE2B 50a9e31fb4cf587eeedb357fc710405a1cd4506174a38eb9b032a0cdd9b7f7343d98624ecb07cf605b1403664c7117cdc8f011290309caa18ca9604b4008b906 SHA512 030d23109ce4c0ebf50ade6841d5525a39032bcf8fd0599ccaa9502ff301c1f61f9c5f49233b41a5934a71228958febc1e529a9fc6822ba401a0c18c490ad412
-DIST xen-4.11.1-upstream-patches-2.tar.xz 78292 BLAKE2B 762c0b33500503854d3195af752a4510090b22a7212abb6bd72a74fd55b64ffc622db5d3b18ff5c2f1b804002537a82bdf5036ec23acf15c8b8e3f0ed8c722fb SHA512 4850ab53de811dc7a5499f603584624c7879f41cbacc223cbfd5fdf0042d39ba0195aa51356215d26136dab536f1b713274d21e3d265b62ca06fdab0aa923a77
-DIST xen-4.11.1.tar.gz 25152217 BLAKE2B a8dfbeb3d490787725c589e1ce82dcbbcd0be7fb4743b38daf3a8704dffda34d1faabb07d74e01d2fab1572ce0b730c21192469317545e8b3edb3fae1130ef8c SHA512 c1655c5decdaed95a2b9a99652318cfc72f6cfdae957cfe60d635f7787e8850f33e8fafc4c4b8d61fb579c9b9d93028a6382903e71808a0418b931e76d72a649
-DIST xen-4.11.2-upstream-patches-0.tar.xz 11532 BLAKE2B e36509d6256ac4018f20711baba77619a7c3a684d81e25a94cffba9c9f53ec9e0efdcefcd6a7ffa26b49fd3d4e0dfc2126f1ea620f0bd35ea83188b4587e5b38 SHA512 4a97d1e56cb3e5152372f0c0b99f8838194b2e03ed1255e87611d8bb28af9c9199fe123d3542f5ba9b3f652c29a519b5e4255b8925c0c8dfbd588f83ed8806d9
-DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
-DIST xen-4.12.0-upstream-patches-0.tar.xz 32864 BLAKE2B 994ca1f9fdd89f25e225348870ec97257795644f0314437f8d2927b77ce5b53de6b9e043636cc2c9e4f8fda4ff7b7c26917f2912f2a287c57bc00606846fb617 SHA512 6f7ab80cac0afd8bcd88109cd052e29f9b028b0c363a4e1f1e845f4fdbb3d7782dffd1f20dd80f2923c507625abe9648d7fbe7d52c6fd565ab550c9c5a416eeb
-DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
+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.6-efi.patch b/app-emulation/xen/files/xen-4.6-efi.patch
deleted file mode 100644
index bf888def7d90..000000000000
--- a/app-emulation/xen/files/xen-4.6-efi.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/xen/Makefile b/xen/Makefile
-index 4c54e9b..a5cdccd 100644
---- a/xen/Makefile
-+++ b/xen/Makefile
-@@ -41,9 +41,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)
- if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
-diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
-index 5f24951..4ec0ee2 100644
---- a/xen/arch/x86/Makefile
-+++ b/xen/arch/x86/Makefile
-@@ -116,7 +116,7 @@ $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o
- $(@D)/.$(@F).1.o -o $@
- rm -f $(@D)/.$(@F).[0-9]*
-
--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.gcc9.fixes.patch b/app-emulation/xen/files/xen.gcc9.fixes.patch
deleted file mode 100644
index 111b063f9c1d..000000000000
--- a/app-emulation/xen/files/xen.gcc9.fixes.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- xen-4.11.1/xen/drivers/passthrough/vtd/vtd.h.orig 2018-11-29 14:04:11.000000000 +0000
-+++ xen-4.11.1/xen/drivers/passthrough/vtd/vtd.h 2019-02-05 21:32:50.056774501 +0000
-@@ -28,7 +28,7 @@
- /* Allow for both IOAPIC and IOSAPIC. */
- #define IO_xAPIC_route_entry IO_APIC_route_entry
-
--struct IO_APIC_route_remap_entry {
-+struct __packed IO_APIC_route_remap_entry {
- union {
- u64 val;
- struct {
---- xen-4.11.1/xen/common/trace.c.orig 2018-11-29 14:04:11.000000000 +0000
-+++ xen-4.11.1/xen/common/trace.c 2019-02-06 20:31:27.370256971 +0000
-@@ -819,7 +819,7 @@
- void __trace_hypercall(uint32_t event, unsigned long op,
- const xen_ulong_t *args)
- {
-- struct __packed {
-+ struct {
- uint32_t op;
- uint32_t args[6];
- } d;
---- xen-4.11.1/xen/arch/x86/cpu/mtrr/generic.c.orig 2018-11-29 14:04:11.000000000 +0000
-+++ xen-4.11.1/xen/arch/x86/cpu/mtrr/generic.c 2019-02-10 19:24:09.378805103 +0000
-@@ -171,6 +171,9 @@
- printk("%sMTRR variable ranges %sabled:\n", level,
- mtrr_state.enabled ? "en" : "dis");
- width = (paddr_bits - PAGE_SHIFT + 3) / 4;
-+ if ( width > 64 ) {
-+ width=64;
-+ }
-
- for (i = 0; i < num_var_ranges; ++i) {
- if (mtrr_state.var_ranges[i].mask & MTRR_PHYSMASK_VALID)
diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml
index f69cd9e4d539..bad2422fe3f9 100644
--- a/app-emulation/xen/metadata.xml
+++ b/app-emulation/xen/metadata.xml
@@ -1,12 +1,21 @@
<?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" proxied="yes">
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomáš Mózes</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <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>
<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.10.3-r1.ebuild b/app-emulation/xen/xen-4.10.3-r1.ebuild
deleted file mode 100644
index c776b7262c64..000000000000
--- a/app-emulation/xen/xen-4.10.3-r1.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-
-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=1
- 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="custom-cflags 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.6-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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \; || die "failed to re-set custom-cflags"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- if use custom-cflags; then
- filter-flags -fPIE -fstack-protector
- replace-flags -O3 -O2
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- fi
-}
-
-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"
-}
diff --git a/app-emulation/xen/xen-4.11.1-r3.ebuild b/app-emulation/xen/xen-4.11.1-r3.ebuild
deleted file mode 100644
index e02c8edeb432..000000000000
--- a/app-emulation/xen/xen-4.11.1-r3.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-
-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="custom-cflags 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.6-efi.patch
-
- # https://src.fedoraproject.org/rpms/xen/blob/master/f/xen.gcc9.fixes.patch
- eapply "${FILESDIR}"/${PN}.gcc9.fixes.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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \; || die "failed to re-set custom-cflags"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- if use custom-cflags; then
- filter-flags -fPIE -fstack-protector
- replace-flags -O3 -O2
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- fi
-}
-
-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"
-}
diff --git a/app-emulation/xen/xen-4.11.2.ebuild b/app-emulation/xen/xen-4.11.2.ebuild
deleted file mode 100644
index 18215b62c1d6..000000000000
--- a/app-emulation/xen/xen-4.11.2.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-
-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=0
- 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="custom-cflags 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.6-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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \; || die "failed to re-set custom-cflags"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- if use custom-cflags; then
- filter-flags -fPIE -fstack-protector
- replace-flags -O3 -O2
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- fi
-}
-
-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"
-}
diff --git a/app-emulation/xen/xen-4.12.0-r1.ebuild b/app-emulation/xen/xen-4.12.0-r1.ebuild
deleted file mode 100644
index ca265f67d882..000000000000
--- a/app-emulation/xen/xen-4.12.0-r1.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 )
-
-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=0
- 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="custom-cflags 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.6-efi.patch
-
- # https://src.fedoraproject.org/rpms/xen/blob/master/f/xen.gcc9.fixes.patch
- eapply "${FILESDIR}"/${PN}.gcc9.fixes.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
-
- # if the user *really* wants to use their own custom-cflags, let them
- if use custom-cflags; then
- einfo "User wants their own CFLAGS - removing defaults"
- # try and remove all the default custom-cflags
- find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
- -e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
- -e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
- -i {} \; || die "failed to re-set custom-cflags"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- if use custom-cflags; then
- filter-flags -fPIE -fstack-protector
- replace-flags -O3 -O2
- else
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- fi
-}
-
-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"
-}
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-r5.ebuild
deleted file mode 100644
index ac298ae303fe..000000000000
--- a/app-emulation/xtrs/xtrs-4.9d-r5.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic toolchain-funcs readme.gentoo-r1
-
-DESCRIPTION="Radio Shack TRS-80 emulator"
-HOMEPAGE="http://www.tim-mann.org/xtrs.html"
-SRC_URI="http://www.tim-mann.org/trs80/${P}.tar.gz
- ls-dos? (
- http://www.tim-mann.org/trs80/ld4-631.zip
- https://dev.gentoo.org/~ulm/distfiles/ld4-631l.xd3
- )"
-
-LICENSE="xtrs ls-dos? ( freedist )"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="ls-dos"
-RESTRICT="ls-dos? ( bindist )"
-
-RDEPEND="sys-libs/ncurses:0=
- sys-libs/readline:0=
- x11-libs/libX11"
-DEPEND="${RDEPEND}
- ls-dos? ( app-arch/unzip dev-util/xdelta:3 )"
-
-PATCHES=("${FILESDIR}"/${P}-lcmod.patch)
-
-src_prepare() {
- default
- sed -i -e 's/$(CC) -o/$(CC) $(LDFLAGS) -o/' Makefile || die
- if use ls-dos; then
- cd "${WORKDIR}" || die
- xdelta3 -d -s ld4-631.dsk "${DISTDIR}"/ld4-631l.xd3 out.dsk || die
- mv out.dsk ld4-631.dsk || die
- fi
-}
-
-src_compile() {
- case $(tc-endian) in
- little) ;;
- big) append-flags -Dbig_endian ;;
- *) die ;;
- esac
- emake CC="$(tc-getCC)" DEBUG="${CFLAGS}" LDFLAGS="${LDFLAGS}"
-}
-
-src_install() {
- dodir /usr/bin /usr/share/xtrs/disks /usr/share/man/man1
- emake PREFIX="${D}"/usr install
-
- insopts -m0444
- insinto /usr/share/xtrs/disks
- doins cpmutil.dsk utility.dsk
-
- if use ls-dos; then
- doins "${WORKDIR}"/ld4-631.dsk
- dosym disks/ld4-631.dsk /usr/share/xtrs/disk4p-0
- dosym disks/utility.dsk /usr/share/xtrs/disk4p-1
- fi
-
- 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:
- \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
- for use with xtrs, using utilities available on the web. To load
- your own ROM, specify the '-romfile' option, or the 'Xtrs.romfile'
- X resource. ROM files can be in Intel hex or binary format."
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/xtrs/xtrs-4.9d-r4.ebuild b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild
index fd2008dfbd37..0ed2d6293064 100644
--- a/app-emulation/xtrs/xtrs-4.9d-r4.ebuild
+++ b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild
@@ -1,15 +1,15 @@
-# Copyright 1999-2017 Gentoo Foundation
+# 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
DESCRIPTION="Radio Shack TRS-80 emulator"
-HOMEPAGE="http://www.tim-mann.org/xtrs.html"
-SRC_URI="http://www.tim-mann.org/trs80/${P}.tar.gz
+HOMEPAGE="https://www.tim-mann.org/xtrs.html"
+SRC_URI="https://www.tim-mann.org/trs80/${P}.tar.gz
ls-dos? (
- http://www.tim-mann.org/trs80/ld4-631.zip
+ https://www.tim-mann.org/trs80/ld4-631.zip
https://dev.gentoo.org/~ulm/distfiles/ld4-631l.xd3
)"
@@ -25,9 +25,14 @@ RDEPEND="sys-libs/ncurses:0=
DEPEND="${RDEPEND}
ls-dos? ( app-arch/unzip dev-util/xdelta:3 )"
+PATCHES=(
+ "${FILESDIR}"/${P}-lcmod.patch
+ "${FILESDIR}"/${P}-implicit.patch
+)
+
src_prepare() {
+ default
sed -i -e 's/$(CC) -o/$(CC) $(LDFLAGS) -o/' Makefile || die
- eapply_user
if use ls-dos; then
cd "${WORKDIR}" || die
xdelta3 -d -s ld4-631.dsk "${DISTDIR}"/ld4-631l.xd3 out.dsk || die
@@ -60,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