summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/aqemu/Manifest1
-rw-r--r--app-emulation/aqemu/aqemu-0.8.2-r2.ebuild39
-rw-r--r--app-emulation/aqemu/files/aqemu-0.8.2_desktop_file.patch33
-rw-r--r--app-emulation/aqemu/files/aqemu-0.8.2_qt48_build.patch27
-rw-r--r--app-emulation/aqemu/files/aqemu-0.8.2_sigsev_propertis.patch41
-rw-r--r--app-emulation/aqemu/metadata.xml16
-rw-r--r--app-emulation/aranym/Manifest3
-rw-r--r--app-emulation/aranym/aranym-0.9.14.ebuild59
-rw-r--r--app-emulation/aranym/aranym-0.9.16.ebuild59
-rw-r--r--app-emulation/aranym/metadata.xml24
-rw-r--r--app-emulation/armv8-fast-model/Manifest1
-rw-r--r--app-emulation/armv8-fast-model/armv8-fast-model-0.8.5206.ebuild48
-rw-r--r--app-emulation/armv8-fast-model/metadata.xml5
-rw-r--r--app-emulation/bochs/Manifest1
-rw-r--r--app-emulation/bochs/bochs-2.6.ebuild87
-rw-r--r--app-emulation/bochs/metadata.xml18
-rw-r--r--app-emulation/cloud-init/Manifest2
-rw-r--r--app-emulation/cloud-init/cloud-init-0.7.5-r1.ebuild52
-rw-r--r--app-emulation/cloud-init/cloud-init-0.7.5-r2.ebuild84
-rw-r--r--app-emulation/cloud-init/cloud-init-0.7.5-r3.ebuild88
-rw-r--r--app-emulation/cloud-init/cloud-init-0.7.6-r1.ebuild105
-rw-r--r--app-emulation/cloud-init/cloud-init-0.7.6.ebuild98
-rw-r--r--app-emulation/cloud-init/files/cloud-init-0.7.5-tests-exclude.patch12
-rw-r--r--app-emulation/cloud-init/files/cloud.cfg79
-rwxr-xr-xapp-emulation/cloud-init/files/growpart778
-rw-r--r--app-emulation/cloud-init/files/hosts.gentoo.tmpl23
-rw-r--r--app-emulation/cloud-init/metadata.xml19
-rw-r--r--app-emulation/coldfire/Manifest1
-rw-r--r--app-emulation/coldfire/coldfire-0.3.1.ebuild30
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-build.patch32
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-headers.patch16
-rw-r--r--app-emulation/coldfire/metadata.xml5
-rw-r--r--app-emulation/crossover-bin/Manifest10
-rw-r--r--app-emulation/crossover-bin/crossover-bin-12.5.0-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild128
-rw-r--r--app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild132
-rw-r--r--app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild132
-rw-r--r--app-emulation/crossover-bin/metadata.xml11
-rw-r--r--app-emulation/crossover-office-bin/Manifest4
-rw-r--r--app-emulation/crossover-office-bin/crossover-office-bin-6.0.0.ebuild52
-rw-r--r--app-emulation/crossover-office-bin/crossover-office-bin-6.0.1.ebuild52
-rw-r--r--app-emulation/crossover-office-bin/crossover-office-bin-6.1.0.ebuild52
-rw-r--r--app-emulation/crossover-office-bin/crossover-office-bin-6.2.0.ebuild52
-rw-r--r--app-emulation/crossover-office-bin/metadata.xml5
-rw-r--r--app-emulation/crossover-office-pro-bin/Manifest13
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.0.ebuild52
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.1.ebuild51
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.3.ebuild51
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.0.0.ebuild51
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.1.0.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.2.0.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.0.2.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.1.0.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-8.0.0.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.0.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.1.ebuild53
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.1.0.ebuild55
-rw-r--r--app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.2.0.ebuild55
-rw-r--r--app-emulation/crossover-office-pro-bin/metadata.xml5
-rw-r--r--app-emulation/dinero/Manifest1
-rw-r--r--app-emulation/dinero/dinero-4.7-r1.ebuild30
-rw-r--r--app-emulation/dinero/metadata.xml7
-rw-r--r--app-emulation/dlx/Manifest1
-rw-r--r--app-emulation/dlx/dlx-1.0.0-r1.ebuild34
-rw-r--r--app-emulation/dlx/dlx-1.0.0.ebuild23
-rw-r--r--app-emulation/dlx/metadata.xml8
-rw-r--r--app-emulation/docker-compose/Manifest1
-rw-r--r--app-emulation/docker-compose/docker-compose-1.2.0-r1.ebuild62
-rw-r--r--app-emulation/docker-compose/files/requests-requirements.patch13
-rw-r--r--app-emulation/docker-compose/metadata.xml13
-rw-r--r--app-emulation/docker/Manifest3
-rw-r--r--app-emulation/docker/docker-1.6.1.ebuild246
-rw-r--r--app-emulation/docker/docker-1.6.2.ebuild246
-rw-r--r--app-emulation/docker/docker-1.7.1.ebuild268
-rw-r--r--app-emulation/docker/files/7179-add-audit_write-cap.patch29
-rw-r--r--app-emulation/docker/files/docker-r2.confd18
-rwxr-xr-xapp-emulation/docker/files/docker-r2.initd54
-rw-r--r--app-emulation/docker/files/docker-r3.confd13
-rwxr-xr-xapp-emulation/docker/files/docker-r3.initd31
-rwxr-xr-xapp-emulation/docker/files/docker.initd31
-rw-r--r--app-emulation/docker/files/docker.service12
-rw-r--r--app-emulation/docker/metadata.xml58
-rw-r--r--app-emulation/domi/Manifest1
-rw-r--r--app-emulation/domi/domi-20060816.ebuild38
-rw-r--r--app-emulation/domi/files/domi.conf95
-rw-r--r--app-emulation/domi/files/fix_install_links.patch15
-rw-r--r--app-emulation/domi/metadata.xml8
-rw-r--r--app-emulation/dosemu/Manifest3
-rw-r--r--app-emulation/dosemu/dosemu-1.4.1_pre20091009.ebuild61
-rw-r--r--app-emulation/dosemu/dosemu-1.4.1_pre20130107-r3.ebuild81
-rw-r--r--app-emulation/dosemu/files/dosemu-1.3.4-shm.diff11
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.0.1-gcc433.diff11
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-flex.patch45
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch48
-rw-r--r--app-emulation/dosemu/metadata.xml17
-rw-r--r--app-emulation/dynamips/Manifest2
-rw-r--r--app-emulation/dynamips/dynamips-0.2.12.ebuild48
-rw-r--r--app-emulation/dynamips/dynamips-0.2.14-r1.ebuild42
-rw-r--r--app-emulation/dynamips/files/0.2.14-docs.patch20
-rw-r--r--app-emulation/dynamips/files/dynamips-0.2.12-makefile.patch11
-rw-r--r--app-emulation/dynamips/metadata.xml15
-rw-r--r--app-emulation/e-uae/Manifest1
-rw-r--r--app-emulation/e-uae/e-uae-0.8.29_rc4-r2.ebuild140
-rw-r--r--app-emulation/e-uae/files/e-uae-0.8.29_rc4-high-cpu-usage.patch18
-rw-r--r--app-emulation/e-uae/metadata.xml16
-rw-r--r--app-emulation/edumips64/Manifest2
-rw-r--r--app-emulation/edumips64/edumips64-1.1.ebuild47
-rw-r--r--app-emulation/edumips64/edumips64-1.2.ebuild48
-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.xml12
-rw-r--r--app-emulation/free42/Manifest1
-rw-r--r--app-emulation/free42/files/free42-1.5.5-fix-makefile.patch30
-rw-r--r--app-emulation/free42/free42-1.5.5.ebuild46
-rw-r--r--app-emulation/free42/metadata.xml19
-rw-r--r--app-emulation/fuse-utils/Manifest1
-rw-r--r--app-emulation/fuse-utils/fuse-utils-1.1.1.ebuild38
-rw-r--r--app-emulation/fuse-utils/metadata.xml22
-rw-r--r--app-emulation/fuse/Manifest2
-rw-r--r--app-emulation/fuse/files/fuse-1.0.0-libpng15.patch10
-rw-r--r--app-emulation/fuse/files/fuse-1.1.1-gold-link-lm.patch10
-rw-r--r--app-emulation/fuse/fuse-1.0.0.ebuild94
-rw-r--r--app-emulation/fuse/fuse-1.1.1.ebuild96
-rw-r--r--app-emulation/fuse/metadata.xml18
-rw-r--r--app-emulation/ganeti-htools/Manifest3
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch14
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch171
-rw-r--r--app-emulation/ganeti-htools/ganeti-htools-0.2.8.ebuild45
-rw-r--r--app-emulation/ganeti-htools/ganeti-htools-0.3.0.ebuild48
-rw-r--r--app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild49
-rw-r--r--app-emulation/ganeti-htools/metadata.xml22
-rw-r--r--app-emulation/ganeti-instance-debian-etch/Manifest1
-rw-r--r--app-emulation/ganeti-instance-debian-etch/ganeti-instance-debian-etch-0.4.ebuild30
-rw-r--r--app-emulation/ganeti-instance-debian-etch/metadata.xml10
-rw-r--r--app-emulation/ganeti-instance-debootstrap/Manifest3
-rw-r--r--app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11.ebuild35
-rw-r--r--app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.12.ebuild35
-rw-r--r--app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.9.ebuild35
-rw-r--r--app-emulation/ganeti-instance-debootstrap/metadata.xml12
-rw-r--r--app-emulation/ganeti-instance-image/Manifest1
-rw-r--r--app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild51
-rw-r--r--app-emulation/ganeti-instance-image/metadata.xml10
-rw-r--r--app-emulation/ganeti/Manifest7
-rw-r--r--app-emulation/ganeti/files/ganeti-2.1.initd112
-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-daemon-util.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-qemu-enable-kvm.patch12
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-regex-builtin.patch15
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-start-stop-daemon-args.patch39
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-tests.patch13
-rw-r--r--app-emulation/ganeti/files/ganeti-2.11-useradd.patch17
-rw-r--r--app-emulation/ganeti/files/ganeti-2.12-cfgupgrade-state.patch15
-rw-r--r--app-emulation/ganeti/files/ganeti-2.12-daemon-util.patch37
-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.12-tests.patch59
-rw-r--r--app-emulation/ganeti/files/ganeti-2.12.3-daemon-util.patch37
-rw-r--r--app-emulation/ganeti/files/ganeti-2.13-daemon-util.patch46
-rw-r--r--app-emulation/ganeti/files/ganeti-2.13-disable-usersgroups-test.patch68
-rw-r--r--app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch21
-rw-r--r--app-emulation/ganeti/files/ganeti-2.13-regex-pcre-builtin.patch13
-rw-r--r--app-emulation/ganeti/files/ganeti-2.2.initd113
-rw-r--r--app-emulation/ganeti/files/ganeti-2.6-add-pgrep.patch38
-rw-r--r--app-emulation/ganeti/files/ganeti-2.6-fix-args.patch45
-rw-r--r--app-emulation/ganeti/files/ganeti-2.7-fix-tests.patch30
-rw-r--r--app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch18
-rw-r--r--app-emulation/ganeti/files/ganeti-2.9-regex-builtin.patch22
-rw-r--r--app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch18
-rw-r--r--app-emulation/ganeti/files/ganeti-fix-start-stop.patch47
-rw-r--r--app-emulation/ganeti/files/ganeti-kvm-poweroff.confd4
-rw-r--r--app-emulation/ganeti/files/ganeti-kvm-poweroff.initd58
-rw-r--r--app-emulation/ganeti/files/ganeti-lockdir.patch15
-rw-r--r--app-emulation/ganeti/files/ganeti.confd16
-rw-r--r--app-emulation/ganeti/files/ganeti.confd-r219
-rw-r--r--app-emulation/ganeti/files/ganeti.initd57
-rw-r--r--app-emulation/ganeti/files/ganeti.initd-r383
-rw-r--r--app-emulation/ganeti/files/ganeti2.initd55
-rw-r--r--app-emulation/ganeti/ganeti-2.10.5-r4.ebuild174
-rw-r--r--app-emulation/ganeti/ganeti-2.11.6-r2.ebuild220
-rw-r--r--app-emulation/ganeti/ganeti-2.12.1-r3.ebuild253
-rw-r--r--app-emulation/ganeti/ganeti-2.12.3-r2.ebuild262
-rw-r--r--app-emulation/ganeti/ganeti-2.13.0-r2.ebuild258
-rw-r--r--app-emulation/ganeti/ganeti-2.14.1-r1.ebuild295
-rw-r--r--app-emulation/ganeti/ganeti-2.4.5-r1.ebuild90
-rw-r--r--app-emulation/ganeti/metadata.xml36
-rw-r--r--app-emulation/gxemul/Manifest1
-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/0.6.0-gcc46.patch16
-rw-r--r--app-emulation/gxemul/gxemul-0.6.0-r1.ebuild43
-rw-r--r--app-emulation/gxemul/metadata.xml11
-rw-r--r--app-emulation/hercules/Manifest4
-rw-r--r--app-emulation/hercules/files/hercules-3.06-build.patch18
-rw-r--r--app-emulation/hercules/files/hercules-3.06-gcc44.patch12
-rw-r--r--app-emulation/hercules/files/hercules-3.09-aliasing.patch41
-rw-r--r--app-emulation/hercules/hercules-3.06.ebuild45
-rw-r--r--app-emulation/hercules/hercules-3.08.ebuild39
-rw-r--r--app-emulation/hercules/hercules-3.09.ebuild43
-rw-r--r--app-emulation/hercules/hercules-3.10.ebuild43
-rw-r--r--app-emulation/hercules/metadata.xml11
-rw-r--r--app-emulation/kvm-kmod/Manifest5
-rw-r--r--app-emulation/kvm-kmod/kvm-kmod-3.10.1.ebuild68
-rw-r--r--app-emulation/kvm-kmod/kvm-kmod-3.3.6.ebuild68
-rw-r--r--app-emulation/kvm-kmod/kvm-kmod-3.4.ebuild68
-rw-r--r--app-emulation/kvm-kmod/kvm-kmod-3.6.ebuild68
-rw-r--r--app-emulation/kvm-kmod/kvm-kmod-3.8.ebuild68
-rw-r--r--app-emulation/kvm-kmod/metadata.xml17
-rw-r--r--app-emulation/libcacard/Manifest1
-rw-r--r--app-emulation/libcacard/libcacard-0.1.2.ebuild30
-rw-r--r--app-emulation/libcacard/metadata.xml9
-rw-r--r--app-emulation/libguestfs-appliance/Manifest2
-rw-r--r--app-emulation/libguestfs-appliance/files/env.file1
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.26.0-r1.ebuild44
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.28.1-r1.ebuild45
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.28.1.ebuild44
-rw-r--r--app-emulation/libguestfs-appliance/metadata.xml18
-rw-r--r--app-emulation/libguestfs/Manifest3
-rw-r--r--app-emulation/libguestfs/files/1.24/0001_add_gentoo_names_to_configure.patch15
-rw-r--r--app-emulation/libguestfs/files/1.24/0002_add_gentooway_to_remove_la_files.patch16
-rw-r--r--app-emulation/libguestfs/files/1.24/0004_add_icoutils_configure_drop_automagic.patch57
-rw-r--r--app-emulation/libguestfs/files/1.24/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch21
-rw-r--r--app-emulation/libguestfs/files/1.24/0103_disable_php_bindings_makefile.patch13
-rw-r--r--app-emulation/libguestfs/files/1.26/0000_bug_499150.patch10
-rw-r--r--app-emulation/libguestfs/files/1.26/0001_add_gentoo_names_to_configure.patch15
-rw-r--r--app-emulation/libguestfs/files/1.26/0002_add_gentooway_to_remove_la_files.patch16
-rw-r--r--app-emulation/libguestfs/files/1.26/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch21
-rw-r--r--app-emulation/libguestfs/files/1.26/0020_all_qemu_configure.patch27
-rw-r--r--app-emulation/libguestfs/files/1.26/0103_disable_php_bindings_makefile.patch13
-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/env.file1
-rw-r--r--app-emulation/libguestfs/libguestfs-1.26.1.ebuild161
-rw-r--r--app-emulation/libguestfs/libguestfs-1.28.3.ebuild170
-rw-r--r--app-emulation/libguestfs/libguestfs-1.28.5-r1.ebuild176
-rw-r--r--app-emulation/libguestfs/libguestfs-1.28.5.ebuild170
-rw-r--r--app-emulation/libguestfs/metadata.xml28
-rw-r--r--app-emulation/libspectrum/Manifest2
-rw-r--r--app-emulation/libspectrum/libspectrum-1.0.0.ebuild42
-rw-r--r--app-emulation/libspectrum/libspectrum-1.1.1.ebuild42
-rw-r--r--app-emulation/libspectrum/metadata.xml28
-rw-r--r--app-emulation/libvirt-glib/Manifest2
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-0.2.0.ebuild54
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-0.2.1.ebuild53
-rw-r--r--app-emulation/libvirt-glib/metadata.xml10
-rw-r--r--app-emulation/libvirt-snmp/Manifest2
-rw-r--r--app-emulation/libvirt-snmp/files/0001-Fix-build-rules-to-use-LDADD-to-add-libraries.patch81
-rw-r--r--app-emulation/libvirt-snmp/files/libvirt-snmp.confd6
-rw-r--r--app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r127
-rw-r--r--app-emulation/libvirt-snmp/libvirt-snmp-0.0.2-r2.ebuild43
-rw-r--r--app-emulation/libvirt-snmp/libvirt-snmp-0.0.3.ebuild39
-rw-r--r--app-emulation/libvirt-snmp/metadata.xml8
-rw-r--r--app-emulation/libvirt/Manifest3
-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-1.2.17-fix_paths_for_apparmor.patch161
-rw-r--r--app-emulation/libvirt/files/libvirt-1.2.9-do_not_use_sysconf.patch112
-rw-r--r--app-emulation/libvirt/files/libvirtd.confd-r443
-rw-r--r--app-emulation/libvirt/files/libvirtd.init-r14139
-rw-r--r--app-emulation/libvirt/files/libvirtd.service.conf10
-rw-r--r--app-emulation/libvirt/files/libvirtd.tmpfiles.conf1
-rw-r--r--app-emulation/libvirt/files/virtlockd.init-r124
-rw-r--r--app-emulation/libvirt/libvirt-1.2.15-r1.ebuild464
-rw-r--r--app-emulation/libvirt/libvirt-1.2.17-r4.ebuild480
-rw-r--r--app-emulation/libvirt/libvirt-1.2.18.ebuild480
-rw-r--r--app-emulation/libvirt/libvirt-9999.ebuild480
-rw-r--r--app-emulation/libvirt/metadata.xml98
-rw-r--r--app-emulation/lxc/Manifest5
-rw-r--r--app-emulation/lxc/files/lxc-1.0.6-bash-completion.patch39
-rw-r--r--app-emulation/lxc/files/lxc-1.1.0-fix-gentoo-template.patch35
-rw-r--r--app-emulation/lxc/files/lxc-1.1.1-shm-tmpfs.patch31
-rw-r--r--app-emulation/lxc/files/lxc-1.1.2-fix-gentoo-moresecure-template.patch33
-rw-r--r--app-emulation/lxc/files/lxc.initd.3139
-rw-r--r--app-emulation/lxc/files/lxc_at.service12
-rw-r--r--app-emulation/lxc/files/lxc_at.service.214
-rw-r--r--app-emulation/lxc/lxc-1.0.6-r1.ebuild186
-rw-r--r--app-emulation/lxc/lxc-1.0.7.ebuild187
-rw-r--r--app-emulation/lxc/lxc-1.1.0-r6.ebuild196
-rw-r--r--app-emulation/lxc/lxc-1.1.1-r1.ebuild197
-rw-r--r--app-emulation/lxc/lxc-1.1.2-r1.ebuild195
-rw-r--r--app-emulation/lxc/lxc-1.1.2-r2.ebuild195
-rw-r--r--app-emulation/lxc/lxc-1.1.2.ebuild194
-rw-r--r--app-emulation/lxc/metadata.xml20
-rw-r--r--app-emulation/lxd/Manifest1
-rw-r--r--app-emulation/lxd/files/lxd-0.13-nc-binary-name.patch11
-rw-r--r--app-emulation/lxd/files/lxd.confd26
-rw-r--r--app-emulation/lxd/files/lxd.initd35
-rw-r--r--app-emulation/lxd/files/lxd.service12
-rw-r--r--app-emulation/lxd/lxd-0.13.ebuild136
-rw-r--r--app-emulation/lxd/metadata.xml26
-rw-r--r--app-emulation/metadata.xml32
-rw-r--r--app-emulation/open-vm-tools-kmod/Manifest3
-rw-r--r--app-emulation/open-vm-tools-kmod/files/1098359-vmblock-3.10.0.patch24
-rw-r--r--app-emulation/open-vm-tools-kmod/files/60-vmware.rules1
-rw-r--r--app-emulation/open-vm-tools-kmod/files/9.10.0-0001-Fix-vmxnet-module-on-kernels-3.16.patch74
-rw-r--r--app-emulation/open-vm-tools-kmod/files/9.10.0-0002-Fix-d_alias-to-d_u.d_alias-for-kernel-3.18.patch34
-rw-r--r--app-emulation/open-vm-tools-kmod/files/9.10.0-0003-Fix-f_dentry-msghdr-kernel-3.19.patch429
-rw-r--r--app-emulation/open-vm-tools-kmod/files/frozen.patch28
-rw-r--r--app-emulation/open-vm-tools-kmod/files/putname.patch13
-rw-r--r--app-emulation/open-vm-tools-kmod/files/vmhgfs-linux-3.11.patch42
-rw-r--r--app-emulation/open-vm-tools-kmod/metadata.xml22
-rw-r--r--app-emulation/open-vm-tools-kmod/open-vm-tools-kmod-2013.09.16.1328054.ebuild67
-rw-r--r--app-emulation/open-vm-tools-kmod/open-vm-tools-kmod-9.10.0_p2476743.ebuild68
-rw-r--r--app-emulation/open-vm-tools-kmod/open-vm-tools-kmod-9.4.0.1280544.ebuild66
-rw-r--r--app-emulation/open-vm-tools/Manifest4
-rw-r--r--app-emulation/open-vm-tools/files/9.10.0-vgauth.patch22
-rw-r--r--app-emulation/open-vm-tools/files/network22
-rw-r--r--app-emulation/open-vm-tools/files/open-vm-tools.confd2
-rw-r--r--app-emulation/open-vm-tools/files/open-vm-tools.desktop6
-rw-r--r--app-emulation/open-vm-tools/files/open-vm-tools.initd60
-rw-r--r--app-emulation/open-vm-tools/files/vmtoolsd.service11
-rw-r--r--app-emulation/open-vm-tools/metadata.xml26
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-2013.09.16.1328054-r2.ebuild123
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-2013.09.16.1328054-r3.ebuild123
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-9.10.0_p2476743.ebuild128
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-9.10.2_p2822639.ebuild123
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-9.4.0.1280544.ebuild115
-rw-r--r--app-emulation/openstack-guest-agents-unix/Manifest2
-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.xml13
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild43
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild48
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild32
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild65
-rw-r--r--app-emulation/phpvirtualbox/Manifest6
-rw-r--r--app-emulation/phpvirtualbox/files/vboxinit-initd39
-rw-r--r--app-emulation/phpvirtualbox/metadata.xml14
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.1.11.ebuild67
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.1.7-r2.ebuild67
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.2.3b.ebuild67
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.2.4.ebuild73
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.2.7.ebuild73
-rw-r--r--app-emulation/phpvirtualbox/phpvirtualbox-4.3.0.ebuild73
-rw-r--r--app-emulation/playonlinux/Manifest3
-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.xml13
-rw-r--r--app-emulation/playonlinux/playonlinux-4.2.4.ebuild118
-rw-r--r--app-emulation/playonlinux/playonlinux-4.2.6.ebuild121
-rw-r--r--app-emulation/playonlinux/playonlinux-4.2.8.ebuild121
-rw-r--r--app-emulation/q4wine/Manifest2
-rw-r--r--app-emulation/q4wine/files/q4wine-qtsingleapp.patch15
-rw-r--r--app-emulation/q4wine/metadata.xml18
-rw-r--r--app-emulation/q4wine/q4wine-1.0-r3.ebuild59
-rw-r--r--app-emulation/q4wine/q4wine-1.1_p2-r1.ebuild62
-rw-r--r--app-emulation/qemu-guest-agent/Manifest8
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-ga-systemd.service11
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-ga-systemd.udev2
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-ga.conf-r111
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-ga.init-r125
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-ga.logrotate9
-rw-r--r--app-emulation/qemu-guest-agent/metadata.xml6
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-1.5.2-r2.ebuild93
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-1.6.0-r1.ebuild93
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-2.0.0.ebuild94
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-2.1.2.ebuild94
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-2.2.0.ebuild94
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-2.3.0.ebuild90
-rw-r--r--app-emulation/qemu/Manifest1
-rw-r--r--app-emulation/qemu/files/65-kvm.rules1
-rw-r--r--app-emulation/qemu/files/bridge.conf14
-rw-r--r--app-emulation/qemu/files/qemu-1.7.0-cflags.patch11
-rw-r--r--app-emulation/qemu/files/qemu-2.2.1-CVE-2015-1779-1.patch241
-rw-r--r--app-emulation/qemu/files/qemu-2.2.1-CVE-2015-1779-2.patch58
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-3209.patch51
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-3214.patch41
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-3456.patch86
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5154-1.patch75
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5154-2.patch26
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5154-3.patch69
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5158.patch40
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-1.patch82
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-2.patch373
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-3.patch39
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-4.patch53
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-5.patch34
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-6.patch35
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5165-7.patch32
-rw-r--r--app-emulation/qemu/files/qemu-2.3.0-CVE-2015-5166.patch36
-rw-r--r--app-emulation/qemu/files/qemu-binfmt.initd-r1139
-rw-r--r--app-emulation/qemu/metadata.xml54
-rw-r--r--app-emulation/qemu/qemu-2.3.0-r4.ebuild607
-rw-r--r--app-emulation/qemu/qemu-2.3.0-r5.ebuild615
-rw-r--r--app-emulation/qemu/qemu-9999.ebuild612
-rw-r--r--app-emulation/qtemu/Manifest1
-rw-r--r--app-emulation/qtemu/files/1.0.5-help_and_translation_paths.patch63
-rw-r--r--app-emulation/qtemu/metadata.xml10
-rw-r--r--app-emulation/qtemu/qtemu-1.0.5.ebuild32
-rw-r--r--app-emulation/rex-client/metadata.xml8
-rw-r--r--app-emulation/rex-client/rex-client-9999.ebuild46
-rw-r--r--app-emulation/runc/Manifest1
-rw-r--r--app-emulation/runc/metadata.xml15
-rw-r--r--app-emulation/runc/runc-0.0.2.ebuild49
-rw-r--r--app-emulation/simh/Manifest3
-rw-r--r--app-emulation/simh/files/makefile.patch11
-rw-r--r--app-emulation/simh/files/simh-3.8.1-asneeded.patch168
-rw-r--r--app-emulation/simh/files/simh-3.8.1-makefile.patch11
-rw-r--r--app-emulation/simh/files/simh-3.9.0-fix-mkdir-race.patch11
-rw-r--r--app-emulation/simh/files/simh-3.9.0-respect-FLAGS.patch13
-rw-r--r--app-emulation/simh/metadata.xml13
-rw-r--r--app-emulation/simh/simh-3.3.0.ebuild49
-rw-r--r--app-emulation/simh/simh-3.8.1.ebuild55
-rw-r--r--app-emulation/simh/simh-3.9.0-r1.ebuild61
-rw-r--r--app-emulation/ski/Manifest1
-rw-r--r--app-emulation/ski/files/ski-1.3.2-AC_C_BIGENDIAN.patch75
-rw-r--r--app-emulation/ski/files/ski-1.3.2-binutils.patch31
-rw-r--r--app-emulation/ski/files/ski-1.3.2-configure-withval.patch22
-rw-r--r--app-emulation/ski/files/ski-1.3.2-no-local-ltdl.patch22
-rw-r--r--app-emulation/ski/files/ski-1.3.2-remove-hayes.patch14
-rw-r--r--app-emulation/ski/files/ski-1.3.2-syscall-linux-includes.patch18
-rw-r--r--app-emulation/ski/metadata.xml8
-rw-r--r--app-emulation/ski/ski-1.3.2-r1.ebuild54
-rw-r--r--app-emulation/ski/ski-1.3.2.ebuild54
-rw-r--r--app-emulation/skyeye/Manifest1
-rw-r--r--app-emulation/skyeye/metadata.xml5
-rw-r--r--app-emulation/skyeye/skyeye-1.0.0.ebuild27
-rw-r--r--app-emulation/softgun/Manifest2
-rw-r--r--app-emulation/softgun/files/softgun-0.21-make.patch68
-rw-r--r--app-emulation/softgun/files/softgun-0.22-make.patch75
-rw-r--r--app-emulation/softgun/metadata.xml8
-rw-r--r--app-emulation/softgun/softgun-0.21.ebuild33
-rw-r--r--app-emulation/softgun/softgun-0.22.ebuild33
-rw-r--r--app-emulation/spectemu/Manifest1
-rw-r--r--app-emulation/spectemu/files/spectemu-0.99.3-automagic.patch31
-rw-r--r--app-emulation/spectemu/files/spectemu-0.99.3-build.patch34
-rw-r--r--app-emulation/spectemu/files/spectemu-0.99.3-qa.patch23
-rw-r--r--app-emulation/spectemu/metadata.xml7
-rw-r--r--app-emulation/spectemu/spectemu-0.99.3-r1.ebuild45
-rw-r--r--app-emulation/spectemu/spectemu-0.99.3.ebuild48
-rw-r--r--app-emulation/spice-protocol/Manifest4
-rw-r--r--app-emulation/spice-protocol/metadata.xml9
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.12.3.ebuild17
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.12.5.ebuild17
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.12.6.ebuild17
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.12.7.ebuild17
-rw-r--r--app-emulation/spice-vdagent/Manifest3
-rw-r--r--app-emulation/spice-vdagent/files/spice-vdagent.confd7
-rw-r--r--app-emulation/spice-vdagent/files/spice-vdagent.confd-211
-rw-r--r--app-emulation/spice-vdagent/files/spice-vdagent.initd50
-rw-r--r--app-emulation/spice-vdagent/files/spice-vdagent.initd-261
-rw-r--r--app-emulation/spice-vdagent/metadata.xml14
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.10.1.ebuild54
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.12.0.ebuild54
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.8.1-r1.ebuild52
-rw-r--r--app-emulation/spice/Manifest1
-rw-r--r--app-emulation/spice/files/0.11.0-gold.patch30
-rw-r--r--app-emulation/spice/files/spice-0.12.5-fix-assert-in-mjpeg_encoder_adjust_params_to_bit_rate.patch30
-rw-r--r--app-emulation/spice/files/spice-0.12.5-fix-crash-when-clearing-surface-memory.patch31
-rw-r--r--app-emulation/spice/files/spice-0.12.5-server-dont-assert-on-invalid-client-message.patch30
-rw-r--r--app-emulation/spice/metadata.xml13
-rw-r--r--app-emulation/spice/spice-0.12.5-r1.ebuild82
-rw-r--r--app-emulation/spim/Manifest1
-rw-r--r--app-emulation/spim/files/spim-8.0-r1-respect_env.patch183
-rw-r--r--app-emulation/spim/files/xspim.svg216
-rw-r--r--app-emulation/spim/metadata.xml15
-rw-r--r--app-emulation/spim/spim-8.0-r1.ebuild75
-rw-r--r--app-emulation/uade/Manifest1
-rw-r--r--app-emulation/uade/metadata.xml5
-rw-r--r--app-emulation/uade/uade-2.13.ebuild35
-rw-r--r--app-emulation/uae/Manifest1
-rw-r--r--app-emulation/uae/files/sdlgfx.h38
-rw-r--r--app-emulation/uae/files/uae-0.8.25-allow_spaces_in_zip_filenames.diff18
-rw-r--r--app-emulation/uae/files/uae-0.8.25-struct_uae_wrong_fields_name.diff18
-rw-r--r--app-emulation/uae/files/uae-0.8.26-uae_reset_args.diff86
-rw-r--r--app-emulation/uae/files/uae-0.8.26-underlinking.patch19
-rw-r--r--app-emulation/uae/metadata.xml18
-rw-r--r--app-emulation/uae/uae-0.8.29-r2.ebuild71
-rw-r--r--app-emulation/vagrant/Manifest1
-rw-r--r--app-emulation/vagrant/files/vagrant-1.2.1-no-warning.patch12
-rw-r--r--app-emulation/vagrant/files/vagrant-1.2.2-rvm.patch12
-rw-r--r--app-emulation/vagrant/metadata.xml10
-rw-r--r--app-emulation/vagrant/vagrant-1.4.3-r2.ebuild69
-rw-r--r--app-emulation/vboxgtk/Manifest1
-rw-r--r--app-emulation/vboxgtk/metadata.xml8
-rw-r--r--app-emulation/vboxgtk/vboxgtk-0.8.2-r1.ebuild45
-rw-r--r--app-emulation/vice/Manifest2
-rw-r--r--app-emulation/vice/files/vice-2.4-arm.patch38
-rw-r--r--app-emulation/vice/files/vice-2.4-autotools.patch11
-rw-r--r--app-emulation/vice/files/vice-2.4-buffer.patch14
-rw-r--r--app-emulation/vice/files/vice-2.4-ffmpeg-1.patch135
-rw-r--r--app-emulation/vice/files/vice-2.4.20-autotools.patch11
-rw-r--r--app-emulation/vice/files/vice-2.4.20-xf86extensions.patch15
-rw-r--r--app-emulation/vice/metadata.xml17
-rw-r--r--app-emulation/vice/vice-2.4.20.ebuild172
-rw-r--r--app-emulation/vice/vice-2.4.ebuild117
-rw-r--r--app-emulation/virt-manager/Manifest2
-rw-r--r--app-emulation/virt-manager/files/virt-manager-1.1.0-optional_avahi.patch15
-rw-r--r--app-emulation/virt-manager/metadata.xml16
-rw-r--r--app-emulation/virt-manager/virt-manager-1.1.0-r2.ebuild95
-rw-r--r--app-emulation/virt-manager/virt-manager-1.2.1.ebuild93
-rw-r--r--app-emulation/virt-manager/virt-manager-9999.ebuild93
-rw-r--r--app-emulation/virt-viewer/Manifest2
-rw-r--r--app-emulation/virt-viewer/files/virt-viewer-0.6.0-fix-c99-compat.patch29
-rw-r--r--app-emulation/virt-viewer/metadata.xml12
-rw-r--r--app-emulation/virt-viewer/virt-viewer-0.5.6.ebuild45
-rw-r--r--app-emulation/virt-viewer/virt-viewer-2.0.ebuild49
-rw-r--r--app-emulation/virt-what/Manifest1
-rw-r--r--app-emulation/virt-what/metadata.xml12
-rw-r--r--app-emulation/virt-what/virt-what-1.12.ebuild20
-rw-r--r--app-emulation/virtualbox-additions/Manifest3
-rw-r--r--app-emulation/virtualbox-additions/metadata.xml12
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-4.3.28.ebuild36
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-4.3.30.ebuild36
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-5.0.0.ebuild36
-rw-r--r--app-emulation/virtualbox-bin/Manifest12
-rw-r--r--app-emulation/virtualbox-bin/files/10-virtualbox.rules7
-rw-r--r--app-emulation/virtualbox-bin/files/vboxwebsrv-confd20
-rw-r--r--app-emulation/virtualbox-bin/files/vboxwebsrv-initd24
-rwxr-xr-xapp-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.xml16
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-4.3.28.100309.ebuild357
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-4.3.30.101610.ebuild357
-rw-r--r--app-emulation/virtualbox-bin/virtualbox-bin-5.0.0.101573.ebuild357
-rw-r--r--app-emulation/virtualbox-extpack-oracle/Manifest3
-rw-r--r--app-emulation/virtualbox-extpack-oracle/metadata.xml12
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-4.3.28.100309.ebuild41
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-4.3.30.101610.ebuild41
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-5.0.0.101573.ebuild43
-rw-r--r--app-emulation/virtualbox-guest-additions/Manifest3
-rw-r--r--app-emulation/virtualbox-guest-additions/files/vboxclient.desktop7
-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/virtualbox-guest-additions-3-localconfig30
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-5-localconfig30
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd26
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions.service16
-rw-r--r--app-emulation/virtualbox-guest-additions/files/xorg.conf.vbox13
-rw-r--r--app-emulation/virtualbox-guest-additions/metadata.xml12
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-4.3.28.ebuild221
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-4.3.30.ebuild221
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.0.0.ebuild221
-rw-r--r--app-emulation/virtualbox-modules/Manifest3
-rwxr-xr-xapp-emulation/virtualbox-modules/files/create_vbox_modules_tarball.sh29
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-3.17.patch49
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-4.1.4-pax-const.patch48
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox.conf3
-rw-r--r--app-emulation/virtualbox-modules/metadata.xml15
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-4.3.28.ebuild59
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-4.3.30.ebuild59
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-5.0.0.ebuild59
-rw-r--r--app-emulation/virtualbox/Manifest5
-rw-r--r--app-emulation/virtualbox/files/10-virtualbox.rules7
-rw-r--r--app-emulation/virtualbox/files/vboxwebsrv-confd20
-rw-r--r--app-emulation/virtualbox/files/vboxwebsrv-initd24
-rw-r--r--app-emulation/virtualbox/files/virtualbox-4-config1
-rw-r--r--app-emulation/virtualbox/files/virtualbox-4-localconfig45
-rw-r--r--app-emulation/virtualbox/files/virtualbox-5-localconfig45
-rw-r--r--app-emulation/virtualbox/files/virtualbox-ose-3-config1
-rwxr-xr-xapp-emulation/virtualbox/files/virtualbox-ose-3-wrapper104
-rw-r--r--app-emulation/virtualbox/files/virtualbox-ose.desktop-28
-rw-r--r--app-emulation/virtualbox/metadata.xml20
-rw-r--r--app-emulation/virtualbox/virtualbox-4.3.28.ebuild419
-rw-r--r--app-emulation/virtualbox/virtualbox-4.3.30.ebuild419
-rw-r--r--app-emulation/virtualbox/virtualbox-5.0.0.ebuild425
-rw-r--r--app-emulation/vmips-cross-bin/Manifest1
-rw-r--r--app-emulation/vmips-cross-bin/metadata.xml7
-rw-r--r--app-emulation/vmips-cross-bin/vmips-cross-bin-1.0.ebuild18
-rw-r--r--app-emulation/vmips/Manifest2
-rw-r--r--app-emulation/vmips/metadata.xml10
-rw-r--r--app-emulation/vmips/vmips-1.3.1.ebuild17
-rw-r--r--app-emulation/vmips/vmips-1.3.ebuild17
-rw-r--r--app-emulation/vmware-modules/files/271-3.10.0.patch809
-rw-r--r--app-emulation/vmware-modules/files/271-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/271-filldir.patch91
-rw-r--r--app-emulation/vmware-modules/files/271-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/271-makefile-kernel-dir.patch85
-rw-r--r--app-emulation/vmware-modules/files/271-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/271-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/271-vfsfollowlink.patch30
-rw-r--r--app-emulation/vmware-modules/files/271-vmmon.patch44
-rw-r--r--app-emulation/vmware-modules/files/279-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/279-filldir.patch91
-rw-r--r--app-emulation/vmware-modules/files/279-hardened.patch113
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch85
-rw-r--r--app-emulation/vmware-modules/files/279-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/279-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/279-vfsfollowlink.patch30
-rw-r--r--app-emulation/vmware-modules/files/279-vmblock.patch23
-rw-r--r--app-emulation/vmware-modules/files/hardened.patch170
-rw-r--r--app-emulation/vmware-modules/metadata.xml10
-rw-r--r--app-emulation/vmware-modules/vmware-modules-271.3.ebuild85
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild100
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.2.ebuild100
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.3.ebuild100
-rw-r--r--app-emulation/vmware-player/Manifest8
-rw-r--r--app-emulation/vmware-player/files/config-3.010
-rw-r--r--app-emulation/vmware-player/files/list-bundle-components.xsl17
-rw-r--r--app-emulation/vmware-player/files/list-component-files.xsl19
-rw-r--r--app-emulation/vmware-player/files/vmware-3.0.rc33
-rw-r--r--app-emulation/vmware-player/metadata.xml14
-rw-r--r--app-emulation/vmware-player/vmware-player-5.0.3.1410761.ebuild245
-rw-r--r--app-emulation/vmware-player/vmware-player-6.0.1.1379776.ebuild245
-rw-r--r--app-emulation/vmware-player/vmware-player-6.0.2.1744117.ebuild245
-rw-r--r--app-emulation/vmware-player/vmware-player-6.0.3.1895310.ebuild245
-rw-r--r--app-emulation/vmware-tools/Manifest36
-rw-r--r--app-emulation/vmware-tools/metadata.xml5
-rw-r--r--app-emulation/vmware-tools/vmware-tools-9.2.3.1031769.ebuild56
-rw-r--r--app-emulation/vmware-tools/vmware-tools-9.6.1.1379776.ebuild55
-rw-r--r--app-emulation/vmware-tools/vmware-tools-9.6.2.1744117.ebuild55
-rw-r--r--app-emulation/vmware-view-open-client/Manifest1
-rw-r--r--app-emulation/vmware-view-open-client/files/vmware-view-open-client-4.5.0.297975-curl-headers.patch12
-rw-r--r--app-emulation/vmware-view-open-client/files/vmware-view-open-client-4.5.0.297975-linking.patch14
-rw-r--r--app-emulation/vmware-view-open-client/files/vmware-view-open-client-4.5.0.297975-unbundle-intltool.patch35
-rw-r--r--app-emulation/vmware-view-open-client/metadata.xml13
-rw-r--r--app-emulation/vmware-view-open-client/vmware-view-open-client-4.5.0.297975-r1.ebuild57
-rw-r--r--app-emulation/vmware-vix/Manifest2
-rw-r--r--app-emulation/vmware-vix/metadata.xml14
-rw-r--r--app-emulation/vmware-vix/vmware-vix-1.11.4.744019.ebuild124
-rw-r--r--app-emulation/vmware-workstation/Manifest9
-rw-r--r--app-emulation/vmware-workstation/files/configure-hostd.sh20
-rw-r--r--app-emulation/vmware-workstation/files/list-bundle-components.xsl17
-rw-r--r--app-emulation/vmware-workstation/files/list-component-files.xsl19
-rw-r--r--app-emulation/vmware-workstation/files/vmware-10.0.rc37
-rw-r--r--app-emulation/vmware-workstation/files/vmware-9.0.rc37
-rw-r--r--app-emulation/vmware-workstation/files/vmware-server-10.0.rc55
-rw-r--r--app-emulation/vmware-workstation/files/vmware-server-9.0.rc55
-rw-r--r--app-emulation/vmware-workstation/metadata.xml21
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-10.0.1.1379776-r1.ebuild493
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-10.0.2.1744117.ebuild493
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-10.0.3.1895310.ebuild493
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-9.0.3.1410761.ebuild491
-rw-r--r--app-emulation/vov/Manifest1
-rw-r--r--app-emulation/vov/metadata.xml17
-rw-r--r--app-emulation/vov/vov-2.0.0.ebuild52
-rw-r--r--app-emulation/vpcs/Manifest1
-rw-r--r--app-emulation/vpcs/metadata.xml15
-rw-r--r--app-emulation/vpcs/vpcs-0.6.ebuild45
-rw-r--r--app-emulation/wine/Manifest79
-rw-r--r--app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch40
-rw-r--r--app-emulation/wine/files/wine-1.5.17-osmesa-check.patch38
-rw-r--r--app-emulation/wine/files/wine-1.5.26-winegcc.patch59
-rw-r--r--app-emulation/wine/files/wine-1.6-memset-O3.patch21
-rw-r--r--app-emulation/wine/files/wine-1.7.0-freetype-header-location.patch351
-rw-r--r--app-emulation/wine/files/wine-1.7.12-osmesa-check.patch38
-rw-r--r--app-emulation/wine/files/wine-1.7.19-makefile-race-cond.patch15
-rw-r--r--app-emulation/wine/files/wine-1.7.2-osmesa-check.patch38
-rw-r--r--app-emulation/wine/files/wine-1.7.38-gstreamer-v5-staging-post.patch58
-rw-r--r--app-emulation/wine/files/wine-1.7.38-gstreamer-v5-staging-pre.patch48
-rw-r--r--app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-post.patch38
-rw-r--r--app-emulation/wine/files/wine-1.7.39-gstreamer-v5-staging-pre.patch40
-rw-r--r--app-emulation/wine/files/wine-1.7.45-libunwind-osx-only.patch64
-rw-r--r--app-emulation/wine/files/wine-1.7.47-critical-security-cookie-fix.patch82
-rw-r--r--app-emulation/wine/files/wine-gcc-4.9-null-pointer.patch35
-rw-r--r--app-emulation/wine/metadata.xml35
-rw-r--r--app-emulation/wine/wine-1.6.2-r1.ebuild368
-rw-r--r--app-emulation/wine/wine-1.6.2.ebuild376
-rw-r--r--app-emulation/wine/wine-1.7.10-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.11-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.12-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.13-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.14-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.15-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.16-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.17-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.18-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.19-r2.ebuild415
-rw-r--r--app-emulation/wine/wine-1.7.20-r1.ebuild417
-rw-r--r--app-emulation/wine/wine-1.7.21-r1.ebuild424
-rw-r--r--app-emulation/wine/wine-1.7.22-r1.ebuild424
-rw-r--r--app-emulation/wine/wine-1.7.28-r1.ebuild427
-rw-r--r--app-emulation/wine/wine-1.7.29-r1.ebuild427
-rw-r--r--app-emulation/wine/wine-1.7.3-r1.ebuild369
-rw-r--r--app-emulation/wine/wine-1.7.33-r1.ebuild430
-rw-r--r--app-emulation/wine/wine-1.7.34.ebuild427
-rw-r--r--app-emulation/wine/wine-1.7.35.ebuild422
-rw-r--r--app-emulation/wine/wine-1.7.36.ebuild421
-rw-r--r--app-emulation/wine/wine-1.7.37.ebuild424
-rw-r--r--app-emulation/wine/wine-1.7.38-r1.ebuild434
-rw-r--r--app-emulation/wine/wine-1.7.39-r1.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.4-r1.ebuild369
-rw-r--r--app-emulation/wine/wine-1.7.40-r1.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.41.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.42.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.43.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.44.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.45.ebuild430
-rw-r--r--app-emulation/wine/wine-1.7.46.ebuild436
-rw-r--r--app-emulation/wine/wine-1.7.47.ebuild438
-rw-r--r--app-emulation/wine/wine-1.7.8-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-1.7.9-r1.ebuild370
-rw-r--r--app-emulation/wine/wine-9999.ebuild436
-rw-r--r--app-emulation/winetricks/Manifest2
-rw-r--r--app-emulation/winetricks/metadata.xml19
-rw-r--r--app-emulation/winetricks/winetricks-20150706.ebuild83
-rw-r--r--app-emulation/winetricks/winetricks-99999999.ebuild83
-rw-r--r--app-emulation/x48/Manifest1
-rw-r--r--app-emulation/x48/metadata.xml22
-rw-r--r--app-emulation/x48/x48-0.6.4.ebuild67
-rw-r--r--app-emulation/xe-guest-utilities/Manifest3
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-daemon.initd28
-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.patch127
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch77
-rw-r--r--app-emulation/xe-guest-utilities/metadata.xml19
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-5.6.0_p595.ebuild57
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-6.1.0_p1033.ebuild57
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild57
-rw-r--r--app-emulation/xen-pvgrub/Manifest8
-rw-r--r--app-emulation/xen-pvgrub/files/newlib-implicits.patch149
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4-fix_dotconfig-gcc.patch245
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.2.1-externals.patch83
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.3-externals.patch75
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.3-fix_dotconfig-gcc.patch220
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.4-fix_dotconfig-gcc.patch171
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4-qa.patch35
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.2-jserver.patch32
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.2.3-qa.patch34
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.3.1-qa.patch30
-rw-r--r--app-emulation/xen-pvgrub/metadata.xml5
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.2.5.ebuild162
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.5.1.ebuild143
-rw-r--r--app-emulation/xen-tools/Manifest11
-rw-r--r--app-emulation/xen-tools/files/gentoo-patches.conf135
-rw-r--r--app-emulation/xen-tools/files/stubs-32.h20
-rw-r--r--app-emulation/xen-tools/files/xen-consoles.logrotate5
-rw-r--r--app-emulation/xen-tools/files/xencommons.confd4
-rw-r--r--app-emulation/xen-tools/files/xencommons.initd80
-rw-r--r--app-emulation/xen-tools/files/xenconsoled.confd2
-rw-r--r--app-emulation/xen-tools/files/xenconsoled.initd34
-rw-r--r--app-emulation/xen-tools/files/xendomains-screen.confd25
-rw-r--r--app-emulation/xen-tools/files/xendomains.confd9
-rw-r--r--app-emulation/xen-tools/files/xendomains.initd-r2118
-rw-r--r--app-emulation/xen-tools/files/xenqemudev.confd7
-rw-r--r--app-emulation/xen-tools/files/xenqemudev.initd85
-rw-r--r--app-emulation/xen-tools/files/xenstored.confd2
-rwxr-xr-xapp-emulation/xen-tools/files/xenstored.initd44
-rw-r--r--app-emulation/xen-tools/metadata.xml18
-rw-r--r--app-emulation/xen-tools/xen-tools-4.2.5-r10.ebuild391
-rw-r--r--app-emulation/xen-tools/xen-tools-4.5.1-r3.ebuild458
-rw-r--r--app-emulation/xen/Manifest4
-rw-r--r--app-emulation/xen/files/xen-4-fix_dotconfig-gcc.patch37
-rw-r--r--app-emulation/xen/files/xen-4.2-efi.patch33
-rw-r--r--app-emulation/xen/files/xen-4.3-fix_dotconfig-gcc.patch220
-rw-r--r--app-emulation/xen/files/xen-4.4-efi.patch36
-rw-r--r--app-emulation/xen/files/xen-4.5-efi.patch37
-rw-r--r--app-emulation/xen/metadata.xml11
-rw-r--r--app-emulation/xen/xen-4.2.5-r11.ebuild167
-rw-r--r--app-emulation/xen/xen-4.5.1.ebuild176
-rw-r--r--app-emulation/xtrs/Manifest3
-rw-r--r--app-emulation/xtrs/metadata.xml23
-rw-r--r--app-emulation/xtrs/xtrs-4.9d-r3.ebuild70
761 files changed, 59286 insertions, 0 deletions
diff --git a/app-emulation/aqemu/Manifest b/app-emulation/aqemu/Manifest
new file mode 100644
index 00000000000..0251138dfa5
--- /dev/null
+++ b/app-emulation/aqemu/Manifest
@@ -0,0 +1 @@
+DIST aqemu-0.8.2.tar.bz2 1025129 SHA256 03c4a95328f78238021168ca4887f9735641f10eb4eb1eff58b08c15b748bf03 SHA512 45f27f82ca307ffc50ea26a57631b47236fd04915274bb00a0720e65859e183d56c3243e0e31d71e5280d0941a9c80c1457b09d393e5c4d4deeb1fea4159459d WHIRLPOOL c5a058883df1424d5d1b2b028fca7fd6aae8b72281060a305a428e63ad5bfb1d062c56c18878b6a279a79953a88c760553a701b5c3346113836eb56ab4a30aa2
diff --git a/app-emulation/aqemu/aqemu-0.8.2-r2.ebuild b/app-emulation/aqemu/aqemu-0.8.2-r2.ebuild
new file mode 100644
index 00000000000..9d38d3c6eae
--- /dev/null
+++ b/app-emulation/aqemu/aqemu-0.8.2-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit cmake-utils
+
+DESCRIPTION="Graphical interface for QEMU and KVM emulators, using Qt4"
+HOMEPAGE="http://sourceforge.net/projects/aqemu"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="vnc"
+
+DEPEND="${RDEPEND}"
+RDEPEND="app-emulation/qemu
+ vnc? ( net-libs/libvncserver )
+ dev-qt/qtgui:4
+ dev-qt/qttest:4
+ dev-qt/qtxmlpatterns:4"
+
+DOCS="AUTHORS CHANGELOG README TODO"
+PATCHES=(
+ "${FILESDIR}"/aqemu-0.8.2_sigsev_propertis.patch
+ "${FILESDIR}"/aqemu-0.8.2_qt48_build.patch
+ "${FILESDIR}"/aqemu-0.8.2_desktop_file.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ "-DMAN_PAGE_COMPRESSOR="
+ "-DWITHOUT_EMBEDDED_DISPLAY=$(use vnc && echo "OFF" || echo "ON")"
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/app-emulation/aqemu/files/aqemu-0.8.2_desktop_file.patch b/app-emulation/aqemu/files/aqemu-0.8.2_desktop_file.patch
new file mode 100644
index 00000000000..4cf20ea578d
--- /dev/null
+++ b/app-emulation/aqemu/files/aqemu-0.8.2_desktop_file.patch
@@ -0,0 +1,33 @@
+From 2a0f32e8cb46c8a1c0a33ed151737e5abb5679ed Mon Sep 17 00:00:00 2001
+From: Andrey Rijov <rdron@users.sourceforge.net>
+Date: Mon, 31 Oct 2011 19:38:17 +0400
+Subject: [PATCH] Updated aqemu.desktop file (See bug: 3430317)
+
+---
+ menu_data/aqemu.desktop | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+--- a/menu_data/aqemu.desktop
++++ b/menu_data/aqemu.desktop
+@@ -1,14 +1,15 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Name=AQEMU
+ Exec=aqemu
+ Terminal=false
+ Type=Application
+-Icon=aqemu_48x48.png
++Icon=aqemu_48x48
+ StartupNotify=true
+ Categories=System;Emulator;
+
+-Name[ru]=AQEMU
++Name=AQEMU
++Comment=Virtual machine manager
+ Name[en]=AQEMU
+-Comment[ru]=Управление виртуальными машинами
+ Comment[en]=Virtual machine manager
++Name[ru]=AQEMU
++Comment[ru]=Управление виртуальными машинами
+--
+1.7.4.1
diff --git a/app-emulation/aqemu/files/aqemu-0.8.2_qt48_build.patch b/app-emulation/aqemu/files/aqemu-0.8.2_qt48_build.patch
new file mode 100644
index 00000000000..afd1f0c853d
--- /dev/null
+++ b/app-emulation/aqemu/files/aqemu-0.8.2_qt48_build.patch
@@ -0,0 +1,27 @@
+From 9b21d88a4f4a681f9e80c11e83e81c976e0fc91e Mon Sep 17 00:00:00 2001
+From: Andrey Rijov <rdron@users.sourceforge.net>
+Date: Sat, 29 Oct 2011 10:20:32 +0400
+Subject: [PATCH 1/1] Fix build error on Qt 4.8
+
+---
+ Embedded_Display/vncview.cpp | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Embedded_Display/vncview.cpp b/Embedded_Display/vncview.cpp
+index 9e105c9..0be5944 100644
+--- a/Embedded_Display/vncview.cpp
++++ b/Embedded_Display/vncview.cpp
+@@ -27,8 +27,8 @@
+ #include <QMessageBox>
+ #include <QInputDialog>
+ #define KMessageBox QMessageBox
+- #define error(parent, message, caption) \
+- critical(parent, caption, message)
++/* #define error(parent, message, caption) \
++ critical(parent, caption, message)*/
+ #else
+ #include "settings.h"
+ #include <KActionCollection>
+--
+1.7.4.1
+
diff --git a/app-emulation/aqemu/files/aqemu-0.8.2_sigsev_propertis.patch b/app-emulation/aqemu/files/aqemu-0.8.2_sigsev_propertis.patch
new file mode 100644
index 00000000000..b7cc5950bd5
--- /dev/null
+++ b/app-emulation/aqemu/files/aqemu-0.8.2_sigsev_propertis.patch
@@ -0,0 +1,41 @@
+--- a/Device_Manager_Widget.cpp 2011-09-13 21:45:58.883389571 +0200
++++ b/Device_Manager_Widget.cpp 2011-09-13 21:55:01.401866022 +0200
+@@ -981,9 +981,10 @@
+ {
+ if( ui.Devices_List->currentItem()->data(512).toString() == "device" + QString::number(fx) )
+ {
+- finded = true;
+-
+ Storage_Devices.removeAt( fx );
++ ui.Devices_List->takeItem( ui.Devices_List->currentRow() );
++ finded = true;
++ break;
+ }
+ }
+
+@@ -993,10 +994,24 @@
+ "Incorrect Device!" );
+ return;
+ }
++ else
++ {
++ // Rename items
++ for( int ix = 0, count = 0; ix < ui.Devices_List->count(); ++ix )
++ {
++ if( ui.Devices_List->item(ix)->data(512).toString().contains("device") )
++ {
++ ui.Devices_List->item(ix)->setData( 512, QString("device%1").arg(count) );
++ ++count;
++ }
++ }
++
++ emit Device_Changet();
++ return;
++ }
+ }
+
+ ui.Devices_List->takeItem( ui.Devices_List->currentRow() );
+-
+ emit Device_Changet();
+ }
+
diff --git a/app-emulation/aqemu/metadata.xml b/app-emulation/aqemu/metadata.xml
new file mode 100644
index 00000000000..25667e2ea9c
--- /dev/null
+++ b/app-emulation/aqemu/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <description>Proxy maintainer (CC on bugs)</description>
+ </maintainer>
+ <maintainer>
+ <email>andreis.vinogradovs@gmail.com</email>
+ <description>Proxied maintainer (assign bugs)</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">aqemu</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/aranym/Manifest b/app-emulation/aranym/Manifest
new file mode 100644
index 00000000000..7751ff866a7
--- /dev/null
+++ b/app-emulation/aranym/Manifest
@@ -0,0 +1,3 @@
+DIST afros812.zip 9087862 SHA256 7d60230694734a42d912f47d03653f60ffd5a034d89771df35a414b6a6af6263 SHA512 0e9522740dc38c34b1fab4a999485caca0af95692d281bf2887fe6dddf48cceaf6c4d8b9802f402e2bd00726fb01c557ffb5731838ebd94b9eec987f1f0ce545 WHIRLPOOL bc641fef78cff4fb14448b0054eb39505a507d73f1511fb0d801f06637e0c81e2311c6c1fe1391aea379f967d5f20032e4ffb5184d9a9f39f3530c3cfeb63550
+DIST aranym_0.9.14.orig.tar.gz 1831715 SHA256 04e85337fbf54cb3c80c2d26ce22f51337abc2ddc730d9bf9ed3b171def4b9fa SHA512 8145546bf6f6ffea8f4ea24f0fbfc19d1b33146b30473757dcf04c7603125f7f3a36f266ad190baf310510fa50b5f9ecfe2cd8627dea292d3851e6c64cf4fc17 WHIRLPOOL 86ad78d2a7ff0c66f94875bfb6d80957436bf594bd201884d8fee3e541aa11f5d03d16500807b3d9172155c5284e94d4d251913f08869def4d4bfd33f1d24bc7
+DIST aranym_0.9.16.orig.tar.gz 1778730 SHA256 11e7ca0dd93d42966c2ec70749a3c1e4345656ad1108a126ecd9754391a308c6 SHA512 b2848b1c6726b0e85f76da144a3f4f478bed13a1bc528658a448499c5e3434d5adb2ff6e0625d814a6e15a6d1ca9fe8922a3f282b50b1cb7763bb09c64342ae8 WHIRLPOOL 48a5cf68c4243c18292e3948d688ee8dc29306986b05177cc469cd6915dabe8733994f1578272acfac939cbae77d27a3bb4ced8fa41aa70cfb70ce503b6c717d
diff --git a/app-emulation/aranym/aranym-0.9.14.ebuild b/app-emulation/aranym/aranym-0.9.14.ebuild
new file mode 100644
index 00000000000..dfb397f37bb
--- /dev/null
+++ b/app-emulation/aranym/aranym-0.9.14.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="Atari Running on Any Machine, a VM running Atari ST/TT/Falcon OS and TOS/GEM applications"
+HOMEPAGE="http://aranym.sourceforge.net/"
+SRC_URI="mirror://sourceforge/aranym/${P/-/_}.orig.tar.gz
+ mirror://sourceforge/aranym/afros812.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="+fullmmu +lilo opengl usbhost X"
+
+RDEPEND="games-emulation/emutos
+ media-libs/libsdl
+ opengl? ( virtual/opengl )
+ X? ( media-libs/libsdl[X] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+src_configure() {
+ filter-flags -mpowerpc-gfxopt
+
+ local myconf=""
+ if [[ ${ARCH} == x86 ]]; then
+ myconf="${myconf} --enable-jit-compiler"
+ fi
+
+ if ! use X; then
+ myconf="${myconf} --disable-nfjpeg --disable-nfclipbrd"
+ fi
+
+ econf \
+ $(use_enable X gui) \
+ $(use_enable opengl) \
+ $(use_enable fullmmu) \
+ $(use_enable lilo) \
+ $(use_enable usbhost) \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" INSTALL_PROGRAM="install" install
+
+ insinto /usr/share/${PN}
+ doins -r "${WORKDIR}"/afros
+
+ dodoc "${D}"/usr/share/doc/${PN}/*
+ rm -r "${D}"/usr/share/doc/${PN} || die
+}
+
+pkg_postinst() {
+ elog "To run ARAnyM with AFROS type: aranym --config /usr/share/aranym/afros/config"
+}
diff --git a/app-emulation/aranym/aranym-0.9.16.ebuild b/app-emulation/aranym/aranym-0.9.16.ebuild
new file mode 100644
index 00000000000..42dc1347a45
--- /dev/null
+++ b/app-emulation/aranym/aranym-0.9.16.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="Atari Running on Any Machine, a VM running Atari ST/TT/Falcon OS and TOS/GEM applications"
+HOMEPAGE="http://aranym.sourceforge.net/"
+SRC_URI="mirror://sourceforge/aranym/${P/-/_}.orig.tar.gz
+ mirror://sourceforge/aranym/afros812.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="+fullmmu +lilo opengl usbhost X"
+
+RDEPEND="games-emulation/emutos
+ media-libs/libsdl
+ opengl? ( virtual/opengl )
+ X? ( media-libs/libsdl[X] )"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+src_configure() {
+ filter-flags -mpowerpc-gfxopt
+
+ local myconf=""
+ if [[ ${ARCH} == x86 ]]; then
+ myconf="${myconf} --enable-jit-compiler"
+ fi
+
+ if ! use X; then
+ myconf="${myconf} --disable-nfjpeg --disable-nfclipbrd"
+ fi
+
+ econf \
+ $(use_enable X gui) \
+ $(use_enable opengl) \
+ $(use_enable fullmmu) \
+ $(use_enable lilo) \
+ $(use_enable usbhost) \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" INSTALL_PROGRAM="install" install
+
+ insinto /usr/share/${PN}
+ doins -r "${WORKDIR}"/afros
+
+ dodoc "${D}"/usr/share/doc/${PN}/*
+ rm -r "${D}"/usr/share/doc/${PN} || die
+}
+
+pkg_postinst() {
+ elog "To run ARAnyM with AFROS type: aranym --config /usr/share/aranym/afros/config"
+}
diff --git a/app-emulation/aranym/metadata.xml b/app-emulation/aranym/metadata.xml
new file mode 100644
index 00000000000..d60a27928e6
--- /dev/null
+++ b/app-emulation/aranym/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ ARAnyM is an acronym: Atari Running on Any Machine. It is a virtual
+ machine software for running the Atari ST/TT/Falcon operating systems
+ (TOS, FreeMiNT, MagiC and others) and TOS/GEM applications. In the
+ combination of ARAnyM/Linux and AFROS you basically get a completely
+ free TOS/MiNT compatible operating system running on any machine.
+ That's a break-through for all Atari users - now you can turn almost
+ any hardware into your familiar TOS/GEM system.
+ </longdescription>
+ <use>
+ <flag name="fullmmu">Enable full 68040 MMU emulation</flag>
+ <flag name="lilo">Enable Linux-m68k loader</flag>
+ <flag name="usbhost">Enable NatFeat USB</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">aranym</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/armv8-fast-model/Manifest b/app-emulation/armv8-fast-model/Manifest
new file mode 100644
index 00000000000..bf823aae7bd
--- /dev/null
+++ b/app-emulation/armv8-fast-model/Manifest
@@ -0,0 +1 @@
+DIST FM000-KT-00035-r0p8-52rel06.tgz 9429294 SHA256 a011c7549029fe5c475f2d495b225b93317a44eb3da0f19f2825ad831c64d899 SHA512 349470432e8dba9e52eba88b577b22fdd9e3ce865288a3dc1540c58e1e10b4f2c14f084f7a4928993e4d1d3bc7cfbbf235f2575394254f09a8d845b7b2993f12 WHIRLPOOL e95ed1315f264ed82f2debd903ad69a6437798d88727e275285d1d06c5da1a5841b9955e93b6dbdc446ad652ef383a37cfe0f43a3888f23ec428a67a765e6ac7
diff --git a/app-emulation/armv8-fast-model/armv8-fast-model-0.8.5206.ebuild b/app-emulation/armv8-fast-model/armv8-fast-model-0.8.5206.ebuild
new file mode 100644
index 00000000000..da6bf36f74b
--- /dev/null
+++ b/app-emulation/armv8-fast-model/armv8-fast-model-0.8.5206.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib
+
+MY_P="FM000-KT-00035-r${PV:0:1}p${PV:2:1}-${PV:0-4:2}rel${PV:0-2}"
+DESCRIPTION="emulator for a basic ARMv8 platform environment (for running bare metal & Linux)"
+HOMEPAGE="https://silver.arm.com/browse/FM00A"
+SRC_URI="https://silver.arm.com/download/Development_Tools/ESL:_Fast_Models/Fast_Models/${MY_P}/${MY_P}.tgz"
+
+LICENSE="ARM-FAST-MODEL"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+IUSE="examples"
+RESTRICT="fetch strip"
+
+RDEPEND="sys-libs/glibc
+ sys-devel/gcc"
+
+S="${WORKDIR}/Foundation_v8pkg"
+
+QA_PREBUILT="
+ opt/${PN}/bin/Foundation_v8
+ opt/${PN}/*/lib*.so*
+"
+
+pkg_nofetch() {
+ einfo "Please visit this URL to download the package:"
+ einfo " ${SRC_URI}"
+ einfo "Then stick it into ${DISTDIR}"
+}
+
+src_install() {
+ into /opt/${PN}
+ pushd models/Linux64_GCC-4.1 >/dev/null
+ dobin Foundation_v8
+ dolib.so lib*.so*
+ popd >/dev/null
+
+ dodir /opt/bin
+ make_wrapper Foundation_v8 /opt/${PN}/bin/Foundation_v8 '' /opt/${PN}/$(get_libdir) /opt/bin
+
+ dodoc doc/*.{pdf,txt}
+ use examples && dodoc -r examples
+}
diff --git a/app-emulation/armv8-fast-model/metadata.xml b/app-emulation/armv8-fast-model/metadata.xml
new file mode 100644
index 00000000000..5454528f209
--- /dev/null
+++ b/app-emulation/armv8-fast-model/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>arm</herd>
+</pkgmetadata>
diff --git a/app-emulation/bochs/Manifest b/app-emulation/bochs/Manifest
new file mode 100644
index 00000000000..d45da42ec9b
--- /dev/null
+++ b/app-emulation/bochs/Manifest
@@ -0,0 +1 @@
+DIST bochs-2.6.tar.gz 4212828 SHA256 65123e44a6d2c1148d741da025d16311b9ccd600ef268b911aba73c67eaf86e1 SHA512 506e7816c96caf56005c74df20d243aef111dded41b65dbf440844af3d49bc5987af333ef65a53f90de9fbdfc4d18e3e23fff1157ccb08bd95afff8fdbbcfba3 WHIRLPOOL 4598ad37b6792a001e3301770318c6a6d53bda98dc9a21337db4659573d8bf4ec64cf3376386f5e298dc25813c9bcc5e29b7a82383b96c1e2f82c77a75877001
diff --git a/app-emulation/bochs/bochs-2.6.ebuild b/app-emulation/bochs/bochs-2.6.ebuild
new file mode 100644
index 00000000000..78fef9536d8
--- /dev/null
+++ b/app-emulation/bochs/bochs-2.6.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+WX_GTK_VER=2.8
+
+inherit eutils wxwidgets
+
+DESCRIPTION="LGPL-ed pc emulator"
+HOMEPAGE="http://bochs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/bochs/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE="3dnow avx debugger doc gdb ncurses readline svga sdl +smp wxwidgets vnc X +x86-64"
+REQUIRED_USE="avx? ( x86-64 )
+ gdb? ( !debugger !smp )
+ debugger? ( !gdb )"
+
+RDEPEND="X? ( x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXpm )
+ sdl? ( media-libs/libsdl )
+ svga? ( media-libs/svgalib )
+ wxwidgets? ( x11-libs/wxGTK:2.8[X] )
+ readline? ( sys-libs/readline )
+ ncurses? ( sys-libs/ncurses )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ X? ( x11-proto/xproto )
+ sys-apps/sed
+ >=app-text/opensp-1.5"
+
+src_prepare() {
+ sed -i "s:^docdir.*:docdir = ${EPREFIX}/usr/share/doc/${PF}:" \
+ Makefile.in || die
+}
+
+src_configure() {
+ use wxwidgets && \
+ need-wxwidgets unicode
+
+ econf \
+ --enable-all-optimizations \
+ --enable-idle-hack \
+ --enable-cdrom \
+ --enable-clgd54xx \
+ --enable-cpu-level=6 \
+ --enable-disasm \
+ --enable-e1000 \
+ --enable-gameport \
+ --enable-iodebug \
+ --enable-monitor-mwait \
+ --enable-ne2000 \
+ --enable-plugins \
+ --enable-pci \
+ --enable-pcidev \
+ --enable-pnic \
+ --enable-raw-serial \
+ --enable-sb16=linux \
+ --enable-usb \
+ --enable-usb-ohci \
+ --enable-usb-xhci \
+ --prefix=/usr \
+ --with-nogui \
+ $(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 svga) \
+ $(use_with vnc rfb) \
+ $(use_with wxwidgets wx) \
+ $(use_with X x) \
+ $(use_with X x11) \
+ ${myconf}
+}
diff --git a/app-emulation/bochs/metadata.xml b/app-emulation/bochs/metadata.xml
new file mode 100644
index 00000000000..2afe2cec494
--- /dev/null
+++ b/app-emulation/bochs/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>lu_zero@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="3dnow">Enable support for emulating 3DNow! instructions (incomplete)</flag>
+ <flag name="debugger">Enable the bochs debugger</flag>
+ <flag name="avx">Enable support for emulating Advanced Vector Extensions (AVX)</flag>
+ <flag name="debugger">Enable debugger (slows down emulation)</flag>
+ <flag name="gdb">Enable support for the remote GDB stub</flag>
+ <flag name="x86-64">Enable support for emulation of 64-bit CPUs</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">bochs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/cloud-init/Manifest b/app-emulation/cloud-init/Manifest
new file mode 100644
index 00000000000..93c02cdc8f4
--- /dev/null
+++ b/app-emulation/cloud-init/Manifest
@@ -0,0 +1,2 @@
+DIST cloud-init-0.7.5.tar.gz 503717 SHA256 a92bb83809c139a7db378916414c18b0819e306852d6c60dd89388868857ed33 SHA512 79e1e4a9e1130a3a9deb0482278215baf5ed41e02beebed0a2c6fac4e215340a9537158bd259758a2e074f334c0c0b9e7b936c23eeb9c848c67f7e7835cf0f5d WHIRLPOOL 7d92a0e1b6a3faf550bc442b02c117280c47d160e7e318d9fb859d6d8b59a0ef947d057dfb615bd925420a25ca28852742ee87ffd6066664faf640ca53a13073
+DIST cloud-init-0.7.6.tar.gz 515670 SHA256 9e8fd22eb7f6e40ae6a5f66173ddc3cc18f65ee406c460a728092b37db2f3ed7 SHA512 aa2397328afda8e77ed6d642e7642f41a4b4b5bcd3d0e87056aa8c88b56624ec65c57cfc66b0d13ccc235f1840baf1d577316974902a0439cf2f2eb0f8eef36d WHIRLPOOL 639a556e51b4b4b180951f9e481f9a0dcd45067d1d5760ce7e871ceea8bbb4e195258d96273d3ef88c7e2f2520318e9172c3ad0cb23d6ad0ae1835e17087e3a5
diff --git a/app-emulation/cloud-init/cloud-init-0.7.5-r1.ebuild b/app-emulation/cloud-init/cloud-init-0.7.5-r1.ebuild
new file mode 100644
index 00000000000..2b8007b430d
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-0.7.5-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils multilib
+
+DESCRIPTION="Package provides configuration and customization of cloud instance"
+HOMEPAGE="https://launchpad.net/cloud-init"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/cheetah[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ dev-python/oauth[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( ${RDEPEND}
+ sys-apps/iproute2 )"
+
+PATCHES=( "${FILESDIR}"/${P}-tests-exclude.patch )
+
+#python_prepare_all() {
+# distutils-r_python_prepare_all
+#}
+
+python_test() {
+ # These tests are not broken but expect to locate an installed exe file
+ # other than where a gentoo system installs it; (/bin/ip sought in /sbin)
+ # See cloudinit/sources/DataSourceOpenNebula.py for possible patching
+ sed -e 's:test_hostname:_&:' \
+ -e 's:test_network_interfaces:_&:' \
+ -i tests/unittests/test_datasource/test_opennebula.py
+ emake test
+}
+
+python_install() {
+ distutils-r1_python_install
+ for svc in config final init init-local; do
+ newinitd "${WORKDIR}/${P}/sysvinit/gentoo/cloud-${svc}" "cloud-${svc}"
+ done
+}
diff --git a/app-emulation/cloud-init/cloud-init-0.7.5-r2.ebuild b/app-emulation/cloud-init/cloud-init-0.7.5-r2.ebuild
new file mode 100644
index 00000000000..6d04f898d9c
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-0.7.5-r2.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=TRUE
+
+inherit distutils-r1 eutils multilib systemd
+
+DESCRIPTION="Cloud instance initialization"
+HOMEPAGE="http://launchpad.net/cloud-init"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/oauth[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ ${CDEPEND}
+ >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
+ dev-python/mocker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pep8[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}]
+ sys-apps/iproute2
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ virtual/logger
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/${P}-tests-exclude.patch
+ )
+
+ distutils-r1_python_prepare_all
+
+ # Skip SmartOS tests since they don't generally apply and don't skip based
+ # on environment. Documented in bug #511384.
+ rm tests/unittests/test_datasource/test_smartos.py
+}
+
+python_test() {
+ # These tests are not broken but expect to locate an installed exe file
+ # other than where a gentoo system installs it; (/bin/ip sought in /sbin)
+ # See cloudinit/sources/DataSourceOpenNebula.py for possible patching
+ sed \
+ -e 's:test_hostname:_&:' \
+ -e 's:test_network_interfaces:_&:' \
+ -i tests/unittests/test_datasource/test_opennebula.py
+
+ emake test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doinitd "${S}"/sysvinit/gentoo/cloud-config
+ doinitd "${S}"/sysvinit/gentoo/cloud-final
+ doinitd "${S}"/sysvinit/gentoo/cloud-init
+ doinitd "${S}"/sysvinit/gentoo/cloud-init-local
+
+ systemd_dounit "${S}"/systemd/cloud-config.service
+ systemd_dounit "${S}"/systemd/cloud-config.target
+ systemd_dounit "${S}"/systemd/cloud-final.service
+ systemd_dounit "${S}"/systemd/cloud-init-local.service
+ systemd_dounit "${S}"/systemd/cloud-init.service
+}
diff --git a/app-emulation/cloud-init/cloud-init-0.7.5-r3.ebuild b/app-emulation/cloud-init/cloud-init-0.7.5-r3.ebuild
new file mode 100644
index 00000000000..a30aedd0c2f
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-0.7.5-r3.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=TRUE
+
+inherit distutils-r1 eutils multilib systemd
+
+DESCRIPTION="Cloud instance initialization"
+HOMEPAGE="http://launchpad.net/cloud-init"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/oauth[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ ${CDEPEND}
+ >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
+ dev-python/mocker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/pep8[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ dev-python/pylint[${PYTHON_USEDEP}]
+ sys-apps/iproute2
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ virtual/logger
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/${P}-tests-exclude.patch
+ )
+
+ distutils-r1_python_prepare_all
+
+ # Skip SmartOS tests since they don't generally apply and don't skip based
+ # on environment. Documented in bug #511384.
+ rm tests/unittests/test_datasource/test_smartos.py
+}
+
+python_test() {
+ # These tests are not broken but expect to locate an installed exe file
+ # other than where a gentoo system installs it; (/bin/ip sought in /sbin)
+ # See cloudinit/sources/DataSourceOpenNebula.py for possible patching
+ sed \
+ -e 's:test_hostname:_&:' \
+ -e 's:test_network_interfaces:_&:' \
+ -i tests/unittests/test_datasource/test_opennebula.py
+
+ emake test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doinitd "${S}"/sysvinit/gentoo/cloud-config
+ doinitd "${S}"/sysvinit/gentoo/cloud-final
+ doinitd "${S}"/sysvinit/gentoo/cloud-init
+ doinitd "${S}"/sysvinit/gentoo/cloud-init-local
+
+ systemd_dounit "${S}"/systemd/cloud-config.service
+ systemd_dounit "${S}"/systemd/cloud-config.target
+ systemd_dounit "${S}"/systemd/cloud-final.service
+ systemd_dounit "${S}"/systemd/cloud-init-local.service
+ systemd_dounit "${S}"/systemd/cloud-init.service
+
+ rm /etc/cloud/cloud.cfg
+ insinto /etc/cloud
+ doins "${FILESDIR}/cloud.cfg"
+}
diff --git a/app-emulation/cloud-init/cloud-init-0.7.6-r1.ebuild b/app-emulation/cloud-init/cloud-init-0.7.6-r1.ebuild
new file mode 100644
index 00000000000..e6f4ac9b48c
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-0.7.6-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils multilib systemd
+
+DESCRIPTION="EC2 initialisation magic"
+HOMEPAGE="http://launchpad.net/cloud-init"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+CDEPEND="
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/oauth[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
+ dev-python/mocker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ ~dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ sys-apps/iproute2
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ sys-apps/gptfdisk
+ virtual/logger
+"
+
+python_prepare_all() {
+ # Note: Gentoo places ip in /sbin/ not /bin/
+ ebegin 'patching cloudinit/sources/DataSourceOpenNebula.py'
+ sed \
+ -e '438s/sbin/bin/' \
+ -i cloudinit/sources/DataSourceOpenNebula.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # https://bugs.launchpad.net/cloud-init/+bug/1380424
+ ebegin 'patching tests/unittests/test_distros/test_netconfig.py'
+ sed \
+ -e '177s/test_simple_write_freebsd/_&/' \
+ -i tests/unittests/test_distros/test_netconfig.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # Note Gentoo installs its own RC files
+ ebegin 'patching setup.py'
+ sed \
+ -e "144 s/'tests'/'tests.*', &/" \
+ -e '163,167 d' \
+ -i setup.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ keepdir /etc/cloud
+
+ distutils-r1_python_install_all
+
+ doinitd "${S}"/sysvinit/gentoo/cloud-config
+ doinitd "${S}"/sysvinit/gentoo/cloud-final
+ doinitd "${S}"/sysvinit/gentoo/cloud-init
+ doinitd "${S}"/sysvinit/gentoo/cloud-init-local
+ insinto /etc/cloud/templates
+ doins "${FILESDIR}/hosts.gentoo.tmpl"
+ exeinto /usr/bin
+ doexe "${FILESDIR}/growpart"
+ insinto /etc/cloud
+ doins "${FILESDIR}/cloud.cfg"
+
+ systemd_dounit "${S}"/systemd/cloud-config.service
+ systemd_dounit "${S}"/systemd/cloud-config.target
+ systemd_dounit "${S}"/systemd/cloud-final.service
+ systemd_dounit "${S}"/systemd/cloud-init-local.service
+ systemd_dounit "${S}"/systemd/cloud-init.service
+}
diff --git a/app-emulation/cloud-init/cloud-init-0.7.6.ebuild b/app-emulation/cloud-init/cloud-init-0.7.6.ebuild
new file mode 100644
index 00000000000..07a19188176
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-0.7.6.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils multilib systemd
+
+DESCRIPTION="EC2 initialisation magic"
+HOMEPAGE="http://launchpad.net/cloud-init"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+CDEPEND="
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/configobj[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/oauth[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${CDEPEND}
+ >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
+ dev-python/mocker[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ ~dev-python/pep8-1.5.7[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ sys-apps/iproute2
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ virtual/logger
+"
+
+python_prepare_all() {
+ # Note: Gentoo places ip in /sbin/ not /bin/
+ ebegin 'patching cloudinit/sources/DataSourceOpenNebula.py'
+ sed \
+ -e '438s/sbin/bin/' \
+ -i cloudinit/sources/DataSourceOpenNebula.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # https://bugs.launchpad.net/cloud-init/+bug/1380424
+ ebegin 'patching tests/unittests/test_distros/test_netconfig.py'
+ sed \
+ -e '177s/test_simple_write_freebsd/_&/' \
+ -i tests/unittests/test_distros/test_netconfig.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ # Note Gentoo installs its own RC files
+ ebegin 'patching setup.py'
+ sed \
+ -e "144 s/'tests'/'tests.*', &/" \
+ -e '163,167 d' \
+ -i setup.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ emake test
+}
+
+python_install_all() {
+ keepdir /etc/cloud
+
+ distutils-r1_python_install_all
+
+ doinitd "${S}"/sysvinit/gentoo/cloud-config
+ doinitd "${S}"/sysvinit/gentoo/cloud-final
+ doinitd "${S}"/sysvinit/gentoo/cloud-init
+ doinitd "${S}"/sysvinit/gentoo/cloud-init-local
+
+ systemd_dounit "${S}"/systemd/cloud-config.service
+ systemd_dounit "${S}"/systemd/cloud-config.target
+ systemd_dounit "${S}"/systemd/cloud-final.service
+ systemd_dounit "${S}"/systemd/cloud-init-local.service
+ systemd_dounit "${S}"/systemd/cloud-init.service
+}
diff --git a/app-emulation/cloud-init/files/cloud-init-0.7.5-tests-exclude.patch b/app-emulation/cloud-init/files/cloud-init-0.7.5-tests-exclude.patch
new file mode 100644
index 00000000000..225f1a1d76c
--- /dev/null
+++ b/app-emulation/cloud-init/files/cloud-init-0.7.5-tests-exclude.patch
@@ -0,0 +1,12 @@
+diff -ur cloud-init-0.7.5.orig/setup.py cloud-init-0.7.5/setup.py
+--- setup.py 2014-04-02 02:26:07.000000000 +0800
++++ setup.py 2014-05-01 23:38:15.848225975 +0800
+@@ -114,7 +114,7 @@
+ author='Scott Moser',
+ author_email='scott.moser@canonical.com',
+ url='http://launchpad.net/cloud-init/',
+- packages=setuptools.find_packages(exclude=['tests']),
++ packages=setuptools.find_packages(exclude=['tests','tests.*']),
+ scripts=['bin/cloud-init',
+ 'tools/cloud-init-per',
+ ],
diff --git a/app-emulation/cloud-init/files/cloud.cfg b/app-emulation/cloud-init/files/cloud.cfg
new file mode 100644
index 00000000000..d62e3a22241
--- /dev/null
+++ b/app-emulation/cloud-init/files/cloud.cfg
@@ -0,0 +1,79 @@
+# 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/growpart b/app-emulation/cloud-init/files/growpart
new file mode 100755
index 00000000000..4b67d8b9082
--- /dev/null
+++ b/app-emulation/cloud-init/files/growpart
@@ -0,0 +1,778 @@
+#!/bin/sh
+# Copyright (C) 2011 Canonical Ltd.
+# Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
+#
+# Authors: Scott Moser <smoser@canonical.com>
+# Juerg Haefliger <juerg.haefliger@hp.com>
+#
+# 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, version 3 of the License.
+#
+# 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/>.
+
+# the fudge factor. if within this many bytes dont bother
+FUDGE=${GROWPART_FUDGE:-$((1024*1024))}
+TEMP_D=""
+RESTORE_FUNC=""
+RESTORE_HUMAN=""
+VERBOSITY=0
+DISK=""
+PART=""
+PT_UPDATE=false
+DRY_RUN=0
+
+SFDISK_VERSION=""
+SFDISK_2_26="22600"
+MBR_BACKUP=""
+GPT_BACKUP=""
+_capture=""
+
+error() {
+ echo "$@" 1>&2
+}
+
+fail() {
+ [ $# -eq 0 ] || echo "FAILED:" "$@"
+ exit 2
+}
+
+nochange() {
+ echo "NOCHANGE:" "$@"
+ exit 1
+}
+
+changed() {
+ echo "CHANGED:" "$@"
+ exit 0
+}
+
+change() {
+ echo "CHANGE:" "$@"
+ exit 0
+}
+
+cleanup() {
+ if [ -n "${RESTORE_FUNC}" ]; then
+ error "***** WARNING: Resize failed, attempting to revert ******"
+ if ${RESTORE_FUNC} ; then
+ error "***** Appears to have gone OK ****"
+ else
+ error "***** FAILED! ******"
+ if [ -n "${RESTORE_HUMAN}" -a -f "${RESTORE_HUMAN}" ]; then
+ error "**** original table looked like: ****"
+ cat "${RESTORE_HUMAN}" 1>&2
+ else
+ error "We seem to have not saved the partition table!"
+ fi
+ fi
+ fi
+ [ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
+}
+
+debug() {
+ local level=${1}
+ shift
+ [ "${level}" -gt "${VERBOSITY}" ] && return
+ if [ "${DEBUG_LOG}" ]; then
+ echo "$@" >>"${DEBUG_LOG}"
+ else
+ error "$@"
+ fi
+}
+
+debugcat() {
+ local level="$1"
+ shift;
+ [ "${level}" -gt "$VERBOSITY" ] && return
+ if [ "${DEBUG_LOG}" ]; then
+ cat "$@" >>"${DEBUG_LOG}"
+ else
+ cat "$@" 1>&2
+ fi
+}
+
+mktemp_d() {
+ # just a mktemp -d that doens't need mktemp if its not there.
+ _RET=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX" 2>/dev/null) &&
+ return
+ _RET=$(umask 077 && t="${TMPDIR:-/tmp}/${0##*/}.$$" &&
+ mkdir "${t}" && echo "${t}")
+ return
+}
+
+Usage() {
+ cat <<EOF
+${0##*/} disk partition
+ rewrite partition table so that partition takes up all the space it can
+ options:
+ -h | --help print Usage and exit
+ --fudge F if part could be resized, but change would be
+ less than 'F' bytes, do not resize (default: ${FUDGE})
+ -N | --dry-run only report what would be done, show new 'sfdisk -d'
+ -v | --verbose increase verbosity / debug
+ -u | --update R update the the kernel partition table info after growing
+ this requires kernel support and 'partx --update'
+ R is one of:
+ - 'auto' : [default] update partition if possible
+ - 'force' : try despite sanity checks (fail on failure)
+ - 'off' : do not attempt
+ - 'on' : fail if sanity checks indicate no support
+
+ Example:
+ - ${0##*/} /dev/sda 1
+ Resize partition 1 on /dev/sda
+EOF
+}
+
+bad_Usage() {
+ Usage 1>&2
+ error "$@"
+ exit 2
+}
+
+sfdisk_restore_legacy() {
+ sfdisk --no-reread "${DISK}" -I "${MBR_BACKUP}"
+}
+
+sfdisk_restore() {
+ # files are named: sfdisk-<device>-<offset>.bak
+ local f="" offset="" fails=0
+ for f in "${MBR_BACKUP}"*.bak; do
+ [ -f "$f" ] || continue
+ offset=${f##*-}
+ offset=${offset%.bak}
+ [ "$offset" = "$f" ] && {
+ error "WARN: confused by file $f";
+ continue;
+ }
+ dd "if=$f" "of=${DISK}" seek=$(($offset)) bs=1 conv=notrunc ||
+ { error "WARN: failed restore from $f"; fails=$(($fails+1)); }
+ done
+ return $fails
+}
+
+sfdisk_worked_but_blkrrpart_failed() {
+ local ret="$1" output="$2"
+ # exit code found was just 1, but dont insist on that
+ #[ $ret -eq 1 ] || return 1
+ # Successfully wrote the new partition table
+ grep -qi "Success.* wrote.* new.* partition" "$output" &&
+ grep -qi "BLKRRPART: Device or resource busy" "$output"
+ return
+}
+
+get_sfdisk_version() {
+ # set SFDISK_VERSION to MAJOR*10000+MINOR*100+MICRO
+ local out oifs="$IFS" ver=""
+ [ -n "$SFDISK_VERSION" ] && return 0
+ # expected output: sfdisk from util-linux 2.25.2
+ out=$(sfdisk --version) ||
+ { error "failed to get sfdisk version"; return 1; }
+ set -- $out
+ ver=$4
+ case "$ver" in
+ [0-9]*.[0-9]*.[0-9]|[0-9].[0-9]*)
+ IFS="."; set -- $ver; IFS="$oifs"
+ SFDISK_VERSION=$(($1*10000+$2*100+${3:-0}))
+ return 0;;
+ *) error "unexpected output in sfdisk --version [$out]"
+ return 1;;
+ esac
+}
+
+resize_sfdisk() {
+ local humanpt="${TEMP_D}/recovery"
+ local mbr_backup="${TEMP_D}/orig.save"
+ local restore_func=""
+ local format="$1"
+
+ local change_out=${TEMP_D}/change.out
+ local dump_out=${TEMP_D}/dump.out
+ local new_out=${TEMP_D}/new.out
+ local dump_mod=${TEMP_D}/dump.mod
+ local tmp="${TEMP_D}/tmp.out"
+ local err="${TEMP_D}/err.out"
+ local mbr_max_512="4294967296"
+
+ local pt_start pt_size pt_end max_end new_size change_info dpart
+ local sector_num sector_size disk_size tot out
+
+ rqe sfd_list sfdisk --list --unit=S "$DISK" >"$tmp" ||
+ fail "failed: sfdisk --list $DISK"
+ if [ "${SFDISK_VERSION}" -lt ${SFDISK_2_26} ]; then
+ # exected output contains: Units: sectors of 512 bytes, ...
+ out=$(awk '$1 == "Units:" && $5 ~ /bytes/ { print $4 }' "$tmp") ||
+ fail "failed to read sfdisk output"
+ if [ -z "$out" ]; then
+ error "WARN: sector size not found in sfdisk output, assuming 512"
+ sector_size=512
+ else
+ sector_size="$out"
+ fi
+ local _w _cyl _w1 _heads _w2 sectors _w3 t s
+ # show-size is in units of 1024 bytes (same as /proc/partitions)
+ t=$(sfdisk --show-size "${DISK}") ||
+ fail "failed: sfdisk --show-size $DISK"
+ disk_size=$((t*1024))
+ sector_num=$(($disk_size/$sector_size))
+ msg="disk size '$disk_size' not evenly div by sector size '$sector_size'"
+ [ "$((${disk_size}%${sector_size}))" -eq 0 ] ||
+ error "WARN: $msg"
+ restore_func=sfdisk_restore_legacy
+ else
+ # --list first line output:
+ # Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
+ local _x
+ read _x _x _x _x disk_size _x sector_num _x < "$tmp"
+ sector_size=$((disk_size/$sector_num))
+ restore_func=sfdisk_restore
+ fi
+
+ debug 1 "$sector_num sectors of $sector_size. total size=${disk_size} bytes"
+ [ $(($disk_size/512)) -gt $mbr_max_512 ] &&
+ debug 1 "WARN: disk is larger than 2TB. additional space will go unused."
+
+ rqe sfd_dump sfdisk --unit=S --dump "${DISK}" >"${dump_out}" ||
+ fail "failed to dump sfdisk info for ${DISK}"
+ RESTORE_HUMAN="$dump_out"
+
+ {
+ echo "## sfdisk --unit=S --dump ${DISK}"
+ cat "${dump_out}"
+ } >"$humanpt"
+
+ [ $? -eq 0 ] || fail "failed to save sfdisk -d output"
+ RESTORE_HUMAN="$humanpt"
+
+ debugcat 1 "$humanpt"
+
+ sed -e 's/,//g; s/start=/start /; s/size=/size /' "${dump_out}" \
+ >"${dump_mod}" ||
+ fail "sed failed on dump output"
+
+ dpart="${DISK}${PART}" # disk and partition number
+ if [ -b "${DISK}p${PART}" -a "${DISK%[0-9]}" != "${DISK}" ]; then
+ # for block devices that end in a number (/dev/nbd0)
+ # the partition is "<name>p<partition_number>" (/dev/nbd0p1)
+ dpart="${DISK}p${PART}"
+ elif [ "${DISK#/dev/loop[0-9]}" != "${DISK}" ]; then
+ # for /dev/loop devices, sfdisk output will be <name>p<number>
+ # format also, even though there is not a device there.
+ dpart="${DISK}p${PART}"
+ fi
+
+ pt_start=$(awk '$1 == pt { print $4 }' "pt=${dpart}" <"${dump_mod}") &&
+ pt_size=$(awk '$1 == pt { print $6 }' "pt=${dpart}" <"${dump_mod}") &&
+ [ -n "${pt_start}" -a -n "${pt_size}" ] &&
+ pt_end=$((${pt_size}+${pt_start})) ||
+ fail "failed to get start and end for ${dpart} in ${DISK}"
+
+ # find the minimal starting location that is >= pt_end
+ max_end=$(awk '$3 == "start" { if($4 >= pt_end && $4 < min)
+ { min = $4 } } END { printf("%s\n",min); }' \
+ min=${sector_num} pt_end=${pt_end} "${dump_mod}") &&
+ [ -n "${max_end}" ] ||
+ fail "failed to get max_end for partition ${PART}"
+
+ mbr_max_sectors=$((mbr_max_512*$((sector_size/512))))
+ if [ "$max_end" -gt "$mbr_max_sectors" ]; then
+ max_end=$mbr_max_sectors
+ fi
+
+ if [ "$format" = "gpt" ]; then
+ # sfdisk respects 'last-lba' in input, and complains about
+ # partitions that go past that. without it, it does the right thing.
+ sed -i '/^last-lba:/d' "$dump_out" ||
+ fail "failed to remove last-lba from output"
+ fi
+
+ local gpt_second_size="33"
+ if [ "${max_end}" -gt "$((${sector_num}-${gpt_second_size}))" ]; then
+ # if mbr allow subsequent conversion to gpt without shrinking the
+ # partition. safety net at cost of 33 sectors, seems reasonable.
+ # if gpt, we can't write there anyway.
+ debug 1 "padding ${gpt_second_size} sectors for gpt secondary header"
+ max_end=$((${sector_num}-${gpt_second_size}))
+ fi
+
+ debug 1 "max_end=${max_end} tot=${sector_num} pt_end=${pt_end}" \
+ "pt_start=${pt_start} pt_size=${pt_size}"
+ [ $((${pt_end})) -eq ${max_end} ] &&
+ nochange "partition ${PART} is size ${pt_size}. it cannot be grown"
+ [ $((${pt_end}+(${FUDGE}/$sector_size))) -gt ${max_end} ] &&
+ nochange "partition ${PART} could only be grown by" \
+ "$((${max_end}-${pt_end})) [fudge=$((${FUDGE}/$sector_size))]"
+
+ # now, change the size for this partition in ${dump_out} to be the
+ # new size
+ new_size=$((${max_end}-${pt_start}))
+ sed "\|^\s*${dpart} |s/${pt_size},/${new_size},/" "${dump_out}" \
+ >"${new_out}" ||
+ fail "failed to change size in output"
+
+ change_info="partition=${PART} start=${pt_start} old: size=${pt_size} end=${pt_end} new: size=${new_size},end=${max_end}"
+ if [ ${DRY_RUN} -ne 0 ]; then
+ echo "CHANGE: ${change_info}"
+ {
+ echo "# === old sfdisk -d ==="
+ cat "${dump_out}"
+ echo "# === new sfdisk -d ==="
+ cat "${new_out}"
+ } 1>&2
+ exit 0
+ fi
+
+ MBR_BACKUP="${mbr_backup}"
+ LANG=C sfdisk --no-reread "${DISK}" --force \
+ -O "${mbr_backup}" <"${new_out}" >"${change_out}" 2>&1
+ ret=$?
+ [ $ret -eq 0 ] || RESTORE_FUNC="${restore_func}"
+
+ if [ $ret -eq 0 ]; then
+ :
+ elif $PT_UPDATE &&
+ sfdisk_worked_but_blkrrpart_failed "$ret" "${change_out}"; then
+ # if the command failed, but it looks like only because
+ # the device was busy and we have pt_update, then go on
+ debug 1 "sfdisk failed, but likely only because of blkrrpart"
+ else
+ error "attempt to resize ${DISK} failed. sfdisk output below:"
+ sed 's,^,| ,' "${change_out}" 1>&2
+ fail "failed to resize"
+ fi
+
+ rq pt_update pt_update "$DISK" "$PART" ||
+ fail "pt_resize failed"
+
+ RESTORE_FUNC=""
+
+ changed "${change_info}"
+
+ # dump_out looks something like:
+ ## partition table of /tmp/out.img
+ #unit: sectors
+ #
+ #/tmp/out.img1 : start= 1, size= 48194, Id=83
+ #/tmp/out.img2 : start= 48195, size= 963900, Id=83
+ #/tmp/out.img3 : start= 1012095, size= 305235, Id=82
+ #/tmp/out.img4 : start= 1317330, size= 771120, Id= 5
+ #/tmp/out.img5 : start= 1317331, size= 642599, Id=83
+ #/tmp/out.img6 : start= 1959931, size= 48194, Id=83
+ #/tmp/out.img7 : start= 2008126, size= 80324, Id=83
+}
+
+gpt_restore() {
+ sgdisk -l "${GPT_BACKUP}" "${DISK}"
+}
+
+resize_sgdisk() {
+ GPT_BACKUP="${TEMP_D}/pt.backup"
+
+ local pt_info="${TEMP_D}/pt.info"
+ local pt_pretend="${TEMP_D}/pt.pretend"
+ local pt_data="${TEMP_D}/pt.data"
+ local out="${TEMP_D}/out"
+
+ local dev="disk=${DISK} partition=${PART}"
+
+ local pt_start pt_end pt_size last pt_max code guid name new_size
+ local old new change_info sector_size
+
+ # Dump the original partition information and details to disk. This is
+ # used in case something goes wrong and human interaction is required
+ # to revert any changes.
+ rqe sgd_info sgdisk "--info=${PART}" --print "${DISK}" >"${pt_info}" ||
+ fail "${dev}: failed to dump original sgdisk info"
+ RESTORE_HUMAN="${pt_info}"
+
+ sector_size=$(awk '$0 ~ /^Logical sector size:.*bytes/ { print $4 }' \
+ "$pt_info") && [ -n "$sector_size" ] || {
+ sector_size=512
+ error "WARN: did not find sector size, assuming 512"
+ }
+
+ debug 1 "$dev: original sgdisk info:"
+ debugcat 1 "${pt_info}"
+
+ # Pretend to move the backup GPT header to the end of the disk and dump
+ # the resulting partition information. We use this info to determine if
+ # we have to resize the partition.
+ rqe sgd_pretend sgdisk --pretend --move-second-header \
+ --print "${DISK}" >"${pt_pretend}" ||
+ fail "${dev}: failed to dump pretend sgdisk info"
+
+ debug 1 "$dev: pretend sgdisk info"
+ debugcat 1 "${pt_pretend}"
+
+ # Extract the partition data from the pretend dump
+ awk 'found { print } ; $1 == "Number" { found = 1 }' \
+ "${pt_pretend}" >"${pt_data}" ||
+ fail "${dev}: failed to parse pretend sgdisk info"
+
+ # Get the start and end sectors of the partition to be grown
+ pt_start=$(awk '$1 == '"${PART}"' { print $2 }' "${pt_data}") &&
+ [ -n "${pt_start}" ] ||
+ fail "${dev}: failed to get start sector"
+ pt_end=$(awk '$1 == '"${PART}"' { print $3 }' "${pt_data}") &&
+ [ -n "${pt_end}" ] ||
+ fail "${dev}: failed to get end sector"
+ pt_size="$((${pt_end} - ${pt_start}))"
+
+ # Get the last usable sector
+ last=$(awk '/last usable sector is/ { print $NF }' \
+ "${pt_pretend}") && [ -n "${last}" ] ||
+ fail "${dev}: failed to get last usable sector"
+
+ # Find the minimal start sector that is >= pt_end
+ pt_max=$(awk '{ if ($2 >= pt_end && $2 < min) { min = $2 } } END \
+ { print min }' min="${last}" pt_end="${pt_end}" \
+ "${pt_data}") && [ -n "${pt_max}" ] ||
+ fail "${dev}: failed to find max end sector"
+
+ debug 1 "${dev}: pt_start=${pt_start} pt_end=${pt_end}" \
+ "pt_size=${pt_size} pt_max=${pt_max} last=${last}"
+
+ # Check if the partition can be grown
+ [ "${pt_end}" -eq "${pt_max}" ] &&
+ nochange "${dev}: size=${pt_size}, it cannot be grown"
+ [ "$((${pt_end} + ${FUDGE}/${sector_size}))" -gt "${pt_max}" ] &&
+ nochange "${dev}: could only be grown by" \
+ "$((${pt_max} - ${pt_end})) [fudge=$((${FUDGE}/$sector_size))]"
+
+ # The partition can be grown if we made it here. Get some more info
+ # about it so we can do it properly.
+ # FIXME: Do we care about the attribute flags?
+ code=$(awk '/^Partition GUID code:/ { print $4 }' "${pt_info}")
+ guid=$(awk '/^Partition unique GUID:/ { print $4 }' "${pt_info}")
+ name=$(awk '/^Partition name:/ { gsub(/'"'"'/, "") ; \
+ if (NF >= 3) print substr($0, index($0, $3)) }' "${pt_info}")
+ [ -n "${code}" -a -n "${guid}" ] ||
+ fail "${dev}: failed to parse sgdisk details"
+
+ debug 1 "${dev}: code=${code} guid=${guid} name='${name}'"
+ local wouldrun=""
+ [ "$DRY_RUN" -ne 0 ] && wouldrun="would-run"
+
+ # Calculate the new size of the partition
+ new_size=$((${pt_max} - ${pt_start}))
+ old="old: size=${pt_size},end=${pt_end}"
+ new="new: size=${new_size},end=${pt_max}"
+ change_info="${dev}: start=${pt_start} ${old} ${new}"
+
+ # Backup the current partition table, we're about to modify it
+ rq sgd_backup $wouldrun sgdisk "--backup=${GPT_BACKUP}" "${DISK}" ||
+ fail "${dev}: failed to backup the partition table"
+
+ # Modify the partition table. We do it all in one go (the order is
+ # important!):
+ # - move the GPT backup header to the end of the disk
+ # - delete the partition
+ # - recreate the partition with the new size
+ # - set the partition code
+ # - set the partition GUID
+ # - set the partition name
+ rq sgdisk_mod $wouldrun sgdisk --move-second-header "--delete=${PART}" \
+ "--new=${PART}:${pt_start}:${pt_max}" \
+ "--typecode=${PART}:${code}" \
+ "--partition-guid=${PART}:${guid}" \
+ "--change-name=${PART}:${name}" "${DISK}" &&
+ rq pt_update $wouldrun pt_update "$DISK" "$PART" || {
+ RESTORE_FUNC=gpt_restore
+ fail "${dev}: failed to repartition"
+ }
+
+ # Dry run
+ [ "${DRY_RUN}" -ne 0 ] && change "${change_info}"
+
+ changed "${change_info}"
+}
+
+kver_to_num() {
+ local kver="$1" maj="" min="" mic="0"
+ kver=${kver%%-*}
+ maj=${kver%%.*}
+ min=${kver#${maj}.}
+ min=${min%%.*}
+ mic=${kver#${maj}.${min}.}
+ [ "$kver" = "$mic" ] && mic=0
+ _RET=$(($maj*1000*1000+$min*1000+$mic))
+}
+
+kver_cmp() {
+ local op="$2" n1="" n2=""
+ kver_to_num "$1"
+ n1="$_RET"
+ kver_to_num "$3"
+ n2="$_RET"
+ [ $n1 $op $n2 ]
+}
+
+rq() {
+ # runquieterror(label, command)
+ # gobble stderr of a command unless it errors
+ local label="$1" ret="" efile=""
+ efile="$TEMP_D/$label.err"
+ shift;
+
+ local rlabel="running"
+ [ "$1" = "would-run" ] && rlabel="would-run" && shift
+
+ local cmd="" x=""
+ for x in "$@"; do
+ [ "${x#* }" != "$x" -o "${x#* \"}" != "$x" ] && x="'$x'"
+ cmd="$cmd $x"
+ done
+ cmd=${cmd# }
+
+ debug 2 "$rlabel[$label][$_capture]" "$cmd"
+ [ "$rlabel" = "would-run" ] && return 0
+
+ if [ "${_capture}" = "erronly" ]; then
+ "$@" 2>"$TEMP_D/$label.err"
+ ret=$?
+ else
+ "$@" >"$TEMP_D/$label.err" 2>&1
+ ret=$?
+ fi
+ if [ $ret -ne 0 ]; then
+ error "failed [$label:$ret]" "$@"
+ cat "$efile" 1>&2
+ fi
+ return $ret
+}
+
+rqe() {
+ local _capture="erronly"
+ rq "$@"
+}
+
+verify_ptupdate() {
+ local input="$1" found="" reason="" kver=""
+
+ # we can always satisfy 'off'
+ if [ "$input" = "off" ]; then
+ _RET="false";
+ return 0;
+ fi
+
+ if command -v partx >/dev/null 2>&1; then
+ local out="" ret=0
+ out=$(partx --help 2>&1)
+ ret=$?
+ if [ $ret -eq 0 ]; then
+ echo "$out" | grep -q -- --update || {
+ reason="partx has no '--update' flag in usage."
+ found="off"
+ }
+ else
+ reason="'partx --help' returned $ret. assuming it is old."
+ found="off"
+ fi
+ else
+ reason="no 'partx' command"
+ found="off"
+ fi
+
+ if [ -z "$found" ]; then
+ if [ "$(uname)" != "Linux" ]; then
+ reason="Kernel is not Linux per uname."
+ found="off"
+ fi
+ fi
+
+ if [ -z "$found" ]; then
+ kver=$(uname -r) || debug 1 "uname -r failed!"
+
+ if ! kver_cmp "${kver-0.0.0}" -ge 3.8.0; then
+ reason="Kernel '$kver' < 3.8.0."
+ found="off"
+ fi
+ fi
+
+ if [ -z "$found" ]; then
+ _RET="true"
+ return 0
+ fi
+
+ case "$input" in
+ on) error "$reason"; return 1;;
+ auto)
+ _RET="false";
+ debug 1 "partition update disabled: $reason"
+ return 0;;
+ force)
+ _RET="true"
+ error "WARNING: ptupdate forced on even though: $reason"
+ return 0;;
+ esac
+ error "unknown input '$input'";
+ return 1;
+}
+
+pt_update() {
+ local dev="$1" part="$2" update="${3:-$PT_UPDATE}"
+ if ! $update; then
+ return 0
+ fi
+ # partx only works on block devices (do not run on file)
+ [ -b "$dev" ] || return 0
+ partx --update "$part" "$dev"
+}
+
+has_cmd() {
+ command -v "${1}" >/dev/null 2>&1
+}
+
+resize_sgdisk_gpt() {
+ resize_sgdisk gpt
+}
+
+resize_sgdisk_dos() {
+ fail "unable to resize dos label with sgdisk"
+}
+
+resize_sfdisk_gpt() {
+ resize_sfdisk gpt
+}
+
+resize_sfdisk_dos() {
+ resize_sfdisk dos
+}
+
+get_table_format() {
+ local out="" disk="$1"
+ if has_cmd blkid && out=$(blkid -o value -s PTTYPE "$disk") &&
+ [ "$out" = "dos" -o "$out" = "gpt" ]; then
+ _RET="$out"
+ return
+ fi
+ _RET="dos"
+ if [ ${SFDISK_VERSION} -lt ${SFDISK_2_26} ] &&
+ out=$(sfdisk --id --force "$disk" 1 2>/dev/null); then
+ if [ "$out" = "ee" ]; then
+ _RET="gpt"
+ else
+ _RET="dos"
+ fi
+ return
+ elif out=$(LANG=C sfdisk --list "$disk"); then
+ out=$(echo "$out" | sed -e '/Disklabel type/!d' -e 's/.*: //')
+ case "$out" in
+ gpt|dos) _RET="$out";;
+ *) error "WARN: unknown label $out";;
+ esac
+ fi
+}
+
+get_resizer() {
+ local format="$1" user=${2:-"auto"}
+
+ case "$user" in
+ sgdisk) _RET="resize_sgdisk_$format"; return;;
+ sfdisk) _RET="resize_sfdisk_$format"; return;;
+ auto) :;;
+ *) error "unexpected input: '$user'";;
+ esac
+
+ if [ "$format" = "dos" ]; then
+ _RET="resize_sfdisk_dos"
+ return 0
+ fi
+
+ if [ "${SFDISK_VERSION}" -ge ${SFDISK_2_26} ]; then
+ _RET="resize_sfdisk_gpt"
+ elif has_cmd sgdisk; then
+ _RET="resize_sgdisk_$format"
+ else
+ error "no tools available to resize disk with '$format'"
+ return 1
+ fi
+ return 0
+}
+
+pt_update="auto"
+resizer=${GROWPART_RESIZER:-"auto"}
+while [ $# -ne 0 ]; do
+ cur=${1}
+ next=${2}
+ case "$cur" in
+ -h|--help)
+ Usage
+ exit 0
+ ;;
+ --fudge)
+ FUDGE=${next}
+ shift
+ ;;
+ -N|--dry-run)
+ DRY_RUN=1
+ ;;
+ -u|--update|--update=*)
+ if [ "${cur#--update=}" != "$cur" ]; then
+ next="${cur#--update=}"
+ else
+ shift
+ fi
+ case "$next" in
+ off|auto|force|on) pt_update=$next;;
+ *) fail "unknown --update option: $next";;
+ esac
+ ;;
+ -v|--verbose)
+ VERBOSITY=$(($VERBOSITY+1))
+ ;;
+ --)
+ shift
+ break
+ ;;
+ -*)
+ fail "unknown option ${cur}"
+ ;;
+ *)
+ if [ -z "${DISK}" ]; then
+ DISK=${cur}
+ else
+ [ -z "${PART}" ] || fail "confused by arg ${cur}"
+ PART=${cur}
+ fi
+ ;;
+ esac
+ shift
+done
+
+[ -n "${DISK}" ] || bad_Usage "must supply disk and partition-number"
+[ -n "${PART}" ] || bad_Usage "must supply partition-number"
+
+has_cmd "sfdisk" || fail "sfdisk not found"
+get_sfdisk_version || fail
+
+[ -e "${DISK}" ] || fail "${DISK}: does not exist"
+
+[ "${PART#*[!0-9]}" = "${PART}" ] || fail "partition-number must be a number"
+
+verify_ptupdate "$pt_update" || fail
+PT_UPDATE=$_RET
+
+debug 1 "update-partition set to $PT_UPDATE"
+
+mktemp_d && TEMP_D="${_RET}" || fail "failed to make temp dir"
+trap cleanup 0 # EXIT - some shells may not like 'EXIT' but are ok with 0
+
+# get the ID of the first partition to determine if it's MBR or GPT
+get_table_format "$DISK" || fail
+format=$_RET
+get_resizer "$format" "$resizer" ||
+ fail "failed to get a resizer for id '$id'"
+resizer=$_RET
+
+debug 1 "resizing $PART on $DISK using $resizer"
+"$resizer"
+
+# vi: ts=4 noexpandtab
diff --git a/app-emulation/cloud-init/files/hosts.gentoo.tmpl b/app-emulation/cloud-init/files/hosts.gentoo.tmpl
new file mode 100644
index 00000000000..bc0bca47c5c
--- /dev/null
+++ b/app-emulation/cloud-init/files/hosts.gentoo.tmpl
@@ -0,0 +1,23 @@
+## 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
new file mode 100644
index 00000000000..1c248771204
--- /dev/null
+++ b/app-emulation/cloud-init/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ Package provides configuration and customization of cloud instance.
+ </longdescription>
+ <upstream>
+ <remote-id type="launchpad">cloud-init</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/coldfire/Manifest b/app-emulation/coldfire/Manifest
new file mode 100644
index 00000000000..f964aacf4b8
--- /dev/null
+++ b/app-emulation/coldfire/Manifest
@@ -0,0 +1 @@
+DIST coldfire-0.3.1.tar.gz 142964 SHA256 033e2da700aa6fb528c005d963ee537f54d19b1763204c270fae839a6d60cba3 SHA512 e9ac6fcd4a9a8cf0998a658c786f91f6d97dbe03cd32fdc7047c87baa14d412a45dfdd233f68e3136e8d0f36c4d6dd556e5df6e8a0645f82d4abf88fa574ff7b WHIRLPOOL c1aeb6c17d90632d816a423d4b34d5b3c29ca8879db271a1bdd7682e2f19fdefa3684a0ca0d2b1ba5ed88dbc07753a2816500006600e0e32f0389233ff7e243d
diff --git a/app-emulation/coldfire/coldfire-0.3.1.ebuild b/app-emulation/coldfire/coldfire-0.3.1.ebuild
new file mode 100644
index 00000000000..620a3ef5a76
--- /dev/null
+++ b/app-emulation/coldfire/coldfire-0.3.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils
+
+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"
+IUSE=""
+
+DEPEND="sys-libs/ncurses
+ sys-libs/readline"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+ epatch "${FILESDIR}"/${P}-headers.patch
+}
+
+src_install() {
+ dodir /usr/bin
+ einstall || die
+ dodoc CONTRIBUTORS HACKING README
+}
diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-build.patch b/app-emulation/coldfire/files/coldfire-0.3.1-build.patch
new file mode 100644
index 00000000000..2b54dd4a16f
--- /dev/null
+++ b/app-emulation/coldfire/files/coldfire-0.3.1-build.patch
@@ -0,0 +1,32 @@
+respect env build settings
+
+--- a/Makefile.rules.in
++++ b/Makefile.rules.in
+@@ -1,9 +1,9 @@
+ CC = @CC@
+-CFLAGS = -Wall -fomit-frame-pointer @CFLAGS@ -I$(TOPSRCDIR)
++CFLAGS = -Wall @CPPFLAGS@ @CFLAGS@ -I$(TOPSRCDIR)
+ LIBS = @LIBS@
+ LD_R = ld -r
+ RM = rm -f
+-LDFLAGS =
++LDFLAGS = @LDFLAGS@
+
+
+ prefix = @prefix@
+
+fix parallel build problems ... objs need generated tracer, and coldfire
+needs subdir objs
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -22,7 +22,8 @@
+ #Force version to be made before subdirectories
+ subdirs-all: version.h
+
+-coldfire: $(OBJS) force
++$(OBJS): | subdirs-all
++coldfire: $(OBJS) force | subdirs-all
+ $(CC) $(LDFLAGS) $(OBJS) $(SUBDIR_OBJS) -o $@ $(LIBS)
+
+
diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-headers.patch b/app-emulation/coldfire/files/coldfire-0.3.1-headers.patch
new file mode 100644
index 00000000000..706b1a2b12c
--- /dev/null
+++ b/app-emulation/coldfire/files/coldfire-0.3.1-headers.patch
@@ -0,0 +1,16 @@
+make sure we have access to HAVE_* defines to include header files:
+
+run.c: In function ‘sigint’:
+run.c:51:2: warning: implicit declaration of function ‘readline’
+run.c:51:8: warning: cast to pointer from integer of different size
+
+--- a/run.c
++++ b/run.c
+@@ -7,6 +7,7 @@
+ /**********************************/
+
+
++#include "config.h"
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/app-emulation/coldfire/metadata.xml b/app-emulation/coldfire/metadata.xml
new file mode 100644
index 00000000000..92114080841
--- /dev/null
+++ b/app-emulation/coldfire/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>dev-embedded</herd>
+</pkgmetadata>
diff --git a/app-emulation/crossover-bin/Manifest b/app-emulation/crossover-bin/Manifest
new file mode 100644
index 00000000000..7e9b29dbdd9
--- /dev/null
+++ b/app-emulation/crossover-bin/Manifest
@@ -0,0 +1,10 @@
+DIST install-crossover-12.5.0.bin 55089470 SHA256 596ae288059005f26326196b81f705f3fc3ecd2bc872a23f9a86e75dfd8908da SHA512 85dbf37b76dd63ba761f6f8efc8c294f38bdb2a443fbed7a7f7f37652b377046f7bd27588600fc456e7fa8040d06a1673475bfc6a7b7a110a16a678efcc5c764 WHIRLPOOL 1d99ebad15e76bac0fb3174fdae2e09eb6b407e27b60c2562d2dc692f02d53f72c06398f68d7f0453b60adcd6789f62f2437e44eeb46f8c33ed92ba78c74e5f8
+DIST install-crossover-12.5.1.bin 56658131 SHA256 7ef5bbb092467fefa1e59cb5b0e1c8794a2511cebfc0c4665e8a7fe721140a4f SHA512 0f71a06f3a028698c4b076b205d807e193282c10c7cfb8e62e4697e9b3bd7549947c02c15f82d959d6963630677e6c72a5f8468d35d66ccb3ff6814ed2173c72 WHIRLPOOL 3386a231faa9af53b0dba7c2064bea436518afcc44c5b76c07ce1b5b61fe4a74a5bb8b16f92da97be79548851a3f08b1ed5739d6071a60f45f0382eed7ffe85e
+DIST install-crossover-13.0.0.bin 58807581 SHA256 e41cd80d38281d1c42a9a8ecb16249977887a13145d5fa3da883ce5f6f24c5c7 SHA512 fcf5dde6da1f2fb1eb402bd588baab5e951f8a0ad7959b06a4b7a42f250beb74f9c8d95f26f6fcd4ced9ce0bc4b484ad9a045a485f82028bf8ab7f2abf7ace33 WHIRLPOOL 57cd742cba31e57fb97f1a53e6c6c4e481f1a11b9e061f933995198053c80bd3828b0c6ee39ab152768cf603c1ab4c7125bc076ecfade651d063c1d97407464a
+DIST install-crossover-13.0.1.bin 58567182 SHA256 1e9ca276b7e99096476d1dd0fb37803d8dafcc6c9fa4e96c32e8cbf34c747eae SHA512 e43e3e92d4ac36546fafdf68d61b4fd5af412f83e301b232230589247ed052cb958f0d4eb7667fd616797b8f8c3b4f7acbfa7a9f1206204c5a98e456113a380b WHIRLPOOL 4c76e80a39f834979b9e0e885f10fd740805a23f93f5745dbdb53ecefb748d57b75e57460a9bbfab656329c77a2c61c356e75054438c0f7cce77dc9a77648f33
+DIST install-crossover-13.1.0.bin 58678679 SHA256 76e4345c6b9c436b7f02ab39b15b5f3d105838c3bf5194b34484dafe748cca48 SHA512 1f2b5625c826bbf16231e1b3ea8694bcda24cf3a7a90347a29b9d97f654ce35df26aff2b8166e8c517e85785d4ea2b5fbdf1bcb82263fa0e8715846fd1668d15 WHIRLPOOL c665ce05fae8aeacb637bf8ab4d3b5fb8d681f2e3d65f1d13c8ceab91708290f32e1742a81ea0dc5d90064c67016e30f2a5497cbfc7d4be8ec55d498de9dad7d
+DIST install-crossover-13.1.2.bin 58730543 SHA256 005a0ed9e102c54c3b204491406bfad889603c59ef5be1ec1b5a3f68a1f6bba2 SHA512 5944db06162a67f68fa4a1ab14f7fbc41f114c63adebecf4c0c50967245f81bb42e58dbe66d33fbfaaeae232aacb2b534fc4367d592eaa6f1cc75e32ec0d23b3 WHIRLPOOL e26a0f3a59d3d06b6001f2672d511d0917afa576b4cf9f781a3c7eaffb2e7fb479cdcaeae98fa0d38873bf749bbe33b6695f1dd3496f4087691332b569e484ef
+DIST install-crossover-13.1.3.bin 58768110 SHA256 3d16dbecec584a1d6155ddda6f62a5824980cddc25f5910c2c733de06a716b04 SHA512 091a70e777f8311f818d227f26850f256d6acc7f50c93855f72857f2e21298524262d490fcc8a97342faea1a261ab042b0064d112aacb6c30e9ab5301f89eabe WHIRLPOOL aaffeb604d929b3b4611707cb7878a961c8a2f17baafc4f58dc293d3b29e5485246847327dcf441353ff3feeed76fd7c2f34a516ebeafb2fedee3567d8cdb485
+DIST install-crossover-13.2.0.bin 64625581 SHA256 ef29ca8ca275e4fb6b33337aadc2d3ee92b4dc7d582fab7d5cff5c775d23c75d SHA512 1f582eeca8db02c15d98d519b2d24f65b8dcddd90ff270915a4e6dbd24e135b074c5a20dd824c3d8c8f35cef79610c02423b5558db205a6e80630f69191e051b WHIRLPOOL f8ce0628d961a567291981a238f03da6f5f7554d4d971a8b27fc34b67969a7061032b84325df1a8e38313415dcda3dab98acd6833b396e4f46a65427c9dc8c3e
+DIST install-crossover-14.0.3.bin 68080015 SHA256 23f67221e4047b50f3250b29fae51086cce93529956d3885d149d5abddcc83a2 SHA512 86855e112f5b5d7621e0d4c644abe570de0270e678dc9666482025c948733de02c66fcf67999079a8ba99537695b36d4fb61aee90a59c319edad5fb477a0f902 WHIRLPOOL a0f26d06d2bb81063bcf78a474b9bf4732e9314fd886f430c1141bfce26ae09c297ff79087e5834474d87aa772a1f08a44791d24a3a83ff2baf24969885fe9b8
+DIST install-crossover-14.1.4.bin 68463678 SHA256 9e51823fca911916755b1edca8673c69df4c6f3607b170d9b01e9d9143b4d4c7 SHA512 2078d9e8fc10c526085aef0bfa0cedbcc1a96ec59ade934ea10e7f10062f1a58f5647e9aed59653d4a1253699a08e9ef6f01548010e960af24d0d3546549fb91 WHIRLPOOL a9714f15de43acb2ab6fed91bb35ffdec832dc8fef0b9f75ed394ca18af8552b797b795fdc5bc108c7cf27ca432f932b1f4fe6b4d04d4d52dfaa06bfef083aca
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
new file mode 100644
index 00000000000..e98a2dcf65f
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-12.5.0-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-12.5.1-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.0.0-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.0.1-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.1.0-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.1.2-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.1.3-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4cdba485060
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-13.2.0-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..4738fdc6971
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-14.0.3-r1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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
new file mode 100644
index 00000000000..67924d072c6
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-14.1.4-r1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://www.codeweavers.com/products/crossover/"
+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"
+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-dialup/capi4k-utils )
+ 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/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} in ${DISTDIR}"
+}
+
+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 /opt/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/metadata.xml b/app-emulation/crossover-bin/metadata.xml
new file mode 100644
index 00000000000..76a1d1fff70
--- /dev/null
+++ b/app-emulation/crossover-bin/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <use>
+ <flag name='capi'>Enable ISDN support via CAPI</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-emulation/crossover-office-bin/Manifest b/app-emulation/crossover-office-bin/Manifest
new file mode 100644
index 00000000000..7e57261a8a0
--- /dev/null
+++ b/app-emulation/crossover-office-bin/Manifest
@@ -0,0 +1,4 @@
+DIST install-crossover-standard-6.0.0.sh 20086564 SHA256 0b49f6a0fe866078ccd10fee476836a4eea99904c6b9827e3c47e12b613d1342
+DIST install-crossover-standard-6.0.1.sh 20097976 SHA256 cc77a25d46f09b357b7d0ecb86c6749db052bc91622d291a18732aa3803894e2
+DIST install-crossover-standard-6.1.0.sh 24481498 SHA256 d36938d7a53767e6169eb05565f8a3ae8313f3ceee6a5912c6497f39ca08afbf
+DIST install-crossover-standard-6.2.0.sh 23632049 SHA256 5ddd35d5271b49ec43ed128e9efd122c1792e1718e6e4024aa263ae0212c4320
diff --git a/app-emulation/crossover-office-bin/crossover-office-bin-6.0.0.ebuild b/app-emulation/crossover-office-bin/crossover-office-bin-6.0.0.ebuild
new file mode 100644
index 00000000000..f5d4461d96f
--- /dev/null
+++ b/app-emulation/crossover-office-bin/crossover-office-bin-6.0.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-standard-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ einfo "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ einfo "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-bin/crossover-office-bin-6.0.1.ebuild b/app-emulation/crossover-office-bin/crossover-office-bin-6.0.1.ebuild
new file mode 100644
index 00000000000..f5d4461d96f
--- /dev/null
+++ b/app-emulation/crossover-office-bin/crossover-office-bin-6.0.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-standard-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ einfo "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ einfo "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-bin/crossover-office-bin-6.1.0.ebuild b/app-emulation/crossover-office-bin/crossover-office-bin-6.1.0.ebuild
new file mode 100644
index 00000000000..f5d4461d96f
--- /dev/null
+++ b/app-emulation/crossover-office-bin/crossover-office-bin-6.1.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-standard-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ einfo "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ einfo "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-bin/crossover-office-bin-6.2.0.ebuild b/app-emulation/crossover-office-bin/crossover-office-bin-6.2.0.ebuild
new file mode 100644
index 00000000000..d2b805e162b
--- /dev/null
+++ b/app-emulation/crossover-office-bin/crossover-office-bin-6.2.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-standard-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ elog "Please visit ${HOMEPAGE}"
+ elog "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ einfo "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ einfo "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-bin/metadata.xml b/app-emulation/crossover-office-bin/metadata.xml
new file mode 100644
index 00000000000..27f54c99739
--- /dev/null
+++ b/app-emulation/crossover-office-bin/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>wine</herd>
+</pkgmetadata>
diff --git a/app-emulation/crossover-office-pro-bin/Manifest b/app-emulation/crossover-office-pro-bin/Manifest
new file mode 100644
index 00000000000..c87ad99e346
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/Manifest
@@ -0,0 +1,13 @@
+DIST install-crossover-pro-5.0.0.sh 15957213 SHA256 aa4575bf989eee9ecb3fa4f150913cb46c8bf7e32322f8c874310fff82ffb72c
+DIST install-crossover-pro-5.0.1.sh 16177282 SHA256 b92683c0e20008a67f2b79ea83bae01141cce22966ebbf291058eecdf941ddd6
+DIST install-crossover-pro-5.0.3.sh 17299111 SHA256 d171b87cb5c1aaa775e8abbb303fa7acc572f1b0911bbd89d1852e823fc9f133
+DIST install-crossover-pro-6.0.0.sh 20265211 SHA256 77055a7bc168b05efff9c1d6bfce9f450b43f00ea0e74f9f8a4514cfa00379c3
+DIST install-crossover-pro-6.1.0.sh 24811441 SHA256 9a71320ed778ab57e05f9e9412774e96910573f6e8a5edfe8d8cf2eb7805b200
+DIST install-crossover-pro-6.2.0.sh 23806779 SHA256 d6bcd30430bbf01b72780e6be13900e8cb5a80fd2850e230262db349d6ae58f2
+DIST install-crossover-pro-7.0.2.sh 25607860 SHA256 c307b237b6d57fea1e940c5c840f44ed0fc34357ae9f417e7127abc20d51314b
+DIST install-crossover-pro-7.1.0.sh 26190866 SHA256 8844a09493a9d987fd96d7c6cc17c3e3ca5b910fc61162c1d3e40beef8ef3b14
+DIST install-crossover-pro-8.0.0.sh 29587007 SHA256 f440337441715c723cd29a52f3156da86df622d19d81b5bd163b786696f9248f
+DIST install-crossover-pro-9.0.0.sh 30375251 SHA256 14b46ba4c386dbacb38abf24871576a22450b63f96e236338386f4f7bf65b71f
+DIST install-crossover-pro-9.0.1.sh 30381453 SHA256 8154e04dfdc10ebba3fe849ccf7f0c9b1508bf7d8612ac99ef3b1ac28ea13cb7
+DIST install-crossover-pro-9.1.0.sh 32846417 SHA256 a53bc1f0e188b3769f0e398450d62034b7d775e53e359be6f791dc02138d1b03
+DIST install-crossover-pro-9.2.0.sh 33017777 SHA256 ac027670a56f64b607c9047583d1e26c2e6808dd79d78fd41750651294eaf321
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.0.ebuild
new file mode 100644
index 00000000000..f087c1be71a
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.1.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.1.ebuild
new file mode 100644
index 00000000000..cfa7703bca7
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.3.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.3.ebuild
new file mode 100644
index 00000000000..cfa7703bca7
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-5.0.3.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins support/templates/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.0.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.0.0.ebuild
new file mode 100644
index 00000000000..e4fd6bc041b
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.0.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.1.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.1.0.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.1.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.2.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.2.0.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-6.2.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.0.2.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.0.2.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.0.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.1.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.1.0.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-7.1.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-8.0.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-8.0.0.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-8.0.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.0.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.1.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.1.ebuild
new file mode 100644
index 00000000000..986d281d61e
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.0.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.1.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.1.0.ebuild
new file mode 100644
index 00000000000..3d322815330
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.1.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ || ( virtual/jpeg:62[abi_x86_32(-)] media-libs/jpeg:62[abi_x86_32(-)] )
+ media-libs/libpng:1.2[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.2.0.ebuild b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.2.0.ebuild
new file mode 100644
index 00000000000..3d322815330
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/crossover-office-pro-bin-9.2.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit unpacker
+
+DESCRIPTION="simplified/streamlined version of wine with commercial support"
+HOMEPAGE="http://www.codeweavers.com/products/cxoffice/"
+SRC_URI="install-crossover-pro-${PV}.sh"
+
+LICENSE="CROSSOVER"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="nas"
+RESTRICT="bindist fetch strip"
+
+RDEPEND="
+ dev-util/desktop-file-utils
+ sys-libs/glibc
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXmu[abi_x86_32(-)]
+ x11-libs/libXxf86dga[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ || ( virtual/jpeg:62[abi_x86_32(-)] media-libs/jpeg:62[abi_x86_32(-)] )
+ media-libs/libpng:1.2[abi_x86_32(-)]
+ nas? ( media-libs/nas[abi_x86_32(-)] )
+"
+DEPEND=""
+
+S=${WORKDIR}
+
+pkg_nofetch() {
+ einfo "Please visit ${HOMEPAGE}"
+ einfo "and place ${A} in ${DISTDIR}"
+}
+
+src_unpack() {
+ unpack_makeself # needed due to .sh extension; #415013
+}
+
+src_install() {
+ dodir /opt/cxoffice
+ cp -r * "${D}"/opt/cxoffice || die "cp failed"
+ rm -r "${D}"/opt/cxoffice/setup.{sh,data}
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+}
+
+pkg_postinst() {
+ elog "Run /opt/cxoffice/bin/cxsetup as normal user to create"
+ elog "bottles and install Windows applications."
+}
diff --git a/app-emulation/crossover-office-pro-bin/metadata.xml b/app-emulation/crossover-office-pro-bin/metadata.xml
new file mode 100644
index 00000000000..27f54c99739
--- /dev/null
+++ b/app-emulation/crossover-office-pro-bin/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>wine</herd>
+</pkgmetadata>
diff --git a/app-emulation/dinero/Manifest b/app-emulation/dinero/Manifest
new file mode 100644
index 00000000000..401ddd5a6f1
--- /dev/null
+++ b/app-emulation/dinero/Manifest
@@ -0,0 +1 @@
+DIST d4-7.tar.gz 295814 SHA256 7b651823c8feb2ee7617be5591df15f9c99265b880e4a99c98c33f5d8b47a837 SHA512 20a6232c732e42a7b37061cb75b3b97fe839824d066a6b3295d1fe8aa5312913d7fad404e93f5ecfb5690f5e7c7a0e266daee16973f1f165c7f33c5095c90f14 WHIRLPOOL fae59e5c83d6373e123b4da2433cddf48ca5b6bf0a37581957aabf59ed78c37a5164189e2f606641cedb55c67f9d03e7f9386eb7cd87da1a455144d8aca33e86
diff --git a/app-emulation/dinero/dinero-4.7-r1.ebuild b/app-emulation/dinero/dinero-4.7-r1.ebuild
new file mode 100644
index 00000000000..dde85fcfdd5
--- /dev/null
+++ b/app-emulation/dinero/dinero-4.7-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit autotools toolchain-funcs
+
+MY_P="d${PV/./-}"
+S="${WORKDIR}/${MY_P}"
+DESCRIPTION="Cache simulator"
+HOMEPAGE="http://www.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() {
+ sed -e "s/\$(CC)/& \$(LDFLAGS)/" \
+ -i Makefile.in || die #331837
+ eautoreconf
+ tc-export AR
+}
+
+src_install() {
+ dobin dineroIV
+ dodoc CHANGES COPYRIGHT NOTES README TODO
+}
diff --git a/app-emulation/dinero/metadata.xml b/app-emulation/dinero/metadata.xml
new file mode 100644
index 00000000000..d9cd2cad66c
--- /dev/null
+++ b/app-emulation/dinero/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>maintainer-needed@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/app-emulation/dlx/Manifest b/app-emulation/dlx/Manifest
new file mode 100644
index 00000000000..e7401063461
--- /dev/null
+++ b/app-emulation/dlx/Manifest
@@ -0,0 +1 @@
+DIST dlx.tar.gz 112589 SHA256 34d102fd72b7bfebf846fe20f7529d603fa6e47911267f46fba27741f8f94a8f SHA512 99297f14f6716ada7a29b204723a0c951002529362a22f695b3647517462f43af563ea55467985dda3e21d79a14d46b84dbc9b22a8c0751fba49257e30f70a7f WHIRLPOOL 2f7f44abb08b9a0c0549d4e921ed9196e0cf81e5fc759778205e08d537cb526eedc96deeb2dfa72449946a71712ef83c4fd0e9cbe7a9ddeccb25bcf29cdf6ace
diff --git a/app-emulation/dlx/dlx-1.0.0-r1.ebuild b/app-emulation/dlx/dlx-1.0.0-r1.ebuild
new file mode 100644
index 00000000000..638b2a733fd
--- /dev/null
+++ b/app-emulation/dlx/dlx-1.0.0-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+DESCRIPTION="DLX Simulator"
+HOMEPAGE="http://www.davidviner.com/dlx.php"
+SRC_URI="http://www.davidviner.com/${PN}/${PN}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+S="${WORKDIR}/${PN}"
+
+src_compile() {
+ emake CC="$(tc-getCC)" \
+ LINK="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${LDFLAGS}" \
+ || die "emake failed"
+}
+
+src_install() {
+ dodir /usr/include/dlx /usr/share/dlx/examples
+ dobin masm mon dasm
+ insinto /usr/include/dlx
+ doins *.i auto.a
+ insinto /usr/share/dlx/examples
+ doins *.a hp.m
+ dodoc README.txt MANUAL.TXT
+}
diff --git a/app-emulation/dlx/dlx-1.0.0.ebuild b/app-emulation/dlx/dlx-1.0.0.ebuild
new file mode 100644
index 00000000000..3a5cea4ede5
--- /dev/null
+++ b/app-emulation/dlx/dlx-1.0.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+S=${WORKDIR}/dlx
+DESCRIPTION="DLX Simulator"
+HOMEPAGE="http://www.davidviner.com/dlx.php"
+SRC_URI="http://www.davidviner.com/dlx/dlx.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86 ppc"
+IUSE=""
+DEPEND=""
+
+src_compile() {
+ emake || die
+}
+
+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
new file mode 100644
index 00000000000..59e2b8f78cb
--- /dev/null
+++ b/app-emulation/dlx/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ <name>Default assignee for orphaned packages</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-emulation/docker-compose/Manifest b/app-emulation/docker-compose/Manifest
new file mode 100644
index 00000000000..fe0f61817bd
--- /dev/null
+++ b/app-emulation/docker-compose/Manifest
@@ -0,0 +1 @@
+DIST docker-compose-1.2.0.tar.gz 57150 SHA256 46ef3c5cb7dd79fa7fd1d5fc5ec5be6a5c634192bc09c604c0ea75adb89cb652 SHA512 d13f6d6d22979dbc4554c003e611097627e2273f06dd13a1c666c1ba138288597ebef08f1beaf6d342721391cb49ad5ce9ae2ff03367a041fc0c53fbb62c9ac4 WHIRLPOOL c7bb3e14a4c2788eb49241ce02dcaed5e49fe60652ca1a51d13e1712f946046415f5397d5bf892b5e0451059a4aee1b156ee7bdfdf64a22d000caae7b17254c0
diff --git a/app-emulation/docker-compose/docker-compose-1.2.0-r1.ebuild b/app-emulation/docker-compose/docker-compose-1.2.0-r1.ebuild
new file mode 100644
index 00000000000..45293cc09b1
--- /dev/null
+++ b/app-emulation/docker-compose/docker-compose-1.2.0-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Multi-container orchestration for Docker"
+HOMEPAGE="https://www.docker.com/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+CDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/dockerpty-0.3.2[${PYTHON_USEDEP}]
+ <dev-python/dockerpty-0.4[${PYTHON_USEDEP}]
+ >=dev-python/docker-py-1.0.0[${PYTHON_USEDEP}]
+ <dev-python/docker-py-1.2[${PYTHON_USEDEP}]
+ >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
+ <dev-python/docopt-0.7[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+ <dev-python/pyyaml-4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
+ <dev-python/six-2[${PYTHON_USEDEP}]
+ >=dev-python/texttable-0.8.1[${PYTHON_USEDEP}]
+ <dev-python/texttable-0.9[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]
+ <dev-python/websocket-client-1.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ ${CDEPEND}
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}"/requests-requirements.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests tests/unit || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp contrib/completion/bash/docker-compose ${PN}
+
+ distutils-r1_python_install_all
+}
diff --git a/app-emulation/docker-compose/files/requests-requirements.patch b/app-emulation/docker-compose/files/requests-requirements.patch
new file mode 100644
index 00000000000..a897baf3461
--- /dev/null
+++ b/app-emulation/docker-compose/files/requests-requirements.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 39ac0f6..91d8b5b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -27,7 +27,7 @@ def find_version(*file_paths):
+ install_requires = [
+ 'docopt >= 0.6.1, < 0.7',
+ 'PyYAML >= 3.10, < 4',
+- 'requests >= 2.2.1, < 2.6',
++ 'requests >= 2.2.1',
+ 'texttable >= 0.8.1, < 0.9',
+ 'websocket-client >= 0.11.0, < 1.0',
+ 'docker-py >= 1.0.0, < 1.2',
diff --git a/app-emulation/docker-compose/metadata.xml b/app-emulation/docker-compose/metadata.xml
new file mode 100644
index 00000000000..c78064c4e7a
--- /dev/null
+++ b/app-emulation/docker-compose/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">docker-compose</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/docker/Manifest b/app-emulation/docker/Manifest
new file mode 100644
index 00000000000..3f84dd1c2dd
--- /dev/null
+++ b/app-emulation/docker/Manifest
@@ -0,0 +1,3 @@
+DIST docker-1.6.1.tar.gz 5713944 SHA256 aa3534277d11b32bc3564b801aeed0502f067317e7e111bd91ce2d989d34c51e SHA512 d2647f191fd295c8a9326e11ddbf6e77f33b70f14e3ebd37db3c9fa1f4946e0e3f426078ee847f52d7c57fc7783d26afe3e5d2e7ff17d8e6bb4f71609e8f5ef2 WHIRLPOOL e12c799ef63a0646f7393b00b6c1e200f350f7089445c58819ae5b53d66d18d985cb9f8fde1cd3ecfa55c2f0186064fc7080b7ebba132404aa15502029881602
+DIST docker-1.6.2.tar.gz 5714121 SHA256 f3a031b23ea9ff0fdbf3ffb9449c64ec51bb053491b47b28000eb4cce9f23203 SHA512 c27bdafabcb8ad2e49bee9e1529141a25596ba2b59435fb9368fc406950d0d7d1cbd876f1f4248dfc7089a22b8a2d13009dd164bde87e37b95a8e502bb49cac9 WHIRLPOOL aea4105ba30104d751203153b6208e363ce0abb3145ee134e675c4bc640e888afb281e7ba9009a30b9af37e829185684427a33b947d8710b49562e3352526c06
+DIST docker-1.7.1.tar.gz 6853527 SHA256 9cd26415d68a88d3cf576e7e78c2fe97f42af795404f552728acc5b41dccf4ef SHA512 9b32c3deab77a27a4322a3ccbb3759a2c2a5627605090c4517c3754e6821407abcf5ffa227bad1fdafcbba068cdcaab586015dd8cfe9aed7e8a221d0615463f1 WHIRLPOOL 41b1afd8ea08c3452e5658d73e85c3b79a64f85fb4cb99c4c6a2ce1ab49836cebbe14724afe47898cb8d9bb9d4d69c64ff1c061895f3b9534150bc7ab50e2b22
diff --git a/app-emulation/docker/docker-1.6.1.ebuild b/app-emulation/docker/docker-1.6.1.ebuild
new file mode 100644
index 00000000000..adabf385234
--- /dev/null
+++ b/app-emulation/docker/docker-1.6.1.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="97cd073"
+ KEYWORDS="~amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 eutils linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="aufs btrfs +contrib +device-mapper doc lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.3
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.16.1
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#optional-dependencies
+RDEPEND="
+ ${CDEPEND}
+
+ !app-emulation/docker-bin
+ >=net-firewall/iptables-1.4
+ sys-process/procps
+ >=dev-vcs/git-1.7
+ >=app-arch/xz-utils-4.9
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ sys-fs/aufs3
+ sys-fs/aufs4
+ sys-kernel/aufs-sources
+ )
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ NAMESPACES NET_NS PID_NS IPC_NS UTS_NS
+ DEVPTS_MULTIPLE_INSTANCES
+ CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS
+ MACVLAN VETH BRIDGE
+ NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
+ NETFILTER_XT_MATCH_ADDRTYPE NETFILTER_XT_MATCH_CONNTRACK
+ NF_NAT NF_NAT_NEEDED
+
+ POSIX_MQUEUE
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+ ~RESOURCE_COUNTERS
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+pkg_setup() {
+ if kernel_is lt 3 8; then
+ eerror ""
+ eerror "Using Docker with kernels older than 3.8 is unstable and unsupported."
+ eerror " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
+ die 'Kernel is too old - need 3.8 or above'
+ fi
+
+ # for where these kernel versions come from, see:
+ # https://www.google.com/search?q=945b2b2d259d1a4364a2799e80e8ff32f8c6ee6f+site%3Akernel.org%2Fpub%2Flinux%2Fkernel+file%3AChangeLog*
+ if ! {
+ kernel_is ge 3 16 \
+ || { kernel_is 3 15 && kernel_is ge 3 15 5; } \
+ || { kernel_is 3 14 && kernel_is ge 3 14 12; } \
+ || { kernel_is 3 12 && kernel_is ge 3 12 25; }
+ }; then
+ ewarn ""
+ ewarn "There is a serious Docker-related kernel panic that has been fixed in 3.16+"
+ ewarn " (and was backported to 3.15.5+, 3.14.12+, and 3.12.25+)"
+ ewarn ""
+ ewarn "See also https://github.com/docker/docker/issues/2960"
+ fi
+
+ if use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ fi
+
+ if use device-mapper; then
+ CONFIG_CHECK+="
+ ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ fi
+
+ if use overlay; then
+ CONFIG_CHECK+="
+ ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
+ "
+ fi
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || die 'hardened sed failed'
+ fi
+
+ # 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
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using docs/man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman contrib/man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/sources/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/docker-1.6.2.ebuild b/app-emulation/docker/docker-1.6.2.ebuild
new file mode 100644
index 00000000000..b2b8d550a32
--- /dev/null
+++ b/app-emulation/docker/docker-1.6.2.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="7c8fca2"
+ KEYWORDS="~amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="aufs btrfs +contrib +device-mapper doc lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.3
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.16.1
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#optional-dependencies
+RDEPEND="
+ ${CDEPEND}
+
+ !app-emulation/docker-bin
+ >=net-firewall/iptables-1.4
+ sys-process/procps
+ >=dev-vcs/git-1.7
+ >=app-arch/xz-utils-4.9
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ sys-fs/aufs3
+ sys-fs/aufs4
+ sys-kernel/aufs-sources
+ )
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ NAMESPACES NET_NS PID_NS IPC_NS UTS_NS
+ DEVPTS_MULTIPLE_INSTANCES
+ CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS
+ MACVLAN VETH BRIDGE
+ NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
+ NETFILTER_XT_MATCH_ADDRTYPE NETFILTER_XT_MATCH_CONNTRACK
+ NF_NAT NF_NAT_NEEDED
+
+ POSIX_MQUEUE
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+ ~RESOURCE_COUNTERS
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+pkg_setup() {
+ if kernel_is lt 3 10; then
+ eerror ""
+ eerror "Using Docker with kernels older than 3.10 is unstable and unsupported."
+ eerror " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
+ die 'Kernel is too old - need 3.10 or above'
+ fi
+
+ # for where these kernel versions come from, see:
+ # https://www.google.com/search?q=945b2b2d259d1a4364a2799e80e8ff32f8c6ee6f+site%3Akernel.org%2Fpub%2Flinux%2Fkernel+file%3AChangeLog*
+ if ! {
+ kernel_is ge 3 16 \
+ || { kernel_is 3 15 && kernel_is ge 3 15 5; } \
+ || { kernel_is 3 14 && kernel_is ge 3 14 12; } \
+ || { kernel_is 3 12 && kernel_is ge 3 12 25; }
+ }; then
+ ewarn ""
+ ewarn "There is a serious Docker-related kernel panic that has been fixed in 3.16+"
+ ewarn " (and was backported to 3.15.5+, 3.14.12+, and 3.12.25+)"
+ ewarn ""
+ ewarn "See also https://github.com/docker/docker/issues/2960"
+ fi
+
+ if use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ fi
+
+ if use device-mapper; then
+ CONFIG_CHECK+="
+ ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ fi
+
+ if use overlay; then
+ CONFIG_CHECK+="
+ ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
+ "
+ fi
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || die 'hardened sed failed'
+ fi
+
+ # 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
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using docs/man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman contrib/man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/sources/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/docker-1.7.1.ebuild b/app-emulation/docker/docker-1.7.1.ebuild
new file mode 100644
index 00000000000..d660fc3aac7
--- /dev/null
+++ b/app-emulation/docker/docker-1.7.1.ebuild
@@ -0,0 +1,268 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="786b29d"
+ KEYWORDS="~amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +contrib +device-mapper doc experimental lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.4:=
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#optional-dependencies
+RDEPEND="
+ ${CDEPEND}
+
+ !app-emulation/docker-bin
+ >=net-firewall/iptables-1.4
+ sys-process/procps
+ >=dev-vcs/git-1.7
+ >=app-arch/xz-utils-4.9
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ sys-fs/aufs3
+ sys-fs/aufs4
+ sys-kernel/aufs-sources
+ )
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS
+ ~MACVLAN ~VETH ~BRIDGE ~BRIDGE_NETFILTER
+ ~NF_NAT_IPV4 ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
+ ~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK
+ ~NF_NAT ~NF_NAT_NEEDED
+
+ ~POSIX_MQUEUE
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP
+ ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+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/installation/binaries/#check-kernel-dependencies"
+ fi
+
+ # for where these kernel versions come from, see:
+ # https://www.google.com/search?q=945b2b2d259d1a4364a2799e80e8ff32f8c6ee6f+site%3Akernel.org%2Fpub%2Flinux%2Fkernel+file%3AChangeLog*
+ if ! {
+ kernel_is ge 3 16 \
+ || { kernel_is 3 15 && kernel_is ge 3 15 5; } \
+ || { kernel_is 3 14 && kernel_is ge 3 14 12; } \
+ || { kernel_is 3 12 && kernel_is ge 3 12 25; }
+ }; then
+ ewarn ""
+ ewarn "There is a serious Docker-related kernel panic that has been fixed in 3.16+"
+ ewarn " (and was backported to 3.15.5+, 3.14.12+, and 3.12.25+)"
+ ewarn ""
+ ewarn "See also https://github.com/docker/docker/issues/2960"
+ fi
+
+ if kernel_is le 3 18; then
+ CONFIG_CHECK+="
+ ~RESOURCE_COUNTERS
+ "
+ fi
+
+ if use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ fi
+
+ if use device-mapper; then
+ CONFIG_CHECK+="
+ ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ fi
+
+ if use overlay; then
+ CONFIG_CHECK+="
+ ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
+ "
+ fi
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || die 'hardened sed failed'
+ fi
+
+ # 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/files/7179-add-audit_write-cap.patch b/app-emulation/docker/files/7179-add-audit_write-cap.patch
new file mode 100644
index 00000000000..6263698cea2
--- /dev/null
+++ b/app-emulation/docker/files/7179-add-audit_write-cap.patch
@@ -0,0 +1,29 @@
+From 29ecc95c31ecfe15e3b3d8db94cea1c555e526a3 Mon Sep 17 00:00:00 2001
+From: Alexandr Morozov <lk4d4math@gmail.com>
+Date: Wed, 23 Jul 2014 09:57:41 +0400
+Subject: [PATCH] Add AUDIT_WRITE cap
+
+Fixes #6345
+
+Thanks @larsks for outstanding investigation
+
+Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
+---
+ daemon/execdriver/native/template/default_template.go | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/daemon/execdriver/native/template/default_template.go b/daemon/execdriver/native/template/default_template.go
+index cc5cc4f..be3dd5a 100644
+--- a/daemon/execdriver/native/template/default_template.go
++++ b/daemon/execdriver/native/template/default_template.go
+@@ -23,6 +23,7 @@ func New() *libcontainer.Config {
+ "NET_BIND_SERVICE",
+ "SYS_CHROOT",
+ "KILL",
++ "AUDIT_WRITE",
+ },
+ Namespaces: map[string]bool{
+ "NEWNS": true,
+--
+2.0.3
+
diff --git a/app-emulation/docker/files/docker-r2.confd b/app-emulation/docker/files/docker-r2.confd
new file mode 100644
index 00000000000..5436b2339d9
--- /dev/null
+++ b/app-emulation/docker/files/docker-r2.confd
@@ -0,0 +1,18 @@
+# /etc/conf.d/docker: config file for /etc/init.d/docker
+
+# where the docker daemon output gets piped
+#DOCKER_LOGFILE="/var/log/docker.log"
+
+# where docker's pid get stored
+#DOCKER_PIDFILE="/run/docker.pid"
+
+# where the docker daemon itself is run from
+#DOCKER_BINARY="/usr/bin/docker"
+
+# uncomment this for a simple workaround to
+# https://github.com/dotcloud/docker/issues/1422
+#DOCKER_WORKAROUND_1422="1"
+
+# if you find that the default DOCKER_WORKAROUND_1422 delay of one second
+# is not sufficient, try uncommenting and increasing this value
+#DOCKER_WORKAROUND_1422_DELAY="1"
diff --git a/app-emulation/docker/files/docker-r2.initd b/app-emulation/docker/files/docker-r2.initd
new file mode 100755
index 00000000000..b081d9c7709
--- /dev/null
+++ b/app-emulation/docker/files/docker-r2.initd
@@ -0,0 +1,54 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+DOCKER_WORKAROUND_1422=${DOCKER_WORKAROUND_1422:-0}
+DOCKER_WORKAROUND_1422_DELAY=${DOCKER_WORKAROUND_1422_DELAY:-1}
+
+start() {
+ checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE"
+ eend $?
+ ret=$?
+
+ if [ $ret -eq 0 ] \
+ && [ "$DOCKER_WORKAROUND_1422" ] \
+ && [ "$DOCKER_WORKAROUND_1422" -gt 0 ] \
+ ; then
+ # see https://github.com/dotcloud/docker/issues/1422
+ ewarn "Working around gh#1422 (via busybox image); this may take a moment"
+
+ # we were calling "docker run" more quickly than "docker -d" could get
+ # fired up, so our workaround wasn't successful without a short delay
+ sleep $DOCKER_WORKAROUND_1422_DELAY
+
+ # TODO when we get https://github.com/dotcloud/docker/pull/1589, these
+ # both need -rm so we clean up after ourselves (thanks, @eliasp!)
+ docker run -i -t busybox true &> /dev/null || true
+ # first run will fail, so we ignore its output and result and run again
+ docker run -i -t busybox true
+
+ ewend $?
+ fi
+
+ return $ret
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker-r3.confd b/app-emulation/docker/files/docker-r3.confd
new file mode 100644
index 00000000000..ae247c007e3
--- /dev/null
+++ b/app-emulation/docker/files/docker-r3.confd
@@ -0,0 +1,13 @@
+# /etc/conf.d/docker: config file for /etc/init.d/docker
+
+# where the docker daemon output gets piped
+#DOCKER_LOGFILE="/var/log/docker.log"
+
+# where docker's pid get stored
+#DOCKER_PIDFILE="/run/docker.pid"
+
+# where the docker daemon itself is run from
+#DOCKER_BINARY="/usr/bin/docker"
+
+# any other random options you want to pass to docker
+DOCKER_OPTS=""
diff --git a/app-emulation/docker/files/docker-r3.initd b/app-emulation/docker/files/docker-r3.initd
new file mode 100755
index 00000000000..a30318509c4
--- /dev/null
+++ b/app-emulation/docker/files/docker-r3.initd
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+DOCKER_OPTS=${DOCKER_OPTS:-}
+
+start() {
+ checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE" \
+ $DOCKER_OPTS
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker.initd b/app-emulation/docker/files/docker.initd
new file mode 100755
index 00000000000..18ca8ab9d76
--- /dev/null
+++ b/app-emulation/docker/files/docker.initd
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+
+start() {
+ touch "$DOCKER_LOGFILE"
+ chown root:docker "$DOCKER_LOGFILE"
+ chmod 0644 "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker.service b/app-emulation/docker/files/docker.service
new file mode 100644
index 00000000000..dde89a214ad
--- /dev/null
+++ b/app-emulation/docker/files/docker.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Easily create lightweight, portable, self-sufficient containers from any application!
+Requires=network.target
+After=multi-user.target
+
+[Service]
+Type=simple
+ExecStartPre=/bin/mount --make-rprivate /
+ExecStart=/usr/bin/docker -d
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-emulation/docker/metadata.xml b/app-emulation/docker/metadata.xml
new file mode 100644
index 00000000000..a8f4c2c1483
--- /dev/null
+++ b/app-emulation/docker/metadata.xml
@@ -0,0 +1,58 @@
+<?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>
+ <herd>proxy-maintainers</herd>
+ <maintainer status="active">
+ <email>admwiggin@gmail.com</email>
+ <name>Tianon</name>
+ </maintainer>
+ <maintainer>
+ <email>xarthisius@gentoo.org</email>
+ <name>Kacper Kowalik</name>
+ </maintainer>
+ <maintainer>
+ <email>alunduil@gentoo.org</email>
+ <name>Alex Brandt</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="contrib">
+ Install additional contrib scripts and components.
+ </flag>
+ <flag name="device-mapper">
+ Enables dependencies for the "devicemapper" graph driver, including
+ necessary kernel flags.
+ </flag>
+ <flag name="experimental">
+ Enable features labelled by upstream to be of "experimental"
+ quality and not yet ready for general consumption.
+ </flag>
+ <flag name="overlay">
+ Enables dependencies for the "overlay" graph driver, including
+ necessary kernel flags.
+ </flag>
+ <flag name="lxc">
+ Enables dependencies for the "lxc" execution driver.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="github">docker/docker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/domi/Manifest b/app-emulation/domi/Manifest
new file mode 100644
index 00000000000..469488ebbc0
--- /dev/null
+++ b/app-emulation/domi/Manifest
@@ -0,0 +1 @@
+DIST domi-20060816-153213.tar.gz 15503 SHA256 2eba3bbd36738764a1443544388472dbc603db81974b74402954d2693d231c78 SHA512 ea8fea65860f399ea1f4474f7cba957c29298b126c6b8aded1af07a09e987bad6d5fbe9af552977d33480562e28e77774690c6f5d6958e29f3533c892a69c207 WHIRLPOOL 0d71ff2cc25496e6c3dfa35f5a7f96a071a0ff2ec683f709a9479f89f4b98f8d8ce37ceb1982289e6f1f853a78f22b694e83a2b1d4eaa6ce0dcf60e079df02d8
diff --git a/app-emulation/domi/domi-20060816.ebuild b/app-emulation/domi/domi-20060816.ebuild
new file mode 100644
index 00000000000..5384bc754b3
--- /dev/null
+++ b/app-emulation/domi/domi-20060816.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils
+DESCRIPTION="Scripts for building Xen domains"
+HOMEPAGE="http://www.bytesex.org"
+EXTRA_VERSION="153213"
+SRC_URI="http://dl.bytesex.org/cvs-snapshots/${P}-${EXTRA_VERSION}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE=""
+DEPEND="app-emulation/xen-tools
+ app-arch/rpm
+ sys-block/parted
+ sys-apps/yum
+ sys-fs/lvm2
+ sys-fs/multipath-tools"
+# there are some other depends we may need depending on the target system
+# these packages aren't in gentoo yet. feel free to submit ebuilds via bugzilla.
+# y2pmsh
+RESTRICT="test"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ sed -i -e 's:/dev/loop\$:/dev/loop/\$:' "${S}"/domi
+ cd "${S}"
+ epatch "${FILESDIR}"/fix_install_links.patch
+}
+
+src_install() {
+ einstall || die
+ insinto /etc
+ doins "${FILESDIR}"/domi.conf || die
+}
diff --git a/app-emulation/domi/files/domi.conf b/app-emulation/domi/files/domi.conf
new file mode 100644
index 00000000000..429a1650515
--- /dev/null
+++ b/app-emulation/domi/files/domi.conf
@@ -0,0 +1,95 @@
+#!/bin/bash
+#This script is generated by http://bugs.gentoo.org/show_bug.cgi?id=112407 and the domi.man file
+#domi - xen domain installer /etc/domi.conf
+#domi is a shell script which sets up virtual machines. It creates
+#virtual disks using either LVM or image files and installs a linux
+#distribution on the newly created disk.
+#
+#domi reads the configuration from /etc/domi.conf and the config file
+#passed on the command line. Then goes ahead and sets up the virtual
+#disk without asking further questions, so be careful.
+#The config files are simply sourced. Thus the syntax for setting the
+#config options is the usual shell variable style, i.e. VAR="value",
+#hashmark works for comments and so on.
+############################################
+#DOMI_NAME="myexample" # Required
+DOMI_NAME=" "
+
+##Name of the virtual machine.
+#Distribution to install. Valid choices are suse, fedora, debian and gentoo.
+#DOMI_DISTRO="gentoo" # Required.
+DOMI_DISTRO=""
+
+#DOMI_CACHE Location where downloaded files are cached.
+#Default: /var/cache/domi
+DOMI_CACHE="/var/cache/domi"
+
+#DOMI_FSTYPE File system to use
+#Default: ext2
+DOMI_FSTYPE="ext2"
+
+#DOMI_PASSWD Initial root password
+#Default: root
+DOMI_PASSWD="secret"
+
+#DOMI_VDISK
+#Name of the virtual disk (inside the vm). "xvda" should do just
+#fine with all modern, udev-based distros which create the device
+#nodes automatically. In case of trouble you can try "hda" instead.
+#Default: xvda
+DOMI_VDISK="xvda"
+
+#DOMI_XEN_CONF
+#Recommended.
+#If specified the script writes a initial Xen config file to the given
+#location.
+#DOMI_XEN_CONF="/etc/xen/auto/myexample-startscript"
+DOMI_XEN_CONF=" "
+
+#DOMI_XEN_KERNEL Xen kernel (for the Xen config file).
+#Default: /boot/vmlinuz-xen
+#DOMI_XEN_KERNEL="/path/to/the/DomU-kernel"
+DOMI_XEN_KERNEL=""
+
+#DOMI_XEN_MEMORY
+#Main memory (for the Xen config file, in megabytes).
+#Default: 128
+DOMI_XEN_MEMORY="128"
+
+#DOMI_DISK_VG
+#LVM volume group to use for storage. If specied the script will
+#create a volume with DOMI_NAME in that volume group and use it to
+#setup the virtual disk.
+#Recommended.
+#DOMI_DISK_VG="volg-md9"# without a "/"
+DOMI_DISK_VG=""
+
+#DOMI_DISK_FILE
+#If you don't use LVM you can specify an image file to use for the
+#virtual disk. Setting either DOMI_DISK_VG or DOMI_DISK_FILE is
+#required.
+#DOMI_DISK_FILE="/path/to/my/myexample.file"
+DOMI_DISK_FILE=""
+
+#DOMI_DISK_SPARSE
+#Set this to some non-empty value to make domi use sparse file for the
+#disk images. Has no effect if you use LVM.
+
+#DOMI_DISK_SIZE
+#Default: 4096
+#Size of the virtual disk, in megabytes.
+DOMI_DISK_SIZE="4096"
+
+#DOMI_SWAP_SIZE
+#Default: 256
+#Size of the swap partition, in megabytes.
+DOMI_SWAP_SIZE="256"
+
+#DOMI_ROOT_SIZE
+#Default: DOMI_DISK_SIZE - DOMI_SWAP_SIZE
+#Size if the root filesystem, in megabytes
+
+#DOMI_HOOK_POST
+#Custom postinstall script to run.
+
+###################
diff --git a/app-emulation/domi/files/fix_install_links.patch b/app-emulation/domi/files/fix_install_links.patch
new file mode 100644
index 00000000000..29a7eb7ca29
--- /dev/null
+++ b/app-emulation/domi/files/fix_install_links.patch
@@ -0,0 +1,15 @@
+--- Makefile.orig 2008-10-05 18:59:51.000000000 +0200
++++ Makefile 2008-10-05 19:37:58.000000000 +0200
+@@ -23,9 +23,9 @@
+ install -d $(DESTDIR)$(mandir)/man8
+ install -m755 $(scripts) $(DESTDIR)$(libdir)
+ install -m644 domi.man $(DESTDIR)$(mandir)/man8/domi.8
+- ln -s $(libdir)/domi $(DESTDIR)$(bindir)/domi
+- ln -s $(libdir)/ttylinux $(DESTDIR)$(bindir)/ttylinux
+- ln -s $(libdir)/initramfs $(DESTDIR)$(bindir)/busybox.initramfs
++ ln -s ../share/domi/domi $(bindir)/domi
++ ln -s ../share/domi/ttylinux $(bindir)/ttylinux
++ ln -s ../share/domi/initramfs $(bindir)/busybox.initramfs
+
+ test:
+ su -c tests/Run
diff --git a/app-emulation/domi/metadata.xml b/app-emulation/domi/metadata.xml
new file mode 100644
index 00000000000..001651048e9
--- /dev/null
+++ b/app-emulation/domi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription>Scripts for building Xen domains</longdescription>
+</pkgmetadata>
diff --git a/app-emulation/dosemu/Manifest b/app-emulation/dosemu/Manifest
new file mode 100644
index 00000000000..166c308d1f1
--- /dev/null
+++ b/app-emulation/dosemu/Manifest
@@ -0,0 +1,3 @@
+DIST dosemu-1.4.1_pre20091009.tar.bz2 1965194 SHA256 bf57f3a567008892fcaf0a58f69aae37a4b251f08855968958fa8fc6c06b1d4b SHA512 45aa0fff97f11270a50f9d5f10ec0be137e585c33a163e2b3318e924fe60f6aff90433fa52e90a5f8f9f1557b69720c4750ea685f3f72b644345021a01efc6ae WHIRLPOOL 607a1f92a60f31540d9e7e4033ef913d115a1e2f0a578e4083f8b55c2d0144352fe9f04273dfe953f80ad7bf38dab901dc6b7a4fce2ea3b0676329837b2719cb
+DIST dosemu-1.4.1_pre20130107.zip 2767256 SHA256 072e1d8ea9c574b02e556d926a287c9c55b82384ed652bb8dd6f3488801901aa SHA512 eb8dcb914a74b235f2b37ff4dd5c1c84b4916ff195c7bf76cdbe6a4d5e6247c57297eef0c579f219ff7f475e727d66fa5a0f314da46d79cc97a0d794e9ad5864 WHIRLPOOL d2835f82515e40d3c85c1ee53c7add5ba055637864ee63997ec912f53862006e33b4139a253b98cb76ca3cdbd7bdca6614609d9e8e716b074283e77cd8105e3c
+DIST dosemu-freedos-1.0-bin.tgz 1205628 SHA256 080c306a1b611e1861fd64466062f268eb44d2bf38082b8a57efadb5a9c0ebc7 SHA512 d0c4235ceac55de63ce5f72e51b7d57a82b8104f4bf2df6f4dc25c9889d3337b40d75665c2dfc98492ec7123e0959a725f5c7579e145895024bd80a07036e3bd WHIRLPOOL 9e6acf38dc8fafe95a49baaaac2a97fdd02c508b7c30c60823f8af7f44aa62b8d82c92661640b4cef05fcdbea401fafea752ec4a0e439a8eff361dd41aa392d3
diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20091009.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20091009.ebuild
new file mode 100644
index 00000000000..83615529e1d
--- /dev/null
+++ b/app-emulation/dosemu/dosemu-1.4.1_pre20091009.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils flag-o-matic
+
+P_FD="dosemu-freedos-1.0-bin"
+DESCRIPTION="DOS Emulator"
+HOMEPAGE="http://www.dosemu.org/"
+SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz
+ mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="X svga gpm debug alsa sndfile"
+
+RDEPEND="X? ( x11-libs/libXxf86vm
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-apps/xset
+ x11-apps/xlsfonts
+ x11-apps/bdftopcf
+ x11-apps/mkfontdir )
+ svga? ( media-libs/svgalib )
+ gpm? ( sys-libs/gpm )
+ alsa? ( media-libs/alsa-lib )
+ sndfile? ( media-libs/libsndfile )
+ >=sys-libs/slang-1.4"
+
+DEPEND="${RDEPEND}
+ X? ( x11-proto/xf86dgaproto )
+ >=sys-devel/autoconf-2.57"
+S="${WORKDIR}/${PN}"
+
+src_compile() {
+ epatch "${FILESDIR}"/${P}-flex.patch #437074
+
+ # Has problems with -O3 on some systems
+ replace-flags -O[3-9] -O2
+
+ unset KERNEL
+
+ econf `use_with X x` \
+ `use_enable svga svgalib` \
+ `use_enable debug` \
+ `use_with gpm` \
+ `use_with alsa` \
+ `use_with sndfile` \
+ --with-fdtarball="${DISTDIR}"/${P_FD}.tgz \
+ --sysconfdir=/etc/dosemu/ \
+ --with-docdir=/usr/share/doc/${PF} || die
+
+ emake || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ # Don't remove COPYING, see bug #137286
+ dodoc BUGS ChangeLog COPYING NEWS README THANKS || die #nowarn
+}
diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r3.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r3.ebuild
new file mode 100644
index 00000000000..c9c050a9e87
--- /dev/null
+++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r3.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic pax-utils toolchain-funcs
+
+P_FD="dosemu-freedos-1.0-bin"
+COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71"
+
+DESCRIPTION="DOS Emulator"
+HOMEPAGE="http://www.dosemu.org/"
+SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz
+ http://sourceforge.net/code-snapshots/git/d/do/dosemu/code.git/dosemu-code-${COMMIT}.zip -> ${P}.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="X svga gpm debug alsa sndfile fluidsynth"
+
+RDEPEND="X? ( x11-libs/libX11
+ x11-libs/libXxf86vm
+ x11-libs/libXau
+ x11-libs/libXext
+ x11-libs/libXdmcp
+ x11-apps/xset
+ x11-apps/xlsfonts
+ x11-apps/bdftopcf
+ x11-apps/mkfontdir )
+ svga? ( media-libs/svgalib )
+ gpm? ( sys-libs/gpm )
+ 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}
+ X? ( x11-proto/xf86dgaproto )
+ >=sys-devel/autoconf-2.57"
+
+S="${WORKDIR}/${PN}-code-${COMMIT}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-fortify.patch
+
+ # Has problems with -O3 on some systems
+ replace-flags -O[3-9] -O2
+
+ # This one is from media-sound/fluid-soundfont (bug #479534)
+ sed "s,/usr/share/soundfonts/default.sf2,${EPREFIX}/usr/share/sounds/sf2/FluidR3_GM.sf2,"\
+ -i src/plugin/fluidsynth/mid_o_flus.c || die
+}
+
+src_configure() {
+ econf $(use_with X x) \
+ $(use_with svga svgalib) \
+ $(use_enable debug) \
+ $(use_with gpm) \
+ $(use_with alsa) \
+ $(use_with sndfile) \
+ $(use_with fluidsynth) \
+ --with-fdtarball="${DISTDIR}"/${P_FD}.tgz \
+ --sysconfdir="${EPREFIX}"/etc/dosemu/ \
+ --with-docdir="${EPREFIX}"/usr/share/doc/${PF}
+}
+
+src_compile() {
+ emake AR=$(tc-getAR)
+}
+
+src_install() {
+ default
+
+ # r - randmmap: dosemu tries to get address mapping
+ # exactly where asked, loops otherwise.
+ # m - allow RWX mapping: as it's an emulator / code loader
+ pax-mark -mr "${ED}/usr/bin/dosemu.bin"
+}
diff --git a/app-emulation/dosemu/files/dosemu-1.3.4-shm.diff b/app-emulation/dosemu/files/dosemu-1.3.4-shm.diff
new file mode 100644
index 00000000000..f0868a988f0
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.3.4-shm.diff
@@ -0,0 +1,11 @@
+--- dosemu-1.3.4/etc/dosemu.conf.orig 2007-01-28 22:19:44.000000000 +0100
++++ dosemu-1.3.4/etc/dosemu.conf 2007-01-28 22:19:58.000000000 +0100
+@@ -166,7 +166,7 @@
+ # preferred mapping driver, one of: auto, mapshm, mapashm, mapfile
+ # Default: ""="auto"
+
+-# $_mapping= ""
++$_mapping= "mapshm"
+
+ ##############################################################################
+ ## Debug settings
diff --git a/app-emulation/dosemu/files/dosemu-1.4.0.1-gcc433.diff b/app-emulation/dosemu/files/dosemu-1.4.0.1-gcc433.diff
new file mode 100644
index 00000000000..8b0ca77df6c
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.0.1-gcc433.diff
@@ -0,0 +1,11 @@
+--- trunk/src/tools/periph/dexeconfig.c 2008/03/28 14:01:17 1854
++++ trunk/src/tools/periph/dexeconfig.c 2008/03/30 22:58:55 1855
+@@ -238,7 +238,7 @@
+ exit(1);
+ }
+ close(fd);
+- fc = open(cfile, O_WRONLY | O_CREAT | O_TRUNC);
++ fc = creat(cfile, S_IWUSR | S_IRUSR);
+ if (fc < 0) {
+ perror("cannot open config file");
+ exit(1);
diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-flex.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-flex.patch
new file mode 100644
index 00000000000..7e8e291ef1b
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-flex.patch
@@ -0,0 +1,45 @@
+Gentoo-bug: http://bugs.gentoo.org/437074
+
+commit 81232816b90e85488d7f11f96b8fcdc5f4988c93
+Author: Stas Sergeev <stsp@users.sourceforge.net>
+Date: Sun Oct 14 19:51:09 2012 +0400
+
+ remove prototypes for lex-generated functions
+
+diff --git a/src/base/init/lexer.h b/src/base/init/lexer.h
+index 65b3ab8..082f08c 100644
+--- a/src/base/init/lexer.h
++++ b/src/base/init/lexer.h
+@@ -1,4 +1,4 @@
+-/*
++/*
+ * (C) Copyright 1992, ..., 2007 the "DOSEMU-Development-Team".
+ *
+ * for details see file COPYING.DOSEMU in the DOSEMU distribution
+@@ -6,7 +6,9 @@
+
+ /*
+ * We are intercepting the yylex() function calls from the parser
+- */
++ */
++#ifndef LEXER_H
++#define LEXER_H
+ #define OUR_YY_DECL int yylex (YYSTYPE* yylval)
+ OUR_YY_DECL;
+
+@@ -27,14 +29,4 @@ extern int include_lines[];
+ extern int line_count;
+ extern int last_include;
+
+-extern int yyget_lineno(void);
+-extern void yyset_lineno(int line_number);
+-extern void yyset_out(FILE * out_str);
+-extern void yyset_in(FILE * out_str);
+-extern void yyset_debug(int bdebug );
+-extern int yyget_debug(void);
+-extern int yylex_destroy(void);
+-extern FILE* yyget_in(void);
+-extern FILE* yyget_out(void);
+-extern int yyget_leng(void);
+-extern char *yyget_text(void);
++#endif
diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch
new file mode 100644
index 00000000000..5daa4e9fee4
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch
@@ -0,0 +1,48 @@
+From ff9bea065f4cc6068dcb8d6ea9423105305ca590 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Mon, 5 Aug 2013 13:03:21 +0300
+Subject: [PATCH] src/tools/tools86.c: fix stack buffer overflow in
+ 'change_aout'
+
+Detected by gcc:
+
+gcc -std=gnu99 -c -MP -MMD -I../../src/include -I../../src/plugin/include -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -pipe -O2 -fomit-frame-pointer -o tools86.o tools86.c
+In file included from /usr/include/stdio.h:937:0,
+ from tools86.c:98:
+ In function 'fread',
+ inlined from 'change_aout.constprop.1' at tools86.c:174:12,
+ inlined from 'main' at tools86.c:391:18:
+ /usr/include/bits/stdio2.h:293:2: warning: call to '__fread_chk_warn' declared with attribute warning: fread called with bigger size * nmemb than length of destination buffer [enabled by default]
+ return __fread_chk_warn (__ptr, __bos0 (__ptr), __size, __n, __stream);
+ ^
+Gentoo-bug: http://bugs.gentoo.org/343577
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ src/tools/tools86.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools/tools86.c b/src/tools/tools86.c
+index 141610d..35a0b96 100644
+--- a/src/tools/tools86.c
++++ b/src/tools/tools86.c
+@@ -137,7 +137,7 @@ struct bsd_header { /* a.out header */
+ #endif
+
+ #ifdef __linux__
+-static int header_ld86out_to_gnuasout(struct bsd_header *bsd, struct gnu_header *gnu)
++static int header_ld86out_to_gnuasout(const struct bsd_header *bsd, struct gnu_header *gnu)
+ {
+ if (bsd->a_magic[0] != 0x01 || bsd->a_magic[1] != 0x03 ||
+ bsd->a_flags != 0x00 || bsd->a_cpu != 0x10) return -1;
+@@ -171,7 +171,7 @@ static int change_aout(char *objfile, int update_symtable)
+ return errno;
+ }
+ #ifdef __linux__
+- if (fread(&bsd,sizeof(gnu),1,f) != 1 ) {
++ if (fread(&bsd,sizeof(bsd),1,f) != 1 ) {
+ fclose(f);
+ return -1;
+ }
+--
+1.8.3.2
+
diff --git a/app-emulation/dosemu/metadata.xml b/app-emulation/dosemu/metadata.xml
new file mode 100644
index 00000000000..14ef792f53f
--- /dev/null
+++ b/app-emulation/dosemu/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>hanno@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <use>
+ <flag name="fluidsynth">use <pkg>media-sound/fluidsynth</pkg> for MIDI emulation</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">dosemu</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/dynamips/Manifest b/app-emulation/dynamips/Manifest
new file mode 100644
index 00000000000..3c845b4e84a
--- /dev/null
+++ b/app-emulation/dynamips/Manifest
@@ -0,0 +1,2 @@
+DIST dynamips-0.2.12-source.zip 995877 SHA256 b8a60c2ff577ec3a5c2b892bce654a68cc072c79fbca2b708d36d42bd3e9eb12 SHA512 08f388027e3234a44a75de77f30d6c96f0d881c4db60435a237f6ae6e3804872fda422ab11249f5c7283054f7d2d8466886dcd6056e59fc90802e67fa7cb8c55 WHIRLPOOL 2e627071914fe11ae20b7f00ba7b81b7bde95a008d84a1786e2f57ab07ec2a0d836218e72040b34f8badbefb289fceab2c5f7324bf5d5cfca0d433ed968dc6ae
+DIST dynamips-0.2.14-source.zip 961813 SHA256 ce77cf6e6e784142333d3b9dcc6c70ab7b1f676ff2a40b7d4fb738e14f01e789 SHA512 8c3d85998a61cae1e3e82501a00e886c954686f9a19a44acb7dee8b13911c0155ce2cdfecbdc41ed5d279266abdf77a5c3f2753fde12217b138313ffa46dabf8 WHIRLPOOL d20a78c701cdbb7f38c4e6f6848b5b3b0a80d8bef372cb13cc25c65d52652001e701f54d1e5a805e4279a4cf457f953387e7cbda124e9f4f57c8615296d8fc7e
diff --git a/app-emulation/dynamips/dynamips-0.2.12.ebuild b/app-emulation/dynamips/dynamips-0.2.12.ebuild
new file mode 100644
index 00000000000..f0dfa4d6f7d
--- /dev/null
+++ b/app-emulation/dynamips/dynamips-0.2.12.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Cisco 7200/3600 Simulator"
+HOMEPAGE="http://www.gns3.net/dynamips/"
+SRC_URI="mirror://sourceforge/project/gns-3/Dynamips/${PV}/${P}-source.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-libs/elfutils
+ net-libs/libpcap"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-makefile.patch"
+
+ # enable verbose build
+ sed -i \
+ -e 's/@$(CC)/$(CC)/g' \
+ stable/Makefile || die 'sed on stable/Makefile failed'
+ # respect compiler
+ tc-export CC
+
+ epatch_user
+}
+
+src_compile() {
+ if use amd64 || use x86; then
+ emake DYNAMIPS_ARCH="${ARCH}"
+ else
+ emake DYNAMIS_ARCH="nojit"
+ fi
+}
+
+src_install () {
+ newbin dynamips.stable dynamips
+ newbin nvram_export.stable nvram_export
+ doman man/*
+ dodoc README README.hypervisor TODO
+}
diff --git a/app-emulation/dynamips/dynamips-0.2.14-r1.ebuild b/app-emulation/dynamips/dynamips-0.2.14-r1.ebuild
new file mode 100644
index 00000000000..cb86df7010a
--- /dev/null
+++ b/app-emulation/dynamips/dynamips-0.2.14-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="Cisco 7200/3600 Simulator"
+HOMEPAGE="http://www.gns3.net/dynamips/"
+SRC_URI="mirror://sourceforge/project/gns-3/Dynamips/${PV}/${P}-source.zip"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="ipv6"
+
+RDEPEND="dev-libs/elfutils
+ net-libs/libpcap"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+DOCS=( ChangeLog README RELEASE-NOTES )
+
+S="${WORKDIR}"
+
+PATCHES=( "${FILESDIR}/${PV}-docs.patch" )
+
+src_prepare() {
+ # comment out DYNAMIPS_FLAGS to respect CFLAGS
+ sed -e "s:^set ( DYNAMIPS_FLAGS:#&:" -i cmake/dependencies.cmake || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_enable ipv6 IPV6)
+ )
+ cmake-utils_src_configure
+}
diff --git a/app-emulation/dynamips/files/0.2.14-docs.patch b/app-emulation/dynamips/files/0.2.14-docs.patch
new file mode 100644
index 00000000000..1d744062e5b
--- /dev/null
+++ b/app-emulation/dynamips/files/0.2.14-docs.patch
@@ -0,0 +1,20 @@
+--- CMakeLists-orig.txt 2014-11-28 14:51:14.375913296 +0900
++++ CMakeLists.txt 2014-11-28 14:52:09.579369288 +0900
+@@ -37,16 +37,6 @@
+ add_subdirectory ( stable )
+ add_subdirectory ( unstable )
+
+-install_docs (
+- "ChangeLog"
+- "COPYING"
+- "MAINTAINERS"
+- "README"
+- "README.hypervisor"
+- "RELEASE-NOTES"
+- "TODO"
+- )
+-
+ # uninstall target - leaves behind any directory created during install
+ set ( _templatefile "${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" )
+ set ( _scriptfile "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" )
+
diff --git a/app-emulation/dynamips/files/dynamips-0.2.12-makefile.patch b/app-emulation/dynamips/files/dynamips-0.2.12-makefile.patch
new file mode 100644
index 00000000000..431f2df8ac7
--- /dev/null
+++ b/app-emulation/dynamips/files/dynamips-0.2.12-makefile.patch
@@ -0,0 +1,11 @@
+--- stable/origMakefile 2014-03-27 18:17:28.000000000 -0400
++++ stable/Makefile 2014-05-30 18:07:28.164255039 -0400
+@@ -19,7 +19,7 @@
+ PPC32_ARCH_INC_FILE=\"ppc32_$(DYNAMIPS_ARCH)_trans.h\"
+ OSNAME=unknown
+
+-CFLAGS+= $(INCLUDE) -Wall -O2 -fomit-frame-pointer \
++CFLAGS+= $(INCLUDE) -Wall \
+ -DJIT_ARCH=\"$(DYNAMIPS_ARCH)\" -DJIT_CPU=CPU_$(DYNAMIPS_ARCH) \
+ -DMIPS64_ARCH_INC_FILE=$(MIPS64_ARCH_INC_FILE) \
+ -DPPC32_ARCH_INC_FILE=$(PPC32_ARCH_INC_FILE) \
diff --git a/app-emulation/dynamips/metadata.xml b/app-emulation/dynamips/metadata.xml
new file mode 100644
index 00000000000..c9d9b335567
--- /dev/null
+++ b/app-emulation/dynamips/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>bman@gentoo.org</email>
+ <name>Aaron Bauman</name>
+ </maintainer>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">gns-3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/e-uae/Manifest b/app-emulation/e-uae/Manifest
new file mode 100644
index 00000000000..746c043c3c9
--- /dev/null
+++ b/app-emulation/e-uae/Manifest
@@ -0,0 +1 @@
+DIST e-uae-0.8.29-WIP4.tar.bz2 1122718 SHA256 9828cb0fca783160bcb33900d0254f4bdaade1c9a41256e5f298e973d0c07456 SHA512 63d5c60ca017ba7ffaba32c4d7edceba0410b773066cc58e226c8cc2c92152eb3689698b0affe478cc63c996c731fbbf56d9028dfd000394d904f193f860473f WHIRLPOOL 4d0bab2b8492cfe6a6b2e38fab7b2eb9ad4b33b38b191d9949cb946f6e5a4365b00ccec118acb8b4d537b70b73b8d9deb0c8235b5966f1488d9a03e3a245dfeb
diff --git a/app-emulation/e-uae/e-uae-0.8.29_rc4-r2.ebuild b/app-emulation/e-uae/e-uae-0.8.29_rc4-r2.ebuild
new file mode 100644
index 00000000000..cf3ef4650d8
--- /dev/null
+++ b/app-emulation/e-uae/e-uae-0.8.29_rc4-r2.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+inherit eutils flag-o-matic pax-utils
+
+DESCRIPTION="The Ubiquitous Amiga Emulator with an emulation core largely based on WinUAE"
+HOMEPAGE="http://www.rcdrummond.net/uae/"
+# We support _rcX for WIPX versions and _preYYYYMMDD for CVS snapshots.
+if [[ "${PV%%_rc*}" = "${PV}" ]] ; then
+ # _pre is used, cvs version
+ my_ver=${PV%%_pre*}
+ snap_ver=${PV##*_pre}
+ S="${WORKDIR}"/${PN}-${my_ver}-${snap_ver}
+ SRC_URI="http://www.rcdrummond.net/uae/test/${snap_ver}/${PN}-${my_ver}-${snap_ver}.tar.bz2"
+else
+ my_ver=${PV%%_rc*}
+ WIP_ver=${PV##*_rc}
+ S="${WORKDIR}"/${PN}-${my_ver}-WIP${WIP_ver}
+ SRC_URI="http://www.rcdrummond.net/uae/${PN}-${my_ver}-WIP${WIP_ver}/${PN}-${my_ver}-WIP${WIP_ver}.tar.bz2"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="X dga ncurses sdl alsa oss sdl-sound capslib"
+
+# Note: opposed to ./configure --help zlib support required! Check
+# src/Makefile.am that includes zfile.c unconditionaly.
+RDEPEND="X? ( x11-libs/libXt
+ x11-libs/libxkbfile
+ x11-libs/libXext
+ x11-misc/xkeyboard-config
+ dga? ( x11-libs/libXxf86dga
+ x11-libs/libXxf86vm )
+ )
+ !X? ( sdl? ( media-libs/libsdl )
+ !sdl? ( sys-libs/ncurses ) )
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( sdl-sound? ( media-libs/sdl-sound ) )
+ capslib? ( >=games-emulation/caps-20060612 )
+ sys-libs/zlib
+ virtual/cdrtools"
+
+DEPEND="${RDEPEND}
+ X? ( dga? ( x11-proto/xf86vidmodeproto
+ x11-proto/xf86dgaproto ) )"
+
+src_prepare() {
+ # Fix for high cpu use when compiled with --disable-audio
+ use alsa || use sdl-sound || use oss || epatch "${FILESDIR}"/${P}-high-cpu-usage.patch
+}
+
+src_configure() {
+ strip-flags
+
+ local myconf
+
+ # Sound setup.
+ if use alsa; then
+ elog "Choosing alsa as sound target to use."
+ myconf="--with-alsa --without-sdl-sound"
+ elif use sdl-sound ; then
+ if ! use sdl ; then
+ ewarn "sdl-sound is not enabled because sdl USE flag is disabled. Leaving"
+ ewarn "sound on oss autodetection."
+ myconf="--without-alsa --without-sdl-sound"
+ ebeep
+ else
+ elog "Choosing sdl-sound as sound target to use."
+ ewarn "E-UAE with the SDL audio back-end doesn't work correctly in Linux."
+ ewarn "Better use alsa... You've been warned ;)"
+ ebeep
+ myconf="--without-alsa --with-sdl-sound"
+ fi
+ elif use oss ; then
+ elog "Choosing oss as sound target to use."
+ ewarn "oss will be autodetected. See output of configure."
+ myconf="--without-alsa --without-sdl-sound"
+ else
+ ewarn "There is no alsa, sdl-sound or oss in USE. Sound target disabled!"
+ myconf="--disable-audio"
+ fi
+
+ # VIDEO setup. X is autodetected (there is no --with-X option).
+ if use X ; then
+ elog "Using X11 for video output."
+ ewarn "Fullscreen mode is not working in X11 currently. Use sdl."
+ myconf="$myconf --without-curses --without-sdl-gfx"
+ use dga && ewarn "To use dga you have to run e-uae as root."
+ use dga && myconf="$myconf --enable-dga --enable-vidmode"
+ elif use sdl ; then
+ elog "Using sdl for video output."
+ myconf="$myconf --with-sdl --with-sdl-gfx --without-curses"
+ elif use ncurses; then
+ elog "Using ncurses for video output."
+ myconf="$myconf --with-curses --without-sdl-gfx"
+ else
+ ewarn "There is no X or sdl or ncurses in USE!"
+ ewarn "Following upstream falling back on ncurses."
+ myconf="$myconf --with-curses --without-sdl-gfx"
+ ebeep
+ fi
+
+ # bug #415787
+ myconf="$myconf --disable-ui"
+
+ myconf="$myconf $(use_with capslib caps)"
+
+ myconf="$myconf --with-zlib"
+
+ # And explicitly state defaults:
+ myconf="$myconf --enable-aga"
+ myconf="$myconf --enable-autoconfig --enable-scsi-device --enable-cdtv --enable-cd32"
+ myconf="$myconf --enable-bsdsock"
+
+ econf ${myconf} \
+ --with-libscg-includedir="${EPREFIX}"/usr/include/scsilib \
+ || die "./configure failed"
+}
+
+src_compile() {
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+
+ # The emulator needs to be able to create executable heap
+ # - doesn't need trampoline emulation though.
+ pax-mark me "${ED}/usr/bin/uae"
+
+ # Rename it to e-uae
+ mv "${ED}/usr/bin/uae" "${ED}/usr/bin/e-uae"
+ mv "${ED}/usr/bin/readdisk" "${ED}/usr/bin/e-readdisk"
+
+ dodoc docs/* README ChangeLog
+}
diff --git a/app-emulation/e-uae/files/e-uae-0.8.29_rc4-high-cpu-usage.patch b/app-emulation/e-uae/files/e-uae-0.8.29_rc4-high-cpu-usage.patch
new file mode 100644
index 00000000000..ba005cece1a
--- /dev/null
+++ b/app-emulation/e-uae/files/e-uae-0.8.29_rc4-high-cpu-usage.patch
@@ -0,0 +1,18 @@
+Index: src/sd-none/sound.c
+===================================================================
+RCS file: /cvsroot/uaedev/uae/src/sd-none/sound.c,v
+retrieving revision 1.4
+diff -u -r1.4 sound.c
+--- src/sd-none/sound.c 15 Feb 2007 04:47:38 -0000 1.4
++++ src/sd-none/sound.c 25 May 2007 14:47:35 -0000
+@@ -30,10 +30,6 @@
+ {
+ }
+
+-void update_sound (int freq)
+-{
+-}
+-
+ void reset_sound (void)
+ {
+ }
diff --git a/app-emulation/e-uae/metadata.xml b/app-emulation/e-uae/metadata.xml
new file mode 100644
index 00000000000..2314e7afa12
--- /dev/null
+++ b/app-emulation/e-uae/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ E-UAE is a fork of UAE which intends to merge all the new features of
+ WinUAE with UAE.
+ </longdescription>
+ <use>
+ <flag name='capslib'>Add CAPS library support</flag>
+ <flag name='sdl-sound'>Use <pkg>media-libs/sdl-sound</pkg> for audio
+ output</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-emulation/edumips64/Manifest b/app-emulation/edumips64/Manifest
new file mode 100644
index 00000000000..c1203a9c658
--- /dev/null
+++ b/app-emulation/edumips64/Manifest
@@ -0,0 +1,2 @@
+DIST edumips64-1.1.tar.bz2 551083 SHA256 f34031fcfe7b43a8cf73a6e5d1da23f712cb83cf9bf68c94db70c799ae61cd6c SHA512 ca4884bbdb5bb41fe96abca566500af7dc31b330390f352bc6413aacb0561f58b5e95a90e22f58d18065324c155c97bd4d79beb7769efdafc3541cc37145579c WHIRLPOOL de616182917f5436d65c388da1cf90c2f84174f4bfb446613c01ff9aa48c419dbe26c6ab71a9377fb92627cfe9fece9d5b4d335a046daa84558686db2009bac7
+DIST edumips64-1.2.tar.bz2 551455 SHA256 dbdfcddb55aff2f9f9ec4d861d5faeff4c17957eb75cd8448f1cc62369ac5fc4 SHA512 93a5bcae3ab96c35688de7589b9ecb465fe841b007a50e1b04f8194d12a45a4e7134951584f4fbfad5cee51925d1d21b0f425f182999f66fe57a31adbd3f6602 WHIRLPOOL 41e966b28f0c6843586d6b8039c5ad47e071c7b5d2d527b77d928b29a66ec1fca87a1c4a33252555cd67d91e1adab27e9488611d03ab64c1d65530e5c914002a
diff --git a/app-emulation/edumips64/edumips64-1.1.ebuild b/app-emulation/edumips64/edumips64-1.1.ebuild
new file mode 100644
index 00000000000..5a5faefba9b
--- /dev/null
+++ b/app-emulation/edumips64/edumips64-1.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://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
new file mode 100644
index 00000000000..f54cafdc760
--- /dev/null
+++ b/app-emulation/edumips64/edumips64-1.2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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="http://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
new file mode 100644
index 00000000000..14ead77d333
--- /dev/null
+++ b/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch
@@ -0,0 +1,11 @@
+--- 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
new file mode 100644
index 00000000000..80e389049b5
--- /dev/null
+++ b/app-emulation/edumips64/files/edumips64-javadoc-cp.patch
@@ -0,0 +1,11 @@
+--- 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
new file mode 100644
index 00000000000..75e63da88fc
--- /dev/null
+++ b/app-emulation/edumips64/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>java</herd>
+ <maintainer>
+ <email>lxnay@gentoo.org</email>
+ <name>Fabio Erculiani</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">edumips64</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/free42/Manifest b/app-emulation/free42/Manifest
new file mode 100644
index 00000000000..bf0e040da8b
--- /dev/null
+++ b/app-emulation/free42/Manifest
@@ -0,0 +1 @@
+DIST free42-1.5.5.tgz 8160228 SHA256 2c5a16aa470de76185135c307add9b920a712e31269c471dd246b6cf9283e050 SHA512 97833c99a24c2b1f427b237469868d57734b919b6c69521b45de480bd5274f5427caac13b9ccf3b79674d63dabdeda58a8db4c23a184b72b04279acbdf7eff8f WHIRLPOOL d435befbf2d392222d1ef7907c7913e474da5c4997dfb84177be3ea0b3fc1d9c9b0ea41590810e78d38eb082216b28c907fe39613823d866b6a1ab4d531a6af2
diff --git a/app-emulation/free42/files/free42-1.5.5-fix-makefile.patch b/app-emulation/free42/files/free42-1.5.5-fix-makefile.patch
new file mode 100644
index 00000000000..8f73b4405e7
--- /dev/null
+++ b/app-emulation/free42/files/free42-1.5.5-fix-makefile.patch
@@ -0,0 +1,30 @@
+diff -Nuar a/gtk/Makefile b/gtk/Makefile
+--- a/gtk/Makefile 2014-06-21 19:46:55.000000000 +0200
++++ b/gtk/Makefile 2014-06-24 00:03:38.719906032 +0200
+@@ -19,7 +19,6 @@
+ -Wall \
+ -Wno-parentheses \
+ -Wno-write-strings \
+- -g \
+ -I/usr/X11R6/include \
+ -fno-exceptions \
+ -fno-rtti \
+@@ -30,14 +29,11 @@
+ -DDECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS=1 \
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 \
+- -D_WCHAR_T_DEFINED
++ -D_WCHAR_T_DEFINED \
++ ${CXXFLAGS}
+
+-LDFLAGS = -L/usr/X11R6/lib
+-LIBS := gcc111libbid-$(shell uname -m).a -lXmu $(shell pkg-config --libs gtk+-2.0)
+-
+-ifeq "$(shell uname -s)" "Linux"
+-LDFLAGS += -Wl,--hash-style=both
+-endif
++LDFLAGS := -L/usr/X11R6/lib ${LDFLAGS}
++LIBS := gcc111libbid-$(shell uname -m).a -lXmu -lX11 -ldl -lpthread $(shell pkg-config --libs gtk+-2.0)
+
+ 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 \
diff --git a/app-emulation/free42/free42-1.5.5.ebuild b/app-emulation/free42/free42-1.5.5.ebuild
new file mode 100644
index 00000000000..608ed317c14
--- /dev/null
+++ b/app-emulation/free42/free42-1.5.5.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="An HP-42S Calculator Simulator"
+HOMEPAGE="http://thomasokken.com/free42/"
+SRC_URI="mirror://gentoo/${P}.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}/${PN}-nologo-${PV}"
+
+src_prepare() {
+ sed -i -e 's/print_gif_name\[FILENAMELEN\]/print_gif_name\[1000\]/' \
+ "${S}/gtk/shell_main.cc" || die
+ epatch "${FILESDIR}"/${P}-fix-makefile.patch
+}
+
+src_compile() {
+ local myconf
+ use alsa && myconf="AUDIO_ALSA=yes"
+ emake CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C "${S}/gtk"
+}
+
+src_install() {
+ dodoc CREDITS HISTORY README TODO
+ dobin gtk/free42dec
+}
diff --git a/app-emulation/free42/metadata.xml b/app-emulation/free42/metadata.xml
new file mode 100644
index 00000000000..ae876330a77
--- /dev/null
+++ b/app-emulation/free42/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>nimiux@gentoo.org</email>
+ <name>Chema Alonso</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>
+</pkgmetadata>
diff --git a/app-emulation/fuse-utils/Manifest b/app-emulation/fuse-utils/Manifest
new file mode 100644
index 00000000000..ca9063cdb24
--- /dev/null
+++ b/app-emulation/fuse-utils/Manifest
@@ -0,0 +1 @@
+DIST fuse-utils-1.1.1.tar.gz 505766 SHA256 7c36c0b42805661a06c21aede3461ffc8ccdb5ce56fe232875bf86e79f77c93c SHA512 67a9cc6af97f213a43b5e557dfe800f823e914faae99d7c5b2ddfc52656ab89bac737df644b9aa32ac009bdc0740d2064ccc6de2643ecba9141787245f9657f9 WHIRLPOOL 6da43fbbacdc918ce1cd4b11b21499a7faf26afe5cd1cd46e4911594c515679f2b5f6640d0530b6f47f644bc16c0247b5df26c49893f2e656b7d878ec95ea394
diff --git a/app-emulation/fuse-utils/fuse-utils-1.1.1.ebuild b/app-emulation/fuse-utils/fuse-utils-1.1.1.ebuild
new file mode 100644
index 00000000000..054937d59d0
--- /dev/null
+++ b/app-emulation/fuse-utils/fuse-utils-1.1.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils
+
+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"
+
+RDEPEND="~app-emulation/libspectrum-1.1.1[gcrypt?]
+ audiofile? ( >=media-libs/audiofile-0.2.3 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ econf \
+ $(use_with audiofile ) \
+ $(use_with gcrypt libgcrypt) \
+ || die "Configure failed!"
+}
+
+src_compile() {
+ emake || die "Make failed!"
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die "install failed"
+ dodoc AUTHORS ChangeLog README
+ doman man/*.1
+}
diff --git a/app-emulation/fuse-utils/metadata.xml b/app-emulation/fuse-utils/metadata.xml
new file mode 100644
index 00000000000..b5eea7296dd
--- /dev/null
+++ b/app-emulation/fuse-utils/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ <description>Proxy Maintainer. Please CC on bugs.</description>
+ </maintainer>
+ <maintainer>
+ <email>jmfo1982@yahoo.es</email>
+ <description>Proxied Maintainer. Please assign on bugs.</description>
+ <name>José Manuel Ferrer Ortiz</name>
+ </maintainer>
+ <use>
+ <flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> for low-level crypto of some
+ features, including logfiles.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">fuse-emulator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/fuse/Manifest b/app-emulation/fuse/Manifest
new file mode 100644
index 00000000000..f2d19c6d87c
--- /dev/null
+++ b/app-emulation/fuse/Manifest
@@ -0,0 +1,2 @@
+DIST fuse-1.0.0.tar.gz 1628751 SHA256 a00add3abc0148247f7990e6feebcc32d82ebe857897d9426e5230222425aeb9 SHA512 dfa3647d12f515f4fbea1481e074b947adc552f1fdec23c20b550bdce619e7efdd977cad7ecb75ab50eb2da785d95ef9d8908d44600412d12da4ca5751d0d7c3 WHIRLPOOL 4329df04555d031f41581d47d1284ebd73aaec19320df3dbd9a2aa594085a95734aaae9275487809800ae371e2ce6d4c14a6fdb628f959f2db791c19fdeeae9c
+DIST fuse-1.1.1.tar.gz 1881332 SHA256 a857d4bd62e01d18429897467508af15624cbaf343caed8b9ba1ab3a8879444e SHA512 67d12c56057a13121d8a5c073002dd2168268894669bdb50f3aba977cb1f53afa48774bfcb438a627a5afdbd2288248d4449e57d744e17b9e3eba00970685a14 WHIRLPOOL b64dd50037a4cba617bd0e10794c01e1a63bc2e68cd990636c1daa88e9a515032216b34e72ca6876f432a72d214d1220b808d2aae2ba849ee66f3d3784f14b73
diff --git a/app-emulation/fuse/files/fuse-1.0.0-libpng15.patch b/app-emulation/fuse/files/fuse-1.0.0-libpng15.patch
new file mode 100644
index 00000000000..3da2d672c47
--- /dev/null
+++ b/app-emulation/fuse/files/fuse-1.0.0-libpng15.patch
@@ -0,0 +1,10 @@
+--- screenshot.c
++++ screenshot.c
+@@ -48,6 +48,7 @@
+
+ #ifdef USE_LIBPNG
+
++#include <zlib.h>
+ #include <png.h>
+
+ static int get_rgb32_data( libspectrum_byte *rgb32_data, size_t stride,
diff --git a/app-emulation/fuse/files/fuse-1.1.1-gold-link-lm.patch b/app-emulation/fuse/files/fuse-1.1.1-gold-link-lm.patch
new file mode 100644
index 00000000000..97e18a540ae
--- /dev/null
+++ b/app-emulation/fuse/files/fuse-1.1.1-gold-link-lm.patch
@@ -0,0 +1,10 @@
+diff -uNr fuse-1.1.1.orig/sound/Makefile.am fuse-1.1.1/sound/Makefile.am
+--- fuse-1.1.1.orig/sound/Makefile.am 2014-06-04 17:32:46.540000001 -0400
++++ fuse-1.1.1/sound/Makefile.am 2014-06-04 19:04:23.190000001 -0400
+@@ -46,5 +46,6 @@
+
+ libsound_a_LIBADD = $(SOUND_LIBADD)
+ libsound_a_DEPENDENCIES = $(SOUND_LIBADD)
++libsound_a_LDFLAGS = -lm
+
+ noinst_HEADERS = sfifo.h blipbuffer.h
diff --git a/app-emulation/fuse/fuse-1.0.0.ebuild b/app-emulation/fuse/fuse-1.0.0.ebuild
new file mode 100644
index 00000000000..43aaa504c3e
--- /dev/null
+++ b/app-emulation/fuse/fuse-1.0.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils
+
+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 fbcon gpm gtk joystick memlimit png sdl svga X xml"
+
+# This build is heavily use dependent. Fuse user interface use flags are, in
+# order of precedence: gtk, sdl, X, svga and fbcon. X version of fuse will
+# be built if no valid user interface flag is chosen.
+RDEPEND="~app-emulation/libspectrum-1.0.0
+ gtk? ( x11-libs/gtk+:2
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !gtk? (
+ sdl? ( >=media-libs/libsdl-1.2.4 )
+ !sdl? (
+ X? ( x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !X? (
+ svga? ( media-libs/svgalib
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) ) )
+ !svga? (
+ fbcon? ( virtual/linux-sources
+ gpm? ( sys-libs/gpm )
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !fbcon? ( x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) ) ) ) ) )
+ dev-libs/glib:2
+ png? ( media-libs/libpng sys-libs/zlib )
+ xml? ( dev-libs/libxml2 )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog README THANKS )
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-libpng15.patch
+}
+
+src_configure() {
+ local guiflag
+
+ if use gtk; then
+ guiflag=""
+ elif use sdl; then
+ guiflag="--with-sdl"
+ elif use X; then
+ guiflag="--without-gtk"
+ elif use svga; then
+ guiflag="--with-svgalib"
+ elif use fbcon; then
+ guiflag="--with-fb"
+ else # We default to X user interface
+ guiflag="--without-gtk"
+ fi
+
+ econf \
+ --without-win32 \
+ ${guiflag} \
+ $(use_with gpm) \
+ $(use_with alsa) \
+ $(use_with ao libao) \
+ $(use_with joystick) \
+ $(use_enable joystick ui-joystick) \
+ $(use_with xml libxml2) \
+ $(use_with png ) \
+ $(use_enable memlimit smallmem)
+}
+
+src_install() {
+ default
+ doman man/fuse.1
+}
diff --git a/app-emulation/fuse/fuse-1.1.1.ebuild b/app-emulation/fuse/fuse-1.1.1.ebuild
new file mode 100644
index 00000000000..5ed35a4b775
--- /dev/null
+++ b/app-emulation/fuse/fuse-1.1.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit autotools eutils
+
+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 fbcon gpm gtk joystick memlimit png sdl svga X xml"
+
+# This build is heavily use dependent. Fuse user interface use flags are, in
+# order of precedence: gtk, sdl, X, svga and fbcon. X version of fuse will
+# be built if no valid user interface flag is chosen.
+RDEPEND="~app-emulation/libspectrum-1.1.1
+ gtk? ( x11-libs/gtk+:2
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !gtk? (
+ sdl? ( >=media-libs/libsdl-1.2.4 )
+ !sdl? (
+ X? ( x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !X? (
+ svga? ( media-libs/svgalib
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) ) )
+ !svga? (
+ fbcon? (
+ gpm? ( sys-libs/gpm )
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) )
+ !fbcon? ( x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( ao? ( media-libs/libao ) )
+ joystick? ( media-libs/libjsw ) ) ) ) ) )
+ dev-libs/glib:2
+ png? ( media-libs/libpng sys-libs/zlib )
+ xml? ( dev-libs/libxml2 )"
+DEPEND="${RDEPEND}
+ fbcon? ( virtual/linux-sources )
+ dev-lang/perl
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog README THANKS )
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-gold-link-lm.patch"
+ eautoreconf
+}
+
+src_configure() {
+ local guiflag
+
+ if use gtk; then
+ guiflag=""
+ elif use sdl; then
+ guiflag="--with-sdl"
+ elif use X; then
+ guiflag="--without-gtk"
+ elif use svga; then
+ guiflag="--with-svgalib"
+ elif use fbcon; then
+ guiflag="--with-fb"
+ else # We default to X user interface
+ guiflag="--without-gtk"
+ fi
+
+ econf \
+ --without-win32 \
+ ${guiflag} \
+ $(use_with gpm) \
+ $(use_with alsa) \
+ $(use_with ao libao) \
+ $(use_with joystick) \
+ $(use_enable joystick ui-joystick) \
+ $(use_with xml libxml2) \
+ $(use_with png ) \
+ $(use_enable memlimit smallmem)
+}
+
+src_install() {
+ default
+ doman man/fuse.1
+}
diff --git a/app-emulation/fuse/metadata.xml b/app-emulation/fuse/metadata.xml
new file mode 100644
index 00000000000..f7c150dc0ef
--- /dev/null
+++ b/app-emulation/fuse/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>jmfo1982@yahoo.es</email>
+ <description>Proxied Maintainer. Please assign on bugs.</description>
+ <name>José Manuel Ferrer Ortiz</name>
+ </maintainer>
+ <maintainer>
+ <email>neurogeek@gentoo.org</email>
+ <name>Jesus Rivero</name>
+ <description>Proxy Maintainer. Please CC on bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">fuse-emulator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/ganeti-htools/Manifest b/app-emulation/ganeti-htools/Manifest
new file mode 100644
index 00000000000..31b7e2d7be7
--- /dev/null
+++ b/app-emulation/ganeti-htools/Manifest
@@ -0,0 +1,3 @@
+DIST ganeti-htools-0.2.8.tar.gz 236904 SHA256 40574419e07353144e75211b5b524c38cd8e5335589a60ef774851f8e028596d SHA512 a01f29c684456a9fe9023e061892e713c4e89a6e4f9ece01da62cea0eb8ce8fc95a936ba2be351b5dcc0026989054eb4471563475f1c4001f9282d28b996eadc WHIRLPOOL c56fab535149412411301923c936c61f830ecbe4007a3560d5f05de5158d7f90f8b84ab49c3bf3f26e621661e06038893703cb3446c150d54b26130705231500
+DIST ganeti-htools-0.3.0.tar.gz 284839 SHA256 80fcd138cd21f662db226cd30b1efcc08fdaa197c56822809c1c2b58be04a32c SHA512 aa73fed2a99e2fe96f1660b0dd718e9ac3afc6924a25182f5e1ee1eafdccfe43b99986a2f2eefa6bb87b3543565d1fefdf1ef7c9c68ab36dfa9ca677c507945a WHIRLPOOL 0c47f1d330b5cebe69da4598de0a035fdf6e9c7fa65b6cdbe435b1d240d44ef61e2fa9a2ea77f5c1968f61aef5f5885319fef812d32edf934b1bf79b309abc8d
+DIST ganeti-htools-0.3.1.tar.gz 300261 SHA256 c28f3f78594e9dddd8fdc21bc37ce1f1b697d7e9d5d29f1de212705eadea1d7b SHA512 76acc476dc5b3add808db41b7aad4be6ee4b62d31e81eaefa17fbf010daa817bcc920b4e290727ebeddebbe6015017b19d2b7643dbc6d529f158b9746b7a4b43 WHIRLPOOL 1a9c8b4782c1b6265ec647b63c445735a8c2b56dda618aa3a699f1d4ee80838c0e9db51ae84644ade6ef39466cf7dc5aa92687176718c964a1441306e028681c
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch
new file mode 100644
index 00000000000..fd7943fe705
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch
@@ -0,0 +1,14 @@
+diff --git a/Makefile b/Makefile
+index 5e189fc..bfdf175 100644
+--- a/Makefile
++++ b/Makefile
+@@ -20,7 +20,8 @@ $(HALLPROGS): %: %.hs Ganeti/HTools/Version.hs $(HSRCS) Makefile
+
+ test live-test: HEXTRA=-fhpc -Wwarn -fno-warn-missing-signatures \
+ -fno-warn-monomorphism-restriction -fno-warn-orphans \
+- -fno-warn-missing-methods -fno-warn-unused-imports
++ -fno-warn-missing-methods -fno-warn-unused-imports \
++ -package $(shell ghc-pkg list | sed -n '/ QuickCheck-1./p')
+
+ $(DOCS) : %.html : %
+ rst2html -v --strict $< $@
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch
new file mode 100644
index 00000000000..aa0d973a9e4
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch
@@ -0,0 +1,171 @@
+diff --git a/Ganeti/HTools/CLI.hs b/Ganeti/HTools/CLI.hs
+index b000a00..d9177c6 100644
+--- a/Ganeti/HTools/CLI.hs
++++ b/Ganeti/HTools/CLI.hs
+@@ -74,11 +74,11 @@ module Ganeti.HTools.CLI
+
+ import Data.Maybe (fromMaybe)
+ import qualified Data.Version
+-import Monad
++import Control.Monad
+ import System.Console.GetOpt
+ import System.IO
+ import System.Info
+-import System
++import System.Exit
+ import Text.Printf (printf)
+
+ import qualified Ganeti.HTools.Version as Version(version)
+diff --git a/Ganeti/HTools/ExtLoader.hs b/Ganeti/HTools/ExtLoader.hs
+index 0412c1b..17b8449 100644
+--- a/Ganeti/HTools/ExtLoader.hs
++++ b/Ganeti/HTools/ExtLoader.hs
+@@ -36,10 +36,11 @@ module Ganeti.HTools.ExtLoader
+ ) where
+
+ import Data.Maybe (isJust, fromJust)
+-import Monad
++import Control.Monad
++import qualified Control.Exception as E
+ import System.FilePath
+ import System.IO
+-import System
++import System.Exit
+ import Text.Printf (printf, hPrintf)
+
+ import qualified Ganeti.HTools.Luxi as Luxi
+@@ -56,8 +57,8 @@ import Ganeti.HTools.CLI
+ import Ganeti.HTools.Utils (sepSplit, tryRead)
+
+ -- | Error beautifier
+-wrapIO :: IO (Result a) -> IO (Result a)
+-wrapIO = flip catch (return . Bad . show)
++wrapIO :: (Show a) => IO (Result a) -> IO (Result a)
++wrapIO = flip (E.catch :: IO a -> (E.IOException -> IO a) -> IO a) (return . Bad . show )
+
+ parseUtilisation :: String -> Result (String, DynUtil)
+ parseUtilisation line =
+diff --git a/hail.hs b/hail.hs
+index 541e1a9..68f4488 100644
+--- a/hail.hs
++++ b/hail.hs
+@@ -27,10 +27,10 @@ module Main (main) where
+
+ import Data.List
+ import Data.Maybe (isJust, fromJust)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Environment
++import System.Exit
+ import System.IO
+-import qualified System
+
+ import qualified Ganeti.HTools.Cluster as Cluster
+
+@@ -99,7 +99,7 @@ readRequest opts args = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hail" options
+
+ let shownodes = optShowNodes opts
+diff --git a/hbal.hs b/hbal.hs
+index 46cccf8..0254008 100644
+--- a/hbal.hs
++++ b/hbal.hs
+@@ -30,12 +30,12 @@ import Control.Exception (bracket)
+ import Data.List
+ import Data.Maybe (isJust, isNothing, fromJust)
+ import Data.IORef
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
+ import System.IO
++import System.Exit
+ import System.Posix.Process
+ import System.Posix.Signals
+-import qualified System
++import System.Environment
+
+ import Text.Printf (printf, hPrintf)
+
+@@ -223,7 +223,7 @@ runJobSet master fin_nl il cmd_jobs = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hbal" options
+
+ unless (null args) $ do
+diff --git a/hscan.hs b/hscan.hs
+index c14846f..d613f83 100644
+--- a/hscan.hs
++++ b/hscan.hs
+@@ -28,11 +28,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ module Main (main) where
+
+ import Data.Maybe (isJust, fromJust, fromMaybe)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Environment
++import System.Exit
+ import System.IO
+ import System.FilePath
+-import qualified System
+
+ import Text.Printf (printf)
+
+@@ -135,7 +135,7 @@ writeDataInner nlen name opts cdata fixdata = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, clusters) <- parseOpts cmd_args "hscan" options
+ let local = "LOCAL"
+
+diff --git a/hspace.hs b/hspace.hs
+index 57d0302..f207c67 100644
+--- a/hspace.hs
++++ b/hspace.hs
+@@ -29,10 +29,10 @@ import Data.Char (toUpper, isAlphaNum)
+ import Data.List
+ import Data.Maybe (isJust, fromJust)
+ import Data.Ord (comparing)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Exit
++import System.Environment
+ import System.IO
+-import qualified System
+
+ import Text.Printf (printf, hPrintf)
+
+@@ -207,7 +207,7 @@ printAllocationMap verbose msg nl ixes =
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hspace" options
+
+ unless (null args) $ do
+diff --git a/test.hs b/test.hs
+index 12aa50d..81838eb 100644
+--- a/test.hs
++++ b/test.hs
+@@ -29,7 +29,7 @@ import Data.IORef
+ import Test.QuickCheck.Batch
+ import System.IO
+ import System.Exit
+-import System (getArgs)
++import System.Environment (getArgs)
+
+ import Ganeti.HTools.QC
+
diff --git a/app-emulation/ganeti-htools/ganeti-htools-0.2.8.ebuild b/app-emulation/ganeti-htools/ganeti-htools-0.2.8.ebuild
new file mode 100644
index 00000000000..27c8a41499c
--- /dev/null
+++ b/app-emulation/ganeti-htools/ganeti-htools-0.2.8.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib
+
+DESCRIPTION="Cluster tools for fixing common allocation problems on Ganeti 2.0
+clusters"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://ganeti.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-lang/ghc
+ dev-haskell/json
+ dev-haskell/curl
+ dev-haskell/network"
+RDEPEND="${DEPEND}
+ !>=app-emulation/ganeti-2.4"
+DEPEND+=" test? ( dev-haskell/quickcheck:1 )"
+
+src_prepare() {
+ # htools does not currently compile cleanly with ghc-6.12+, so remove this
+ # for now
+ sed -i -e "s:-Werror ::" Makefile
+ epatch "${FILESDIR}"/${P}-use-QC-1.patch #316629
+}
+
+src_compile() {
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ dosbin hspace hscan hbal
+ exeinto /usr/$(get_libdir)/ganeti/iallocators
+ doexe hail
+ doman *.1
+ dodoc README NEWS AUTHORS
+ use doc && dohtml -r apidoc/*
+}
diff --git a/app-emulation/ganeti-htools/ganeti-htools-0.3.0.ebuild b/app-emulation/ganeti-htools/ganeti-htools-0.3.0.ebuild
new file mode 100644
index 00000000000..e62b5fe82dc
--- /dev/null
+++ b/app-emulation/ganeti-htools/ganeti-htools-0.3.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib
+
+DESCRIPTION="Cluster tools for fixing common allocation problems on Ganeti 2.0
+clusters"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://ganeti.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="dev-lang/ghc
+ dev-haskell/json
+ dev-haskell/curl
+ dev-haskell/network
+ dev-haskell/parallel"
+RDEPEND="${DEPEND}
+ !<app-emulation/ganeti-2.4"
+DEPEND+=" test? ( dev-haskell/quickcheck:1 )"
+
+src_prepare() {
+ # htools does not currently compile cleanly with ghc-6.12+, so remove this
+ # for now
+ sed -i -e "s:-Werror ::" Makefile
+ # Workaround to skip pandoc
+ sed -i -e "s:) man:):" Makefile
+ epatch "${FILESDIR}"/${PN}-0.2.8-use-QC-1.patch #316629
+}
+
+src_compile() {
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ dosbin hspace hscan hbal
+ exeinto /usr/$(get_libdir)/ganeti/iallocators
+ doexe hail
+ doman man/*.1
+ dodoc README NEWS AUTHORS
+ use doc && dohtml -r apidoc/*
+}
diff --git a/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild b/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild
new file mode 100644
index 00000000000..45985064000
--- /dev/null
+++ b/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib
+
+DESCRIPTION="Cluster tools for fixing common allocation problems on Ganeti 2.0
+clusters"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://ganeti.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-lang/ghc
+ dev-haskell/json
+ dev-haskell/curl
+ dev-haskell/network
+ dev-haskell/parallel"
+RDEPEND="${DEPEND}
+ !<app-emulation/ganeti-2.4"
+DEPEND+=" test? ( dev-haskell/quickcheck:1 )"
+
+src_prepare() {
+ # htools does not currently compile cleanly with ghc-6.12+, so remove this
+ # for now
+ sed -i -e "s:-Werror ::" Makefile
+ # Workaround to skip pandoc
+ sed -i -e "s:) man:):" Makefile
+ epatch "${FILESDIR}"/${PN}-0.2.8-use-QC-1.patch #316629
+ epatch "${FILESDIR}"/${PN}-0.3.1-base-4.patch #424299
+}
+
+src_compile() {
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ dosbin hspace hscan hbal
+ exeinto /usr/$(get_libdir)/ganeti/iallocators
+ doexe hail
+ doman man/*.1
+ dodoc README NEWS AUTHORS
+ use doc && dohtml -r apidoc/*
+}
diff --git a/app-emulation/ganeti-htools/metadata.xml b/app-emulation/ganeti-htools/metadata.xml
new file mode 100644
index 00000000000..235f15f0353
--- /dev/null
+++ b/app-emulation/ganeti-htools/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <herd>haskell</herd>
+ <longdescription lang="en">
+ These are some simple cluster tools for fixing common allocation
+ problems on Ganeti 2.0 clusters.
+
+ Note that these tools are most useful for bigger cluster sizes
+ (e.g. more than five or ten machines); at lower sizes, the computations
+ they do can also be done manually.
+
+ Most of the tools revolve around the concept of keeping the cluster N+1
+ compliant: this means that in case of failure of any node, the instances
+ affected can be failed over (via ``gnt-node failover`` or ``gnt-instance
+ failover``) to their secondary node, and there is enough memory reserved
+ for this operation without needing to shutdown other instances or
+ rebalance the cluster.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/app-emulation/ganeti-instance-debian-etch/Manifest b/app-emulation/ganeti-instance-debian-etch/Manifest
new file mode 100644
index 00000000000..b6d47a1a25d
--- /dev/null
+++ b/app-emulation/ganeti-instance-debian-etch/Manifest
@@ -0,0 +1 @@
+DIST ganeti-instance-debian-etch-0.4.tar 40960 SHA256 be2175c6007e308a3f7eab0cbe7242aeee892eb2a2d0216011260f3826eea92d SHA512 5c040d849fe0ed1c20231f8f32f1b0a8e8d10e2c45c36ca7cd2843c2b82e868e0d50bbf6eab89db59e50f3e012cf7351da3469dbcd0c21455740d38f8dd481d0 WHIRLPOOL d850f74943f0d210a6f1ced22968c04cfdc095b01470e3cbd96d6c91ec71776dccd2fc5341bf8647ecbc25ae56ec3f5e5683c71ce926d9ffb6e7fc3be350cd55
diff --git a/app-emulation/ganeti-instance-debian-etch/ganeti-instance-debian-etch-0.4.ebuild b/app-emulation/ganeti-instance-debian-etch/ganeti-instance-debian-etch-0.4.ebuild
new file mode 100644
index 00000000000..878ce15d6b5
--- /dev/null
+++ b/app-emulation/ganeti-instance-debian-etch/ganeti-instance-debian-etch-0.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="Debian Etch instance example for Ganeti"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://ganeti.googlecode.com/files/${P}.tar"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~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_install() {
+ dir=/srv/ganeti/os/debian-etch/
+ insinto ${dir}
+ doins "${S}"/*
+ fperms 755 ${dir}/{create,export,import,rename}
+}
diff --git a/app-emulation/ganeti-instance-debian-etch/metadata.xml b/app-emulation/ganeti-instance-debian-etch/metadata.xml
new file mode 100644
index 00000000000..a49a834500b
--- /dev/null
+++ b/app-emulation/ganeti-instance-debian-etch/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">ganeti</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/ganeti-instance-debootstrap/Manifest b/app-emulation/ganeti-instance-debootstrap/Manifest
new file mode 100644
index 00000000000..2ad664a1d26
--- /dev/null
+++ b/app-emulation/ganeti-instance-debootstrap/Manifest
@@ -0,0 +1,3 @@
+DIST ganeti-instance-debootstrap-0.11.tar.gz 67946 SHA256 a80dcffe530473d935a1b14de940c8d437d5bf83dd8a5670d8b7d349f2e91768 SHA512 d39ae29b49e3e0e25e9052ee5201d5aeeedfa229cc0b8674ea01a26b1b615b262c1464ca16b5268884a0fa28981e5126eec084d7bb9298a4b405574925b85b4e WHIRLPOOL 860cd9c757e6b25d7caab5a8706e7f0705ae6c0a01b69bc7513060ce77ea7ea3903c6e00981825f341a0ea40f770744b6c6b3ae5c5bd472df045ac40e28b66b8
+DIST ganeti-instance-debootstrap-0.12.tar.gz 69835 SHA256 c9c516d72ad6581e06c40230ee2d811e8484c03b2542f7610c603a9460ef717e SHA512 5f1813510071addca9bee5e36f7b34a5cbd06f53db8222f6345cb788af8d686aeb94d11ec098eb63b8e11ded18a03c233dd99237f2db9190894bab6189353ab5 WHIRLPOOL ada2c9acb41c6d7a611a6dc9c574a83f7281e262c2cf4c73d70907c598dc209dc161e922d112b048728a118b2c19ffc8e3e12852f074eebf20ec5aec78b570fc
+DIST ganeti-instance-debootstrap-0.9.tar.gz 67353 SHA256 2ee275e349f1949d6483e1675e9ef9c39dd0bd7b051ac199176671b82e99c9cb SHA512 662ae950a7f7f34d2d1f00b49c1b45dd2fa422f922f230f5cc11f95a00eaccc1bf0c468346463dc66f11980262c8151933f8348676ea84ea4114afcc4600015b WHIRLPOOL a62e93a5293ed91917678db0be3c0c3f81b31550bdd1820a3701ed7236a972381a8371ff00f7db29eedffde6bbd47d4d623c3e018d820ed0c19679e292e41282
diff --git a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11.ebuild b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11.ebuild
new file mode 100644
index 00000000000..73b43f8256b
--- /dev/null
+++ b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.11.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+
+inherit eutils
+
+DESCRIPTION="Scripts to build Ganeti VMs with debootstrap"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://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} || die "econf failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "install failed"
+ insinto /etc/ganeti/instance-debootstrap/hooks
+ doins examples/hooks/*
+}
diff --git a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.12.ebuild b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.12.ebuild
new file mode 100644
index 00000000000..65cb9357edd
--- /dev/null
+++ b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.12.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+
+inherit eutils
+
+DESCRIPTION="Scripts to build Ganeti VMs with debootstrap"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://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} || die "econf failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "install failed"
+ insinto /etc/ganeti/instance-debootstrap/hooks
+ doins examples/hooks/*
+}
diff --git a/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.9.ebuild b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.9.ebuild
new file mode 100644
index 00000000000..49cfe2508b7
--- /dev/null
+++ b/app-emulation/ganeti-instance-debootstrap/ganeti-instance-debootstrap-0.9.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+
+inherit eutils
+
+DESCRIPTION="Scripts to build Ganeti VMs with debootstrap"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://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} || die "econf failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "install failed"
+ 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
new file mode 100644
index 00000000000..2ea2a30d3f4
--- /dev/null
+++ b/app-emulation/ganeti-instance-debootstrap/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <longdescription lang="en">This is a guest OS definition for Ganeti (http://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
new file mode 100644
index 00000000000..37f8ab3257d
--- /dev/null
+++ b/app-emulation/ganeti-instance-image/Manifest
@@ -0,0 +1 @@
+DIST ganeti-instance-image-0.6.tar.gz 82534 SHA256 eb8cd0a26acc5b2bd651a1e014688a9f395cef35b4f6393df6a53aeadae1d2fc SHA512 92b5048fe8c40692e8e7c4cb73b21e764660d7cb5f585a8489fc4338eef7df8aae1147d38a849103585a884a0216a0bfb42473d5c1922130e5aada31f5d580c3 WHIRLPOOL d4b04066ad3d11ff995710a7f8932a203a8bc5acb22abe2b202b0e5a84c1075f4f0c7a9d8a18111915abc04a7f67630590edf9f1c520ea6f5960c9e920aa294a
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
new file mode 100644
index 00000000000..589eafa60b7
--- /dev/null
+++ b/app-emulation/ganeti-instance-image/ganeti-instance-image-0.6.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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
+ || ( >=sys-apps/coreutils-6.10-r1 sys-apps/mktemp )
+ 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-instance-image/metadata.xml b/app-emulation/ganeti-instance-image/metadata.xml
new file mode 100644
index 00000000000..cee84c23967
--- /dev/null
+++ b/app-emulation/ganeti-instance-image/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+</pkgmetadata>
+
diff --git a/app-emulation/ganeti/Manifest b/app-emulation/ganeti/Manifest
new file mode 100644
index 00000000000..5180973a850
--- /dev/null
+++ b/app-emulation/ganeti/Manifest
@@ -0,0 +1,7 @@
+DIST ganeti-2.10.5.tar.gz 3855105 SHA256 7b66a0a13344f484bc1d1e90f84227438e2cdbb054f5667a9a4c216bce2b8532 SHA512 ab9fe4c18f975e13dcd403a086b725d4f5e4f84aaa5a2651cf4087b6abad59b38b470ed062f407e6783997f976eb217e755c9d7a3ebde1df63638c3ab63cd755 WHIRLPOOL 5bf83bae29f51cfd2980d3e57a03d25e598ae7495785646e8920d4ca7685d2e93cbac42624e86fbbf92236edd7311f724fa036580300f8ccc066818d3c9911a5
+DIST ganeti-2.11.6.tar.gz 4145886 SHA256 db11659ae7aaab5933b55b35f703236edc91ec763e443ac80679a057ba57af5e SHA512 c68ba0661f7598b2fbd67a96fd897e9a8fe7c3a79e914200c08a8e6cb78ad7ea8a85ce7cfee157e22c07d5f46ae6ed61d946cf2cc3852624cd303deb96f1e449 WHIRLPOOL 9bd0acd85ed86b8d05164d6ee70ea960fd42128f9144739c148e70917675d53c1d808d22df981a1ea0d843dfc5fd14fd516d6d39330634beec7eb0ecae4cbe5b
+DIST ganeti-2.12.1.tar.gz 4353529 SHA256 bd1b33d12485f4de25cca74dcf2e5354067cdda5ee36b56333d402aa1c5351e0 SHA512 92f66b45b5adcfd4cca47a1cbd592489d6c3ec595d3c6ba7b4a9401cb588a51994288499078513d6f4c0369f15a403c796a526945a2e874e8d561aac2b962b7a WHIRLPOOL 60f446b851f0bcee536791ed01d470c7a5caf02b120891e370f491f07194c1b0d9fe991a0342c7f77f3762c4aaea1ae7b7cf731644d061f43f4ba38af36cf699
+DIST ganeti-2.12.3.tar.gz 4373350 SHA256 e66fc4c3dde1e90d85749ceb5c1c90bd6eaed1d139796829833b74337d2d4148 SHA512 7715db8e472e4ac99bf184028cd9853495153485c6638bcddba2d05ce958b6b44d3be07290780bb27b22337ae646881d6b0a30bbe87b7249106ac34d22bdd6c2 WHIRLPOOL e24d695d5acc582905ae7ba003e3fe6e6aa6ea4f9135daf76b953864c392803cd1c6ed81eb0e96652038f289bf450f3ac1a428c46d7a2573bc39a9451a47694e
+DIST ganeti-2.13.0.tar.gz 4573781 SHA256 30ccfa971b15d49b45a4bfb75bb9631c0993adbd7feac0562c11305ae8c13753 SHA512 bd847ae7e12cb978fae59a458a4d0e33fee470c51748964453b5d0ea6615e6d959519c84922e92229e942a88f1ad88a6d1cb655f58391d033d5f5dfc249ef941 WHIRLPOOL 925159e36fde1cd36214b4fe54b4e06958cc8bd3ded28e32bc4f99842aafcb4c53c701c8a651421559dc13b4d18ae2cc11f1b9d1d2da1e862561cca81d009bda
+DIST ganeti-2.14.1.tar.gz 4655994 SHA256 ae90c69f0c02d2ee558363a1c021dfaaaf4ccb59b662a72fa6485b406766e133 SHA512 2d3927bf888ea56df6b6275a869979c53d4b01e2e527e2dddea2a4835c90e85831e9e7691162999e5c58e9d214e03a37690e84f8fde9f1a0631897b06db348c3 WHIRLPOOL 3554161afd646af41e587fffa9dc85788f6ef13102121c636802946b64161cdeaeea326103171b70577b06635eebf6988b2f3942024a944612642aefd92b89bb
+DIST ganeti-2.4.5.tar.gz 1828118 SHA256 9141379f3802238fb209309ec12f7090d872b77d7a473c91fe766d1fcec97c89 SHA512 e3abc2fd7c031fbef41c6e993f4cb129fa1dd4cb8c44961a2574da23832fd8412b8b3664b2e05ba8236cb8e58e8d70c3c9081f3f1b6dba8ffdc28d298c8a5099 WHIRLPOOL 897c2b3cdf0c7b03232a4ec99314439dbd29afd65eb2502d21a9f197cc098323a4b9ec0671c24ef7aad44b5327316ee68731e7e5304c8730d03f8ca908b93b62
diff --git a/app-emulation/ganeti/files/ganeti-2.1.initd b/app-emulation/ganeti/files/ganeti-2.1.initd
new file mode 100644
index 00000000000..111f7546899
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.1.initd
@@ -0,0 +1,112 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need localmount logger
+ after bootmisc
+}
+
+DAEMON_UTIL="/usr/lib/ganeti/daemon-util"
+
+check_config() {
+ if ! $DAEMON_UTIL check-config ; then
+ eend 0 "Incomplete configuration, will not run."
+ fi
+}
+
+check_exitcode() {
+ RC=${1}
+ if errmsg=$(${DAEMON_UTIL} check-exitcode ${RC}) ; then
+ eend 0 "${errmsg}"
+ else
+ eend 1 "${errmsg}"
+ fi
+}
+
+start_action() {
+ # called as start_action daemon-name
+ local daemon="${1}"
+ ebegin "Starting ${daemon}"
+ ${DAEMON_UTIL} start "${@}"
+ check_exitcode ${?}
+}
+
+stop_action() {
+ # called as stop_action daemon-name
+ local daemon="${1}"
+ ebegin "Stopping ${daemon}"
+ ${DAEMON_UTIL} stop "${@}"
+ check_exitcode ${?}
+}
+
+maybe_do() {
+ requested="${1}"; shift
+ action="${1}"; shift
+ target="${1}"
+ if [ -z "${requested}" -o "${requested}" = "${target}" ] ; then
+ ${action} "${@}"
+ fi
+}
+
+get_master_node() {
+ MASTER_NODE="$(gnt-cluster getmaster)"
+ NODE_HOSTNAME="$(hostname -f)"
+ if [ "$MASTER_NODE" == "$NODE_HOSTNAME" ] ; then
+ MASTER=1
+ else
+ MASTER=0
+ fi
+}
+
+start_all() {
+ check_config
+ get_master_node
+ for i in $($DAEMON_UTIL list-start-daemons); do \
+ GANETI_START_OPTS="${GANETI_OPTS}"
+ case "${i}" in
+ ganeti-masterd)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_MASTERD_OPTS}"
+ ;;
+ ganeti-rapid)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_RAPI_OPTS}"
+ ;;
+ ganeti-noded)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_NODED_OPTS}"
+ ;;
+ ganeti-confd)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_CONFD_OPTS}"
+ ;;
+ esac
+ # Don't start if not master
+ if [ $MASTER = 0 -a $i = "ganeti-masterd" ] ; then
+ continue
+ elif [ $MASTER = 0 -a $i = "ganeti-rapi" ] ; then
+ continue
+ else
+ maybe_do "${1}" start_action ${i} ${GANETI_OPTS}
+ fi
+ done
+}
+
+stop_all() {
+ get_master_node
+ for i in $($DAEMON_UTIL list-stop-daemons) ; do \
+ if [ $MASTER = 0 -a $i = "ganeti-masterd" ] ; then
+ continue
+ elif [ $MASTER = 0 -a $i = "ganeti-rapi" ] ; then
+ continue
+ else
+ maybe_do "${1}" stop_action ${i} ${GANETI_OPTS}
+ fi
+ done
+}
+
+start() {
+ start_all
+}
+
+stop() {
+ stop_all
+}
diff --git a/app-emulation/ganeti/files/ganeti-2.10-rundir.patch b/app-emulation/ganeti/files/ganeti-2.10-rundir.patch
new file mode 100644
index 00000000000..a723f2b63d8
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.10-rundir.patch
@@ -0,0 +1,35 @@
+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
new file mode 100644
index 00000000000..b0a8bd99cc0
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-add-pgrep.patch
@@ -0,0 +1,25 @@
+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
new file mode 100644
index 00000000000..b60a8505776
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-daemon-util-tests.patch
@@ -0,0 +1,38 @@
+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-daemon-util.patch b/app-emulation/ganeti/files/ganeti-2.11-daemon-util.patch
new file mode 100644
index 00000000000..09b10cd3354
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-daemon-util.patch
@@ -0,0 +1,38 @@
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 01f2cbb..de4e396 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -22,18 +22,25 @@ set -e
+
+ @SHELL_ENV_INIT@
+
+-readonly defaults_file="$SYSCONFDIR/default/ganeti"
++readonly defaults_file="$SYSCONFDIR/conf.d/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-masterd
+- ganeti-rapi
+- ganeti-luxid
+- ganeti-kvmd
+- )
++
++DAEMONS=( ganeti-noded )
++
++_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-masterd ganeti-rapi ganeti-luxid )
++fi
++
++DAEMONS+=( ganeti-kvmd )
+
+ _confd_enabled() {
+ [[ "@CUSTOM_ENABLE_CONFD@" == True ]]
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
new file mode 100644
index 00000000000..134b9d7bcac
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-dont-nest-libdir.patch
@@ -0,0 +1,49 @@
+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
new file mode 100644
index 00000000000..42b90deb659
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-dont-print-man-help.patch
@@ -0,0 +1,13 @@
+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-qemu-enable-kvm.patch b/app-emulation/ganeti/files/ganeti-2.11-qemu-enable-kvm.patch
new file mode 100644
index 00000000000..f2cce0c759d
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-qemu-enable-kvm.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py
+index b61be65..100aafd 100644
+--- a/lib/hypervisor/hv_kvm.py
++++ b/lib/hypervisor/hv_kvm.py
+@@ -1380,6 +1380,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
+ kvm = hvp[constants.HV_KVM_PATH]
+ kvm_cmd = [kvm]
+ # used just by the vnc server, if enabled
++ kvm_cmd.extend(["-enable-kvm"])
+ kvm_cmd.extend(["-name", instance.name])
+ kvm_cmd.extend(["-m", instance.beparams[constants.BE_MAXMEM]])
+
diff --git a/app-emulation/ganeti/files/ganeti-2.11-regex-builtin.patch b/app-emulation/ganeti/files/ganeti-2.11-regex-builtin.patch
new file mode 100644
index 00000000000..08ef3778ca5
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-regex-builtin.patch
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index d70db62..f94043f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -612,8 +612,8 @@ CONFD_PKG=
+ # if a new confd dependency is needed, add it here like:
+ # AC_GHC_PKG_CHECK([somepkg], [], [HS_NODEV=1; CONFD_PKG="$CONFD_PKG somepkg"])
+ HS_REGEX_PCRE=-DNO_REGEX_PCRE
+-AC_GHC_PKG_CHECK([regex-pcre], [HS_REGEX_PCRE=],
+- [HS_NODEV=1; CONFD_PKG="$CONFD_PKG regex-pcre"])
++AC_GHC_PKG_CHECK([regex-pcre-builtin], [HS_REGEX_PCRE=],
++ [HS_NODEV=1; CONFD_PKG="$CONFD_PKG regex-pcre-builtin"])
+
+ has_confd=False
+ if test "$enable_confd" != no; then
diff --git a/app-emulation/ganeti/files/ganeti-2.11-start-stop-daemon-args.patch b/app-emulation/ganeti/files/ganeti-2.11-start-stop-daemon-args.patch
new file mode 100644
index 00000000000..6f90233847e
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-start-stop-daemon-args.patch
@@ -0,0 +1,39 @@
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 4d1d7c5..3deeab7 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -246,10 +246,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
+@@ -273,7 +274,7 @@ stop() {
+ local pidfile=$(_daemon_pidfile $name)
+
+ if 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
+@@ -348,8 +348,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.11-tests.patch b/app-emulation/ganeti/files/ganeti-2.11-tests.patch
new file mode 100644
index 00000000000..fd0a9f60671
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-tests.patch
@@ -0,0 +1,13 @@
+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.11-useradd.patch b/app-emulation/ganeti/files/ganeti-2.11-useradd.patch
new file mode 100644
index 00000000000..d546921bd9b
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.11-useradd.patch
@@ -0,0 +1,17 @@
+diff --git a/Makefile.am b/Makefile.am
+index 7666d18..a8b6396 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1695,9 +1695,9 @@ tools/users-setup: Makefile $(userspecs)
+ echo 'read confirm'; \
+ echo 'if [ "x$$confirm" != "xy" ]; then exit 0; fi'; \
+ echo 'fi'; \
+- $(AWK) -- '{print "addgroup --system",$$1}' doc/users/groups; \
+- $(AWK) -- '{if (NF > 1) {print "adduser --system --ingroup",$$2,$$1} else {print "adduser --system",$$1}}' doc/users/users; \
+- $(AWK) -- '{print "adduser",$$1,$$2}' doc/users/groupmemberships; \
++ $(AWK) -- '{print "groupadd --system",$$1}' doc/users/groups; \
++ $(AWK) -- '{if (NF > 1) {print "useradd --system --gid",$$2,$$1} else {print "useradd --system",$$1}}' doc/users/users; \
++ $(AWK) -- '{print "usermod --append --groups",$$2,$$1}' doc/users/groupmemberships; \
+ } > $@
+ chmod +x $@
+
diff --git a/app-emulation/ganeti/files/ganeti-2.12-cfgupgrade-state.patch b/app-emulation/ganeti/files/ganeti-2.12-cfgupgrade-state.patch
new file mode 100644
index 00000000000..42841f90593
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12-cfgupgrade-state.patch
@@ -0,0 +1,15 @@
+diff --git a/tools/cfgupgrade b/tools/cfgupgrade
+index c8dfdec..0f886b2 100755
+--- a/tools/cfgupgrade
++++ b/tools/cfgupgrade
+@@ -169,6 +169,10 @@ def UpgradeCluster(config_data):
+ cluster.get("zeroing_image", "")
+ cluster["compression_tools"] = \
+ cluster.get("compression_tools", constants.IEC_DEFAULT_TOOLS)
++ cluster["hv_state_static"] = \
++ cluster.get("hv_state_static", {})
++ cluster["disk_state_static"] = \
++ cluster.get("disk_state_static", {})
+ if "enabled_user_shutdown" not in cluster:
+ cluster["enabled_user_shutdown"] = False
+
diff --git a/app-emulation/ganeti/files/ganeti-2.12-daemon-util.patch b/app-emulation/ganeti/files/ganeti-2.12-daemon-util.patch
new file mode 100644
index 00000000000..79bda3c989f
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12-daemon-util.patch
@@ -0,0 +1,37 @@
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 6a47253..5d7c4cf 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -31,18 +31,24 @@ set -e
+
+ @SHELL_ENV_INIT@
+
+-readonly defaults_file="$SYSCONFDIR/default/ganeti"
++readonly defaults_file="$SYSCONFDIR/conf.d/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-wconfd
+- ganeti-rapi
+- ganeti-luxid
+- ganeti-kvmd
+- )
++DAEMONS=( ganeti-noded )
++
++_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 )
+
+ # This is the list of daemons that are loaded on demand; they should only be
+ # stopped, not started.
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
new file mode 100644
index 00000000000..b199ff09367
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12-qemu-enable-kvm.patch
@@ -0,0 +1,12 @@
+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
new file mode 100644
index 00000000000..463ff26095a
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12-start-stop-daemon-args.patch
@@ -0,0 +1,39 @@
+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.12-tests.patch b/app-emulation/ganeti/files/ganeti-2.12-tests.patch
new file mode 100644
index 00000000000..dcf9b5184a0
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12-tests.patch
@@ -0,0 +1,59 @@
+diff --git a/test/hs/Test/Ganeti/Runtime.hs b/test/hs/Test/Ganeti/Runtime.hs
+index b15aa36..a805869 100644
+--- a/test/hs/Test/Ganeti/Runtime.hs
++++ b/test/hs/Test/Ganeti/Runtime.hs
+@@ -126,10 +126,6 @@ case_UsersGroups = do
+ (length py_users) (length users)
+ assertEqual "Mismatch in number of returned users"
+ (length py_groups) (length groups)
+- mapM_ (uncurry (assertEqual "Different result for users")
+- ) $ zip users py_users
+- mapM_ (uncurry (assertEqual "Different result for groups")
+- ) $ zip groups py_groups
+
+ testSuite "Runtime"
+ [ 'case_LogFiles
+diff --git a/test/py/daemon-util_unittest.bash b/test/py/daemon-util_unittest.bash
+index edaeac5..1ee6eae 100755
+--- a/test/py/daemon-util_unittest.bash
++++ b/test/py/daemon-util_unittest.bash
+@@ -45,8 +45,8 @@ if ! grep -q '^ENABLE_MOND = ' lib/_constants.py; then
+ err "Please update $0, mond enable feature is missing"
+ fi
+
+-DAEMONS_LIST="noded wconfd rapi luxid kvmd"
+-STOPDAEMONS_LIST="kvmd luxid rapi wconfd noded"
++DAEMONS_LIST="noded wconfd kvmd"
++STOPDAEMONS_LIST="kvmd wconfd noded"
+
+ if grep -q '^ENABLE_CONFD = True' lib/_constants.py; then
+ DAEMONS_LIST="$DAEMONS_LIST confd"
+diff --git a/test/py/ganeti.utils.process_unittest.py b/test/py/ganeti.utils.process_unittest.py
+index 7d4cbb6..08752fe 100755
+--- a/test/py/ganeti.utils.process_unittest.py
++++ b/test/py/ganeti.utils.process_unittest.py
+@@ -274,7 +274,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" %
+@@ -289,15 +289,6 @@ class TestRunCmd(testutils.GanetiTestCase):
+ self.assert_(status < 0)
+ self.assertEqual(-status, signal.SIGKILL)
+
+- def testTimeoutOutputAfterTerm(self):
+- cmd = ("trap 'echo sigtermed; exit 1' TERM; echo >&%d; read < %s" %
+- (self.proc_ready_helper.write_fd, self.fifo_file))
+- 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.assert_(result.failed)
+- self.assertEqual(result.stdout, "sigtermed\n")
+-
+ def testListRun(self):
+ """Test list runs"""
+ result = utils.RunCmd(["true"])
diff --git a/app-emulation/ganeti/files/ganeti-2.12.3-daemon-util.patch b/app-emulation/ganeti/files/ganeti-2.12.3-daemon-util.patch
new file mode 100644
index 00000000000..2f6bfa3208d
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.12.3-daemon-util.patch
@@ -0,0 +1,37 @@
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 6a47253..d7afd84 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -31,18 +31,24 @@ set -e
+
+ @SHELL_ENV_INIT@
+
+-readonly defaults_file="$SYSCONFDIR/default/ganeti"
++readonly defaults_file="$SYSCONFDIR/conf.d/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-wconfd
+- ganeti-rapi
+- ganeti-luxid
+- ganeti-kvmd
+- )
++DAEMONS=( ganeti-noded )
++
++_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 )
+
+ # This is the list of daemons that are loaded on demand; they should only be
+ # stopped, not started.
diff --git a/app-emulation/ganeti/files/ganeti-2.13-daemon-util.patch b/app-emulation/ganeti/files/ganeti-2.13-daemon-util.patch
new file mode 100644
index 00000000000..5d8dedfe89d
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.13-daemon-util.patch
@@ -0,0 +1,46 @@
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 7636fc9..e93370f 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -31,25 +31,28 @@ 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 )
++else
++ DAEMONS+=( ganeti-rapi )
++fi
++
++DAEMONS+=( ganeti-kvmd )
+
+ _mond_enabled() {
+ [[ "@CUSTOM_ENABLE_MOND@" == True ]]
diff --git a/app-emulation/ganeti/files/ganeti-2.13-disable-usersgroups-test.patch b/app-emulation/ganeti/files/ganeti-2.13-disable-usersgroups-test.patch
new file mode 100644
index 00000000000..6e81b515d83
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.13-disable-usersgroups-test.patch
@@ -0,0 +1,68 @@
+diff --git a/test/hs/Test/Ganeti/Runtime.hs b/test/hs/Test/Ganeti/Runtime.hs
+index b15aa36..7aa75ca 100644
+--- a/test/hs/Test/Ganeti/Runtime.hs
++++ b/test/hs/Test/Ganeti/Runtime.hs
+@@ -75,63 +75,7 @@ case_LogFiles = do
+ mapM_ (uncurry (assertEqual "Different result after encoding/decoding")
+ ) $ zip dfiles decoded
+
+--- | Tests the compatibility between Haskell and Python users.
+-case_UsersGroups :: Assertion
+-case_UsersGroups = do
+- -- note: we don't have here a programatic way to list all users, so
+- -- we harcode some parts of the two (hs/py) lists
+- let daemons = [minBound..maxBound]::[GanetiDaemon]
+- users = map daemonUser daemons
+- groups = map daemonGroup $
+- map DaemonGroup daemons ++ map ExtraGroup [minBound..maxBound]
+- py_stdout <-
+- runPython "from ganeti import constants\n\
+- \from ganeti import serializer\n\
+- \import sys\n\
+- \users = [constants.MASTERD_USER,\n\
+- \ constants.NODED_USER,\n\
+- \ constants.RAPI_USER,\n\
+- \ constants.CONFD_USER,\n\
+- \ constants.WCONFD_USER,\n\
+- \ constants.KVMD_USER,\n\
+- \ constants.LUXID_USER,\n\
+- \ constants.METAD_USER,\n\
+- \ constants.MOND_USER,\n\
+- \ ]\n\
+- \groups = [constants.MASTERD_GROUP,\n\
+- \ constants.NODED_GROUP,\n\
+- \ constants.RAPI_GROUP,\n\
+- \ constants.CONFD_GROUP,\n\
+- \ constants.WCONFD_GROUP,\n\
+- \ constants.KVMD_GROUP,\n\
+- \ constants.LUXID_GROUP,\n\
+- \ constants.METAD_GROUP,\n\
+- \ constants.MOND_GROUP,\n\
+- \ constants.DAEMONS_GROUP,\n\
+- \ constants.ADMIN_GROUP,\n\
+- \ ]\n\
+- \encoded = (users, groups)\n\
+- \print serializer.Dump(encoded)" ""
+- >>= checkPythonResult
+- let deserialised = J.decode py_stdout::J.Result ([String], [String])
+- (py_users, py_groups) <-
+- case deserialised of
+- J.Ok ops -> return ops
+- J.Error msg ->
+- assertFailure ("Unable to decode users/groups: " ++ msg)
+- -- this already raised an expection, but we need it for proper
+- -- types
+- >> fail "Unable to decode users/groups"
+- assertEqual "Mismatch in number of returned users"
+- (length py_users) (length users)
+- assertEqual "Mismatch in number of returned users"
+- (length py_groups) (length groups)
+- mapM_ (uncurry (assertEqual "Different result for users")
+- ) $ zip users py_users
+- mapM_ (uncurry (assertEqual "Different result for groups")
+- ) $ zip groups py_groups
+
+ testSuite "Runtime"
+ [ 'case_LogFiles
+- , 'case_UsersGroups
+ ]
diff --git a/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch b/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch
new file mode 100644
index 00000000000..4001ac5aa4d
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.13-process_unittest.patch
@@ -0,0 +1,21 @@
+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.13-regex-pcre-builtin.patch b/app-emulation/ganeti/files/ganeti-2.13-regex-pcre-builtin.patch
new file mode 100644
index 00000000000..ced966fbe6e
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.13-regex-pcre-builtin.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index e014d7a..024e584 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -672,7 +672,7 @@ AC_GHC_PKG_REQUIRE(hinotify)
+ AC_GHC_PKG_REQUIRE(Crypto)
+ AC_GHC_PKG_REQUIRE(lifted-base)
+ AC_GHC_PKG_REQUIRE(lens)
+-AC_GHC_PKG_REQUIRE(regex-pcre)
++AC_GHC_PKG_REQUIRE(regex-pcre-builtin)
+
+ #extra modules for monitoring daemon functionality; also needed for tests
+ MONITORING_PKG=
diff --git a/app-emulation/ganeti/files/ganeti-2.2.initd b/app-emulation/ganeti/files/ganeti-2.2.initd
new file mode 100644
index 00000000000..a270ac831e9
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.2.initd
@@ -0,0 +1,113 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need localmount logger
+ after bootmisc
+ use net
+}
+
+DAEMON_UTIL="/usr/lib/ganeti/daemon-util"
+
+check_config() {
+ if ! $DAEMON_UTIL check-config ; then
+ eend 0 "Incomplete configuration, will not run."
+ fi
+}
+
+check_exitcode() {
+ RC=${1}
+ if errmsg=$(${DAEMON_UTIL} check-exitcode ${RC}) ; then
+ eend 0 "${errmsg}"
+ else
+ eend 1 "${errmsg}"
+ fi
+}
+
+start_action() {
+ # called as start_action daemon-name
+ local daemon="${1}"
+ ebegin "Starting ${daemon}"
+ ${DAEMON_UTIL} start "${@}"
+ check_exitcode ${?}
+}
+
+stop_action() {
+ # called as stop_action daemon-name
+ local daemon="${1}"
+ ebegin "Stopping ${daemon}"
+ ${DAEMON_UTIL} stop "${@}"
+ check_exitcode ${?}
+}
+
+maybe_do() {
+ requested="${1}"; shift
+ action="${1}"; shift
+ target="${1}"
+ if [ -z "${requested}" -o "${requested}" = "${target}" ] ; then
+ ${action} "${@}"
+ fi
+}
+
+get_master_node() {
+ MASTER_NODE="$(gnt-cluster getmaster)"
+ NODE_HOSTNAME="$(hostname -f)"
+ if [ "$MASTER_NODE" == "$NODE_HOSTNAME" ] ; then
+ MASTER=1
+ else
+ MASTER=0
+ fi
+}
+
+start_all() {
+ check_config
+ get_master_node
+ for i in $($DAEMON_UTIL list-start-daemons); do \
+ GANETI_START_OPTS="${GANETI_OPTS}"
+ case "${i}" in
+ ganeti-masterd)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_MASTERD_OPTS}"
+ ;;
+ ganeti-rapid)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_RAPI_OPTS}"
+ ;;
+ ganeti-noded)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_NODED_OPTS}"
+ ;;
+ ganeti-confd)
+ GANETI_OPTS="${GANETI_START_OPTS} ${GANETI_CONFD_OPTS}"
+ ;;
+ esac
+ # Don't start if not master
+ if [ $MASTER = 0 -a $i = "ganeti-masterd" ] ; then
+ continue
+ elif [ $MASTER = 0 -a $i = "ganeti-rapi" ] ; then
+ continue
+ else
+ maybe_do "${1}" start_action ${i} ${GANETI_OPTS}
+ fi
+ done
+}
+
+stop_all() {
+ get_master_node
+ for i in $($DAEMON_UTIL list-stop-daemons) ; do \
+ if [ $MASTER = 0 -a $i = "ganeti-masterd" ] ; then
+ continue
+ elif [ $MASTER = 0 -a $i = "ganeti-rapi" ] ; then
+ continue
+ else
+ maybe_do "${1}" stop_action ${i} ${GANETI_OPTS}
+ fi
+ done
+}
+
+start() {
+ start_all
+}
+
+stop() {
+ stop_all
+}
diff --git a/app-emulation/ganeti/files/ganeti-2.6-add-pgrep.patch b/app-emulation/ganeti/files/ganeti-2.6-add-pgrep.patch
new file mode 100644
index 00000000000..c69128229a6
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.6-add-pgrep.patch
@@ -0,0 +1,38 @@
+From 49767a66e27a1cb61abb8f812b2e61eba03a9594 Mon Sep 17 00:00:00 2001
+From: Lance Albertson <lance@osuosl.org>
+Date: Wed, 25 Jul 2012 16:21:21 -0700
+Subject: [PATCH 2/2] Check if process is already running and skip if so
+
+Gentoo uses a modified version of start-stop-daemon which returns an error if it
+sees another process running with the same name. This happens during cluster
+initialization since ganeti-noded gets fired off first.
+---
+ daemons/daemon-util.in | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index c19daa7..7be9d8b 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -222,11 +222,13 @@ start() {
+ @PKGLIBDIR@/ensure-dirs
+
+ if type -p start-stop-daemon >/dev/null; then
+- start-stop-daemon --start --quiet \
+- --pidfile $pidfile \
+- --exec $daemonexec \
+- --user $usergroup \
+- -- $args "$@"
++ if ! ret=$(/usr/bin/pgrep $name) ; then
++ start-stop-daemon --start --quiet \
++ --pidfile $pidfile \
++ --exec $daemonexec \
++ --user $usergroup \
++ -- $args "$@"
++ fi
+ else
+ # TODO: Find a way to start daemon with a group, until then the group must
+ # be removed
+--
+1.7.9.5
+
diff --git a/app-emulation/ganeti/files/ganeti-2.6-fix-args.patch b/app-emulation/ganeti/files/ganeti-2.6-fix-args.patch
new file mode 100644
index 00000000000..6fb5bd0df62
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.6-fix-args.patch
@@ -0,0 +1,45 @@
+From 0491397d7648fd70ad0a6cef9e8626b9c2a968e9 Mon Sep 17 00:00:00 2001
+From: Lance Albertson <ramereth@gmail.com>
+Date: Mon, 8 Aug 2011 23:34:33 -0700
+Subject: [PATCH 1/2] Remove/fix deprecated start-stop-daemon functions
+
+daemon-util uses the deprecated functions --startas, --chuid and, most
+importantly, --oknodo. The last one causes start-stop-daemon to exit with a
+non-zero status, which makes openrc think it crashed (when in reality it just
+shut down properly) [1].
+
+[1] https://bugs.gentoo.org/show_bug.cgi?id=377905
+---
+ daemons/daemon-util.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index b754e7f..c19daa7 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -222,10 +222,10 @@ 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 \
+ -- $args "$@"
+ else
+ # TODO: Find a way to start daemon with a group, until then the group must
+@@ -248,7 +248,7 @@ stop() {
+ local pidfile=$(_daemon_pidfile $name)
+
+ if 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
+--
+1.7.9.5
+
diff --git a/app-emulation/ganeti/files/ganeti-2.7-fix-tests.patch b/app-emulation/ganeti/files/ganeti-2.7-fix-tests.patch
new file mode 100644
index 00000000000..b3b5ad17f2b
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.7-fix-tests.patch
@@ -0,0 +1,30 @@
+diff --git a/test/py/ganeti.hooks_unittest.py b/test/py/ganeti.hooks_unittest.py
+index 30e00d8..50f91fc 100755
+--- a/test/py/ganeti.hooks_unittest.py
++++ b/test/py/ganeti.hooks_unittest.py
+@@ -192,7 +192,7 @@ class TestHooksRunner(unittest.TestCase):
+ os.symlink("/usr/bin/env", fname)
+ self.torm.append((fname, False))
+ env_snt = {"PHASE": phase}
+- env_exp = "PHASE=%s" % phase
++ env_exp = "LD_PRELOAD=libsandbox.so\\nPHASE=%s" % phase
+ self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, env_snt),
+ [(self._rname(fname), HKR_SUCCESS, env_exp)])
+
+diff --git a/test/py/ganeti.utils.process_unittest.py b/test/py/ganeti.utils.process_unittest.py
+index 2e36cfa..e0392b2 100755
+--- a/test/py/ganeti.utils.process_unittest.py
++++ b/test/py/ganeti.utils.process_unittest.py
+@@ -341,10 +341,10 @@ class TestRunCmd(testutils.GanetiTestCase):
+ def testResetEnv(self):
+ """Test environment reset functionality"""
+ self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True).stdout.strip(),
+- "")
++ "LD_PRELOAD=libsandbox.so")
+ self.failUnlessEqual(utils.RunCmd(["env"], reset_env=True,
+ env={"FOO": "bar",}).stdout.strip(),
+- "FOO=bar")
++ "LD_PRELOAD=libsandbox.so\nFOO=bar")
+
+ def testNoFork(self):
+ """Test that nofork raise an error"""
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
new file mode 100644
index 00000000000..932258b93a3
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.9-disable-root-tests.patch
@@ -0,0 +1,18 @@
+--- 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-regex-builtin.patch b/app-emulation/ganeti/files/ganeti-2.9-regex-builtin.patch
new file mode 100644
index 00000000000..f9aba9d4e2e
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.9-regex-builtin.patch
@@ -0,0 +1,22 @@
+--- configure.ac.orig 2013-11-13 01:56:03.819694900 +0000
++++ configure.ac 2013-11-13 01:56:34.350116602 +0000
+@@ -493,8 +493,8 @@
+ has_confd=False
+ if test "$enable_confd" != no; then
+ CONFD_PKG=
+- AC_GHC_PKG_CHECK([regex-pcre], [HS_REGEX_PCRE=],
+- [CONFD_PKG="$CONFD_PKG regex-pcre"])
++ AC_GHC_PKG_CHECK([regex-pcre-builtin], [HS_REGEX_PCRE=],
++ [CONFD_PKG="$CONFD_PKG regex-pcre-builtin"])
+ AC_GHC_PKG_CHECK([Crypto], [], [CONFD_PKG="$CONFD_PKG Crypto"])
+ AC_GHC_PKG_CHECK([text], [], [CONFD_PKG="$CONFD_PKG text"])
+ AC_GHC_PKG_CHECK([hinotify], [], [CONFD_PKG="$CONFD_PKG hinotify"])
+@@ -578,7 +578,7 @@
+ AC_GHC_PKG_CHECK([vector], [], [HS_NODEV=1])
+ AC_GHC_PKG_CHECK([process], [], [HS_NODEV=1])
+ AC_GHC_PKG_CHECK([snap-server], [], [HS_NODEV=1])
+-AC_GHC_PKG_CHECK([regex-pcre], [], [HS_NODEV=1])
++AC_GHC_PKG_CHECK([regex-pcre-builtin], [], [HS_NODEV=1])
+ AC_GHC_PKG_CHECK([Crypto], [], [HS_NODEV=1])
+ AC_GHC_PKG_CHECK([text], [], [HS_NODEV=1])
+ AC_GHC_PKG_CHECK([hinotify], [], [HS_NODEV=1])
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
new file mode 100644
index 00000000000..7e1badc96fc
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-2.9-skip-cli-test.patch
@@ -0,0 +1,18 @@
+--- Makefile.am.orig 2013-11-13 02:19:49.198992622 +0000
++++ 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-fix-start-stop.patch b/app-emulation/ganeti/files/ganeti-fix-start-stop.patch
new file mode 100644
index 00000000000..e53161a00b2
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-fix-start-stop.patch
@@ -0,0 +1,47 @@
+From 9f8f304c983635e0ead6adadd1c4a62be6e92e01 Mon Sep 17 00:00:00 2001
+From: Lance Albertson <ramereth@gmail.com>
+Date: Mon, 8 Aug 2011 23:34:33 -0700
+Subject: [PATCH] Remove/fix deprecated start-stop-daemon functions
+
+daemon-util uses the deprecated functions --startas, --chuid and, most
+importantly, --oknodo. The last one causes start-stop-daemon to exit with a
+non-zero status, which makes openrc think it crashed (when in reality it just
+shut down properly) [1].
+
+[1] https://bugs.gentoo.org/show_bug.cgi?id=377905
+
+Signed-off-by: Lance Albertson <ramereth@gmail.com>
+---
+ daemons/daemon-util.in | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/daemons/daemon-util.in b/daemons/daemon-util.in
+index 819fd6b..00fe1b6 100644
+--- a/daemons/daemon-util.in
++++ b/daemons/daemon-util.in
+@@ -172,10 +172,10 @@ start() {
+
+ @PKGLIBDIR@/ensure-dirs
+
+- start-stop-daemon --start --quiet --oknodo \
++ start-stop-daemon --start --quiet \
+ --pidfile $(_daemon_pidfile $name) \
+- --startas $(_daemon_executable $name) \
+- --chuid $(_daemon_usergroup $plain_name) \
++ --exec $(_daemon_executable $name) \
++ --user $(_daemon_usergroup $plain_name) \
+ -- $args "$@"
+ }
+
+@@ -188,7 +188,7 @@ stop() {
+
+ local name="$1"; shift
+
+- start-stop-daemon --stop --quiet --oknodo --retry 30 \
++ start-stop-daemon --stop --quiet --retry 30 \
+ --pidfile $(_daemon_pidfile $name)
+ }
+
+--
+1.7.4.1
+
diff --git a/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd b/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd
new file mode 100644
index 00000000000..6ab21c3709a
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-kvm-poweroff.confd
@@ -0,0 +1,4 @@
+# /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
new file mode 100644
index 00000000000..967f0acff78
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-kvm-poweroff.initd
@@ -0,0 +1,58 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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
+
+ echo -n "."
+ 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
+ let remaining-=5 1
+ 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
new file mode 100644
index 00000000000..dad084fa430
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti-lockdir.patch
@@ -0,0 +1,15 @@
+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 b/app-emulation/ganeti/files/ganeti.confd
new file mode 100644
index 00000000000..3b71d7ee44a
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti.confd
@@ -0,0 +1,16 @@
+# /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=""
diff --git a/app-emulation/ganeti/files/ganeti.confd-r2 b/app-emulation/ganeti/files/ganeti.confd-r2
new file mode 100644
index 00000000000..0f2e69f3d5e
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti.confd-r2
@@ -0,0 +1,19 @@
+# /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 b/app-emulation/ganeti/files/ganeti.initd
new file mode 100644
index 00000000000..8d31f169849
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti.initd
@@ -0,0 +1,57 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need localmount xend drbd
+ before ganeti-kvm-poweroff
+ after bootmisc nfsmount
+}
+
+checkconfig() {
+ for fname in /var/lib/ganeti/ssconf_node_pass /var/lib/ganeti/server.pem
+ do
+ if [[ ! -f "$fname" ]]
+ then
+ eerror "Config file $fname not found, will not run."
+ return 1
+ fi
+ done
+
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting ganeti-master"
+ /usr/sbin/ganeti-master start
+ ret=$?
+ eend ${ret}
+ [[ "${ret}" != 0 ]] && return 1
+
+ ebegin "Starting ganeti-noded"
+ start-stop-daemon --start --quiet --exec /usr/sbin/ganeti-noded
+ ret=$?
+ eend ${ret}
+ [[ "${ret}" != 0 ]] && return 1
+
+ return 0
+}
+
+stop() {
+ ebegin "Stopping ganeti-noded"
+ start-stop-daemon --stop --quiet --name ganeti-noded
+ ret=$?
+ eend ${ret}
+ [[ "${ret}" != 0 ]] && return 1
+
+ ebegin "Stopping ganeti-master"
+ /usr/sbin/ganeti-master start
+ ret=$?
+ eend ${ret}
+ [[ "${ret}" != 0 ]] && return 1
+
+ return 0
+}
diff --git a/app-emulation/ganeti/files/ganeti.initd-r3 b/app-emulation/ganeti/files/ganeti.initd-r3
new file mode 100644
index 00000000000..d425fd0dccc
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti.initd-r3
@@ -0,0 +1,83 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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}" ]
+}
+
+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="${daemon//-/_}"
+
+ case "${daemon#ganeti-}" in
+ masterd|rapi|luxid) is_master || continue;;
+ esac
+
+ eval daemon_opts=\"\$\{${optsvar^^*}_OPTS\}\"
+
+ ebegin "Starting ${daemon}"
+ eindent
+ ${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/ganeti2.initd b/app-emulation/ganeti/files/ganeti2.initd
new file mode 100644
index 00000000000..74a748a73e3
--- /dev/null
+++ b/app-emulation/ganeti/files/ganeti2.initd
@@ -0,0 +1,55 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need localmount drbd
+ after bootmisc
+}
+
+checkconfig() {
+ for fname in /var/lib/ganeti/server.pem
+ do
+ if [[ ! -f "$fname" ]]
+ then
+ eerror "Config file $fname not found, will not run."
+ return 1
+ fi
+ done
+
+ return 0
+}
+
+start_action() {
+ # called as start_action daemon pidfile
+ local daemon="${1}"; shift
+ local pidfile="${1}"; shift
+ ebegin "Starting ${daemon}"
+ start-stop-daemon --start --quiet --exec "${daemon}" --pidfile "${pidfile}" \
+ -- "${@}"
+ eend ${?}
+}
+
+stop_action() {
+ # called as stop_action daemon pidfile
+ ebegin "Stopping ${1}"
+ start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile "${2}"
+ eend ${?}
+}
+
+
+start() {
+ checkconfig || return 1
+ start_action /usr/sbin/ganeti-noded /var/run/ganeti/ganeti-noded.pid
+ start_action /usr/sbin/ganeti-masterd /var/run/ganeti/ganeti-masterd.pid
+ start_action /usr/sbin/ganeti-rapi /var/run/ganeti/ganeti-rapi.pid
+ return 0
+}
+
+stop() {
+ stop_action /usr/sbin/ganeti-rapi /var/run/ganeti/ganeti-rapi.pid
+ stop_action /usr/sbin/ganeti-masterd /var/run/ganeti/ganeti-masterd.pid
+ stop_action /usr/sbin/ganeti-noded /var/run/ganeti/ganeti-noded.pid
+ return 0
+}
diff --git a/app-emulation/ganeti/ganeti-2.10.5-r4.ebuild b/app-emulation/ganeti/ganeti-2.10.5-r4.ebuild
new file mode 100644
index 00000000000..c166144f5b5
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.10.5-r4.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils confutils autotools bash-completion-r1 python-single-r1 versionator
+
+MY_PV="${PV/_rc/~rc}"
+#MY_PV="${PV/_beta/~beta}"
+MY_P="${PN}-${MY_PV}"
+SERIES="$(get_version_component_range 1-2)"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
+ inherit git-2
+ KEYWORDS=""
+ # you will need to pull in the haskell overlay for pandoc
+ GIT_DEPEND="app-text/pandoc
+ dev-python/docutils
+ dev-python/sphinx
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Ganeti is a virtual server management software tool"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="kvm xen lxc drbd htools syslog ipv6 haskell-daemons rbd test"
+REQUIRED_USE="|| ( kvm xen lxc )"
+
+HASKELL_DEPS=">=dev-lang/ghc-6.12:0=
+ dev-haskell/json:0=
+ dev-haskell/curl:0=
+ dev-haskell/network:0=
+ dev-haskell/parallel:3=
+ dev-haskell/hslogger:0=
+ dev-haskell/utf8-string:0=
+ dev-haskell/attoparsec:0=
+ dev-haskell/crypto:0="
+
+DEPEND="xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ haskell-daemons? (
+ ${HASKELL_DEPS}
+ dev-haskell/text:0=
+ dev-haskell/hinotify:0=
+ dev-haskell/regex-pcre-builtin:0=
+ dev-haskell/vector:0=
+ )
+ dev-libs/openssl:0
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="${HASKELL_DEPS}
+ sys-devel/m4
+ test? (
+ dev-python/mock
+ dev-python/pyyaml
+ dev-haskell/test-framework:0=
+ dev-haskell/test-framework-hunit:0=
+ dev-haskell/test-framework-quickcheck2:0=
+ dev-haskell/temporary:0=
+ sys-apps/fakeroot
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.6-fix-args.patch"
+ "${FILESDIR}/${PN}-2.6-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.patch"
+ "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
+ "${FILESDIR}/${PN}-2.9-regex-builtin.patch"
+ "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
+ "${FILESDIR}/${PN}-2.10-rundir.patch"
+ "${FILESDIR}/${PN}-lockdir.patch"
+)
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup () {
+ confutils_use_depend_all haskell-daemons htools
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ [[ ${PV} == "9999" ]] && ./autogen.sh
+ rm autotools/missing
+ eautoreconf
+}
+
+src_configure () {
+ econf --localstatedir=/var \
+ --sharedstatedir=/var \
+ --disable-symlinks \
+ --docdir=/usr/share/doc/${P} \
+ --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 syslog) \
+ $(usex kvm '--with-kvm-path=' '' '/usr/bin/qemu-kvm' '') \
+ $(usex haskell-daemons "--enable-confd=haskell" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ newinitd "${FILESDIR}"/ganeti.initd-r3 ${PN}
+ newconfd "${FILESDIR}"/ganeti.confd-r2 ${PN}
+
+ use kvm && newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
+ use kvm && newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
+ newbashcomp doc/examples/bash_completion ganeti
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -r doc/html/*
+ rm -rf "${D}"/{usr/share/doc/${PN},run}
+
+ 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}
+
+ python_fix_shebang "${D}"/usr/"$(get_libdir)"/${PN}/${SERIES}
+
+ keepdir /var/{lib,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}"
+}
+
+src_test () {
+ emake check || die "emake check failed"
+}
diff --git a/app-emulation/ganeti/ganeti-2.11.6-r2.ebuild b/app-emulation/ganeti/ganeti-2.11.6-r2.ebuild
new file mode 100644
index 00000000000..87527cdf930
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.11.6-r2.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils confutils autotools bash-completion-r1 python-single-r1 versionator pax-utils
+
+MY_PV="${PV/_rc/~rc}"
+#MY_PV="${PV/_beta/~beta}"
+MY_P="${PN}-${MY_PV}"
+SERIES="$(get_version_component_range 1-2)"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
+ inherit git-2
+ KEYWORDS=""
+ # you will need to pull in the haskell overlay for pandoc
+ GIT_DEPEND="app-text/pandoc
+ dev-python/docutils
+ dev-python/sphinx
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Ganeti is a virtual server management software tool"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen"
+REQUIRED_USE="|| ( kvm xen lxc )"
+
+USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
+GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
+
+HASKELL_DEPS=">=dev-lang/ghc-6.12:0=
+ dev-haskell/json:0=
+ dev-haskell/curl:0=
+ dev-haskell/network:0=
+ dev-haskell/parallel:3=
+ dev-haskell/hslogger:0=
+ dev-haskell/utf8-string:0=
+ dev-haskell/attoparsec:0=
+ dev-haskell/crypto:0=
+ dev-haskell/vector:0=
+ dev-haskell/hinotify:0=
+ dev-haskell/regex-pcre-builtin:0=
+ dev-haskell/zlib:0=
+ dev-haskell/base64-bytestring:0=
+ monitoring? ( dev-haskell/snap-server:0= )"
+
+DEPEND="xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ haskell-daemons? (
+ ${HASKELL_DEPS}
+ dev-haskell/text:0=
+ )
+ dev-libs/openssl:0
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="${HASKELL_DEPS}
+ sys-devel/m4
+ test? (
+ dev-python/mock
+ dev-python/pyyaml
+ dev-haskell/haddock:0=
+ dev-haskell/test-framework:0=
+ dev-haskell/test-framework-hunit:0=
+ dev-haskell/test-framework-quickcheck2:0=
+ dev-haskell/temporary:0=
+ sys-apps/fakeroot
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.11-start-stop-daemon-args.patch"
+ "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.11-daemon-util.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.patch"
+ "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
+ "${FILESDIR}/${PN}-2.11-regex-builtin.patch"
+ "${FILESDIR}/${PN}-2.9-skip-cli-test.patch"
+ "${FILESDIR}/${PN}-2.10-rundir.patch"
+ "${FILESDIR}/${PN}-2.11-qemu-enable-kvm.patch"
+ "${FILESDIR}/${PN}-2.11-tests.patch"
+ "${FILESDIR}/${PN}-lockdir.patch"
+ "${FILESDIR}/${PN}-2.11-useradd.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"
+)
+
+REQUIRED_USE="kvm? ( || ( amd64 x86 ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup () {
+ confutils_use_depend_all haskell-daemons htools
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ [[ ${PV} == "9999" ]] && ./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 \
+ --docdir=/usr/share/doc/${P} \
+ --with-ssh-initscript=/etc/init.d/sshd \
+ --with-export-dir=/var/lib/ganeti-storage/export \
+ --with-os-search-path=/usr/share/${PN}/os \
+ $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
+ $(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" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ 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}
+
+ newbashcomp doc/examples/bash_completion ganeti
+
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -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}
+
+ keepdir /var/{lib,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" \
+ emake check || die "emake check failed"
+}
diff --git a/app-emulation/ganeti/ganeti-2.12.1-r3.ebuild b/app-emulation/ganeti/ganeti-2.12.1-r3.ebuild
new file mode 100644
index 00000000000..644983532c8
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.12.1-r3.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils user confutils autotools bash-completion-r1 python-single-r1 versionator pax-utils
+
+MY_PV="${PV/_rc/~rc}"
+#MY_PV="${PV/_beta/~beta}"
+MY_P="${PN}-${MY_PV}"
+SERIES="$(get_version_component_range 1-2)"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
+ inherit git-2
+ KEYWORDS=""
+ # you will need to pull in the haskell overlay for pandoc
+ GIT_DEPEND="app-text/pandoc
+ dev-python/docutils
+ dev-python/sphinx
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Ganeti is a virtual server management software tool"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="drbd haskell-daemons htools ipv6 kvm lxc monitoring multiple-users rbd syslog test xen"
+REQUIRED_USE="|| ( kvm xen lxc )"
+
+USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
+GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
+
+# the haskell less-than atoms list are resolver hints, they aren't actual
+# direct dependencies, just hints to help the resolver fufill the dependency
+# on an older transformer.
+# these need to stay until 2.14.0
+DEPEND="
+ dev-libs/openssl:0
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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-7.6.0:0=
+ >=dev-haskell/json-0.9:0=
+ <dev-haskell/monad-control-1.0.0.0:0=
+ <dev-haskell/transformers-0.4.0:0=
+ dev-haskell/curl:0=
+ dev-haskell/network:0=
+ dev-haskell/parallel:3=
+ >=dev-haskell/hslogger-1.2.6:0=
+ dev-haskell/snap-server:0=
+ dev-haskell/utf8-string:0=
+ dev-haskell/attoparsec:0=
+ dev-haskell/crypto:0=
+ dev-haskell/vector:0=
+ dev-haskell/hinotify:0=
+ dev-haskell/regex-pcre-builtin:0=
+ dev-haskell/zlib:0=
+ >=dev-haskell/lifted-base-0.2.3.3:0=
+ <dev-haskell/lens-3.10:0=
+ dev-haskell/base64-bytestring:0=
+ <dev-haskell/mtl-2.2
+ <dev-haskell/contravariant-0.6
+ <dev-haskell/profunctors-4.3
+ <dev-haskell/distributive-0.4.4
+ <dev-haskell/comonad-4.2.2
+ <dev-haskell/transformers-compat-0.3
+ <dev-haskell/transformers-base-0.4.4
+ <dev-haskell/semigroupoids-4.0
+ <dev-haskell/semigroupoid-extras-4.0
+ <dev-haskell/groupoids-4.0
+ xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ haskell-daemons? ( dev-haskell/text:0= )
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="sys-devel/m4
+ test? (
+ dev-python/mock
+ dev-python/pyyaml
+ dev-haskell/haddock:0=
+ dev-haskell/test-framework:0=
+ dev-haskell/test-framework-hunit:0=
+ dev-haskell/test-framework-quickcheck2:0=
+ dev-haskell/temporary:0=
+ sys-apps/fakeroot
+ net-misc/socat
+ dev-util/shelltestrunner
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
+ "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.12-daemon-util.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.patch"
+ "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
+ "${FILESDIR}/${PN}-2.11-regex-builtin.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-useradd.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.12-tests.patch"
+ "${FILESDIR}/${PN}-2.12-cfgupgrade-state.patch"
+)
+
+REQUIRED_USE="kvm? ( || ( amd64 x86 ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup () {
+ local user
+ confutils_use_depend_all haskell-daemons htools
+ 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
+ epatch "${PATCHES[@]}"
+
+ # 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
+
+ [[ ${PV} == "9999" ]] && ./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 \
+ --docdir=/usr/share/doc/${P} \
+ --with-ssh-initscript=/etc/init.d/sshd \
+ --with-export-dir=/var/lib/ganeti-storage/export \
+ --with-os-search-path=/usr/share/${PN}/os \
+ $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
+ $(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" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ 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}
+
+ newbashcomp doc/examples/bash_completion ganeti
+
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -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}
+
+ keepdir /var/{lib,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" \
+ emake check || die "emake check failed"
+}
diff --git a/app-emulation/ganeti/ganeti-2.12.3-r2.ebuild b/app-emulation/ganeti/ganeti-2.12.3-r2.ebuild
new file mode 100644
index 00000000000..c1eb25d7b86
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.12.3-r2.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils 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} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
+ inherit git-2
+ KEYWORDS=""
+ GIT_DEPEND="app-text/pandoc
+ dev-python/docutils
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+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"
+REQUIRED_USE="|| ( kvm xen lxc ) ${PYTHON_REQUIRED_USE}"
+
+USER_PREFIX="${GANETI_USER_PREFIX:-"gnt-"}"
+GROUP_PREFIX="${GANETI_GROUP_PREFIX:-"${USER_PREFIX}"}"
+
+# the haskell less-than atoms list are resolver hints, they aren't actual
+# direct dependencies, just hints to help the resolver fufill the dependency
+# on an older transformer.
+# these need to stay until 2.14.0
+DEPEND="
+ dev-libs/openssl:0
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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-7.6*:0=
+ >=dev-haskell/json-0.9:0=
+ <dev-haskell/monad-control-1.0.0.0:0=
+ <dev-haskell/transformers-0.4.0:0=
+ dev-haskell/curl:0=
+ dev-haskell/network:0=
+ dev-haskell/parallel:3=
+ >=dev-haskell/hslogger-1.2.6:0=
+ dev-haskell/snap-server:0=
+ dev-haskell/utf8-string:0=
+ dev-haskell/attoparsec:0=
+ dev-haskell/crypto:0=
+ dev-haskell/vector:0=
+ dev-haskell/hinotify:0=
+ dev-haskell/regex-pcre-builtin:0=
+ dev-haskell/zlib:0=
+ >=dev-haskell/lifted-base-0.2.3.3:0=
+ <dev-haskell/lens-3.10:0=
+ dev-haskell/base64-bytestring:0=
+ <dev-haskell/mtl-2.2
+ <dev-haskell/contravariant-0.6
+ <dev-haskell/profunctors-4.3
+ <dev-haskell/distributive-0.4.4
+ <dev-haskell/comonad-4.2.2
+ <dev-haskell/transformers-compat-0.3
+ <dev-haskell/transformers-base-0.4.4
+ <dev-haskell/semigroupoids-4.0
+ <dev-haskell/semigroupoid-extras-4.0
+ <dev-haskell/groupoids-4.0
+ xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ haskell-daemons? ( dev-haskell/text:0= )
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="sys-devel/m4
+ test? (
+ dev-python/mock
+ dev-python/pyyaml
+ dev-haskell/haddock:0=
+ dev-haskell/test-framework:0=
+ dev-haskell/test-framework-hunit:0=
+ dev-haskell/test-framework-quickcheck2:0=
+ dev-haskell/temporary:0=
+ sys-apps/fakeroot
+ net-misc/socat
+ dev-util/shelltestrunner
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
+ "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.12.3-daemon-util.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.patch"
+ "${FILESDIR}/${PN}-2.9-disable-root-tests.patch"
+ "${FILESDIR}/${PN}-2.11-regex-builtin.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-useradd.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.12-tests.patch"
+)
+
+REQUIRED_USE="kvm? ( || ( amd64 x86 ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+QA_WX_LOAD="usr/$(get_libdir)/${PN}/${SERIES}/usr/sbin/ganeti-*d
+ usr/$(get_libdir)/${PN}/${SERIES}/usr/bin/htools"
+
+pkg_setup () {
+ local user
+ confutils_use_depend_all haskell-daemons htools
+ 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
+ epatch "${PATCHES[@]}"
+
+ # 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'
+
+ [[ ${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 \
+ --docdir=/usr/share/doc/${P} \
+ --with-ssh-initscript=/etc/init.d/sshd \
+ --with-export-dir=/var/lib/ganeti-storage/export \
+ --with-os-search-path=/usr/share/${PN}/os \
+ $(usex multiple-users "--with-user-prefix=" "" "${USER_PREFIX}" "") \
+ $(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" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ 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}
+
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -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}
+
+ keepdir /var/{lib,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.13.0-r2.ebuild b/app-emulation/ganeti/ganeti-2.13.0-r2.ebuild
new file mode 100644
index 00000000000..45a4009dce6
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.13.0-r2.ebuild
@@ -0,0 +1,258 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils 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} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.ganeti.org/ganeti.git"
+ inherit git-2
+ KEYWORDS=""
+ GIT_DEPEND="app-text/pandoc
+ dev-python/docutils
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+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"
+REQUIRED_USE="|| ( kvm xen lxc ) ${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/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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-7.6*:0=
+ >=dev-haskell/json-0.9:0=
+ dev-haskell/curl:0=
+ dev-haskell/network:0=
+ dev-haskell/parallel:3=
+ >=dev-haskell/hslogger-1.2.6:0=
+ dev-haskell/snap-server:0=
+ dev-haskell/utf8-string:0=
+ dev-haskell/attoparsec:0=
+ dev-haskell/crypto:0=
+ dev-haskell/vector:0=
+ dev-haskell/hinotify:0=
+ dev-haskell/regex-pcre-builtin:0=
+ dev-haskell/zlib:0=
+ >=dev-haskell/lifted-base-0.2.3.3:0=
+ <dev-haskell/lens-4:0=
+ dev-haskell/psqueue:0=
+ dev-haskell/base64-bytestring:0=
+ <dev-haskell/semigroupoids-4.1:0=
+ <dev-haskell/mtl-2.2:0=
+ <dev-haskell/monad-control-1.0.0.0:0=
+ <dev-haskell/transformers-0.4.0:0=
+ <dev-haskell/contravariant-0.6
+ <dev-haskell/transformers-compat-0.4[three]
+ <dev-haskell/transformers-base-0.4.4
+ xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ haskell-daemons? ( dev-haskell/text:0= )
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="sys-devel/m4
+ app-text/pandoc
+ test? (
+ dev-python/mock
+ dev-python/pyyaml
+ dev-haskell/haddock:0=
+ dev-haskell/test-framework:0=
+ dev-haskell/test-framework-hunit:0=
+ dev-haskell/test-framework-quickcheck2:0=
+ dev-haskell/temporary:0=
+ sys-apps/fakeroot
+ net-misc/socat
+ dev-util/shelltestrunner
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
+ "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.13-daemon-util.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.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-regex-pcre-builtin.patch"
+ "${FILESDIR}/${PN}-2.13-process_unittest.patch"
+ "${FILESDIR}/${PN}-2.13-disable-usersgroups-test.patch"
+)
+
+REQUIRED_USE="kvm? ( || ( amd64 x86 ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+QA_WX_LOAD="usr/$(get_libdir)/${PN}/${SERIES}/usr/sbin/ganeti-*d
+ usr/$(get_libdir)/${PN}/${SERIES}/usr/bin/htools"
+
+pkg_setup () {
+ local user
+ confutils_use_depend_all haskell-daemons htools
+ 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
+ epatch "${PATCHES[@]}"
+
+ # 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'
+
+ [[ ${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 \
+ --docdir=/usr/share/doc/${P} \
+ --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 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" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ 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}
+
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -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}
+
+ keepdir /var/{lib,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.14.1-r1.ebuild b/app-emulation/ganeti/ganeti-2.14.1-r1.ebuild
new file mode 100644
index 00000000000..17bb19c37c1
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.14.1-r1.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+use test && PYTHON_REQ_USE="ipv6"
+
+inherit eutils 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=""
+ GIT_DEPEND="dev-python/docutils
+ =dev-python/sphinx-1.2*[${PYTHON_USEDEP}]
+ media-libs/gd[fontconfig,jpeg,png,truetype]
+ media-gfx/graphviz
+ media-fonts/urw-fonts"
+else
+ SRC_URI="http://downloads.ganeti.org/releases/${SERIES}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+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"
+REQUIRED_USE="|| ( kvm xen lxc ) ${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/pyparsing[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bitarray[${PYTHON_USEDEP}]
+ 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-7.6*: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.13: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/json-0.9:0=
+ >=dev-haskell/lens-3.10:0=
+ <dev-haskell/lens-4.8: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/utf8-string-0.4:0=
+ >=dev-haskell/zlib-0.5.3.3:0=
+ <dev-haskell/zlib-0.6: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/vector:0=
+ <dev-haskell/semigroupoids-4.1:0=
+ <dev-haskell/contravariant-0.6
+ <dev-haskell/transformers-compat-0.4[three]
+ xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ lxc? ( app-emulation/lxc )
+ drbd? ( <sys-cluster/drbd-8.5 )
+ rbd? ( sys-cluster/ceph )
+ ipv6? ( net-misc/ndisc6 )
+ ${PYTHON_DEPS}
+ ${GIT_DEPEND}"
+RDEPEND="${DEPEND}
+ !app-emulation/ganeti-htools"
+DEPEND+="sys-devel/m4
+ =app-text/pandoc-1.12*
+ >=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:2=
+ sys-apps/fakeroot
+ net-misc/socat
+ dev-util/shelltestrunner
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.12-start-stop-daemon-args.patch"
+ "${FILESDIR}/${PN}-2.11-add-pgrep.patch"
+ "${FILESDIR}/${PN}-2.13-daemon-util.patch"
+ "${FILESDIR}/${PN}-2.7-fix-tests.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"
+)
+
+REQUIRED_USE="kvm? ( || ( amd64 x86 ) )"
+
+S="${WORKDIR}/${MY_P}"
+
+# apparently currently broken
+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
+ epatch "${PATCHES[@]}"
+
+ # 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'
+
+ [[ ${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 \
+ --docdir=/usr/share/doc/${P} \
+ --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 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" '' '' '')
+}
+
+src_install () {
+ emake V=1 DESTDIR="${D}" install || die "emake install failed"
+
+ 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}
+
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ dohtml -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.4.5-r1.ebuild b/app-emulation/ganeti/ganeti-2.4.5-r1.ebuild
new file mode 100644
index 00000000000..51fbeef95cc
--- /dev/null
+++ b/app-emulation/ganeti/ganeti-2.4.5-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils confutils bash-completion-r1
+
+MY_PV="${PV/_rc/~rc}"
+#MY_PV="${PV/_beta/~beta}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="Ganeti is a virtual server management software tool"
+HOMEPAGE="http://code.google.com/p/ganeti/"
+SRC_URI="http://ganeti.googlecode.com/files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="kvm xen drbd +filestorage syslog ipv6"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND="xen? ( >=app-emulation/xen-3.0 )
+ kvm? ( app-emulation/qemu )
+ drbd? ( >=sys-cluster/drbd-8.3 )
+ ipv6? ( net-misc/ndisc6 )
+ dev-libs/openssl
+ dev-python/paramiko
+ dev-python/pyopenssl
+ dev-python/pyparsing
+ dev-python/pycurl
+ dev-python/pyinotify
+ dev-python/simplejson
+ net-analyzer/arping
+ 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"
+RDEPEND="${DEPEND}
+ !<app-emulation/ganeti-htools-0.3"
+
+pkg_setup () {
+ confutils_require_any kvm xen
+}
+
+src_prepare () {
+ epatch "${FILESDIR}/${PN}-fix-start-stop.patch"
+}
+
+src_configure () {
+ local myconf
+ if use filestorage ; then
+ myconf="--with-file-storage-dir=/var/lib/ganeti-storage/file"
+ else
+ myconf="--with-file-storage-dir=no"
+ fi
+ if use kvm && [ -f /usr/bin/qemu-kvm ] ; then
+ myconf="--with-kvm-path=/usr/bin/qemu-kvm"
+ fi
+ econf --localstatedir=/var \
+ --docdir=/usr/share/doc/${P} \
+ --with-ssh-initscript=/etc/init.d/sshd \
+ --with-export-dir=/var/lib/ganeti-storage/export \
+ --with-os-search-path=/usr/share/ganeti/os \
+ $(use_enable syslog) \
+ ${myconf}
+}
+
+src_install () {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ newinitd "${FILESDIR}"/ganeti-2.1.initd ganeti
+ newconfd "${FILESDIR}"/ganeti.confd ganeti
+ use kvm && newinitd "${FILESDIR}"/ganeti-kvm-poweroff.initd ganeti-kvm-poweroff
+ use kvm && newconfd "${FILESDIR}"/ganeti-kvm-poweroff.confd ganeti-kvm-poweroff
+ newbashcomp doc/examples/bash_completion ganeti
+ dodoc INSTALL UPGRADE NEWS README doc/*.rst
+ rm -rf "${D}"/usr/share/doc/ganeti
+ docinto examples
+ #dodoc doc/examples/{basic-oob,ganeti.cron,gnt-config-backup}
+ dodoc doc/examples/{ganeti.cron,gnt-config-backup}
+ docinto examples/hooks
+ dodoc doc/examples/hooks/{ipsec,ethers}
+
+ keepdir /var/{lib,log,run}/ganeti/
+ keepdir /usr/share/ganeti/os/
+ keepdir /var/lib/ganeti-storage/{export,file}/
+}
diff --git a/app-emulation/ganeti/metadata.xml b/app-emulation/ganeti/metadata.xml
new file mode 100644
index 00000000000..aed23d1c641
--- /dev/null
+++ b/app-emulation/ganeti/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</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='filestorage'>Enable File Storage</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='rbd'>Enable rados block device support via sys-cluster/ceph</flag>
+ <flag name='xen'>Enable Xen support</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/app-emulation/gxemul/Manifest b/app-emulation/gxemul/Manifest
new file mode 100644
index 00000000000..ef5f98f1a90
--- /dev/null
+++ b/app-emulation/gxemul/Manifest
@@ -0,0 +1 @@
+DIST gxemul-0.6.0.tar.gz 3598795 SHA256 d3f85c7964b44b085e088862d88b1f31d907fb99c5321900c0b3a723c82581e8 SHA512 38108c7e4f1332bf80046a63e4a7c5e0fbce7f83a62fdeaa4518ef02947d7de83aac20b0307d286b7eb5d9c721b8400d449d4f244b2bc9358a2502fa21f56b73 WHIRLPOOL 47b2a6fd8c821658fcfbede101fb2fd48e9740d113ef66895ee82238c96645e9c9e5fc25cef2e0235f109f0269f9a3fed0d73c76a6717dc5df26b4fab4cb0b69
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
new file mode 100644
index 00000000000..88883309b90
--- /dev/null
+++ b/app-emulation/gxemul/files/0.6.0-fix-mkstemp-test.patch
@@ -0,0 +1,10 @@
+--- 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
new file mode 100644
index 00000000000..80d69f92c82
--- /dev/null
+++ b/app-emulation/gxemul/files/0.6.0-fix-mymkstemp.patch
@@ -0,0 +1,11 @@
+--- 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/0.6.0-gcc46.patch
new file mode 100644
index 00000000000..eb0ce26b6e1
--- /dev/null
+++ b/app-emulation/gxemul/files/0.6.0-gcc46.patch
@@ -0,0 +1,16 @@
+ src/include/refcount_ptr.h | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/include/refcount_ptr.h b/src/include/refcount_ptr.h
+index 4645769..ebabd58 100644
+--- a/src/include/refcount_ptr.h
++++ b/src/include/refcount_ptr.h
+@@ -1,6 +1,8 @@
+ #ifndef REFCOUNT_PTR_H
+ #define REFCOUNT_PTR_H
+
++#include <stddef.h>
++
+ /*
+ * Copyright (C) 2007-2010 Anders Gavare. All rights reserved.
+ *
diff --git a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild b/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild
new file mode 100644
index 00000000000..4d8e375f749
--- /dev/null
+++ b/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="A Machine Emulator, Mainly emulates MIPS, but supports other CPU types"
+HOMEPAGE="http://gxemul.sourceforge.net/"
+SRC_URI="mirror://sourceforge/project/gxemul/GXemul/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="debug X"
+
+RDEPEND="X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+ X? ( x11-proto/xproto )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-gcc46.patch
+ epatch "${FILESDIR}"/${PV}-fix-mymkstemp.patch # Bug 441558
+ epatch "${FILESDIR}"/${PV}-fix-mkstemp-test.patch # Bug 441558
+ sed -i configure -e 's|-O3||g' || die "sed configure"
+ tc-export CC CXX
+}
+
+src_configure() {
+ # no autotools
+ ./configure \
+ --disable-valgrind \
+ $(use debug && echo --debug) \
+ $(use X || echo --disable-x) || die "configure failed"
+}
+
+src_install() {
+ dobin gxemul
+ doman man/gxemul.1
+ dodoc HISTORY README
+ dohtml -r doc/*
+}
diff --git a/app-emulation/gxemul/metadata.xml b/app-emulation/gxemul/metadata.xml
new file mode 100644
index 00000000000..f7b826fbae7
--- /dev/null
+++ b/app-emulation/gxemul/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <longdescription>Machine Emulator. Supports emulation across several architectures. Primarily for MIPS support, but other platform support coming soon.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">gxemul</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules/Manifest b/app-emulation/hercules/Manifest
new file mode 100644
index 00000000000..778ae40b216
--- /dev/null
+++ b/app-emulation/hercules/Manifest
@@ -0,0 +1,4 @@
+DIST hercules-3.06.tar.gz 2658262 SHA256 fa00b17c86a47133108c49973ba343d589f0e8777a115d827ef3da9aafbda22b SHA512 a938c2be64094ca412fb9094942088e344aa67b0af324af674d4fff73c6e936ffc6e384a5edcb48d1c31439c55322bf5e6b2e7ea36e7e7c9e416d8522240b1c5 WHIRLPOOL dbebb54e19ea5016d576153a0818ff5ce8e7114449837f127ad1c0ea82c561306a443dee2bd47d9a8c4afbd6ca257ca350348e773def86eccac76d3c754ea29c
+DIST hercules-3.08.tar.gz 2684844 SHA256 85e217773587f2278d4b6cb6bc815e042cfc982d0fc14baa0da4a84dea399e9d SHA512 6fe8da6e0462f4b27f987c86b2de769e6a1a9eb3389bb612b59931590f75e7dd9d4a8456b5f36209aadf433dfe2e48686f2cda8e95b7480b9bdb971247e1eae5 WHIRLPOOL 833b2ba21a17d70cd3ba9a4f88fdaaec288acf471d43fd9c660e55c7c48f7a34b46b1defd7ffb699ed3f34af1fca9484303a09f3a020fa06367cdd291a675f5b
+DIST hercules-3.09.tar.gz 2567052 SHA256 98a6029d908943451635ba53acf97ed61fdf6ebafc4402be7137c620851fe4e7 SHA512 0c972f62de6f780608adff3fdb614b0c6fe46349da73ec2225d809786fd5188f9e9fbb0ee5858a75cb156071c0e976d37997547d23c939aa48c3b727c5680c0a WHIRLPOOL f9eee4c11855ac08f20423f4b864b2d41315ce445af4f844b644a0399e83535442cb697571e0956ba53deae3cb755956f3cdf0a323efd07afb4be8bc8dd1c145
+DIST hercules-3.10.tar.gz 2608321 SHA256 26264569b7d78bbc3b6221926051ac3761c4a792dfc84d591d3230de40aa46fa SHA512 de8b3e2e90fdb745dea9c8ce4dbe506de2aba3bf08b3e937605798e6a8020576a949d6ea3496b7c42bd23d617fc96648d2d8ec05a66e8ed174ce46a3bc31c5d1 WHIRLPOOL 5233ededd4ef42e201216a11b2a09ee6c59a678771aaa9bc78ab4b87f459addc5c0b4ffd4bd2ec98d15a461565db6a354cc1ac846f800b98e86e93e51b263b4a
diff --git a/app-emulation/hercules/files/hercules-3.06-build.patch b/app-emulation/hercules/files/hercules-3.06-build.patch
new file mode 100644
index 00000000000..9424fa5a4cd
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.06-build.patch
@@ -0,0 +1,18 @@
+--- Makefile.in
++++ Makefile.in
+@@ -2010,14 +2010,13 @@
+
+ tar: dist
+
+-install-exec-local:
++install-exec-hook:
+ @SETUID_HERCIFC_TRUE@ chown root $(DESTDIR)$(bindir)/hercifc
+ @HERCIFC_GROUPSET_TRUE@@SETUID_HERCIFC_TRUE@ chgrp $(HERCIFC_GROUPNAME) $(DESTDIR)$(bindir)/hercifc
+ @SETUID_HERCIFC_TRUE@ chmod 0750 $(DESTDIR)$(bindir)/hercifc
+ @SETUID_HERCIFC_TRUE@ chmod +s $(DESTDIR)$(bindir)/hercifc
+ @SETUID_HERCIFC_TRUE@ rm hercifc
+
+-install-exec-hook:
+ rm -f $(DESTDIR)$(libdir)/libherc*.a
+ rm -f $(DESTDIR)$(modexecdir)/dyn*.a
+ rm -f $(DESTDIR)$(modexecdir)/hdt*.a
diff --git a/app-emulation/hercules/files/hercules-3.06-gcc44.patch b/app-emulation/hercules/files/hercules-3.06-gcc44.patch
new file mode 100644
index 00000000000..e38c320dafb
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.06-gcc44.patch
@@ -0,0 +1,12 @@
+diff -ur hercules-3.06.orig/hsccmd.c hercules-3.06/hsccmd.c
+--- hercules-3.06.orig/hsccmd.c 2009-01-10 02:18:33.000000000 +0200
++++ hercules-3.06/hsccmd.c 2009-08-10 14:59:34.000000000 +0300
+@@ -7676,7 +7676,7 @@
+ break;
+ }
+ }
+-#elif // OPTION_CMDTGT
++#else // OPTION_CMDTGT
+ #ifdef _FEATURE_SYSTEM_CONSOLE
+ if ('.' == cmd[0] || '!' == cmd[0])
+ {
diff --git a/app-emulation/hercules/files/hercules-3.09-aliasing.patch b/app-emulation/hercules/files/hercules-3.09-aliasing.patch
new file mode 100644
index 00000000000..3d03e9b6dc1
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.09-aliasing.patch
@@ -0,0 +1,41 @@
+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/hercules-3.06.ebuild b/app-emulation/hercules/hercules-3.06.ebuild
new file mode 100644
index 00000000000..9aa8b976ebc
--- /dev/null
+++ b/app-emulation/hercules/hercules-3.06.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
+HOMEPAGE="http://www.hercules-390.org/"
+SRC_URI="http://www.hercules-390.org/${P}.tar.gz"
+
+LICENSE="QPL-1.0"
+SLOT="0"
+KEYWORDS="alpha amd64 ppc sparc x86"
+IUSE="custom-cflags"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-build.patch
+ epatch "${FILESDIR}"/${P}-gcc44.patch
+ sed -i \
+ -e 's:@modexecdir@:$(libdir)/$(PACKAGE):' \
+ -e '/^AM_CPPFLAGS/s:=:= -DMODULESDIR=\\"$(modexecdir)\\" :' \
+ $(find -name Makefile.in)
+ sed -i '/MODULESDIR/d' config.h.in
+}
+
+src_compile() {
+ use custom-cflags || strip-flags
+ econf \
+ --enable-cckd-bzip2 \
+ --enable-het-bzip2 \
+ --enable-setuid-hercifc \
+ --enable-custom="Gentoo Linux ${PF}.ebuild" \
+ || die "econf failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ insinto /usr/share/hercules
+ doins hercules.cnf
+ dodoc README.* RELEASE.NOTES CHANGES
+ dohtml -r html
+}
diff --git a/app-emulation/hercules/hercules-3.08.ebuild b/app-emulation/hercules/hercules-3.08.ebuild
new file mode 100644
index 00000000000..f7aecdcc961
--- /dev/null
+++ b/app-emulation/hercules/hercules-3.08.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit flag-o-matic
+
+DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
+HOMEPAGE="http://www.hercules-390.eu/"
+SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz"
+
+LICENSE="QPL-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x64-macos ~x86-macos"
+IUSE="bzip2 custom-cflags +suid"
+
+RDEPEND="bzip2? ( app-arch/bzip2 )
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+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.09.ebuild b/app-emulation/hercules/hercules-3.09.ebuild
new file mode 100644
index 00000000000..18548fed7a7
--- /dev/null
+++ b/app-emulation/hercules/hercules-3.09.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 )
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-aliasing.patch
+}
+
+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.10.ebuild b/app-emulation/hercules/hercules-3.10.ebuild
new file mode 100644
index 00000000000..6f16f2aaf1d
--- /dev/null
+++ b/app-emulation/hercules/hercules-3.10.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 )
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.09-aliasing.patch
+}
+
+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/metadata.xml b/app-emulation/hercules/metadata.xml
new file mode 100644
index 00000000000..feb9acec70a
--- /dev/null
+++ b/app-emulation/hercules/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>s390</herd>
+<longdescription>
+ Hercules is an emulator for the IBM System/360, System/370, ESA/390, and
+ z/Architecture series of mainframe computer systems. It will run any
+ software that will run on those computers, provided the peripheral devices
+ the program requires are present in the configuration.
+</longdescription>
+</pkgmetadata>
diff --git a/app-emulation/kvm-kmod/Manifest b/app-emulation/kvm-kmod/Manifest
new file mode 100644
index 00000000000..7446d06ed89
--- /dev/null
+++ b/app-emulation/kvm-kmod/Manifest
@@ -0,0 +1,5 @@
+DIST kvm-kmod-3.10.1.tar.bz2 302264 SHA256 2b9ae4e36690804fabb1eac4028495f99939f6abe5518c3f98c3d7c8dd488898 SHA512 d86edc933bbb41d7139c56143084c37c8fb6973993756ed8177afbb2e0f4f620dba749f2ebd1e2e90eb70a1a5ea40712c3b5fc3c1aee3d3f131ec39a1b2d80bf WHIRLPOOL 0946ed02b7c0287c02e9d4b75875ef7a4bd46281a6b107cc7115e787d760803724286f4a517f47a286e7c880e895e88cdc69775399d03a8b196815bc62bd7dee
+DIST kvm-kmod-3.3.6.tar.bz2 275650 SHA256 b6edcf64c468e4a880d7b633c716805462c07546d93799791c9d3eb6166e593f SHA512 6258d532576c2b10dc3410bb9d7af390268d6dd56195e4b66057a7c991a32fec782289d9cdc4894c8dccb88d87ecb574645529430dd0ac85f8344b304286d046 WHIRLPOOL e422e2c065feaf611c2e1a5e2d308f5f4198fa19d96156371ef7fcc17bd898599b34cba0b6106f1a15bf20f9fa5eaf6ae0dabdcd7bbfa228238ce057848e120b
+DIST kvm-kmod-3.4.tar.bz2 280821 SHA256 94a7ce2d0f06c7b9f913be3432e768a2340e50235845fc4e9027abed8aee3291 SHA512 868a554c9ba3a1418f0aa9bdd894ab114e3d59acfa27b3759e362f4631d972f7f48d70563e5ba3e973595195c27fda0c1138c030fd27abdbb8da71103b65cfaa WHIRLPOOL ce99ca65748b12e82a18f67f724eb27cc31310019f8fda15293d6eab9d18dd1a20b9b311fc77162a73f90591d7d772373645dbf02a707c8ca218b2c6840b8bed
+DIST kvm-kmod-3.6.tar.bz2 278798 SHA256 74f6bb8de670d5eac58612142c1d504cf0e98325343e8443f9752197e43e1595 SHA512 27042527343926f5c6be41789305b6d8ca888e18e92e95a7bbcc18712865d97ff0b392d46356c57280134f3b2892ed5725975b72715aae22c4e1b02f4378e4f4 WHIRLPOOL 765549376aa3f7c2db11a79c8e5e055e330d211e36bfa03cda41a85e846a89f49d2dd17da219b1c742d1f2bbb89148a0ef2d019940756db7680acdef52c19bf8
+DIST kvm-kmod-3.8.tar.bz2 289028 SHA256 55da50de9c801c9136c312887d5ffd462e80f55f363e88f0928eeb1450b814a1 SHA512 05d04509fc86a0eec0ae408404b15f5ce2eb640c12aacd09b9bb54ffe10b9bb88dff53329ddb7e960a5388cf2e20a07341e1d829e173603b52cbb58d792c87c4 WHIRLPOOL f63628cfff99ca0f9e10cb2afef6cb03b31adbfa0b2c3e056717c2df4da119e760b90a81a0cf1456ddfd7aa79ddb19452102c7600df4767275c49156ea140de9
diff --git a/app-emulation/kvm-kmod/kvm-kmod-3.10.1.ebuild b/app-emulation/kvm-kmod/kvm-kmod-3.10.1.ebuild
new file mode 100644
index 00000000000..bdbff2e4803
--- /dev/null
+++ b/app-emulation/kvm-kmod/kvm-kmod-3.10.1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils linux-mod
+
+SRC_URI="mirror://sourceforge/kvm/${P}.tar.bz2"
+
+DESCRIPTION="Kernel-based Virtual Machine kernel modules"
+HOMEPAGE="http://www.linux-kvm.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ linux_config_exists || die "Your kernel sources are unconfigured"
+
+ if ! linux_chkconfig_present KVM; then
+ eerror "KVM now needs CONFIG_KVM built into your kernel, even"
+ eerror "if you're using the external modules from this package."
+ eerror "Please enable KVM support in your kernel, found at:"
+ eerror
+ eerror " Virtualization"
+ eerror " Kernel-based Virtual Machine (KVM) support"
+ eerror
+ die "KVM support not detected!"
+ fi
+ BUILD_TARGETS="all"
+ MODULE_NAMES="kvm(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-intel(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-amd(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+}
+
+src_configure() {
+ local conf_opts
+
+ conf_opts="--kerneldir=$KV_DIR"
+
+ if has_multilib_profile && [[ "${DEFAULT_ABI}" == "x86" ]] ; then
+ conf_opts="$conf_opts --arch=x86"
+ fi
+
+ ./configure ${conf_opts} || die "configure failed"
+}
+
+src_compile() {
+ linux-mod_src_compile
+}
+
+src_install() {
+ linux-mod_src_install
+}
+
+pkg_preinst() {
+ find /lib/modules/${KV_FULL} -name 'kvm*.ko' -type f -delete
+
+ linux-mod_pkg_preinst
+}
diff --git a/app-emulation/kvm-kmod/kvm-kmod-3.3.6.ebuild b/app-emulation/kvm-kmod/kvm-kmod-3.3.6.ebuild
new file mode 100644
index 00000000000..017d291c81e
--- /dev/null
+++ b/app-emulation/kvm-kmod/kvm-kmod-3.3.6.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils linux-mod
+
+SRC_URI="mirror://sourceforge/kvm/${P}.tar.bz2"
+
+DESCRIPTION="Kernel-based Virtual Machine kernel modules"
+HOMEPAGE="http://www.linux-kvm.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ linux_config_exists || die "Your kernel sources are unconfigured"
+
+ if ! linux_chkconfig_present KVM; then
+ eerror "KVM now needs CONFIG_KVM built into your kernel, even"
+ eerror "if you're using the external modules from this package."
+ eerror "Please enable KVM support in your kernel, found at:"
+ eerror
+ eerror " Virtualization"
+ eerror " Kernel-based Virtual Machine (KVM) support"
+ eerror
+ die "KVM support not detected!"
+ fi
+ BUILD_TARGETS="all"
+ MODULE_NAMES="kvm(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-intel(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-amd(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+}
+
+src_configure() {
+ local conf_opts
+
+ conf_opts="--kerneldir=$KV_DIR"
+
+ if has_multilib_profile && [[ "${DEFAULT_ABI}" == "x86" ]] ; then
+ conf_opts="$conf_opts --arch=x86"
+ fi
+
+ ./configure ${conf_opts} || die "configure failed"
+}
+
+src_compile() {
+ linux-mod_src_compile
+}
+
+src_install() {
+ linux-mod_src_install
+}
+
+pkg_preinst() {
+ find /lib/modules/${KV_FULL} -name 'kvm*.ko' -type f -delete
+
+ linux-mod_pkg_preinst
+}
diff --git a/app-emulation/kvm-kmod/kvm-kmod-3.4.ebuild b/app-emulation/kvm-kmod/kvm-kmod-3.4.ebuild
new file mode 100644
index 00000000000..017d291c81e
--- /dev/null
+++ b/app-emulation/kvm-kmod/kvm-kmod-3.4.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils linux-mod
+
+SRC_URI="mirror://sourceforge/kvm/${P}.tar.bz2"
+
+DESCRIPTION="Kernel-based Virtual Machine kernel modules"
+HOMEPAGE="http://www.linux-kvm.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ linux_config_exists || die "Your kernel sources are unconfigured"
+
+ if ! linux_chkconfig_present KVM; then
+ eerror "KVM now needs CONFIG_KVM built into your kernel, even"
+ eerror "if you're using the external modules from this package."
+ eerror "Please enable KVM support in your kernel, found at:"
+ eerror
+ eerror " Virtualization"
+ eerror " Kernel-based Virtual Machine (KVM) support"
+ eerror
+ die "KVM support not detected!"
+ fi
+ BUILD_TARGETS="all"
+ MODULE_NAMES="kvm(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-intel(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-amd(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+}
+
+src_configure() {
+ local conf_opts
+
+ conf_opts="--kerneldir=$KV_DIR"
+
+ if has_multilib_profile && [[ "${DEFAULT_ABI}" == "x86" ]] ; then
+ conf_opts="$conf_opts --arch=x86"
+ fi
+
+ ./configure ${conf_opts} || die "configure failed"
+}
+
+src_compile() {
+ linux-mod_src_compile
+}
+
+src_install() {
+ linux-mod_src_install
+}
+
+pkg_preinst() {
+ find /lib/modules/${KV_FULL} -name 'kvm*.ko' -type f -delete
+
+ linux-mod_pkg_preinst
+}
diff --git a/app-emulation/kvm-kmod/kvm-kmod-3.6.ebuild b/app-emulation/kvm-kmod/kvm-kmod-3.6.ebuild
new file mode 100644
index 00000000000..bdbff2e4803
--- /dev/null
+++ b/app-emulation/kvm-kmod/kvm-kmod-3.6.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils linux-mod
+
+SRC_URI="mirror://sourceforge/kvm/${P}.tar.bz2"
+
+DESCRIPTION="Kernel-based Virtual Machine kernel modules"
+HOMEPAGE="http://www.linux-kvm.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ linux_config_exists || die "Your kernel sources are unconfigured"
+
+ if ! linux_chkconfig_present KVM; then
+ eerror "KVM now needs CONFIG_KVM built into your kernel, even"
+ eerror "if you're using the external modules from this package."
+ eerror "Please enable KVM support in your kernel, found at:"
+ eerror
+ eerror " Virtualization"
+ eerror " Kernel-based Virtual Machine (KVM) support"
+ eerror
+ die "KVM support not detected!"
+ fi
+ BUILD_TARGETS="all"
+ MODULE_NAMES="kvm(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-intel(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-amd(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+}
+
+src_configure() {
+ local conf_opts
+
+ conf_opts="--kerneldir=$KV_DIR"
+
+ if has_multilib_profile && [[ "${DEFAULT_ABI}" == "x86" ]] ; then
+ conf_opts="$conf_opts --arch=x86"
+ fi
+
+ ./configure ${conf_opts} || die "configure failed"
+}
+
+src_compile() {
+ linux-mod_src_compile
+}
+
+src_install() {
+ linux-mod_src_install
+}
+
+pkg_preinst() {
+ find /lib/modules/${KV_FULL} -name 'kvm*.ko' -type f -delete
+
+ linux-mod_pkg_preinst
+}
diff --git a/app-emulation/kvm-kmod/kvm-kmod-3.8.ebuild b/app-emulation/kvm-kmod/kvm-kmod-3.8.ebuild
new file mode 100644
index 00000000000..bdbff2e4803
--- /dev/null
+++ b/app-emulation/kvm-kmod/kvm-kmod-3.8.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils linux-mod
+
+SRC_URI="mirror://sourceforge/kvm/${P}.tar.bz2"
+
+DESCRIPTION="Kernel-based Virtual Machine kernel modules"
+HOMEPAGE="http://www.linux-kvm.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ linux_config_exists || die "Your kernel sources are unconfigured"
+
+ if ! linux_chkconfig_present KVM; then
+ eerror "KVM now needs CONFIG_KVM built into your kernel, even"
+ eerror "if you're using the external modules from this package."
+ eerror "Please enable KVM support in your kernel, found at:"
+ eerror
+ eerror " Virtualization"
+ eerror " Kernel-based Virtual Machine (KVM) support"
+ eerror
+ die "KVM support not detected!"
+ fi
+ BUILD_TARGETS="all"
+ MODULE_NAMES="kvm(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-intel(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+ MODULE_NAMES="${MODULE_NAMES} kvm-amd(kernel/arch/x86/kvm/:${S}:${S}/x86)"
+}
+
+src_configure() {
+ local conf_opts
+
+ conf_opts="--kerneldir=$KV_DIR"
+
+ if has_multilib_profile && [[ "${DEFAULT_ABI}" == "x86" ]] ; then
+ conf_opts="$conf_opts --arch=x86"
+ fi
+
+ ./configure ${conf_opts} || die "configure failed"
+}
+
+src_compile() {
+ linux-mod_src_compile
+}
+
+src_install() {
+ linux-mod_src_install
+}
+
+pkg_preinst() {
+ find /lib/modules/${KV_FULL} -name 'kvm*.ko' -type f -delete
+
+ linux-mod_pkg_preinst
+}
diff --git a/app-emulation/kvm-kmod/metadata.xml b/app-emulation/kvm-kmod/metadata.xml
new file mode 100644
index 00000000000..f2d0026b3d6
--- /dev/null
+++ b/app-emulation/kvm-kmod/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>qemu</herd>
+ <maintainer>
+ <email>cardoe@gentoo.org</email>
+ <name>Doug Goldstein</name>
+ </maintainer>
+ <longdescription lang="en">
+ KVM (for Kernel-based Virtual Machine) is a full virtualization solution
+ for Linux on x86 hardware containing virtualization extensions (Intel VT
+ or AMD-V). This package contains kernel modules for kvm.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">kvm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/libcacard/Manifest b/app-emulation/libcacard/Manifest
new file mode 100644
index 00000000000..3385cd7ae56
--- /dev/null
+++ b/app-emulation/libcacard/Manifest
@@ -0,0 +1 @@
+DIST libcacard-0.1.2.tar.bz2 276430 SHA256 ca100118865ee24f16cf39367f74434cddbbb003a12a1adc8645f3dc34791daf SHA512 a3622b29fe3a059e069ad6f7da428278a915cec362a6aae3c7cad0d47dfadba67308631435993c0f41cabe92a05874b339518dc503b71b8d86db4976bb6987f6 WHIRLPOOL 9e1a156fbbff34148a1debc1f4a6d23aea687213a45cac7feb57134dcbd59fa95a22558e15e5c237ae6c3a7851282c72b49ee6e94c9fff8940feee13d42f08ad
diff --git a/app-emulation/libcacard/libcacard-0.1.2.ebuild b/app-emulation/libcacard/libcacard-0.1.2.ebuild
new file mode 100644
index 00000000000..78a3c4b1a49
--- /dev/null
+++ b/app-emulation/libcacard/libcacard-0.1.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="Library for emulating CAC cards"
+HOMEPAGE="http://spice-space.org/"
+SRC_URI="http://spice-space.org/download/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86"
+IUSE="static-libs"
+
+RDEPEND=">=dev-libs/nss-3.13
+ >=sys-apps/pcsc-lite-1.8"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ # --enable-passthru works only on W$
+ econf \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ use static-libs || rm "${D}"/usr/lib*/*.la
+}
diff --git a/app-emulation/libcacard/metadata.xml b/app-emulation/libcacard/metadata.xml
new file mode 100644
index 00000000000..6804d7590f4
--- /dev/null
+++ b/app-emulation/libcacard/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-emulation/libguestfs-appliance/Manifest b/app-emulation/libguestfs-appliance/Manifest
new file mode 100644
index 00000000000..47caa127259
--- /dev/null
+++ b/app-emulation/libguestfs-appliance/Manifest
@@ -0,0 +1,2 @@
+DIST appliance-1.26.0.tar.xz 94753208 SHA256 446e8f0cfb24977843049984879d471760a1f56dd9f891f2a66c16827c7dfbcf SHA512 5d493ed6e8601dde8d5a45debfee71696b96a36d0f69d428388a6f2a2d49e12c0a66bcee210fe606fc9b2b41cb42d0d2a9f5d12425f2b234423194b2609f081f WHIRLPOOL 18cb09b44ce568e4270e574fffe7ffd935c4d64564abaae66c3d70202db9df75b013a0ed8add639ac13ea4ebd0ec9d74645a774d2e969686c8bc0d616587f625
+DIST appliance-1.28.1.tar.xz 100065044 SHA256 d6aa214ba05666ca7b8494b2f1814f2f291e569a9476e837e4b9d061ff92cfa2 SHA512 f13c556953d3542f92c2c007d3e97c3568382a1879e7a558471dbeac8962bd2809e446bbf0f4647002967112abe8f9a9a06910b74e9b7d72694cf49859a26330 WHIRLPOOL fa80fc747e4270fb3bc3b853ea9abf62fd655cab4c72eb6a084d319078a9f89baf2a8c00b34c9dcbc8fb875f1526c0a8e681a6f4917710934a9c2a8d99010e04
diff --git a/app-emulation/libguestfs-appliance/files/env.file b/app-emulation/libguestfs-appliance/files/env.file
new file mode 100644
index 00000000000..577009eebf8
--- /dev/null
+++ b/