summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-portage
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-portage')
-rw-r--r--app-portage/cfg-update/Manifest1
-rw-r--r--app-portage/cfg-update/cfg-update-1.8.9.ebuild105
-rw-r--r--app-portage/cfg-update/files/cfg-update-1.8.2-bashrc.patch51
-rw-r--r--app-portage/cfg-update/files/cfg-update-1.8.2-xxdiff-to-beediff.patch45
-rw-r--r--app-portage/cfg-update/metadata.xml10
-rw-r--r--app-portage/conf-update/Manifest1
-rw-r--r--app-portage/conf-update/conf-update-1.0.2.ebuild41
-rw-r--r--app-portage/conf-update/metadata.xml20
-rw-r--r--app-portage/cpuinfo2cpuflags/Manifest2
-rw-r--r--app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-1.ebuild36
-rw-r--r--app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-2.ebuild14
-rw-r--r--app-portage/cpuinfo2cpuflags/metadata.xml11
-rw-r--r--app-portage/deltup/Manifest2
-rw-r--r--app-portage/deltup/deltup-0.4.5-r1.ebuild39
-rw-r--r--app-portage/deltup/deltup-0.4.6.ebuild40
-rw-r--r--app-portage/deltup/files/deltup-0.4.4-gcc47.patch11
-rw-r--r--app-portage/deltup/files/deltup-0.4.4-zlib-1.2.5.2.patch21
-rw-r--r--app-portage/deltup/files/deltup-0.4.5-underlink.patch11
-rw-r--r--app-portage/deltup/metadata.xml13
-rw-r--r--app-portage/demerge/Manifest1
-rw-r--r--app-portage/demerge/demerge-0.047-r1.ebuild44
-rw-r--r--app-portage/demerge/metadata.xml11
-rw-r--r--app-portage/diffmask/Manifest1
-rw-r--r--app-portage/diffmask/diffmask-0.3.3-r2.ebuild19
-rw-r--r--app-portage/diffmask/diffmask-9999.ebuild29
-rw-r--r--app-portage/diffmask/metadata.xml23
-rw-r--r--app-portage/distpatch/Manifest1
-rw-r--r--app-portage/distpatch/distpatch-0.1.1.ebuild27
-rw-r--r--app-portage/distpatch/metadata.xml14
-rw-r--r--app-portage/eclass-manpages/eclass-manpages-20150113.ebuild40
-rw-r--r--app-portage/eclass-manpages/files/eclass-to-manpage.awk416
-rwxr-xr-xapp-portage/eclass-manpages/files/eclass-to-manpage.sh36
-rw-r--r--app-portage/eclass-manpages/metadata.xml8
-rw-r--r--app-portage/eix/Manifest5
-rw-r--r--app-portage/eix/eix-0.30.10.ebuild74
-rw-r--r--app-portage/eix/eix-0.30.11.ebuild74
-rw-r--r--app-portage/eix/eix-0.30.4.ebuild74
-rw-r--r--app-portage/eix/eix-0.30.7.ebuild74
-rw-r--r--app-portage/eix/eix-0.30.8.ebuild74
-rw-r--r--app-portage/eix/metadata.xml32
-rw-r--r--app-portage/elogv/Manifest6
-rw-r--r--app-portage/elogv/elogv-0.7.6.1-r1.ebuild54
-rw-r--r--app-portage/elogv/elogv-0.7.6.2.ebuild54
-rw-r--r--app-portage/elogv/elogv-0.7.6.3.ebuild54
-rw-r--r--app-portage/elogv/elogv-0.7.6.4.ebuild54
-rw-r--r--app-portage/elogv/elogv-0.7.6.5.ebuild54
-rw-r--r--app-portage/elogv/elogv-0.7.6.6.ebuild54
-rw-r--r--app-portage/elogv/files/0.7.4-prefix.patch13
-rw-r--r--app-portage/elogv/files/elogv-0.7.5-vt100.patch38
-rw-r--r--app-portage/elogv/metadata.xml16
-rw-r--r--app-portage/elogviewer/Manifest3
-rw-r--r--app-portage/elogviewer/elogviewer-0.6.2-r3.ebuild56
-rw-r--r--app-portage/elogviewer/elogviewer-2.1-r1.ebuild49
-rw-r--r--app-portage/elogviewer/elogviewer-2.1-r2.ebuild49
-rw-r--r--app-portage/elogviewer/elogviewer-2.5.ebuild46
-rw-r--r--app-portage/elogviewer/files/elogviewer-0.5.2-clear_warning.patch49
-rw-r--r--app-portage/elogviewer/files/elogviewer-0.5.2-timesort.patch70
-rw-r--r--app-portage/elogviewer/files/elogviewer-0.6.2-missing_newline.patch23
-rw-r--r--app-portage/elogviewer/metadata.xml12
-rw-r--r--app-portage/emerge-delta-webrsync/Manifest3
-rw-r--r--app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.6.2.ebuild45
-rw-r--r--app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.1.ebuild44
-rw-r--r--app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.2-r1.ebuild49
-rw-r--r--app-portage/emerge-delta-webrsync/files/3.5.1-md5sum.patch21
-rw-r--r--app-portage/emerge-delta-webrsync/files/3.5.1-metadata.patch37
-rw-r--r--app-portage/emerge-delta-webrsync/files/3.5.1-post_sync.patch11
-rw-r--r--app-portage/emerge-delta-webrsync/metadata.xml8
-rw-r--r--app-portage/epkg/Manifest3
-rw-r--r--app-portage/epkg/epkg-0.2.ebuild24
-rw-r--r--app-portage/epkg/epkg-0.3.ebuild25
-rw-r--r--app-portage/epkg/epkg-0.4.ebuild25
-rw-r--r--app-portage/epkg/metadata.xml11
-rw-r--r--app-portage/epm/Manifest1
-rw-r--r--app-portage/epm/epm-1.40.ebuild33
-rw-r--r--app-portage/epm/epm-9999.ebuild34
-rw-r--r--app-portage/epm/files/epm-1.40-prefix.patch32
-rw-r--r--app-portage/epm/metadata.xml17
-rw-r--r--app-portage/esearch/Manifest1
-rw-r--r--app-portage/esearch/esearch-1.3-r1.ebuild54
-rw-r--r--app-portage/esearch/esearch-9999.ebuild47
-rw-r--r--app-portage/esearch/files/1.3-Fix-python-3-compatability.patch34
-rw-r--r--app-portage/esearch/files/1.3-Fix-setup.py.patch28
-rw-r--r--app-portage/esearch/files/eupdatedb.cron32
-rw-r--r--app-portage/esearch/metadata.xml8
-rw-r--r--app-portage/etc-proposals/Manifest1
-rw-r--r--app-portage/etc-proposals/etc-proposals-1.4.3-r3.ebuild43
-rw-r--r--app-portage/etc-proposals/metadata.xml12
-rw-r--r--app-portage/euscan/Manifest1
-rw-r--r--app-portage/euscan/euscan-0.1.1-r1.ebuild33
-rw-r--r--app-portage/euscan/euscan-9999.ebuild34
-rw-r--r--app-portage/euscan/metadata.xml8
-rw-r--r--app-portage/euses/Manifest1
-rw-r--r--app-portage/euses/euses-2.5.9.ebuild22
-rw-r--r--app-portage/euses/metadata.xml9
-rw-r--r--app-portage/fetchcommandwrapper/Manifest2
-rw-r--r--app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.1.ebuild26
-rw-r--r--app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.2.ebuild26
-rw-r--r--app-portage/fetchcommandwrapper/metadata.xml11
-rw-r--r--app-portage/flaggie/Manifest1
-rw-r--r--app-portage/flaggie/flaggie-0.2.1.ebuild36
-rw-r--r--app-portage/flaggie/flaggie-9999.ebuild46
-rw-r--r--app-portage/flaggie/metadata.xml16
-rw-r--r--app-portage/fquery/Manifest2
-rw-r--r--app-portage/fquery/fquery-0.2.1.4.ebuild27
-rw-r--r--app-portage/fquery/fquery-0.2.1.5.ebuild29
-rw-r--r--app-portage/fquery/metadata.xml11
-rw-r--r--app-portage/g-cpan/Manifest2
-rw-r--r--app-portage/g-cpan/g-cpan-0.16.5.ebuild39
-rw-r--r--app-portage/g-cpan/g-cpan-0.16.6.ebuild44
-rw-r--r--app-portage/g-cpan/g-cpan-9999.ebuild47
-rw-r--r--app-portage/g-cpan/metadata.xml8
-rw-r--r--app-portage/g-ctan/Manifest1
-rw-r--r--app-portage/g-ctan/g-ctan-2011.1.ebuild23
-rw-r--r--app-portage/g-ctan/metadata.xml11
-rw-r--r--app-portage/g-octave/Manifest2
-rw-r--r--app-portage/g-octave/files/g-octave-0.4.1-add_cave_support.patch88
-rw-r--r--app-portage/g-octave/files/g-octave-0.4.1-fix-Makefile.patch12
-rw-r--r--app-portage/g-octave/files/g-octave-0.4.1-fix-sourceforge-svn-root.patch36
-rw-r--r--app-portage/g-octave/g-octave-0.4.1-r4.ebuild87
-rw-r--r--app-portage/g-octave/metadata.xml20
-rw-r--r--app-portage/g-sorcery/Manifest2
-rw-r--r--app-portage/g-sorcery/g-sorcery-0.1-r1.ebuild28
-rw-r--r--app-portage/g-sorcery/g-sorcery-0.2.ebuild36
-rw-r--r--app-portage/g-sorcery/g-sorcery-9999.ebuild37
-rw-r--r--app-portage/g-sorcery/metadata.xml14
-rw-r--r--app-portage/genlop/Manifest2
-rw-r--r--app-portage/genlop/files/genlop-0.30.10-sync.patch26
-rw-r--r--app-portage/genlop/files/genlop-0.30.9-display.patch26
-rw-r--r--app-portage/genlop/genlop-0.30.10-r1.ebuild31
-rw-r--r--app-portage/genlop/genlop-0.30.10.ebuild28
-rw-r--r--app-portage/genlop/genlop-0.30.9-r1.ebuild31
-rw-r--r--app-portage/genlop/genlop-9999.ebuild29
-rw-r--r--app-portage/genlop/metadata.xml6
-rw-r--r--app-portage/gentoolkit-dev/Manifest2
-rw-r--r--app-portage/gentoolkit-dev/files/gentoolkit-dev-0.2.8.3-tests.patch25
-rw-r--r--app-portage/gentoolkit-dev/gentoolkit-dev-0.2.8.3-r1.ebuild51
-rw-r--r--app-portage/gentoolkit-dev/gentoolkit-dev-0.3.0.ebuild75
-rw-r--r--app-portage/gentoolkit-dev/gentoolkit-dev-9999.ebuild75
-rw-r--r--app-portage/gentoolkit-dev/metadata.xml8
-rw-r--r--app-portage/gentoolkit/Manifest2
-rw-r--r--app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-476740.patch33
-rw-r--r--app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-484340.patch46
-rw-r--r--app-portage/gentoolkit/files/0.3.0.9-equery-508114.patch37
-rw-r--r--app-portage/gentoolkit/files/0.3.0.9-equery-strip-XXXFLAGS.patch27
-rw-r--r--app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-526400.patch26
-rw-r--r--app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-1.patch26
-rw-r--r--app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-2.patch30
-rw-r--r--app-portage/gentoolkit/gentoolkit-0.3.0.8-r2.ebuild85
-rw-r--r--app-portage/gentoolkit/gentoolkit-0.3.0.9-r1.ebuild87
-rw-r--r--app-portage/gentoolkit/gentoolkit-0.3.0.9-r2.ebuild90
-rw-r--r--app-portage/gentoolkit/gentoolkit-0.3.0.9.ebuild83
-rw-r--r--app-portage/gentoolkit/gentoolkit-9999.ebuild77
-rw-r--r--app-portage/gentoolkit/metadata.xml11
-rw-r--r--app-portage/gentoopm/Manifest3
-rw-r--r--app-portage/gentoopm/gentoopm-0.2.6.ebuild40
-rw-r--r--app-portage/gentoopm/gentoopm-0.2.8.ebuild40
-rw-r--r--app-portage/gentoopm/gentoopm-0.2.9.ebuild40
-rw-r--r--app-portage/gentoopm/gentoopm-9999.ebuild52
-rw-r--r--app-portage/gentoopm/metadata.xml16
-rw-r--r--app-portage/getdelta/Manifest1
-rw-r--r--app-portage/getdelta/files/getdelta-0.7.9.patch252
-rw-r--r--app-portage/getdelta/getdelta-0.7.9-r2.ebuild47
-rw-r--r--app-portage/getdelta/metadata.xml13
-rw-r--r--app-portage/gpytage/Manifest1
-rw-r--r--app-portage/gpytage/gpytage-0.3.0_rc1.ebuild24
-rw-r--r--app-portage/gpytage/metadata.xml10
-rw-r--r--app-portage/gpyutils/Manifest4
-rw-r--r--app-portage/gpyutils/files/implementations.txt29
-rw-r--r--app-portage/gpyutils/gpyutils-0.1.2.ebuild19
-rw-r--r--app-portage/gpyutils/gpyutils-0.1.3.ebuild23
-rw-r--r--app-portage/gpyutils/gpyutils-0.1.4.ebuild23
-rw-r--r--app-portage/gpyutils/gpyutils-0.1.ebuild19
-rw-r--r--app-portage/gpyutils/gpyutils-9999.ebuild33
-rw-r--r--app-portage/gpyutils/metadata.xml16
-rw-r--r--app-portage/grs/grs-9999.ebuild40
-rw-r--r--app-portage/grs/metadata.xml8
-rw-r--r--app-portage/gs-elpa/Manifest1
-rw-r--r--app-portage/gs-elpa/gs-elpa-0.1.3.ebuild26
-rw-r--r--app-portage/gs-elpa/gs-elpa-9999.ebuild27
-rw-r--r--app-portage/gs-elpa/metadata.xml11
-rw-r--r--app-portage/gs-pypi/Manifest2
-rw-r--r--app-portage/gs-pypi/gs-pypi-0.1.ebuild26
-rw-r--r--app-portage/gs-pypi/gs-pypi-0.2.ebuild26
-rw-r--r--app-portage/gs-pypi/gs-pypi-9999.ebuild27
-rw-r--r--app-portage/gs-pypi/metadata.xml11
-rw-r--r--app-portage/install-mask/Manifest2
-rw-r--r--app-portage/install-mask/files/install-mask.conf6
-rw-r--r--app-portage/install-mask/files/location-db.conf18
-rw-r--r--app-portage/install-mask/files/location-db.xml24
-rw-r--r--app-portage/install-mask/install-mask-0.0.2-r3.ebuild27
-rw-r--r--app-portage/install-mask/install-mask-0.1.1.ebuild26
-rw-r--r--app-portage/install-mask/install-mask-9999.ebuild36
-rw-r--r--app-portage/install-mask/metadata.xml16
-rw-r--r--app-portage/kuroo4/Manifest2
-rw-r--r--app-portage/kuroo4/kuroo4-0.90.4.ebuild24
-rw-r--r--app-portage/kuroo4/kuroo4-0.90.5.ebuild24
-rw-r--r--app-portage/kuroo4/metadata.xml16
-rw-r--r--app-portage/layman-dbtools/layman-dbtools-0_p20100322.ebuild57
-rw-r--r--app-portage/layman-dbtools/metadata.xml8
-rw-r--r--app-portage/layman/Manifest4
-rw-r--r--app-portage/layman/files/layman-2.0.0.doctest.patch20
-rw-r--r--app-portage/layman/files/layman-2.0.0.svn_upgrade.patch58
-rw-r--r--app-portage/layman/files/layman-2.1.0-incorrect-import-make-conf-fix.patch29
-rw-r--r--app-portage/layman/files/layman-2.1.0-local_overlay.patch27
-rw-r--r--app-portage/layman/files/layman-2.2.0-adds-kwargs-debug.patch28
-rw-r--r--app-portage/layman/files/layman-2.2.0-change-for-upstream-ssl-fetch.patch38
-rw-r--r--app-portage/layman/files/layman-2.2.0-removes-doctest-remnants.patch208
-rw-r--r--app-portage/layman/layman-2.0.0-r1.ebuild69
-rw-r--r--app-portage/layman/layman-2.0.0-r3.ebuild70
-rw-r--r--app-portage/layman/layman-2.1.0-r3.ebuild72
-rw-r--r--app-portage/layman/layman-2.2.0-r7.ebuild89
-rw-r--r--app-portage/layman/layman-2.3.0.ebuild92
-rw-r--r--app-portage/layman/layman-9999.ebuild95
-rw-r--r--app-portage/layman/metadata.xml25
-rw-r--r--app-portage/lightweight-cvs-toolkit/Manifest1
-rw-r--r--app-portage/lightweight-cvs-toolkit/lightweight-cvs-toolkit-1.ebuild22
-rw-r--r--app-portage/lightweight-cvs-toolkit/metadata.xml16
-rw-r--r--app-portage/maintainer-helper/Manifest1
-rw-r--r--app-portage/maintainer-helper/maintainer-helper-0.1.2.ebuild34
-rw-r--r--app-portage/maintainer-helper/metadata.xml7
-rw-r--r--app-portage/metadata.xml39
-rw-r--r--app-portage/metagen/Manifest1
-rw-r--r--app-portage/metagen/metadata.xml11
-rw-r--r--app-portage/metagen/metagen-0.6.2-r1.ebuild35
-rw-r--r--app-portage/metagen/metagen-9999.ebuild36
-rw-r--r--app-portage/mirrorselect/Manifest3
-rw-r--r--app-portage/mirrorselect/files/mirrorselect-2.2.2-Add-outputmodefunctionassignment.patch24
-rw-r--r--app-portage/mirrorselect/files/mirrorselect-2.2.2-Update-for-ssl-fetch-api-change.patch24
-rw-r--r--app-portage/mirrorselect/metadata.xml10
-rw-r--r--app-portage/mirrorselect/mirrorselect-2.2.0.1.ebuild33
-rw-r--r--app-portage/mirrorselect/mirrorselect-2.2.2-r2.ebuild41
-rw-r--r--app-portage/mirrorselect/mirrorselect-2.2.2.ebuild37
-rw-r--r--app-portage/mirrorselect/mirrorselect-9999.ebuild45
-rw-r--r--app-portage/overlint/Manifest2
-rw-r--r--app-portage/overlint/metadata.xml8
-rw-r--r--app-portage/overlint/overlint-0.5.2.ebuild20
-rw-r--r--app-portage/overlint/overlint-0.5.3.ebuild20
-rw-r--r--app-portage/perl-info/Manifest1
-rw-r--r--app-portage/perl-info/metadata.xml5
-rw-r--r--app-portage/perl-info/perl-info-0.16.ebuild22
-rw-r--r--app-portage/pfl/Manifest1
-rw-r--r--app-portage/pfl/files/e-file-20110906-http-response.patch11
-rw-r--r--app-portage/pfl/files/e-file-20110906-portageq.patch44
-rw-r--r--app-portage/pfl/files/pfl-2.4-reponame.patch11
-rw-r--r--app-portage/pfl/metadata.xml17
-rw-r--r--app-portage/pfl/pfl-2.4-r4.ebuild48
-rw-r--r--app-portage/pms-test-suite/Manifest1
-rw-r--r--app-portage/pms-test-suite/metadata.xml15
-rw-r--r--app-portage/pms-test-suite/pms-test-suite-0.2.ebuild62
-rw-r--r--app-portage/pms-test-suite/pms-test-suite-9999.ebuild71
-rw-r--r--app-portage/portage-utils/Manifest4
-rw-r--r--app-portage/portage-utils/files/portage-utils-0.56-qcheck-tz.patch31
-rw-r--r--app-portage/portage-utils/files/portage-utils-0.56-qlop-tz.patch39
-rwxr-xr-xapp-portage/portage-utils/files/post_sync8
-rw-r--r--app-portage/portage-utils/files/q-reinitialize3
-rw-r--r--app-portage/portage-utils/metadata.xml7
-rw-r--r--app-portage/portage-utils/portage-utils-0.53.ebuild76
-rw-r--r--app-portage/portage-utils/portage-utils-0.54.ebuild76
-rw-r--r--app-portage/portage-utils/portage-utils-0.55.ebuild76
-rw-r--r--app-portage/portage-utils/portage-utils-0.56.ebuild80
-rw-r--r--app-portage/porthole/Manifest1
-rw-r--r--app-portage/porthole/files/porthole-0.6.1-masking_status.patch17
-rw-r--r--app-portage/porthole/files/porthole-0.6.1-missing-attribute.patch14
-rw-r--r--app-portage/porthole/files/porthole-0.6.1-missing_import.patch19
-rw-r--r--app-portage/porthole/metadata.xml13
-rw-r--r--app-portage/porthole/porthole-0.6.1-r1.ebuild76
-rw-r--r--app-portage/porthole/porthole-0.6.1-r2.ebuild76
-rw-r--r--app-portage/porthole/porthole-0.6.1-r3.ebuild77
-rw-r--r--app-portage/porticron/Manifest1
-rw-r--r--app-portage/porticron/files/porticron-0.7_p20140126-portage-2.2.8.patch26
-rw-r--r--app-portage/porticron/metadata.xml11
-rw-r--r--app-portage/porticron/porticron-0.7_p20140126.ebuild32
-rw-r--r--app-portage/portpeek/Manifest4
-rw-r--r--app-portage/portpeek/metadata.xml7
-rw-r--r--app-portage/portpeek/portpeek-2.0.25.ebuild26
-rw-r--r--app-portage/portpeek/portpeek-2.1.18.ebuild30
-rw-r--r--app-portage/portpeek/portpeek-2.1.19.ebuild30
-rw-r--r--app-portage/portpeek/portpeek-2.1.9.ebuild30
-rw-r--r--app-portage/pqlop/Manifest1
-rw-r--r--app-portage/pqlop/metadata.xml17
-rw-r--r--app-portage/pqlop/pqlop-0.02-r1.ebuild35
-rwxr-xr-xapp-portage/prefix-chain-setup/files/prefix-chain-setup.in170
-rw-r--r--app-portage/prefix-chain-setup/metadata.xml5
-rw-r--r--app-portage/prefix-chain-setup/prefix-chain-setup-0.4-r5.ebuild23
-rw-r--r--app-portage/repo-commit/Manifest2
-rw-r--r--app-portage/repo-commit/metadata.xml24
-rw-r--r--app-portage/repo-commit/repo-commit-0.4.1.ebuild25
-rw-r--r--app-portage/repo-commit/repo-commit-0.4.ebuild25
-rw-r--r--app-portage/repo-commit/repo-commit-9999.ebuild37
-rw-r--r--app-portage/smart-live-rebuild/Manifest3
-rw-r--r--app-portage/smart-live-rebuild/metadata.xml22
-rw-r--r--app-portage/smart-live-rebuild/smart-live-rebuild-1.3.3.ebuild32
-rw-r--r--app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.1.ebuild32
-rw-r--r--app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.ebuild32
-rw-r--r--app-portage/smart-live-rebuild/smart-live-rebuild-9999.ebuild42
-rw-r--r--app-portage/splat/Manifest1
-rw-r--r--app-portage/splat/files/splat-0.08-prefix.patch33
-rw-r--r--app-portage/splat/metadata.xml7
-rw-r--r--app-portage/splat/splat-0.08-r1.ebuild28
-rw-r--r--app-portage/tatt/Manifest1
-rw-r--r--app-portage/tatt/metadata.xml22
-rw-r--r--app-portage/tatt/tatt-0.3.ebuild37
-rw-r--r--app-portage/tatt/tatt-9999.ebuild37
-rw-r--r--app-portage/ufed/Manifest5
-rw-r--r--app-portage/ufed/files/ufed-0.40.2-manpage-URL.patch25
-rw-r--r--app-portage/ufed/files/ufed-0.40.2-prefix.patch203
-rw-r--r--app-portage/ufed/files/ufed-0.90_rc2-get_portdir_from_portageq.patch99
-rw-r--r--app-portage/ufed/metadata.xml14
-rw-r--r--app-portage/ufed/ufed-0.40.2-r1.ebuild44
-rw-r--r--app-portage/ufed/ufed-0.90_rc1.ebuild37
-rw-r--r--app-portage/ufed/ufed-0.90_rc2-r1.ebuild41
-rw-r--r--app-portage/ufed/ufed-0.90_rc2.ebuild39
-rw-r--r--app-portage/ufed/ufed-0.91.ebuild39
-rw-r--r--app-portage/ufed/ufed-0.92.ebuild39
-rw-r--r--app-portage/ufed/ufed-9999.ebuild34
315 files changed, 10042 insertions, 0 deletions
diff --git a/app-portage/cfg-update/Manifest b/app-portage/cfg-update/Manifest
new file mode 100644
index 000000000000..25535d17b12c
--- /dev/null
+++ b/app-portage/cfg-update/Manifest
@@ -0,0 +1 @@
+DIST cfg-update-1.8.9.tgz 162356 SHA256 82d14b3cd7b1c144d7d77836919689471cd31c69cefba9b8714580e6cf1e495e SHA512 2c2d4d5cddaf1c5c8233bfde29b488d682e723da3e267756e203b4ea3c97f2f88615530002975ff07fb466eebed603e4ce227591a1b1e09ef3aca8c2eb17fcb9 WHIRLPOOL d17b179bc4589cc650178e981c0d5a6e336023f3128a9b76c1a4a19e0fe347982ff75d2337ed972e040fec1b93097b4336818b748f2af20eccb2e82f332417af
diff --git a/app-portage/cfg-update/cfg-update-1.8.9.ebuild b/app-portage/cfg-update/cfg-update-1.8.9.ebuild
new file mode 100644
index 000000000000..336793040737
--- /dev/null
+++ b/app-portage/cfg-update/cfg-update-1.8.9.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Easy to use GUI & CLI alternative for etc-update with safe automatic updating functionality"
+HOMEPAGE="https://github.com/rich0/cfg-update"
+SRC_URI="https://github.com/rich0/cfg-update/tarball/${PV} -> ${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc x86"
+IUSE="X"
+
+RDEPEND="
+ dev-perl/TermReadKey
+ X? (
+ >=x11-misc/sux-1.0
+ x11-apps/xhost
+ )"
+
+S="${WORKDIR}/rich0-cfg-update-2f10786"
+
+pkg_prerm() {
+ if [[ ${ROOT} == / ]]
+ then
+ ebegin "Disabling portage hook"
+ cfg-update --ebuild --disable-portage-hook
+ eend $?
+ ebegin "Disabling paludis hook"
+ cfg-update --ebuild --disable-paludis-hook
+ eend $?
+ fi
+}
+
+pkg_postrm() {
+ echo
+ ewarn "If you want to permanently remove cfg-update from your system"
+ ewarn "you should remove the index file /var/lib/cfg-update/checksum.index"
+ echo
+}
+
+src_install() {
+ dobin \
+ cfg-update emerge_with_indexing_for_cfg-update \
+ emerge_with_indexing_for_cfg-update_phphelper \
+ cfg-update_phphelper emerge_with_indexing_for_cfg-update_bashhelper
+ insinto /usr/lib/cfg-update
+ doins cfg-update cfg-update_indexing test.tgz
+ dodoc ChangeLog
+ doman *.8
+ insinto /etc
+ doins cfg-update.conf cfg-update.hosts
+ keepdir /var/lib/cfg-update
+}
+
+pkg_postinst() {
+ if [[ ! -e "${ROOT}"/var/lib/cfg-update/checksum.index \
+ && -e "${ROOT}"/var/lib/cfg-update/checksum.index ]]
+ then
+ ebegin "Moving checksum.index from /usr/lib/cfg-update to /var/lib/cfg-update"
+ mv "${ROOT}"/usr/lib/cfg-update/checksum.index \
+ "${ROOT}"/var/lib/cfg-update/checksum.index
+ eend $?
+ fi
+
+ if [[ -e "${ROOT}"/usr/bin/paludis ]]
+ then
+ echo
+ ewarn "If you have used Paludis version <0.20.0 on your system, chances are"
+ ewarn "that you have some corrupted CONTENTS files on your system..."
+ echo
+ ewarn "Please run: cfg-update --check-packages"
+ echo
+ ewarn "The above command will check all packages installed with Paludis and"
+ ewarn "will output a list of packages that need to be re-installed with"
+ ewarn "Paludis 0.20.0 or higher. If you do not re-install these packages"
+ ewarn "you risk losing your custom settings when updating configuration"
+ ewarn "files, that belong to these packages, with cfg-update!"
+ echo
+ fi
+
+ if [[ ${ROOT} == / ]]
+ then
+ ebegin "Moving backups to /var/lib/cfg-update/backups"
+ /usr/bin/cfg-update --ebuild --move-backups
+ eend $?
+ fi
+
+ echo
+ einfo "If this is a first time install, please check the configuration"
+ einfo "in /etc/cfg-update.conf before using cfg-update:"
+ echo
+ einfo "If your system does not have an X-server installed you need to"
+ einfo "change the MERGE_TOOL to sdiff, imediff2 or vimdiff."
+ einfo "If you have X installed, set MERGE_TOOL to your favorite GUI tool:"
+ einfo "xxdiff, beediff, kdiff3, meld (default), gtkdiff, gvimdiff, tkdiff"
+ echo
+ einfo "TIP: to maximize the chances of future automatic updates, run:"
+ einfo "cfg-update --optimize-backups"
+ echo
+}
diff --git a/app-portage/cfg-update/files/cfg-update-1.8.2-bashrc.patch b/app-portage/cfg-update/files/cfg-update-1.8.2-bashrc.patch
new file mode 100644
index 000000000000..73fe9b83103a
--- /dev/null
+++ b/app-portage/cfg-update/files/cfg-update-1.8.2-bashrc.patch
@@ -0,0 +1,51 @@
+--- cfg-update-1.8.2-r1/cfg-update
++++ cfg-update-1.8.2-r1/cfg-update
+@@ -538,9 +538,9 @@
+ local $ENV{LC_ALL}="C";
+ if (`grep '^.*cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
+ local $ENV{LC_ALL}="C";
+- if (`grep '^#.*cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
++ if (`grep ': cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
+ &root_only("Can't enable the Portage hook if you're not root...");
+- `perl -p -i -e 's/#if \\[ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" \\] && \\[ -e \\"\\/usr\\/bin\\/cfg-update\\" \\]; then cfg-update --index; fi/if \\[ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" \\] && \\[ -e \\"\\/usr\\/bin\\/cfg-update\\" \\]; then cfg-update --index; fi/;' $portage_hook`;
++ `perl -p -i -e 's/: (cfg-update.*--index)/\$1/;' $portage_hook`;
+ if ($opt_d >= 1) { print "$tab"."Enabled Portage hook in $portage_hook...\n"; }
+ } else {
+ if ($opt_d >= 1) { print "$tab"."Portage hook is already enabled...\n"; }
+@@ -549,16 +549,17 @@
+ &root_only("Can't add the Portage hook if you're not root...");
+ `echo >> $portage_hook`;
+ `echo "# This hook is neccesary for automatic updating of the cfg-update index, please do not modify it!" >> $portage_hook`;
+- `echo "if [ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" ] && [ -e \\"/usr/bin/cfg-update\\" ]; then cfg-update --index; fi" >> $portage_hook`;
+- `echo >> $portage_hook`;
++ `echo "pre_pkg_setup() {" >> $portage_hook`;
++ `echo " [[ \\\$ROOT = / ]] && cfg-update --index" >> $portage_hook`;
++ `echo "}" >> $portage_hook`;
+ if ($opt_d >= 1) { print "$tab"."Added Portage hook in $portage_hook...\n"; }
+ }
+ } else {
+ &root_only("Can't create the Portage hook if you're not root...");
+- `echo >> $portage_hook`;
+ `echo "# This hook is neccesary for automatic updating of the cfg-update index, please do not modify it!" >> $portage_hook`;
+- `echo "if [ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" ] && [ -e \\"/usr/bin/cfg-update\\" ]; then cfg-update --index; fi" >> $portage_hook`;
+- `echo >> $portage_hook`;
++ `echo "pre_pkg_setup() {" >> $portage_hook`;
++ `echo " [[ \\\$ROOT = / ]] && cfg-update --index" >> $portage_hook`;
++ `echo "}" >> $portage_hook`;
+ if ($opt_d >= 1) { print "$tab"."Created Portage hook in $portage_hook...\n"; }
+ }
+ }
+@@ -2209,11 +2210,11 @@
+ local $ENV{LC_ALL}="C";
+ if (`grep '^.*cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
+ local $ENV{LC_ALL}="C";
+- if (`grep '^#.*cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
++ if (`grep ': cfg-update.*--index' $portage_hook` =~ /cfg-update/) {
+ if ($opt_ebuild == 0) { print "$tab"." Portage hook is already disabled...\n"; }
+ } else {
+ &root_only("Can't disable the Portage hook if you're not root...");
+- `perl -p -i -e 's/^if \\[ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" \\] && \\[ -e \\"\\/usr\\/bin\\/cfg-update\\" \\]; then cfg-update --index; fi/#if \\[ \\"\\\$EBUILD_PHASE\\" = \\"setup\\" \\] && \\[ -e \\"\\/usr\\/bin\\/cfg-update\\" \\]; then cfg-update --index; fi/;' $portage_hook`;
++ `perl -p -i -e 's/cfg-update.*--index/: \$&/;' $portage_hook`;
+ if ($opt_ebuild == 0) { print "$tab"." Disabled Portage hook in $portage_hook...\n"; }
+ }
+ } else {
diff --git a/app-portage/cfg-update/files/cfg-update-1.8.2-xxdiff-to-beediff.patch b/app-portage/cfg-update/files/cfg-update-1.8.2-xxdiff-to-beediff.patch
new file mode 100644
index 000000000000..b1d2416aec67
--- /dev/null
+++ b/app-portage/cfg-update/files/cfg-update-1.8.2-xxdiff-to-beediff.patch
@@ -0,0 +1,45 @@
+http://bugs.gentoo.org/show_bug.cgi?id=300216
+http://bugs.gentoo.org/show_bug.cgi?id=303199
+
+--- cfg-update.conf
++++ cfg-update.conf
+@@ -1,10 +1,10 @@
+ # +----------+
+ # | MERGETOOL \
+ # +------------+-------------------------------------------------------------+
+-# | The recommended tool for merging is xxdiff but you can also use other |
+-# | tools if you don't like xxdiff. The Supported tools are listed below: |
++# | The recommended tool for merging is beediff but you can also use other |
++# | tools if you don't like beediff. The Supported tools are listed below: |
+ # +----------+-----+--------------------------+------------------------------+
+-# | xxdiff | GUI | KDE (or Gnome with QT) | |
++# | beediff | GUI | QT | |
+ # | kdiff3 | GUI | KDE (or Gnome with QT) | |
+ # | meld | GUI | Gnome (or KDE with GTK) | |
+ # | gtkdiff | GUI | Gnome (or KDE with GTK) | STAGE 3 not supported! |
+@@ -14,7 +14,7 @@
+ # | sdiff | CLI | Systems without X | STAGE 3 not supported! |
+ # | imediff2 | CLI | Systems without X | STAGE 3 not supported! |
+ # +----------+-----+--------------------------+------------------------------+
+-MERGE_TOOL = /usr/bin/xxdiff
++MERGE_TOOL = /usr/bin/beediff
+
+
+ # +--------+
+@@ -64,7 +64,7 @@
+ # | If a merge-conflict has been detected in STAGE 2, you can now solve it |
+ # | manually in the MERGETOOL. Simply select the line(s) you need. When you |
+ # | are done, cfg-update will replace the current configuration file with the|
+-# | merged result. Stage 3 works with xxdiff, kdiff3, meld, tkdiff, gtkdiff. |
++# | merged result. Stage 3 works with beediff, kdiff3, meld, tkdiff, gtkdiff.|
+ # +--------------------------------------------------------------------------+
+ ENABLE_STAGE3 = yes
+
+@@ -145,7 +145,6 @@
+ # INDEX_FILE = /var/lib/cfg-update/checksum.index # this file contains all MD5 checksums for the host
+ # PKG_DB = /var/db/pkg # this directory contains the CONTENTS files (you can change it when your system uses another location)
+ # HOSTS_FILE = /etc/cfg-update.hosts # this file contains all sshfs-mount settings for updating remote machines from a single location
+-# XXDIFF_STYLE = "--style Keramik" # this variable controls the style of xxdiff
+ #
+ ##############################################################################
+ # IF YOU CHANGE THE FILENAME FORMAT VARIABLES, CFG-UPDATE WILL BE BROKEN! #
diff --git a/app-portage/cfg-update/metadata.xml b/app-portage/cfg-update/metadata.xml
new file mode 100644
index 000000000000..423c3c76552c
--- /dev/null
+++ b/app-portage/cfg-update/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>rich0@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">rich0/cfg-update</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/conf-update/Manifest b/app-portage/conf-update/Manifest
new file mode 100644
index 000000000000..76130464779e
--- /dev/null
+++ b/app-portage/conf-update/Manifest
@@ -0,0 +1 @@
+DIST conf-update-1.0.2.tar.bz2 18243 SHA256 1246b83d8927e4333cfcb535217e5f055bc9aa0290f617c2ab1bb97dbeb3de9c SHA512 8611b30e58a9222a024e19d67e957a63d9c44627067a241e4ee5e761f1950ae7f1aa1491f055ba267be65f813ee7da1a8703028736b65dfd2c4ef79ace906f49 WHIRLPOOL 139e07105eed7d8ee5246c24833ecc110c92a5361892a5ee98ea2eee5d30199cbee788f47497d5d32c95c387bbf2df16589faa79c2dbf00b5ca5d347d7483c9e
diff --git a/app-portage/conf-update/conf-update-1.0.2.ebuild b/app-portage/conf-update/conf-update-1.0.2.ebuild
new file mode 100644
index 000000000000..ad496c5527d5
--- /dev/null
+++ b/app-portage/conf-update/conf-update-1.0.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="${PN} is a ncurses-based config management utility"
+HOMEPAGE="http://dev.gentoo.org/~nimiux/app-portage/${PN}"
+SRC_URI="http://dev.gentoo.org/~nimiux/app-portage/${PN}/distfiles/${PF}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="colordiff"
+
+RDEPEND=">=dev-libs/glib-2.6
+ sys-libs/ncurses
+ dev-libs/openssl
+ colordiff? ( app-misc/colordiff )"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+src_prepare() {
+ sed -i -e "s/\$Rev:.*\\$/${PVR}/" "${S}"/"${PN}".h || \
+ die 'version-sed failed'
+
+ if use colordiff ; then
+ sed -i -e "s/diff_tool=diff/diff_tool=colordiff/" ${PN}.conf || \
+ die 'colordiff-sed failed'
+ fi
+}
+
+src_compile() {
+ emake CC=$(tc-getCC)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+}
diff --git a/app-portage/conf-update/metadata.xml b/app-portage/conf-update/metadata.xml
new file mode 100644
index 000000000000..637068688174
--- /dev/null
+++ b/app-portage/conf-update/metadata.xml
@@ -0,0 +1,20 @@
+<?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">
+conf-update is a curses based tool for the Gentoo Linux portage
+system
+</longdescription>
+<longdescription lang="es">
+conf-update es una herramienta basada en curses para el sistema
+portage de Gentoo Linux
+</longdescription>
+<use>
+ <flag name='colordiff'>Use colors when displaying diffs
+ (<pkg>app-misc/colordiff</pkg>)</flag>
+</use>
+</pkgmetadata>
diff --git a/app-portage/cpuinfo2cpuflags/Manifest b/app-portage/cpuinfo2cpuflags/Manifest
new file mode 100644
index 000000000000..8f4b6b6512ab
--- /dev/null
+++ b/app-portage/cpuinfo2cpuflags/Manifest
@@ -0,0 +1,2 @@
+DIST cpuinfo2cpuflags-1.tar.gz 1429 SHA256 aaa4b80568936acc4b2798f62254a5170328c862cadc70b22cd10e4e6716bbcc SHA512 68a21cfdb0fc8c6eb5aad5c6702d50dd56c927b2010efea1651dbc6a9657654b770bc5a4055fb11e790066c2c63c9ea29c3e03d91057abe187e7029e6797aede WHIRLPOOL 57c66d7eddbf6245735f037980a3d7a685dbccc11bba7e7dd0e1290a77960f17cdb81f161c012abc0eec213b951709df8d7677f0034d5b083bc6f45be1386ad8
+DIST cpuinfo2cpuflags-2.tar.bz2 68939 SHA256 a8779df6fbd5f7d3b92580b0b73242a209bedd4e8204ea04d1d811e1ca6d5cba SHA512 672042112e6430edb0dbfd82d3de2088324544e7bcd81b1c3376d5a85b5f7da91b0e1c92d00d575adb861091b33de599a05edc9a75d0ef76a253ca077276127c WHIRLPOOL f64c040a4a6b8c193447d6c01aa2ba18af5c1232c6a7b0f9f794f5792c39d7c4288c190d135f2c80475dbf5fc3f187496edab4861209209311cdcd0e4218c7d8
diff --git a/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-1.ebuild b/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-1.ebuild
new file mode 100644
index 000000000000..2954fe7f013a
--- /dev/null
+++ b/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit python-r1
+
+DESCRIPTION="Script to guess CPU_FLAGS_X86 flags from /proc/cpuinfo"
+HOMEPAGE="https://bitbucket.org/mgorny/cpuinfo2cpuflags"
+SRC_URI="https://bitbucket.org/mgorny/cpuinfo2cpuflags/downloads/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=${PYTHON_DEPS}
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+src_install() {
+ python_foreach_impl python_newscript "${PN}-x86"{.py,}
+}
+
+pkg_postinst() {
+ if has_version 'sys-apps/portage' \
+ && ! has_version "sys-apps/portage[${PYTHON_USEDEP}]"
+ then
+ ewarn "Support for matching Python implementations should be enabled"
+ ewarn "on sys-apps/portage as well. Otherwise, cpuinfo2cpuflags won't"
+ ewarn "be able to figure out the correct repository location and will"
+ ewarn "require you to specify it explicitly."
+ fi
+}
diff --git a/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-2.ebuild b/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-2.ebuild
new file mode 100644
index 000000000000..bb1061699e90
--- /dev/null
+++ b/app-portage/cpuinfo2cpuflags/cpuinfo2cpuflags-2.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Tool to guess CPU_FLAGS_X86 flags for the host"
+HOMEPAGE="https://bitbucket.org/mgorny/cpuinfo2cpuflags"
+SRC_URI="https://bitbucket.org/mgorny/cpuinfo2cpuflags/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/app-portage/cpuinfo2cpuflags/metadata.xml b/app-portage/cpuinfo2cpuflags/metadata.xml
new file mode 100644
index 000000000000..b995c192eb02
--- /dev/null
+++ b/app-portage/cpuinfo2cpuflags/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="bitbucket">mgorny/cpuinfo2cpuflags</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/deltup/Manifest b/app-portage/deltup/Manifest
new file mode 100644
index 000000000000..36a69e512b81
--- /dev/null
+++ b/app-portage/deltup/Manifest
@@ -0,0 +1,2 @@
+DIST deltup-0.4.5.tar.gz 14728 SHA256 9c8597780513e5231eb07b05cb1a1ee07b0fec71a4be2dd4a5cb2dd1011fc795 SHA512 fae6814f74fd62eee45701eed4df45ed5f6b6da50cff53d7a04ff3f6e11553ad526c3b3262048e210b1d932b6d30cba69ac1962b867b01aed90de58b45bf6c37 WHIRLPOOL a91994aa049ec25fc1b5d3a816595354114ef37e9655b5d91aea973fdfa187b77aa33aa620de3c38c5888bd2d9c89f376a3de8dd43104515961b3ffc128ab77e
+DIST deltup-0.4.6.tar.gz 14869 SHA256 f86b304dcdadc864cd347d382dc2c9c249e399f22408d6d7d68490374386c365 SHA512 196be319f31860d89654c23241edde503d4194064617970d87cb0d0a66544959bc666dd34a3bf1a42e69ddb5927420728a1e208b7bb848e935e99f3a090ffa7a WHIRLPOOL 4186c446ea3bcbd28577119e56ca2fe5ce8b479f80ebc48ca34727481385d0e854714a6aad34a466b933279e3f3709cc1b78607cc216c81acee800e480e37b26
diff --git a/app-portage/deltup/deltup-0.4.5-r1.ebuild b/app-portage/deltup/deltup-0.4.5-r1.ebuild
new file mode 100644
index 000000000000..4ce660ea8f2f
--- /dev/null
+++ b/app-portage/deltup/deltup-0.4.5-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs flag-o-matic
+
+DESCRIPTION="Delta-Update - patch system for updating source-archives"
+HOMEPAGE="http://deltup.sourceforge.net"
+SRC_URI="http://deltup.org/e107_files/downloads//${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-libs/openssl:0
+ sys-libs/zlib
+ app-arch/bzip2"
+RDEPEND="${DEPEND}
+ || ( dev-util/bdelta =dev-util/xdelta-1* )"
+
+src_prepare () {
+ epatch "${FILESDIR}"/${PN}-0.4.4-gcc47.patch
+ epatch "${FILESDIR}"/${PN}-0.4.4-zlib-1.2.5.2.patch
+ epatch "${FILESDIR}"/${PN}-0.4.5-underlink.patch
+ epatch_user
+}
+
+src_compile () {
+ emake CXX=$(tc-getCXX)
+}
+
+src_install () {
+ emake DESTDIR="${D}" install
+ dodoc README ChangeLog
+ doman deltup.1
+}
diff --git a/app-portage/deltup/deltup-0.4.6.ebuild b/app-portage/deltup/deltup-0.4.6.ebuild
new file mode 100644
index 000000000000..676a53be0163
--- /dev/null
+++ b/app-portage/deltup/deltup-0.4.6.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Delta-Update - patch system for updating source-archives."
+HOMEPAGE="http://deltup.sourceforge.net"
+SRC_URI="https://github.com/jjwhitney/Deltup/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+MY_PN="Deltup"
+S="${WORKDIR}/${MY_PN}-${PV}/src"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-libs/openssl:0
+ sys-libs/zlib
+ app-arch/bzip2"
+RDEPEND="${DEPEND}
+ || ( dev-util/bdelta =dev-util/xdelta-1* )"
+
+src_prepare () {
+ default
+ epatch_user
+}
+
+src_compile () {
+ emake CC=$(tc-getCXX)
+}
+
+src_install () {
+ emake DESTDIR="${D}" PREFIX=/usr install
+ dodoc "${S}"/../{README,ChangeLog}
+ doman "${S}"/../deltup.1
+}
diff --git a/app-portage/deltup/files/deltup-0.4.4-gcc47.patch b/app-portage/deltup/files/deltup-0.4.4-gcc47.patch
new file mode 100644
index 000000000000..507f8278bfcf
--- /dev/null
+++ b/app-portage/deltup/files/deltup-0.4.4-gcc47.patch
@@ -0,0 +1,11 @@
+diff -u deltup-0.4.4.old/tmpstore.cpp deltup-0.4.4/tmpstore.cpp
+--- deltup-0.4.4.old/tmpstore.cpp 2007-03-24 23:45:29.000000000 +0100
++++ deltup-0.4.4/tmpstore.cpp 2012-08-11 14:45:31.380739060 +0200
+@@ -19,6 +19,7 @@
+ using namespace std;
+ #include "file.h"
+ #include "system.h"
++#include "unistd.h"
+ #include <openssl/md5.h>
+
+ string tmpdir;
diff --git a/app-portage/deltup/files/deltup-0.4.4-zlib-1.2.5.2.patch b/app-portage/deltup/files/deltup-0.4.4-zlib-1.2.5.2.patch
new file mode 100644
index 000000000000..a650bf1a0174
--- /dev/null
+++ b/app-portage/deltup/files/deltup-0.4.4-zlib-1.2.5.2.patch
@@ -0,0 +1,21 @@
+Fix building with zlib >= 1.2.5.2, see http://bugs.gentoo.org/406203
+
+--- file.cpp
++++ file.cpp
+@@ -20,12 +20,12 @@
+ #include "file.h"
+
+ GZ_IFStream::GZ_IFStream(string fname) {file = gzopen(fname.c_str(), "rb");}
+-GZ_IFStream::~GZ_IFStream() {if (!bad()) gzclose(file);}
+-unsigned GZ_IFStream::read(void *data, unsigned num) {return gzread(file, data, num);}
++GZ_IFStream::~GZ_IFStream() {if (!bad()) gzclose((gzFile)file);}
++unsigned GZ_IFStream::read(void *data, unsigned num) {return gzread((gzFile)file, data, num);}
+
+ GZ_OFStream::GZ_OFStream(string fname) {file = gzopen(fname.c_str(), "wb");}
+-GZ_OFStream::~GZ_OFStream() {gzclose(file);}
+-unsigned GZ_OFStream::write(const void *data, unsigned num) {return gzwrite(file, (voidp)data, num);}
++GZ_OFStream::~GZ_OFStream() {gzclose((gzFile)file);}
++unsigned GZ_OFStream::write(const void *data, unsigned num) {return gzwrite((gzFile)file, (voidp)data, num);}
+
+ BZ_IFStream::BZ_IFStream(string fname) {file = BZ2_bzopen(fname.c_str(), "rb");}
+ BZ_IFStream::~BZ_IFStream() {if (!bad()) BZ2_bzclose(file);}
diff --git a/app-portage/deltup/files/deltup-0.4.5-underlink.patch b/app-portage/deltup/files/deltup-0.4.5-underlink.patch
new file mode 100644
index 000000000000..d0637b0caadf
--- /dev/null
+++ b/app-portage/deltup/files/deltup-0.4.5-underlink.patch
@@ -0,0 +1,11 @@
+--- deltup-0.4.5/Makefile.orig 2009-06-26 00:38:01.000000000 +0400
++++ deltup-0.4.5/Makefile 2013-08-21 07:24:33.606691559 +0400
+@@ -5,7 +5,7 @@
+ CC = g++
+
+ objfiles=bpatch.o bzip2.o file.o system.o tmpstore.o deltup.o
+-libs=-lstdc++ -lz -lbz2 -lssl
++libs=-lstdc++ -lz -lbz2 -lcrypto
+
+ #edelta: edelta.cpp deltup
+ # gcc edelta.cpp ${CXXFLAGS} -o edelta
diff --git a/app-portage/deltup/metadata.xml b/app-portage/deltup/metadata.xml
new file mode 100644
index 000000000000..6ed4705ce42b
--- /dev/null
+++ b/app-portage/deltup/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>Ameretat.Reith@gmail.com</email>
+ <name>Ameretat 'reith' Reith</name>
+ <description>Primary Maintainer, Assign bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">jjwhitney/Deltup</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/demerge/Manifest b/app-portage/demerge/Manifest
new file mode 100644
index 000000000000..76f373361841
--- /dev/null
+++ b/app-portage/demerge/Manifest
@@ -0,0 +1 @@
+DIST demerge-0.047.tar.gz 11142 SHA256 b582ca4b422b08745ef0c500d382ffc60b4c2dba5cbcfa8a453c3124f49ea7d2 SHA512 6c2d172694516c030c358c9668ff4a1fe54d910583de6829bec0de6e67d428b1853b23f6ccd18fc9286932cb9a2bc5a37bab4b5ce43ddf2dd031c64c2ee6b1ce WHIRLPOOL 2ce52af1c3561050bed7638aaddf1fb38e2c6d44711b15f55a191ebfff57773f9ed798e584c6b2ff2505f6cc996a0d28cb1deccd47fb1b6fb32bb97c3e7da576
diff --git a/app-portage/demerge/demerge-0.047-r1.ebuild b/app-portage/demerge/demerge-0.047-r1.ebuild
new file mode 100644
index 000000000000..e5338dce9f17
--- /dev/null
+++ b/app-portage/demerge/demerge-0.047-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="demerge - revert to previous installation states"
+HOMEPAGE="http://download.mpsna.de/opensource/demerge/"
+SRC_URI="http://download.mpsna.de/opensource/demerge/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ~ppc64 sh sparc x86"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ >=dev-perl/PortageXS-0.02.10-r3
+ virtual/perl-Term-ANSIColor
+ dev-perl/TermReadKey
+ dev-perl/Shell-EnvImporter"
+RDEPEND="${DEPEND}
+ sys-apps/portage"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix path for new make.conf location
+ sed -i -e 's:/etc/make.conf:/etc/portage/make.conf:g' demerge
+}
+
+src_install() {
+ dobin demerge || die
+ dodoc Changelog
+ doman demerge.3
+}
+
+pkg_postinst() {
+ if [ ! -e /etc/portage/postsync.d/demerge-record ]; then
+ mkdir -p /etc/portage/postsync.d/
+ echo '[ -x /usr/bin/demerge ] && /usr/bin/demerge --postsync' > /etc/portage/postsync.d/demerge-record
+ elog "/etc/portage/postsync.d/demerge-record has been installed for convenience"
+ elog "If you wish for it to be automatically run at the end of every --sync simply chmod +x /etc/portage/postsync.d/demerge-record"
+ elog "If ever you find this to be an inconvenience simply chmod -x /etc/portage/postsync.d/demerge-record"
+ fi
+}
diff --git a/app-portage/demerge/metadata.xml b/app-portage/demerge/metadata.xml
new file mode 100644
index 000000000000..b03def19b807
--- /dev/null
+++ b/app-portage/demerge/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 lang="en">
+demerge makes it easy to revert to previous installation states.
+</longdescription>
+</pkgmetadata>
+
diff --git a/app-portage/diffmask/Manifest b/app-portage/diffmask/Manifest
new file mode 100644
index 000000000000..b5baaba67c7f
--- /dev/null
+++ b/app-portage/diffmask/Manifest
@@ -0,0 +1 @@
+DIST diffmask-0.3.3.tar.bz2 8605 SHA256 303bccbdd6f538fee4cf20e1aa8c8c165c1843333331e46016318f198ae9cb24 SHA512 5f28f68dc1adba2fb7b0db5e2a329e46017298de9c44765d521a0f338223eef2a77573636987e942595db9b89b72db93b68cf5b805091b0ebb1e91a18bfcd48b WHIRLPOOL ac3bbf5591b993972b8ef2929a048d0b13324b19074d3107d8e8ebd35e9c54670fdd6fadf83a23f26b3a93443ca40c686567e991580701892fff0283dbe630c3
diff --git a/app-portage/diffmask/diffmask-0.3.3-r2.ebuild b/app-portage/diffmask/diffmask-0.3.3-r2.ebuild
new file mode 100644
index 000000000000..907cb2ed1367
--- /dev/null
+++ b/app-portage/diffmask/diffmask-0.3.3-r2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A utility to maintain package.unmask entries up-to-date with masks"
+HOMEPAGE="https://bitbucket.org/mgorny/diffmask/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
diff --git a/app-portage/diffmask/diffmask-9999.ebuild b/app-portage/diffmask/diffmask-9999.ebuild
new file mode 100644
index 000000000000..1c0082cce11f
--- /dev/null
+++ b/app-portage/diffmask/diffmask-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="A utility to maintain package.unmask entries up-to-date with masks"
+HOMEPAGE="https://bitbucket.org/mgorny/diffmask/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+#if LIVE
+
+KEYWORDS=
+SRC_URI=
+#endif
diff --git a/app-portage/diffmask/metadata.xml b/app-portage/diffmask/metadata.xml
new file mode 100644
index 000000000000..ebc72a80f204
--- /dev/null
+++ b/app-portage/diffmask/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <longdescription>
+ A utility to maintain a package.unmask file consisting of entries
+ copied from package.mask files. It can (try to) automatically find
+ entries unmasking specific packages, update existing package.unmask
+ entries (e.g. unmasking additional packages as they are appended to
+ the mask entries) and remove old unmasks.
+ </longdescription>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/diffmask/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/diffmask</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/distpatch/Manifest b/app-portage/distpatch/Manifest
new file mode 100644
index 000000000000..80225f03654c
--- /dev/null
+++ b/app-portage/distpatch/Manifest
@@ -0,0 +1 @@
+DIST distpatch-0.1.1.tar.gz 19768 SHA256 1a455b14ebef9a6654f08b5280617dcd291e882ff42cd2f28d12b53579594522 SHA512 232a011a7acea42e163a127f640594dd6702aa6c162034be24804c04fc458eab43948c7c5028ee8c49b564ec589564fb80e83ffb9d97c142e3f1c138a25e2739 WHIRLPOOL d6947424d1002b371201a24df6c277afdd81d4282bb91f88eff41777f0cf0a7e7f6ce6b53f688dc27f43bbf9fde8354af705351a119b2af71b8ff4a367e320da
diff --git a/app-portage/distpatch/distpatch-0.1.1.ebuild b/app-portage/distpatch/distpatch-0.1.1.ebuild
new file mode 100644
index 000000000000..c4d499331540
--- /dev/null
+++ b/app-portage/distpatch/distpatch-0.1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+PYTHON_DEPEND='*:2.6'
+SUPPORT_PYTHON_ABIS=1
+RESTRICT_PYTHON_ABIS='2.4 2.5 3.*'
+
+inherit distutils
+
+DESCRIPTION="Distfile Patching Support for Gentoo Linux (tools)"
+HOMEPAGE="http://www.gentoo.org/proj/en/infrastructure/distpatch/"
+SRC_URI="mirror://github/rafaelmartins/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+CDEPEND=">=sys-apps/portage-2.1.8.3
+ dev-python/snakeoil"
+DEPEND="${CDEPEND}
+ dev-python/setuptools"
+RDEPEND="${CDEPEND}
+ >=dev-util/diffball-1.0.1"
diff --git a/app-portage/distpatch/metadata.xml b/app-portage/distpatch/metadata.xml
new file mode 100644
index 000000000000..16df4f6ce986
--- /dev/null
+++ b/app-portage/distpatch/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/eclass-manpages/eclass-manpages-20150113.ebuild b/app-portage/eclass-manpages/eclass-manpages-20150113.ebuild
new file mode 100644
index 000000000000..44353c2dd4c2
--- /dev/null
+++ b/app-portage/eclass-manpages/eclass-manpages-20150113.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="collection of Gentoo eclass manpages"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE=""
+
+S=${WORKDIR}
+
+genit() {
+ local e=${1:-${ECLASSDIR}}
+ einfo "Generating man pages from: ${e}"
+ # Need `bash` because the .sh isn't +x on the servers #451352
+ env ECLASSDIR=${e} bash "${FILESDIR}"/eclass-to-manpage.sh || die
+}
+
+src_compile() {
+ # First process any eclasses found in overlays. Then process
+ # the main eclassdir last so that its output will clobber anything
+ # that might have come from overlays. Main tree wins!
+ local o e
+ for o in ${PORTDIR_OVERLAY} ; do
+ e="${o}/eclass"
+ [[ -d ${e} ]] || continue
+ genit "${e}"
+ done
+ genit
+}
+
+src_install() {
+ doman *.5
+}
diff --git a/app-portage/eclass-manpages/files/eclass-to-manpage.awk b/app-portage/eclass-manpages/files/eclass-to-manpage.awk
new file mode 100644
index 000000000000..afb6b80286f9
--- /dev/null
+++ b/app-portage/eclass-manpages/files/eclass-to-manpage.awk
@@ -0,0 +1,416 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# This awk converts the comment documentation found in eclasses
+# into man pages for easier/nicer reading.
+#
+# If you wish to have multiple paragraphs in a description, then
+# create empty comment lines. Paragraph parsing ends when the comment
+# block does.
+
+# The format of the eclass description:
+# @ECLASS: foo.eclass
+# @MAINTAINER:
+# <required; list of contacts, one per line>
+# @AUTHOR:
+# <optional; list of authors, one per line>
+# @BUGREPORTS:
+# <optional; description of how to report bugs;
+# default: tell people to use bugs.gentoo.org>
+# @VCSURL: <optional; url to vcs for this eclass; default: http://sources.gentoo.org/eclass/@ECLASS@?view=log>
+# @BLURB: <required; short description>
+# @DESCRIPTION:
+# <optional; long description>
+# @EXAMPLE:
+# <optional; example usage>
+
+# The format of functions:
+# @FUNCTION: foo
+# @USAGE: <required arguments to foo> [optional arguments to foo]
+# @RETURN: <whatever foo returns>
+# @MAINTAINER:
+# <optional; list of contacts, one per line>
+# [@INTERNAL]
+# @DESCRIPTION:
+# <required if no @RETURN; blurb about this function>
+
+# The format of function-specific variables:
+# @VARIABLE: foo
+# [@DEFAULT_UNSET]
+# [@INTERNAL]
+# [@REQUIRED]
+# @DESCRIPTION:
+# <required; blurb about this variable>
+# foo="<default value>"
+
+# The format of eclass variables:
+# @ECLASS-VARIABLE: foo
+# [@DEFAULT_UNSET]
+# [@INTERNAL]
+# [@REQUIRED]
+# @DESCRIPTION:
+# <required; blurb about this variable>
+# foo="<default value>"
+
+# Common features:
+# @CODE
+# In multiline paragraphs, you can create chunks of unformatted
+# code by using this marker at the start and end.
+# @CODE
+#
+# @ROFF <some roff macros>
+# If you want a little more manual control over the formatting, you can
+# insert roff macros directly into the output by using the @ROFF escape.
+
+function _stderr_msg(text, type, file, cnt) {
+ if (_stderr_header_done != 1) {
+ cnt = split(FILENAME, file, /\//)
+ print "\n" file[cnt] ":" > "/dev/stderr"
+ _stderr_header_done = 1
+ }
+
+ print " " type ":" NR ": " text > "/dev/stderr"
+}
+function warn(text) {
+ _stderr_msg(text, "warning")
+}
+function fail(text) {
+ _stderr_msg(text, "error")
+ exit(1)
+}
+
+function eat_line() {
+ ret = $0
+ sub(/^# @[A-Z]*:[[:space:]]*/,"",ret)
+ getline
+ return ret
+}
+function eat_paragraph() {
+ code = 0
+ ret = ""
+ getline
+ while ($0 ~ /^#/) {
+ # Only allow certain tokens in the middle of paragraphs
+ if ($2 ~ /^@/ && $2 !~ /^@(CODE|ROFF)$/)
+ break
+
+ sub(/^#[[:space:]]?/, "", $0)
+
+ # Escape . at start of line #420153
+ if ($0 ~ /^[.]/)
+ $0 = "\\&" $0
+
+ # Translate @CODE into @ROFF
+ if ($1 == "@CODE" && NF == 1) {
+ if (code)
+ $0 = "@ROFF .fi"
+ else
+ $0 = "@ROFF .nf"
+ code = !code
+ }
+
+ # Allow people to specify *roff commands directly
+ if ($1 == "@ROFF")
+ sub(/^@ROFF[[:space:]]*/, "", $0)
+
+ ret = ret "\n" $0
+
+ # Handle the common case of trailing backslashes in
+ # code blocks to cross multiple lines #335702
+ if (code && $NF == "\\")
+ ret = ret "\\"
+ getline
+ }
+ sub(/^\n/,"",ret)
+ return ret
+}
+
+function pre_text(p) {
+ return ".nf\n" p "\n.fi"
+}
+
+function man_text(p) {
+ return gensub(/-/, "\\-", "g", p)
+}
+
+#
+# Handle an @ECLASS block
+#
+function handle_eclass() {
+ eclass = $3
+ eclass_maintainer = ""
+ eclass_author = ""
+ blurb = ""
+ desc = ""
+ example = ""
+
+ # first the man page header
+ print ".\\\" -*- coding: utf-8 -*-"
+ print ".\\\" ### DO NOT EDIT THIS FILE"
+ print ".\\\" ### This man page is autogenerated by eclass-to-manpage.awk"
+ print ".\\\" ### based on comments found in " eclass
+ print ".\\\""
+ print ".\\\" See eclass-to-manpage.awk for documentation on how to get"
+ print ".\\\" your eclass nicely documented as well."
+ print ".\\\""
+ print ".TH \"" toupper(eclass) "\" 5 \"" strftime("%b %Y") "\" \"Portage\" \"portage\""
+
+ # now eat the global data
+ getline
+ if ($2 == "@MAINTAINER:")
+ eclass_maintainer = eat_paragraph()
+ if ($2 == "@AUTHOR:")
+ eclass_author = eat_paragraph()
+ if ($2 == "@BUGREPORTS:")
+ reporting_bugs = eat_paragraph()
+ if ($2 == "@VCSURL:")
+ vcs_url = eat_line()
+ if ($2 == "@BLURB:")
+ blurb = eat_line()
+ if ($2 == "@DESCRIPTION:")
+ desc = eat_paragraph()
+ if ($2 == "@EXAMPLE:")
+ example = eat_paragraph()
+ # in case they typo-ed the keyword, bail now
+ if ($2 ~ /^@/)
+ fail(eclass ": unknown keyword " $2)
+
+ # finally display it
+ print ".SH \"NAME\""
+ print eclass " \\- " man_text(blurb)
+ if (desc != "") {
+ print ".SH \"DESCRIPTION\""
+ print man_text(desc)
+ }
+ if (example != "") {
+ print ".SH \"EXAMPLE\""
+ print man_text(example)
+ }
+
+ # sanity checks
+ if (blurb == "")
+ fail(eclass ": no @BLURB found")
+ if (eclass_maintainer == "")
+ warn(eclass ": no @MAINTAINER found")
+}
+
+#
+# Handle a @FUNCTION block
+#
+function show_function_header() {
+ if (_function_header_done != 1) {
+ print ".SH \"FUNCTIONS\""
+ _function_header_done = 1
+ }
+}
+function handle_function() {
+ func_name = $3
+ usage = ""
+ funcret = ""
+ maintainer = ""
+ internal = 0
+ desc = ""
+
+ # make sure people haven't specified this before (copy & paste error)
+ if (all_funcs[func_name])
+ fail(eclass ": duplicate definition found for function: " func_name)
+ all_funcs[func_name] = func_name
+
+ # grab the docs
+ getline
+ if ($2 == "@USAGE:")
+ usage = eat_line()
+ if ($2 == "@RETURN:")
+ funcret = eat_line()
+ if ($2 == "@MAINTAINER:")
+ maintainer = eat_paragraph()
+ if ($2 == "@INTERNAL") {
+ internal = 1
+ getline
+ }
+ if ($2 == "@DESCRIPTION:")
+ desc = eat_paragraph()
+
+ if (internal == 1)
+ return
+
+ show_function_header()
+
+ # now print out the stuff
+ print ".TP"
+ print "\\fB" func_name "\\fR " man_text(usage)
+ if (desc != "")
+ print man_text(desc)
+ if (funcret != "") {
+ if (desc != "")
+ print ""
+ print "Return value: " funcret
+ }
+
+ if (blurb == "")
+ fail(func_name ": no @BLURB found")
+ if (desc == "" && funcret == "")
+ fail(func_name ": no @DESCRIPTION found")
+}
+
+#
+# Handle @VARIABLE and @ECLASS-VARIABLE blocks
+#
+function _handle_variable() {
+ var_name = $3
+ desc = ""
+ val = ""
+ default_unset = 0
+ internal = 0
+ required = 0
+
+ # make sure people haven't specified this before (copy & paste error)
+ if (all_vars[var_name])
+ fail(eclass ": duplicate definition found for variable: " var_name)
+ all_vars[var_name] = var_name
+
+ # grab the optional attributes
+ opts = 1
+ while (opts) {
+ getline
+ if ($2 == "@DEFAULT_UNSET")
+ default_unset = 1
+ else if ($2 == "@INTERNAL")
+ internal = 1
+ else if ($2 == "@REQUIRED")
+ required = 1
+ else
+ opts = 0
+ }
+ if ($2 == "@DESCRIPTION:")
+ desc = eat_paragraph()
+
+ # extract the default variable value
+ # first try var="val"
+ op = "="
+ regex = "^.*" var_name "=(.*)$"
+ val = gensub(regex, "\\1", "", $0)
+ if (val == $0) {
+ # next try : ${var:=val}
+ op = "?="
+ regex = "^[[:space:]]*:[[:space:]]*[$]{" var_name ":?=(.*)}"
+ val = gensub(regex, "\\1", "", $0)
+ if (val == $0) {
+ if (default_unset + required + internal == 0)
+ warn(var_name ": unable to extract default variable content: " $0)
+ val = ""
+ } else if (val !~ /^["']/ && val ~ / /) {
+ if (default_unset == 1)
+ warn(var_name ": marked as unset, but has value: " val)
+ val = "\"" val "\""
+ }
+ }
+ if (length(val))
+ val = " " op " \\fI" val "\\fR"
+ if (required == 1)
+ val = val " (REQUIRED)"
+
+ if (internal == 1)
+ return ""
+
+ # now accumulate the stuff
+ ret = \
+ ".TP" "\n" \
+ "\\fB" var_name "\\fR" val "\n" \
+ man_text(desc)
+
+ if (desc == "")
+ fail(var_name ": no @DESCRIPTION found")
+
+ return ret
+}
+function handle_variable() {
+ show_function_header()
+ ret = _handle_variable()
+ if (ret == "")
+ return
+ print ret
+}
+function handle_eclass_variable() {
+ ret = _handle_variable()
+ if (ret == "")
+ return
+ if (eclass_variables != "")
+ eclass_variables = eclass_variables "\n"
+ eclass_variables = eclass_variables ret
+}
+
+#
+# Spit out the common footer of manpage
+#
+function handle_footer() {
+ if (eclass_variables != "") {
+ print ".SH \"ECLASS VARIABLES\""
+ print man_text(eclass_variables)
+ }
+ if (eclass_author != "") {
+ print ".SH \"AUTHORS\""
+ print pre_text(man_text(eclass_author))
+ }
+ if (eclass_maintainer != "") {
+ print ".SH \"MAINTAINERS\""
+ print pre_text(man_text(eclass_maintainer))
+ }
+ print ".SH \"REPORTING BUGS\""
+ print reporting_bugs
+ print ".SH \"FILES\""
+ print ".BR " eclassdir "/" eclass
+ print ".SH \"SEE ALSO\""
+ print ".BR ebuild (5)"
+ print pre_text(gensub("@ECLASS@", eclass, "", vcs_url))
+}
+
+#
+# Init parser
+#
+BEGIN {
+ state = "header"
+ if (PORTDIR == "")
+ PORTDIR = "/usr/portage"
+ eclassdir = PORTDIR "/eclass"
+ reporting_bugs = "Please report bugs via http://bugs.gentoo.org/"
+ vcs_url = "http://sources.gentoo.org/eclass/@ECLASS@?view=log"
+}
+
+#
+# Main parsing routine
+#
+{
+ if (state == "header") {
+ if ($0 ~ /^# @ECLASS:/) {
+ handle_eclass()
+ state = "funcvar"
+ } else if ($0 == "# @DEAD") {
+ eclass = "dead"
+ exit(10)
+ } else if ($0 == "# @eclass-begin") {
+ fail("java documentation not supported")
+ } else if ($0 ~ /^# @/)
+ warn("Unexpected tag in \"" state "\" state: " $0)
+ } else if (state == "funcvar") {
+ if ($0 ~ /^# @FUNCTION:/)
+ handle_function()
+ else if ($0 ~ /^# @VARIABLE:/)
+ handle_variable()
+ else if ($0 ~ /^# @ECLASS-VARIABLE:/)
+ handle_eclass_variable()
+ else if ($0 ~ /^# @/)
+ warn("Unexpected tag in \"" state "\" state: " $0)
+ }
+}
+
+#
+# Tail end
+#
+END {
+ if (eclass == "")
+ fail("eclass not documented yet (no @ECLASS found)")
+ else if (eclass != "dead")
+ handle_footer()
+}
diff --git a/app-portage/eclass-manpages/files/eclass-to-manpage.sh b/app-portage/eclass-manpages/files/eclass-to-manpage.sh
new file mode 100755
index 000000000000..da97e3772735
--- /dev/null
+++ b/app-portage/eclass-manpages/files/eclass-to-manpage.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+: ${PORTDIR:=/usr/portage}
+: ${ECLASSDIR:=${0%/*}/../../../eclass}
+: ${FILESDIR:=${ECLASSDIR}/../app-portage/eclass-manpages/files}
+
+AWK="gawk"
+while [[ $# -gt 0 ]] ; do
+ case $1 in
+ -e) ECLASSDIR=$2; shift;;
+ -f) FILESDIR=$2; shift;;
+ -d) AWK="dgawk";;
+ *) break;;
+ esac
+ shift
+done
+
+if [[ ! -d ${ECLASSDIR} ]] ; then
+ echo "Usage: ${0##*/} [-e eclassdir] [-f eclass-to-manpage.awk FILESDIR] [eclasses]" 1>&2
+ exit 1
+fi
+
+[[ $# -eq 0 ]] && set -- "${ECLASSDIR}"/*.eclass
+
+for e in "$@" ; do
+ set -- \
+ ${AWK} \
+ -vPORTDIR="${PORTDIR}" \
+ -f "${FILESDIR}"/eclass-to-manpage.awk \
+ ${e}
+ if [[ ${AWK} == "gawk" ]] ; then
+ "$@" > ${e##*/}.5 || rm -f ${e##*/}.5
+ else
+ "$@"
+ fi
+done
diff --git a/app-portage/eclass-manpages/metadata.xml b/app-portage/eclass-manpages/metadata.xml
new file mode 100644
index 000000000000..584ce61c0c44
--- /dev/null
+++ b/app-portage/eclass-manpages/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>vapier@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/eix/Manifest b/app-portage/eix/Manifest
new file mode 100644
index 000000000000..a7effd0c6c77
--- /dev/null
+++ b/app-portage/eix/Manifest
@@ -0,0 +1,5 @@
+DIST eix-0.30.10.tar.bz2 790713 SHA256 46c9b766e2ae5dc22051e24c5615bedbefea2aa1ce17275b06c145e15b31f7c7 SHA512 76ba61ec6ab0540166ebef0215c68f8856d589f718a5bf2da2ae0d75e8cdb310f6f6b743ff9f2c6a67077aedb4f305851a4346d44b76cf649f2f01d1a5025b15 WHIRLPOOL 7352dde2d5aad4a8b7b6b57107b10c8412aa06576eaa8fe903bcc31d780618db6623844047195492ad60fa2e846c148e772f771aa9df1bc693493e41b955f943
+DIST eix-0.30.11.tar.bz2 790760 SHA256 bea8ddce48fd65d389ee0497baaeb4fa966b9d67fbc07a58f14269136709e157 SHA512 eca4e3c69a16004cd499419e0288958dbff0d46faa105a9de2fc94e320f1c85ce3af4f4ff987c776a9b5aa857e068ba876ce4fd238222f8649af0b2cf0c9c542 WHIRLPOOL bb368adee7d1d0eb1c557b2b64e831b7ef7020ac558c34623f9a4dca7976109b1067e2cbc76abfcb115ae7bd7b581ae16af3e0b7d6edba762b791ca36f290e9b
+DIST eix-0.30.4.tar.xz 556632 SHA256 4c753a82e15ce0f8bbdd74edcebb7bc23bd3de8dfca501f86733c335b55d9f4f SHA512 33e62765a9790d18256fcbcb4370b2e63f0b927e3088e0685cbc23dad47e0afa488bb84e5268b4da0d70b5a93b080a866e56257e3df21714ef5fd867f3de182e WHIRLPOOL 5731b6c36f8212fdb4e6b599224699cfc258a1026ef9f8ed8e95618e86df02b5872e7b1f170a3f0698bd348a5084161463d71e6fa14dff859ca92c9b3072dfc2
+DIST eix-0.30.7.tar.xz 558144 SHA256 ed000a8430ffb1c9087807d2ef686b10252d9b199e67c88f7bce11077a371473 SHA512 babb23176e68d47bcc5d899090abb326eae6b3ce4c587a6cf977c6216d193f4cf93dd54a647e50f08434440e022f117c8e5f800f1db2c048220bd229fd6cd4f5 WHIRLPOOL 0a27efa1c8003ae23ab96cb93672f38120828dc75cc333450e19026b7505c19ee411b42261049192c009a57b22c15c9ed5c9b7875171a039b21bbc142d220904
+DIST eix-0.30.8.tar.xz 559076 SHA256 525c5d0276b8d40de012668af36042ecb674175c3b92fb9214c3f1f1b0dacaec SHA512 ee1901037507d3e527d5e37338efb4b9c38c4d42efae042918d0e24e8bd08ece0064ac2efec960fc3280bc2bb14b46d87b66d6c04aa634c8737276321f580255 WHIRLPOOL d29d6cf704ef331621cf9b6e37433de643b43cc8b079295cbaa6f25979a399ef0b5e72ddaee3de205b8dd831de946e16b96d5c1f9b63666027a5a9b8f6d24e08
diff --git a/app-portage/eix/eix-0.30.10.ebuild b/app-portage/eix/eix-0.30.10.ebuild
new file mode 100644
index 000000000000..32c62b26f2e4
--- /dev/null
+++ b/app-portage/eix/eix-0.30.10.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PLOCALES="de ru"
+inherit bash-completion-r1 eutils l10n
+
+DESCRIPTION="Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more"
+HOMEPAGE="https://github.com/vaeth/eix/"
+SRC_URI="https://github.com/vaeth/eix/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+IUSE="debug +dep doc nls optimization security strong-optimization strong-security sqlite swap-remote tools"
+
+BOTHDEPEND="sqlite? ( >=dev-db/sqlite-3 )
+ nls? ( virtual/libintl )"
+RDEPEND="${BOTHDEPEND}
+ app-shells/push"
+DEPEND="${BOTHDEPEND}
+ app-arch/xz-utils
+ nls? ( sys-devel/gettext )"
+
+pkg_setup() {
+ case " ${REPLACING_VERSIONS}" in
+ *\ 0.[0-9].*|*\ 0.1[0-9].*|*\ 0.2[0-4].*|*\ 0.25.0*)
+ local eixcache="${EROOT}/var/cache/${PN}"
+ test -f "${eixcache}" && rm -f -- "${eixcache}";;
+ esac
+}
+
+src_prepare() {
+ sed -i -e "s'/'${EPREFIX}/'" -- "${S}"/tmpfiles.d/eix.conf
+ epatch_user
+}
+
+src_configure() {
+ econf $(use_with sqlite) $(use_with doc extra-doc) \
+ $(use_enable nls) $(use_enable tools separate-tools) \
+ $(use_enable security) $(use_enable optimization) \
+ $(use_enable strong-security) \
+ $(use_enable strong-optimization) $(use_enable debug debugging) \
+ $(use_enable swap-remote) \
+ $(use_with prefix always-accept-keywords) \
+ $(use_with dep dep-default) \
+ --with-zsh-completion \
+ --with-portage-rootpath="${ROOTPATH}" \
+ --with-eprefix-default="${EPREFIX}" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+}
+
+src_install() {
+ default
+ dobashcomp bash/eix
+ insinto "/usr/lib/tmpfiles.d"
+ doins tmpfiles.d/eix.conf
+}
+
+pkg_postinst() {
+ test -d "${EROOT}var/cache/${PN}" || {
+ mkdir "${EROOT}var/cache/${PN}"
+ use prefix || chown portage:portage "${EROOT}var/cache/${PN}"
+ }
+ local obs="${EROOT}var/cache/eix.previous"
+ ! test -f "${obs}" || ewarn "Found obsolete ${obs}, please remove it"
+}
+
+pkg_postrm() {
+ [ -n "${REPLACED_BY_VERSION}" ] || rm -rf -- "${EROOT}var/cache/${PN}"
+}
diff --git a/app-portage/eix/eix-0.30.11.ebuild b/app-portage/eix/eix-0.30.11.ebuild
new file mode 100644
index 000000000000..32c62b26f2e4
--- /dev/null
+++ b/app-portage/eix/eix-0.30.11.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PLOCALES="de ru"
+inherit bash-completion-r1 eutils l10n
+
+DESCRIPTION="Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more"
+HOMEPAGE="https://github.com/vaeth/eix/"
+SRC_URI="https://github.com/vaeth/eix/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+IUSE="debug +dep doc nls optimization security strong-optimization strong-security sqlite swap-remote tools"
+
+BOTHDEPEND="sqlite? ( >=dev-db/sqlite-3 )
+ nls? ( virtual/libintl )"
+RDEPEND="${BOTHDEPEND}
+ app-shells/push"
+DEPEND="${BOTHDEPEND}
+ app-arch/xz-utils
+ nls? ( sys-devel/gettext )"
+
+pkg_setup() {
+ case " ${REPLACING_VERSIONS}" in
+ *\ 0.[0-9].*|*\ 0.1[0-9].*|*\ 0.2[0-4].*|*\ 0.25.0*)
+ local eixcache="${EROOT}/var/cache/${PN}"
+ test -f "${eixcache}" && rm -f -- "${eixcache}";;
+ esac
+}
+
+src_prepare() {
+ sed -i -e "s'/'${EPREFIX}/'" -- "${S}"/tmpfiles.d/eix.conf
+ epatch_user
+}
+
+src_configure() {
+ econf $(use_with sqlite) $(use_with doc extra-doc) \
+ $(use_enable nls) $(use_enable tools separate-tools) \
+ $(use_enable security) $(use_enable optimization) \
+ $(use_enable strong-security) \
+ $(use_enable strong-optimization) $(use_enable debug debugging) \
+ $(use_enable swap-remote) \
+ $(use_with prefix always-accept-keywords) \
+ $(use_with dep dep-default) \
+ --with-zsh-completion \
+ --with-portage-rootpath="${ROOTPATH}" \
+ --with-eprefix-default="${EPREFIX}" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+}
+
+src_install() {
+ default
+ dobashcomp bash/eix
+ insinto "/usr/lib/tmpfiles.d"
+ doins tmpfiles.d/eix.conf
+}
+
+pkg_postinst() {
+ test -d "${EROOT}var/cache/${PN}" || {
+ mkdir "${EROOT}var/cache/${PN}"
+ use prefix || chown portage:portage "${EROOT}var/cache/${PN}"
+ }
+ local obs="${EROOT}var/cache/eix.previous"
+ ! test -f "${obs}" || ewarn "Found obsolete ${obs}, please remove it"
+}
+
+pkg_postrm() {
+ [ -n "${REPLACED_BY_VERSION}" ] || rm -rf -- "${EROOT}var/cache/${PN}"
+}
diff --git a/app-portage/eix/eix-0.30.4.ebuild b/app-portage/eix/eix-0.30.4.ebuild
new file mode 100644
index 000000000000..0aac4b22ab66
--- /dev/null
+++ b/app-portage/eix/eix-0.30.4.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PLOCALES="de ru"
+inherit bash-completion-r1 eutils l10n
+
+DESCRIPTION="Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more"
+HOMEPAGE="https://github.com/vaeth/eix/"
+SRC_URI="http://dev.gentoo.org/~axs/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+IUSE="debug +dep doc nls optimization security strong-optimization strong-security sqlite swap-remote tools"
+
+BOTHDEPEND="sqlite? ( >=dev-db/sqlite-3 )
+ nls? ( virtual/libintl )"
+RDEPEND="${BOTHDEPEND}
+ app-shells/push"
+DEPEND="${BOTHDEPEND}
+ app-arch/xz-utils
+ nls? ( sys-devel/gettext )"
+
+pkg_setup() {
+ case " ${REPLACING_VERSIONS}" in
+ *\ 0.[0-9].*|*\ 0.1[0-9].*|*\ 0.2[0-4].*|*\ 0.25.0*)
+ local eixcache="${EROOT}/var/cache/${PN}"
+ test -f "${eixcache}" && rm -f -- "${eixcache}";;
+ esac
+}
+
+src_prepare() {
+ sed -i -e "s'/'${EPREFIX}/'" -- "${S}"/tmpfiles.d/eix.conf
+ epatch_user
+}
+
+src_configure() {
+ econf $(use_with sqlite) $(use_with doc extra-doc) \
+ $(use_enable nls) $(use_enable tools separate-tools) \
+ $(use_enable security) $(use_enable optimization) \
+ $(use_enable strong-security) \
+ $(use_enable strong-optimization) $(use_enable debug debugging) \
+ $(use_enable swap-remote) \
+ $(use_with prefix always-accept-keywords) \
+ $(use_with dep dep-default) \
+ --with-zsh-completion \
+ --with-portage-rootpath="${ROOTPATH}" \
+ --with-eprefix-default="${EPREFIX}" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+}
+
+src_install() {
+ default
+ dobashcomp bash/eix
+ insinto "/usr/lib/tmpfiles.d"
+ doins tmpfiles.d/eix.conf
+}
+
+pkg_postinst() {
+ test -d "${EROOT}var/cache/${PN}" || {
+ mkdir "${EROOT}var/cache/${PN}"
+ use prefix || chown portage:portage "${EROOT}var/cache/${PN}"
+ }
+ local obs="${EROOT}var/cache/eix.previous"
+ ! test -f "${obs}" || ewarn "Found obsolete ${obs}, please remove it"
+}
+
+pkg_postrm() {
+ [ -n "${REPLACED_BY_VERSION}" ] || rm -rf -- "${EROOT}var/cache/${PN}"
+}
diff --git a/app-portage/eix/eix-0.30.7.ebuild b/app-portage/eix/eix-0.30.7.ebuild
new file mode 100644
index 000000000000..a07f2a72630f
--- /dev/null
+++ b/app-portage/eix/eix-0.30.7.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PLOCALES="de ru"
+inherit bash-completion-r1 eutils l10n
+
+DESCRIPTION="Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more"
+HOMEPAGE="https://github.com/vaeth/eix/"
+SRC_URI="http://dev.gentoo.org/~axs/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+IUSE="debug +dep doc nls optimization security strong-optimization strong-security sqlite swap-remote tools"
+
+BOTHDEPEND="sqlite? ( >=dev-db/sqlite-3 )
+ nls? ( virtual/libintl )"
+RDEPEND="${BOTHDEPEND}
+ app-shells/push"
+DEPEND="${BOTHDEPEND}
+ app-arch/xz-utils
+ nls? ( sys-devel/gettext )"
+
+pkg_setup() {
+ case " ${REPLACING_VERSIONS}" in
+ *\ 0.[0-9].*|*\ 0.1[0-9].*|*\ 0.2[0-4].*|*\ 0.25.0*)
+ local eixcache="${EROOT}/var/cache/${PN}"
+ test -f "${eixcache}" && rm -f -- "${eixcache}";;
+ esac
+}
+
+src_prepare() {
+ sed -i -e "s'/'${EPREFIX}/'" -- "${S}"/tmpfiles.d/eix.conf
+ epatch_user
+}
+
+src_configure() {
+ econf $(use_with sqlite) $(use_with doc extra-doc) \
+ $(use_enable nls) $(use_enable tools separate-tools) \
+ $(use_enable security) $(use_enable optimization) \
+ $(use_enable strong-security) \
+ $(use_enable strong-optimization) $(use_enable debug debugging) \
+ $(use_enable swap-remote) \
+ $(use_with prefix always-accept-keywords) \
+ $(use_with dep dep-default) \
+ --with-zsh-completion \
+ --with-portage-rootpath="${ROOTPATH}" \
+ --with-eprefix-default="${EPREFIX}" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+}
+
+src_install() {
+ default
+ dobashcomp bash/eix
+ insinto "/usr/lib/tmpfiles.d"
+ doins tmpfiles.d/eix.conf
+}
+
+pkg_postinst() {
+ test -d "${EROOT}var/cache/${PN}" || {
+ mkdir "${EROOT}var/cache/${PN}"
+ use prefix || chown portage:portage "${EROOT}var/cache/${PN}"
+ }
+ local obs="${EROOT}var/cache/eix.previous"
+ ! test -f "${obs}" || ewarn "Found obsolete ${obs}, please remove it"
+}
+
+pkg_postrm() {
+ [ -n "${REPLACED_BY_VERSION}" ] || rm -rf -- "${EROOT}var/cache/${PN}"
+}
diff --git a/app-portage/eix/eix-0.30.8.ebuild b/app-portage/eix/eix-0.30.8.ebuild
new file mode 100644
index 000000000000..a07f2a72630f
--- /dev/null
+++ b/app-portage/eix/eix-0.30.8.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PLOCALES="de ru"
+inherit bash-completion-r1 eutils l10n
+
+DESCRIPTION="Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more"
+HOMEPAGE="https://github.com/vaeth/eix/"
+SRC_URI="http://dev.gentoo.org/~axs/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+IUSE="debug +dep doc nls optimization security strong-optimization strong-security sqlite swap-remote tools"
+
+BOTHDEPEND="sqlite? ( >=dev-db/sqlite-3 )
+ nls? ( virtual/libintl )"
+RDEPEND="${BOTHDEPEND}
+ app-shells/push"
+DEPEND="${BOTHDEPEND}
+ app-arch/xz-utils
+ nls? ( sys-devel/gettext )"
+
+pkg_setup() {
+ case " ${REPLACING_VERSIONS}" in
+ *\ 0.[0-9].*|*\ 0.1[0-9].*|*\ 0.2[0-4].*|*\ 0.25.0*)
+ local eixcache="${EROOT}/var/cache/${PN}"
+ test -f "${eixcache}" && rm -f -- "${eixcache}";;
+ esac
+}
+
+src_prepare() {
+ sed -i -e "s'/'${EPREFIX}/'" -- "${S}"/tmpfiles.d/eix.conf
+ epatch_user
+}
+
+src_configure() {
+ econf $(use_with sqlite) $(use_with doc extra-doc) \
+ $(use_enable nls) $(use_enable tools separate-tools) \
+ $(use_enable security) $(use_enable optimization) \
+ $(use_enable strong-security) \
+ $(use_enable strong-optimization) $(use_enable debug debugging) \
+ $(use_enable swap-remote) \
+ $(use_with prefix always-accept-keywords) \
+ $(use_with dep dep-default) \
+ --with-zsh-completion \
+ --with-portage-rootpath="${ROOTPATH}" \
+ --with-eprefix-default="${EPREFIX}" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+}
+
+src_install() {
+ default
+ dobashcomp bash/eix
+ insinto "/usr/lib/tmpfiles.d"
+ doins tmpfiles.d/eix.conf
+}
+
+pkg_postinst() {
+ test -d "${EROOT}var/cache/${PN}" || {
+ mkdir "${EROOT}var/cache/${PN}"
+ use prefix || chown portage:portage "${EROOT}var/cache/${PN}"
+ }
+ local obs="${EROOT}var/cache/eix.previous"
+ ! test -f "${obs}" || ewarn "Found obsolete ${obs}, please remove it"
+}
+
+pkg_postrm() {
+ [ -n "${REPLACED_BY_VERSION}" ] || rm -rf -- "${EROOT}var/cache/${PN}"
+}
diff --git a/app-portage/eix/metadata.xml b/app-portage/eix/metadata.xml
new file mode 100644
index 000000000000..9d4aeae6f1b0
--- /dev/null
+++ b/app-portage/eix/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>martin@mvath.de</email>
+ <name>Martin Väth</name>
+ <description>Upstream developer, assign bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>axs@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <use>
+ <flag name="debug">Build with upstream's CXXFLAGS/LDFLAGS for debugging support; not recommended for normal use.</flag>
+ <flag name="dep">Make DEP=true the default which enables support for {,R,P}DEPEND but requires roughly double disk and memory.</flag>
+ <flag name="doc">Create description of the eix cache file additionally in html format</flag>
+ <flag name="optimization">Accept upstream's choices for CXXFLAGS/LDFLAGS for optimization. Absense of this USE flag does not strip user's *FLAGS</flag>
+ <flag name="security">This adds some checks which can prevent certain exploits if e.g. the eix code has a bug. If you use the hardened toolchain, using this flag does not increase security and can even lead to problems.</flag>
+ <flag name="strong-optimization">Adds several more agressive CXXFLAGS/LDFLAGS for optimization like graphite (if available). May cause trouble with some buggy compiler versions. Absense of this USE flag does not strip user's *FLAGS</flag>
+ <flag name="strong-security">Add many checks to prevent exploits if eix code has a bug. This will slow down eix considerably. Use only if you are paranoid or have reasons to suspect a bug.</flag>
+ <flag name="sqlite">Compile in support for portage's sqlite backend; to actually use it you need additional configuration of portage and eix</flag>
+ <flag name="swap-remote">Swap role of remote addresses in eix-remote, making the data from gpo.zugaina.org the first choice.</flag>
+ <flag name="tools">Create separate binary for script helper tools; useful if they are called extremely often</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">vaeth/eix</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/elogv/Manifest b/app-portage/elogv/Manifest
new file mode 100644
index 000000000000..c1d3025cea62
--- /dev/null
+++ b/app-portage/elogv/Manifest
@@ -0,0 +1,6 @@
+DIST elogv-0.7.6.1.tar.gz 17968 SHA256 93630986043e4599d801b187a37272331ac6763f8ddb0ad66343bb037160fc56 SHA512 c2ddea6189165262fae6968d9bb3b8e76f316d9696f07369552ae00eb48a49323232ea7d3609310cd0e440bd912e474dd396a71922dbf5c9f1ee587899ef859e WHIRLPOOL 2c9f2aa779320d8311818e3d9a8ac03c56b1369ae7dd8ab9dea69b87a0146048ec89f570640c552e6faecdde2f40f38aaef0c6332a33e3f7461bad3c39bc9a01
+DIST elogv-0.7.6.2.tar.gz 18206 SHA256 bf33a2444054e9ddd8164ea45144aa346a1e4da518034f33ee605af75f9ff7a0 SHA512 5628a409346d6375f10a77a08eaef6a160abff385701232c78f5d02a9493f84c451a53f301940a96e177eb295198d05e9c3e2525ab89ad6565f0eca2f2b0102e WHIRLPOOL ed83c38f174eea228bbbddf4edb17ec1ee571a6d0693954af012223bc84bf38351b16304747c8b3dfe3baab67634bf5530783f4845e9a9beeed52cbc43f45bd5
+DIST elogv-0.7.6.3.tar.gz 18424 SHA256 916c557ecb21e7fa2f2fbe2963804e95aefdaf983e99db565fee6f79baf1f94f SHA512 c9127a4770721bd66cd75cf197af9262f7764f8227c36a7229d597fcd9e8db52aeffb42bdcc7b0c0ff20bdcfc9d18b9a568b0456b71ec764a937b148f9893677 WHIRLPOOL 67f2e62978a335c1ccfb8e91aa4ed8fa4c20dca6fda190f6ae5f61dde89f310ea0aa1b543c9b71b504c60a9d39b46d16086f13c0c87d6ead417e2b1c8c86feba
+DIST elogv-0.7.6.4.tar.gz 18481 SHA256 9279a1fc1ec981142bf44694e1d714859b92a33ea1a2f8c33814f0d2f045b72c SHA512 e9331438552a63c26afc3f16ed4877298bb976a242639c0aae506507570b68cc677bc6e491f0b293a1986579c9edbab769b8d63924f9b0a18ad1e5a222f4d388 WHIRLPOOL d86f0e284200eb76f9fce82f0d2eccd8fe74e5c548d640e159e89db9a8685c3b44dc0350d4b6a6b2004cad07ca4568e11e0a594cf6ef2a298c413d632843397d
+DIST elogv-0.7.6.5.tar.gz 19021 SHA256 e3d6d29eefae2e1672b96f40837859ff12e2ebb6c37b0a244e0b35c14a0ea5cd SHA512 4a596653ca1c1dc3c315cdf111ddf12d7af5514582da50bf659c48d063fd971c2466d1bd0e4fa1e92e71afaa9715024269cf7ed3a5969ce986742a2c5f648c4a WHIRLPOOL e698e828a076f8d8477fa1a99d2a69e81a256771f5c00f24dd14cbc76fc4f99141dfa518a4a223f928f4503a679351fdb0cc0e84e9d03938208ddd496b3b74b4
+DIST elogv-0.7.6.6.tar.gz 19362 SHA256 224fbf37acb725e6e6942d4685d75e5281218eb2eabf16fc090da9ffa39f513c SHA512 d044feecbbef17d676551e545dcc4e6e27779668371d40d891d53bb7187474f665a422a732a0e95246fbd9d689ddeca509a74b6ce677f3a50871878e12895cba WHIRLPOOL dc86b3cb1bfbb29fba5f65de2189fd238c0afec739c05155c68f144bbe3517d15291ebc5624c987c79fb3f5d1f33b2016803b6bf90f20855608fe31503316197
diff --git a/app-portage/elogv/elogv-0.7.6.1-r1.ebuild b/app-portage/elogv/elogv-0.7.6.1-r1.ebuild
new file mode 100644
index 000000000000..825bec916895
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.1-r1.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ppc ~ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/elogv-0.7.6.2.ebuild b/app-portage/elogv/elogv-0.7.6.2.ebuild
new file mode 100644
index 000000000000..f2eeeb379dce
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.2.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/elogv-0.7.6.3.ebuild b/app-portage/elogv/elogv-0.7.6.3.ebuild
new file mode 100644
index 000000000000..f2eeeb379dce
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.3.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/elogv-0.7.6.4.ebuild b/app-portage/elogv/elogv-0.7.6.4.ebuild
new file mode 100644
index 000000000000..f2eeeb379dce
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.4.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/elogv-0.7.6.5.ebuild b/app-portage/elogv/elogv-0.7.6.5.ebuild
new file mode 100644
index 000000000000..f2eeeb379dce
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.5.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/elogv-0.7.6.6.ebuild b/app-portage/elogv/elogv-0.7.6.6.ebuild
new file mode 100644
index 000000000000..f2eeeb379dce
--- /dev/null
+++ b/app-portage/elogv/elogv-0.7.6.6.ebuild
@@ -0,0 +1,54 @@
+# 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="ncurses"
+inherit distutils-r1
+
+DESCRIPTION="Curses based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="https://github.com/gentoo/elogv"
+SRC_URI="https://github.com/gentoo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="linguas_de linguas_es linguas_it linguas_pl"
+
+DOCS=( README )
+
+src_install() {
+ distutils-r1_src_install
+
+ # unset LINGUAS => install all languages
+ # empty LINGUAS => install none
+ local i
+ if [[ -n "${LINGUAS+x}" ]] ; then
+ for i in $(ls "${ED}"/usr/share/locale/) ; do
+ if ! has ${i} ${LINGUAS} ; then
+ rm -rf "${ED}"/usr/share/{locale,man}/${i}
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ elog "Optional dependencies:"
+ elog " dev-python/pyliblzma (for xz compressed elog files)"
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in ${EPREFIX}/usr/share/portage/config/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-${EPREFIX}/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogv/files/0.7.4-prefix.patch b/app-portage/elogv/files/0.7.4-prefix.patch
new file mode 100644
index 000000000000..9829b1241ea7
--- /dev/null
+++ b/app-portage/elogv/files/0.7.4-prefix.patch
@@ -0,0 +1,13 @@
+diff --git a/elogv b/elogv
+index 85d507b..bef7ae9 100755
+--- a/elogv
++++ b/elogv
+@@ -544,7 +544,7 @@ if __name__ == "__main__":
+ if port_settings['PORT_LOGDIR']:
+ elogdir = os.path.join(port_settings['PORT_LOGDIR'],"elog")
+ else:
+- elogdir = os.path.join(os.sep,"var","log","portage","elog")
++ elogdir = os.path.join(os.sep,'@GENTOO_PORTAGE_EPREFIX@',"var","log","portage","elog")
+
+ # Launch curses interface
+ try:
diff --git a/app-portage/elogv/files/elogv-0.7.5-vt100.patch b/app-portage/elogv/files/elogv-0.7.5-vt100.patch
new file mode 100644
index 000000000000..5df26c4750df
--- /dev/null
+++ b/app-portage/elogv/files/elogv-0.7.5-vt100.patch
@@ -0,0 +1,38 @@
+From 68141bf6f469ed7618c7ebd068eb7f8db260dfdb Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Thu, 2 May 2013 23:22:36 +0200
+Subject: [PATCH] Fix crash with TERM=vt100
+
+---
+ elogv | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/elogv b/elogv
+index 53c37cd..a8440d1 100755
+--- a/elogv
++++ b/elogv
+@@ -96,12 +96,15 @@ class ElogViewer:
+ self.screen = screen
+
+ # Our color pairs
+- curses.use_default_colors()
+- curses.init_pair(selected, curses.COLOR_BLACK, curses.COLOR_WHITE)
+- curses.init_pair(einfo, curses.COLOR_GREEN, curses.COLOR_BLACK)
+- curses.init_pair(ewarn, curses.COLOR_YELLOW, curses.COLOR_BLACK)
+- curses.init_pair(eerror, curses.COLOR_RED, curses.COLOR_BLACK)
+- curses.init_pair(elog, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
++ try:
++ curses.use_default_colors()
++ curses.init_pair(selected, curses.COLOR_BLACK, curses.COLOR_WHITE)
++ curses.init_pair(einfo, curses.COLOR_GREEN, curses.COLOR_BLACK)
++ curses.init_pair(ewarn, curses.COLOR_YELLOW, curses.COLOR_BLACK)
++ curses.init_pair(eerror, curses.COLOR_RED, curses.COLOR_BLACK)
++ curses.init_pair(elog, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
++ except curses.error: # e.g. with "TERM=vt100 elogv" invokation
++ pass
+
+ # This attributes are used to manage the scrolling of the list
+ # of files
+--
+1.8.1.5
+
diff --git a/app-portage/elogv/metadata.xml b/app-portage/elogv/metadata.xml
new file mode 100644
index 000000000000..f23267d7a058
--- /dev/null
+++ b/app-portage/elogv/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>fuzzyray@gentoo.org</email>
+ <name>Paul Varner</name>
+ </maintainer>
+ <maintainer>
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <herd>tools-portage</herd>
+ <upstream>
+ <remote-id type="github">gentoo/elogv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/elogviewer/Manifest b/app-portage/elogviewer/Manifest
new file mode 100644
index 000000000000..f41a663925c7
--- /dev/null
+++ b/app-portage/elogviewer/Manifest
@@ -0,0 +1,3 @@
+DIST elogviewer-0.6.2.tar.gz 13904 SHA256 27c879a64824dbee50b6f8ddd387047d4bfe80f101fadf24571ba1b12b135dbf SHA512 dccf4dffb87fefb7d9e0609b3312d63b73c1b9c5933819c38b775b049e222687e9da06e63fe8194560f4bb631fa586b4746af9e0a7575eefa782b57d9c1c6e04 WHIRLPOOL 46d04c684b741d337a7c713b3bb375dc78afc99b573a8f229f9970609c6628a5dd6d30e4112c33c19ef7cc24502a5019079a8d70b47a81f199440643926ef80a
+DIST elogviewer-2.1.tar.gz 14968 SHA256 12e13c1fec1651e57cf39f66231a2cf27af5110c1b4944ac84f76de7f9cc7fe7 SHA512 27a34ce67e16a51055246b7169c11c248310b2a1d987018938094301b2602839e48909e3224f7d791343bb691de8e2f0ca7b00bd1477e2b3b43d61a24b4e688f WHIRLPOOL c4ab91936d147121d3ab34d04d5c74587d5c4f61f56e2e1c35e0ceed5d92537d29642599b8c5215c2405c892b00f244a30c980da9270b3afab61cd083227e85e
+DIST elogviewer-2.5.tar.gz 16055 SHA256 1dc005078ebdc7ed9bfbf28e157a06d3eac500d30baa927cbde80268bb90bb05 SHA512 d37b7e1a38cae3528519c80b13a1064b0be967a19ed6a329c0f461e6c8d7c49fe5bf76f0604c82e735a3f3c7276e9be12309bf6a2f8a8b9c079cc9056a700b09 WHIRLPOOL 105db14806569f1051a422677e2c90e65657201aee5f38858df521bdd3b3fc8847c2ae78f965b41c540cac467825b117e5fcef8fb91a25294fa47befce523692
diff --git a/app-portage/elogviewer/elogviewer-0.6.2-r3.ebuild b/app-portage/elogviewer/elogviewer-0.6.2-r3.ebuild
new file mode 100644
index 000000000000..c5e162bc1aa4
--- /dev/null
+++ b/app-portage/elogviewer/elogviewer-0.6.2-r3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-r1
+
+DESCRIPTION="GTK+ based utility to parse the contents of elogs created by Portage"
+HOMEPAGE="http://sourceforge.net/projects/elogviewer/"
+
+SRC_URI="mirror://sourceforge/elogviewer/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=sys-apps/portage-2.1
+ >=dev-python/pygtk-2.0"
+
+S="${WORKDIR}"
+
+src_prepare() {
+ # Apply patch from Bug 349071 to restore missing newline
+ epatch "${FILESDIR}/${P}-missing_newline.patch"
+ # Fix bug #453016
+ sed -e 's|is not ""|!= ""|' -i elogviewer || die
+}
+
+src_install() {
+ python_foreach_impl python_doscript "${WORKDIR}"/elogviewer
+ dodoc "${WORKDIR}"/CHANGELOG
+ doman "${WORKDIR}"/elogviewer.1
+ make_desktop_entry elogviewer Elogviewer "" "System" ||
+ die "Couldn't make desktop entry"
+}
+
+pkg_postinst() {
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one out of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in /etc/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogviewer/elogviewer-2.1-r1.ebuild b/app-portage/elogviewer/elogviewer-2.1-r1.ebuild
new file mode 100644
index 000000000000..b4e380561247
--- /dev/null
+++ b/app-portage/elogviewer/elogviewer-2.1-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=(python{2_7,3_3})
+
+inherit distutils-r1
+
+DESCRIPTION="Elog viewer for Gentoo"
+HOMEPAGE="https://sourceforge.net/projects/elogviewer"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="
+ || ( dev-python/PyQt4[${PYTHON_USEDEP},X]
+ dev-python/pyside[${PYTHON_USEDEP},X] )
+ >=sys-apps/portage-2.1
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ mv elogviewer.py elogviewer
+ dobin elogviewer
+ doman elogviewer.1
+ dodoc LICENSE.TXT
+}
+
+pkg_postinst() {
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in /etc/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogviewer/elogviewer-2.1-r2.ebuild b/app-portage/elogviewer/elogviewer-2.1-r2.ebuild
new file mode 100644
index 000000000000..d4ccaa43d41e
--- /dev/null
+++ b/app-portage/elogviewer/elogviewer-2.1-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="Elog viewer for Gentoo"
+HOMEPAGE="https://sourceforge.net/projects/elogviewer"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="
+ || ( dev-python/PyQt4[${PYTHON_USEDEP},X]
+ dev-python/pyside[${PYTHON_USEDEP},X] )
+ >=sys-apps/portage-2.1
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_install() {
+ mv elogviewer.py elogviewer
+ dobin elogviewer
+ doman elogviewer.1
+ dodoc LICENSE.TXT
+}
+
+pkg_postinst() {
+ elog
+ elog "In order to use this software, you need to activate"
+ elog "Portage's elog features. Required is"
+ elog " PORTAGE_ELOG_SYSTEM=\"save\" "
+ elog "and at least one of "
+ elog " PORTAGE_ELOG_CLASSES=\"warn error info log qa\""
+ elog "More information on the elog system can be found"
+ elog "in /etc/make.conf.example"
+ elog
+ elog "To operate properly this software needs the directory"
+ elog "${PORT_LOGDIR:-/var/log/portage}/elog created, belonging to group portage."
+ elog "To start the software as a user, add yourself to the portage"
+ elog "group."
+ elog
+}
diff --git a/app-portage/elogviewer/elogviewer-2.5.ebuild b/app-portage/elogviewer/elogviewer-2.5.ebuild
new file mode 100644
index 000000000000..25f10cd210ea
--- /dev/null
+++ b/app-portage/elogviewer/elogviewer-2.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
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+DISABLE_AUTOFORMATTING=true
+inherit distutils-r1 eutils readme.gentoo
+
+DESCRIPTION="Elog viewer for Gentoo"
+HOMEPAGE="https://sourceforge.net/projects/elogviewer"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="|| (
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP},X]
+ dev-python/pyside[${PYTHON_USEDEP},X] )
+ >=sys-apps/portage-2.1
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' python{2_7,3_3})
+ "
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOC_CONTENTS="In order to use this software, you need to activate
+Portage's elog features. Required is
+ PORTAGE_ELOG_SYSTEM=\"save\"
+and at least one of
+ PORTAGE_ELOG_CLASSES=\"warn error info log qa\"
+More information on the elog system can be found in /etc/make.conf.example
+
+To operate properly this software needs the directory
+${PORT_LOGDIR:-/var/log/portage}/elog created, belonging to group portage.
+To start the software as a user, add yourself to the portage group."
+
+src_install() {
+ mv elogviewer.py elogviewer
+ dobin elogviewer
+ doman elogviewer.1
+ make_desktop_entry ${PN} ${PN} ${PN} System
+ readme.gentoo_src_install
+}
diff --git a/app-portage/elogviewer/files/elogviewer-0.5.2-clear_warning.patch b/app-portage/elogviewer/files/elogviewer-0.5.2-clear_warning.patch
new file mode 100644
index 000000000000..3f9ac836fb06
--- /dev/null
+++ b/app-portage/elogviewer/files/elogviewer-0.5.2-clear_warning.patch
@@ -0,0 +1,49 @@
+--- elogviewer.orig 2008-04-24 17:41:01.000000000 -0400
++++ elogviewer 2008-04-24 18:59:09.000000000 -0400
+@@ -47,6 +47,10 @@
+ Christian Faulhammer (V-Li) has written the man page.
+ '''
+
++_clearwarn = '''
++<big>WARNING:</big> Are you sure you want to clear all entries? This will permanently delete all elog files!
++'''
++
+
+ # Redirect messages to stderr
+ import sys
+@@ -435,6 +439,23 @@
+ self.destroy()
+
+
++class ClearPrompt(gtk.MessageDialog):
++
++ def __init__(self):
++ gtk.MessageDialog.__init__(self,
++ parent=None,
++ #flasgs=0,
++ type=gtk.MESSAGE_WARNING,
++ buttons=gtk.BUTTONS_YES_NO,
++ message_format=None)
++ self.set_markup ( _clearwarn )
++
++ def do_prompt(self):
++ response = self.run()
++ self.destroy()
++ return response
++
++
+ class ActionGroup(gtk.ActionGroup):
+
+ def __init__(self, activate_action):
+@@ -641,7 +662,10 @@
+ if action == "Delete":
+ self.delete()
+ if action == "Clear":
+- self.clear()
++ cp = ClearPrompt()
++ confirmation = cp.do_prompt()
++ if confirmation == gtk.RESPONSE_YES:
++ self.clear()
+ if action == "Refresh":
+ self.refresh()
+ if action == "Quit":
diff --git a/app-portage/elogviewer/files/elogviewer-0.5.2-timesort.patch b/app-portage/elogviewer/files/elogviewer-0.5.2-timesort.patch
new file mode 100644
index 000000000000..e3223bf84e4d
--- /dev/null
+++ b/app-portage/elogviewer/files/elogviewer-0.5.2-timesort.patch
@@ -0,0 +1,70 @@
+--- elogviewer 2007-09-20 10:47:05.000000000 +0300
++++ elogviewer 2008-01-23 23:50:12.000000000 +0200
+@@ -123,26 +123,29 @@
+ #otime = '%Y-%m-%d %H:%M:%S'
+ # see modules time and locale
+ otime = '%x %X'
++ vtime = '%Y-%m-%d %H:%M:%S'
+
+ (c, p, t) = filename.split(':')
+ t = time.strptime(t, itime)
++ st = time.strftime(vtime, t)
+ t = time.strftime(otime, t)
+
+ self.category = c
+ self.package = p
+- self.timestamp = t
++ self.timestamp = st
++ self.timesort = t
+ self.filename = filename
+
+
+ from glob import glob
+ from gobject import TYPE_STRING
+-( CATEGORY, PACKAGE, TIMESTAMP, FILENAME ) = range(4)
++( CATEGORY, PACKAGE, TIMESTAMP, TIMESORT, FILENAME ) = range(5)
+ class TreeStore(gtk.TreeStore):
+
+ def __init__(self):
+
+ gtk.TreeStore.__init__( self,
+- TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING )
++ TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_STRING )
+
+ def get_filename(self, iter):
+ if not iter:
+@@ -169,14 +172,14 @@
+ iter = self.insert_before(None, None)
+ self.set_value(iter, 0, e.category)
+ self.append(iter, (None,
+- e.package, e.timestamp, e.filename))
++ e.package, e.timestamp, e.timesort, e.filename))
+
+ def populate_flat(self):
+ self.clear()
+ iter = self.get_iter_first()
+ for e in [Elog(filename) for filename in glob('*:*:*.log')]:
+ self.append(iter,
+- (e.category, e.package, e.timestamp, e.filename))
++ (e.category, e.package, e.timestamp, e.timesort, e.filename))
+
+
+ class TreeViewColumn(gtk.TreeViewColumn):
+@@ -184,7 +187,7 @@
+ def __init__(self, title=None, *args, **kargs):
+ gtk.TreeViewColumn.__init__(self, title, *args, **kargs)
+
+- self.set_sort_column_id(TIMESTAMP)
++ self.set_sort_column_id(TIMESORT)
+
+
+ class TreeView(gtk.TreeView):
+@@ -197,7 +200,7 @@
+ self.append_column(TreeViewColumn(
+ 'Package', gtk.CellRendererText(), text=PACKAGE))
+ self.append_column(TreeViewColumn(
+- 'Time', gtk.CellRendererText(), text=TIMESTAMP))
++ 'Time', gtk.CellRendererText(), text=TIMESORT))
+
+ self.set_enable_search(True)
+ self.set_search_column(PACKAGE)
diff --git a/app-portage/elogviewer/files/elogviewer-0.6.2-missing_newline.patch b/app-portage/elogviewer/files/elogviewer-0.6.2-missing_newline.patch
new file mode 100644
index 000000000000..e7f3e79a6a93
--- /dev/null
+++ b/app-portage/elogviewer/files/elogviewer-0.6.2-missing_newline.patch
@@ -0,0 +1,23 @@
+Add missing newline and remove debug print statement
+
+https://bugs.gentoo.org/349071
+
+--- elogviewer
++++ elogviewer
+@@ -154,7 +154,7 @@
+ and self.filters[section] == True:
+ self.insert_with_tags(
+ self.get_end_iter(),
+- line,
++ line + '\n',
+ self.get_tag_table().lookup(header))
+ finally:
+ file_obj.close()
+@@ -385,7 +385,6 @@
+ if len(split_filename) is 3:
+ (self._category, self._package, t) = split_filename
+ elif len(split_filename) is 2:
+- print split_filename
+ (self._category, self._package) = split_filename[0].split('/')
+ t = split_filename[1]
+ t = time.strptime(t, itime)
diff --git a/app-portage/elogviewer/metadata.xml b/app-portage/elogviewer/metadata.xml
new file mode 100644
index 000000000000..9a39c39cdb18
--- /dev/null
+++ b/app-portage/elogviewer/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>tools-portage</herd>
+ <maintainer>
+ <email>fuzzyray@gentoo.org</email>
+ <name>Paul Varner</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">elogviewer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/emerge-delta-webrsync/Manifest b/app-portage/emerge-delta-webrsync/Manifest
new file mode 100644
index 000000000000..8a15baa7d9b0
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/Manifest
@@ -0,0 +1,3 @@
+DIST emerge-delta-webrsync-3.6.2 16837 SHA256 962f41b3e0ec64fce0e23e2365e8e2d18c5fdb762542cf5d1d2a23e072a19c30 SHA512 734598326dbdd588f5b62e2117ca377ad443161feca73a50dfe5740c20afb59ee9e8cd056bcaa0555f7276172db19d572a9a32023c5a311a6aa309d11f3dde86 WHIRLPOOL 1822a0e028e3c4f9e053b951e8e8c98268baf38f1da488e43a41f54089440f7ec8d1427c17e297e72bd5f1628611f3a46811231470fbe16997d97a18909593fb
+DIST emerge-delta-webrsync-3.7.1 22122 SHA256 72005e813037d7aa0280885c915c0da6da8768122574ae5d0e83e981ad6821fc SHA512 57fafb5ee4c083b60fc52f030928a9e6d1d3306f5ac53c88d7277a0421ffb3b64b1934db4367878077b05692b0340113c958116aa503d0e7a1ec3bcd383470a4 WHIRLPOOL 45ac04bf19643e7e34f0175922a413b96fcce9d181f9dd971072ef3e53ef47d8b98069f4223906050a5391af6b3d0a59f449141a869090e3d2c013eb941ff335
+DIST emerge-delta-webrsync-3.7.2 22344 SHA256 6fd9e7cfeff9d8755435f7c448b015a6d3764b4cc684a7531e07ce48a9507115 SHA512 36b65e0f550b5b0a3a5cf271126bf0d44bd182c06148d72c5ed9e105394a38be5dd0845e2d674df246b4436a10f15033bdc857526f664656f1cdb79dd8b7a18c WHIRLPOOL 6e308d4dc7ccb288f47ff79197e25298171b07d965548f5fee61145518be3900f0e6909bc44d27ec28e3bcfc41f94a285bdc9aa39730455f3a64b32addf44d2c
diff --git a/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.6.2.ebuild b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.6.2.ebuild
new file mode 100644
index 000000000000..aed00ab32c61
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.6.2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+DESCRIPTION="emerge-webrsync using patches to minimize bandwidth"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
+SRC_URI="https://raw.githubusercontent.com/gentoo/portage/228a860476d7543608b469c569ec1d4e70aa7f59/misc/emerge-delta-webrsync -> ${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~hppa ia64 ~mips ppc ~sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ app-shells/bash
+ >=sys-apps/portage-2.1.10
+ >=dev-util/diffball-0.6.5"
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}/${P}" "${WORKDIR}/" || die
+}
+
+src_install() {
+ newbin ${P} ${PN}
+ keepdir /var/delta-webrsync
+ fperms 0770 /var/delta-webrsync
+}
+
+pkg_preinst() {
+ # Failure here is non-fatal, since the "portage" group
+ # doesn't necessarily exist on prefix systems.
+ chgrp portage "${ED}"/var/delta-webrsync 2>/dev/null
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] && \
+ ! has_version app-arch/tarsync ; then
+ elog "For maximum emerge-delta-webrsync" \
+ "performance, install app-arch/tarsync."
+ fi
+}
diff --git a/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.1.ebuild b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.1.ebuild
new file mode 100644
index 000000000000..6a9805ce149b
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+DESCRIPTION="emerge-webrsync using patches to minimize bandwidth"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
+SRC_URI="https://raw.githubusercontent.com/gentoo/portage/4ab31da4f09c7d0cb323b16b5b4b607d652ffc48/misc/emerge-delta-webrsync -> ${P}"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ app-shells/bash
+ >=sys-apps/portage-2.1.10
+ >=dev-util/diffball-0.6.5"
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}/${P}" "${WORKDIR}/" || die
+}
+
+src_install() {
+ newbin ${P} ${PN}
+ keepdir /var/delta-webrsync
+ fperms 0770 /var/delta-webrsync
+}
+
+pkg_preinst() {
+ # Failure here is non-fatal, since the "portage" group
+ # doesn't necessarily exist on prefix systems.
+ chgrp portage "${ED}"/var/delta-webrsync 2>/dev/null
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] && \
+ ! has_version app-arch/tarsync ; then
+ elog "For maximum emerge-delta-webrsync" \
+ "performance, install app-arch/tarsync."
+ fi
+}
diff --git a/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.2-r1.ebuild b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.2-r1.ebuild
new file mode 100644
index 000000000000..badaf5b7066d
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/emerge-delta-webrsync-3.7.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+DESCRIPTION="emerge-webrsync using patches to minimize bandwidth"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
+SRC_URI="https://raw.githubusercontent.com/gentoo/portage/779a9e686d89e31af43e33b1163b01aeff65d7ea/misc/emerge-delta-webrsync -> ${P}"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~hppa ia64 ~mips ppc ~sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ app-shells/bash
+ >=sys-apps/portage-2.1.10
+ >=dev-util/diffball-0.6.5"
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}/${P}" "${WORKDIR}/" || die
+}
+
+src_prepare() {
+ # Remove premature `rm -fr "${TMPDIR}"` for bug #506192.
+ sed -e '334,336d' -i ${P} || die
+}
+
+src_install() {
+ newbin ${P} ${PN}
+ keepdir /var/delta-webrsync
+ fperms 0770 /var/delta-webrsync
+}
+
+pkg_preinst() {
+ # Failure here is non-fatal, since the "portage" group
+ # doesn't necessarily exist on prefix systems.
+ chgrp portage "${ED}"/var/delta-webrsync 2>/dev/null
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] && \
+ ! has_version app-arch/tarsync ; then
+ elog "For maximum emerge-delta-webrsync" \
+ "performance, install app-arch/tarsync."
+ fi
+}
diff --git a/app-portage/emerge-delta-webrsync/files/3.5.1-md5sum.patch b/app-portage/emerge-delta-webrsync/files/3.5.1-md5sum.patch
new file mode 100644
index 000000000000..7ee19a89b39b
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/files/3.5.1-md5sum.patch
@@ -0,0 +1,21 @@
+diff -Naur orig/emerge-delta-webrsync modified-r1/emerge-delta-webrsync
+--- emerge-delta-webrsync.old 2006-09-28 10:29:52.000000000 +0000
++++ emerge-delta-webrsync-3.5.1 2006-09-30 12:09:41.000000000 +0000
+@@ -410,7 +410,7 @@
+ echo "thus, bailing (sorry)"
+ exit 5
+ else
+- if ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum" "portage-${final_date}.tar.bz2.umd5sum"; then
++ if [[ ! -e portage-${final_date}.tar.bz2.umd5sum ]] && ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum" "portage-${final_date}.tar.bz2.umd5sum"; then
+ if ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum" "portage-${final_date}.tar.bz2.umd5sum"; then
+ echo "couldn't grab umd5sum (uncompressed md5sum) for ${final_date}."
+ echo "can't compensate for bzip2 version differences iow."
+@@ -462,7 +462,7 @@
+
+ echo "verifying generated tarball"
+
+-if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2"; then
++if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/portage-${final_date}.tar.bz2.md5sum"; then
+ if [[ -z $verified ]]; then
+ echo "couldn't verify the generated tarball. bug, most likely."
+ exit 5
diff --git a/app-portage/emerge-delta-webrsync/files/3.5.1-metadata.patch b/app-portage/emerge-delta-webrsync/files/3.5.1-metadata.patch
new file mode 100644
index 000000000000..9958df1a1fae
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/files/3.5.1-metadata.patch
@@ -0,0 +1,37 @@
+--- emerge-delta-webrsync-3.5.1_old 2006-08-07 20:54:08.000000000 +0200
++++ emerge-delta-webrsync-3.5.1 2006-08-07 21:00:37.000000000 +0200
+@@ -8,10 +8,11 @@
+ #initialization
+ #------------------
+
+-f=$(python -c'import portage; print "|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_TMPDIR")])')
++f=$(python -c'import portage; print "|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "FEATURES", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_TMPDIR")])')
+
+ IFS='|'
+ PORTAGE_NICENESS="${f%%|*}"; f="${f#*|}"
++FEATURES="${f%%|*}" ; f="${f#*|}"
+ GENTOO_MIRRORS="${f%%|*}" ; f="${f#*|}"
+ PORTDIR="${f%%|*}" ; f="${f#*|}"
+ FETCHCOMMAND="${f%%|*}" ; f="${f#*|}"
+@@ -20,6 +21,8 @@
+ TMPDIR="${f%%|*}/snapshots"
+ unset IFS
+
++source /usr/lib/portage/bin/isolated-functions.sh || exit 1
++
+ if [ -z "$NICENESS_PULLED" ]; then
+ if [ -n "${PORTAGE_NICENESS}" ]; then
+ export NICENESS_PULLED=asdf
+@@ -217,8 +220,10 @@
+ echo "cleaning up"
+ rm -rf portage
+ fi
+- echo "transferring metadata/cache"
+- emerge metadata
++ if has metadata-transfer ${FEATURES} ; then
++ echo "transferring metadata/cache"
++ emerge --metadata
++ fi
+ }
+
+ fetch_from_mirrors() {
diff --git a/app-portage/emerge-delta-webrsync/files/3.5.1-post_sync.patch b/app-portage/emerge-delta-webrsync/files/3.5.1-post_sync.patch
new file mode 100644
index 000000000000..94e82e45d9e0
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/files/3.5.1-post_sync.patch
@@ -0,0 +1,11 @@
+--- emerge-delta-webrsync 2006-10-15 00:18:06.000000000 +0300
++++ emerge-delta-webrsync-3.5.1 2006-10-15 00:20:40.000000000 +0300
+@@ -224,6 +224,8 @@
+ echo "transferring metadata/cache"
+ emerge --metadata
+ fi
++ local post_sync=/etc/portage/bin/post_sync
++ [[ -x "${post_sync}" ]] && ${post_sync}
+ }
+
+ fetch_from_mirrors() {
diff --git a/app-portage/emerge-delta-webrsync/metadata.xml b/app-portage/emerge-delta-webrsync/metadata.xml
new file mode 100644
index 000000000000..cec4e204885c
--- /dev/null
+++ b/app-portage/emerge-delta-webrsync/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>mailto:dev-portage@gentoo.org</bugs-to>
+ </upstream>
+ <maintainer><email>dev-portage@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/app-portage/epkg/Manifest b/app-portage/epkg/Manifest
new file mode 100644
index 000000000000..04d5cde88967
--- /dev/null
+++ b/app-portage/epkg/Manifest
@@ -0,0 +1,3 @@
+DIST epkg-0.2.tar.gz 702 SHA256 93e7171a31800e1e8c69f14fb43d1738e7fda595b4eab9a045374e28708af8f4 SHA512 bbb3579be7138dcaee177b31deea406c3775e9f9ca01b79704a0b13279a5ebc1eaa1f9bbf47067370332c58102acdbc0fab718923c34e4cfcb062ffff773b165 WHIRLPOOL 2bfd1982fb2422f410f5c2a202a144735baad8b0adbefb9d1b4830c775b0d842f27b970d213ad31ceec1041842e1499bf6230de048734cebd28ea7f1c7dc587e
+DIST epkg-0.3.tar.gz 2926 SHA256 f996ab4aaa64c42d1e4635da46e65d57445d2f6c9a059e0b471dd140d5798b5e SHA512 2b815305c00b50a7a7e433345dd722591a1106edbf9b79715e70296489f4203fc1585a9abff826413d89ce8dde2680a78c375659fd1767e8c13e6fe1b48d4c40 WHIRLPOOL 5caba1df0fc8c1e7a79fa2cbb44e6245b32f0bfda2f5f27feec9e7e779bf047947e0adf9d10045f05cfaaa5b665be25595bce901b23bc7024df76ff496dfeaad
+DIST epkg-0.4.tar.gz 3696 SHA256 7b3f51ed9fbbc931d2378525595379559e6d893d0c71b41a4529ea6f91b853a7 SHA512 2b9ef0e2d0ec123a1e333403371d0d4d750bc5247a05771dc2f694d225ea5db2702dbc9a126cec1d0ddca38dffa837dd66acaa046ac94d00a28890f3e3cd7879 WHIRLPOOL 63bf5fc3ce3017ad708cb9e42585e934369fb9249d9910f49bce52a6c71edf2729df8d065b80dc4dc4555433538b0f457531566603492412d1512bb227d4104c
diff --git a/app-portage/epkg/epkg-0.2.ebuild b/app-portage/epkg/epkg-0.2.ebuild
new file mode 100644
index 000000000000..7baf7f17a368
--- /dev/null
+++ b/app-portage/epkg/epkg-0.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="A simple portage wrapper which works like other package managers"
+HOMEPAGE="http://github.com/jdhore/epkg"
+SRC_URI="https://github.com/jdhore/${PN}/archive/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}/${PN}-${P}"
+DEPEND=""
+RDEPEND="app-portage/eix
+ app-portage/gentoolkit
+ sys-apps/portage"
+
+src_install() {
+ dobin epkg
+}
diff --git a/app-portage/epkg/epkg-0.3.ebuild b/app-portage/epkg/epkg-0.3.ebuild
new file mode 100644
index 000000000000..98d31f4d6eaf
--- /dev/null
+++ b/app-portage/epkg/epkg-0.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="A simple portage wrapper which works like other package managers"
+HOMEPAGE="http://github.com/jdhore/epkg"
+SRC_URI="https://github.com/jdhore/${PN}/archive/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S="${WORKDIR}/${PN}-${P}"
+DEPEND=""
+RDEPEND="app-portage/eix
+ app-portage/gentoolkit
+ sys-apps/portage"
+
+src_install() {
+ dobin epkg
+ doman doc/epkg.1
+}
diff --git a/app-portage/epkg/epkg-0.4.ebuild b/app-portage/epkg/epkg-0.4.ebuild
new file mode 100644
index 000000000000..243c96646d8f
--- /dev/null
+++ b/app-portage/epkg/epkg-0.4.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="A simple portage wrapper which works like other package managers"
+HOMEPAGE="http://github.com/jdhore/epkg"
+SRC_URI="https://github.com/jdhore/${PN}/archive/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}/${PN}-${P}"
+DEPEND=""
+RDEPEND="app-portage/eix
+ app-portage/gentoolkit
+ sys-apps/portage"
+
+src_install() {
+ dobin epkg
+ doman doc/epkg.1
+}
diff --git a/app-portage/epkg/metadata.xml b/app-portage/epkg/metadata.xml
new file mode 100644
index 000000000000..5ad189835eb7
--- /dev/null
+++ b/app-portage/epkg/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>jdhore@gentoo.org</email>
+ <name>Jeff Horelick</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">jdhore/epkg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/epm/Manifest b/app-portage/epm/Manifest
new file mode 100644
index 000000000000..dc48794eaec4
--- /dev/null
+++ b/app-portage/epm/Manifest
@@ -0,0 +1 @@
+DIST epm-1.40.tar.gz 10980 SHA256 da435cc7a86807f9a1575afdb0ed6bdef26a9b7d0f1d8b91550b1aacf75eeefc SHA512 745c7f902fb35672058b05763a308322fb891b5dcc4f37a0444fdc22f1802ec5e8479445537c299e23dcf3882259751a163e356a633e270a2386a1456b541103 WHIRLPOOL f61f47480108d477afee7fdab549894898ea70ba61a004fef99885390c5eeab601bb271db73b301fd94093266be05496c9308031fd98f27bd0c58e53fb91b036
diff --git a/app-portage/epm/epm-1.40.ebuild b/app-portage/epm/epm-1.40.ebuild
new file mode 100644
index 000000000000..01618ee77ee7
--- /dev/null
+++ b/app-portage/epm/epm-1.40.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils prefix
+
+DESCRIPTION="rpm workalike for Gentoo Linux"
+HOMEPAGE="https://github.com/fuzzyray/epm"
+SRC_URI="http://www.gentoo.org/~fuzzyray/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND=">=dev-lang/perl-5"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-prefix.patch
+ eprefixify epm
+}
+
+src_compile() {
+ pod2man epm > epm.1 || die "pod2man failed"
+}
+
+src_install() {
+ dobin epm || die
+ doman epm.1
+}
diff --git a/app-portage/epm/epm-9999.ebuild b/app-portage/epm/epm-9999.ebuild
new file mode 100644
index 000000000000..e07c494c43dc
--- /dev/null
+++ b/app-portage/epm/epm-9999.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils git-2
+
+DESCRIPTION="rpm workalike for Gentoo Linux"
+HOMEPAGE="https://github.com/fuzzyray/epm"
+SRC_URI=""
+EGIT_REPO_URI="git://github.com/fuzzyray/epm.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND=">=dev-lang/perl-5"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -i "s/\"EPM version .*\";/\"EPM version 9999-${EGIT_VERSION}\";/" epm \
+ || die "Failed to set version"
+}
+
+src_compile() {
+ pod2man epm > epm.1 || die "pod2man failed"
+}
+
+src_install() {
+ dobin epm || die
+ doman epm.1
+}
diff --git a/app-portage/epm/files/epm-1.40-prefix.patch b/app-portage/epm/files/epm-1.40-prefix.patch
new file mode 100644
index 000000000000..957a5cb43838
--- /dev/null
+++ b/app-portage/epm/files/epm-1.40-prefix.patch
@@ -0,0 +1,32 @@
+--- epm.orig 2012-12-27 21:21:51.288350173 -0700
++++ epm 2012-12-27 21:26:51.429905384 -0700
+@@ -7,13 +7,13 @@
+ # Global vars
+ (my $version = '$Revision: 1.2 $') =~ s/.*?(\d.*\d).*/EPM version $1/;
+ my $verbose = 0;
+-my $dbpath = '/var/db/pkg';
++my $dbpath = '@GENTOO_PORTAGE_EPREFIX@/var/db/pkg';
+ my $pkgregex =
+ '^.+?\/'. # group (ignored)
+ '(.+?)'. # name
+ '-(\d+(?:\.\d+)*\w*)'. # version, eg 1.23.4a
+ '((?:(?:_alpha|_beta|_pre|_rc)\d*)?)'. # special suffix
+- '((?:-r\d+)?)$'; # revision, eg r12
++ '((?:-r\d+)?(?:\.\d+)?)$'; # revision, eg r12 or r01.1
+ my $root = '/';
+ my %opt = (
+ 'dbpath' => \$dbpath,
+@@ -267,11 +267,11 @@
+ if ($opt{'c'}) {
+ # Read in CONFIG_PROTECT from /etc/make.{global,conf}
+ my (@CONFIG_PROTECT) = split ' ',
+- `. /etc/make.globals; . /etc/make.conf; echo \$CONFIG_PROTECT`;
++ `. @GENTOO_PORTAGE_EPREFIX@/etc/make.globals; . @GENTOO_PORTAGE_EPREFIX@/etc/make.conf; echo \$CONFIG_PROTECT`;
+ die "CONFIG_PROTECT is empty" unless @CONFIG_PROTECT;
+ my ($confprotre) = join '|', @CONFIG_PROTECT;
+ @files = grep {
+- (split ' ', $_, 2)[1] =~ /^($confprotre)/o } @files;
++ (split ' ', $_, 2)[1] =~ m!^@GENTOO_PORTAGE_EPREFIX@($confprotre)!o } @files;
+ }
+
+ # Trim @files if doc files requested
diff --git a/app-portage/epm/metadata.xml b/app-portage/epm/metadata.xml
new file mode 100644
index 000000000000..29a0e89cb376
--- /dev/null
+++ b/app-portage/epm/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>proxy-maintainers</herd>
+ <maintainer>
+ <email>gentoo@weilbacher.org</email>
+ <name>Peter Weilbacher</name>
+ <description>Current maintainer, assign bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>fuzzyray@gentoo.org</email>
+ <description>Proxy committer, CC bugs</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">fuzzyray/epm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/esearch/Manifest b/app-portage/esearch/Manifest
new file mode 100644
index 000000000000..c04f31bc71d5
--- /dev/null
+++ b/app-portage/esearch/Manifest
@@ -0,0 +1 @@
+DIST esearch-1.3.tar.gz 19383 SHA256 3274c2da21d86287fa27fd562aa63ce82dd813e4d1ebb9c44bd2b82c9ed323f7 SHA512 7fbc1c362a320a76a40c45ddf83a29223eaafd3cfed1d8a9410a380e2025fb515eea26e38ebf0f304d14230c6c5cfc83ef2116b774b1d50ee4f7f4bb0ac046c4 WHIRLPOOL e1caa3f0b09925841899422d98b6222ccde68993d2e24b24034d3bac63e75cc07445513d418fbde99f23ed9d72203bbfe8cbc0861028648ace0c53ec683e6ad3
diff --git a/app-portage/esearch/esearch-1.3-r1.ebuild b/app-portage/esearch/esearch-1.3-r1.ebuild
new file mode 100644
index 000000000000..1c8403b615b8
--- /dev/null
+++ b/app-portage/esearch/esearch-1.3-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+PYTHON_REQ_USE="readline(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Replacement for 'emerge --search' with search-index"
+HOMEPAGE="https://github.com/fuzzyray/esearch"
+SRC_URI="mirror://github/fuzzyray/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="linguas_fr linguas_it"
+
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+
+DEPEND="sys-apps/portage"
+RDEPEND="${DEPEND}"
+
+# Populate the patches array for any patches for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${PV}-fix-EPREFIX-capability.patch
+PATCHES=(
+ "${FILESDIR}"/${PV}-Fix-setup.py.patch
+ "${FILESDIR}"/${PV}-Fix-python-3-compatability.patch
+)
+
+python_prepare_all() {
+ python_export_best
+ echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version \
+ || die "setup.py set_version failed"
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc eupdatedb.cron || die "dodoc failed"
+
+ # Remove unused man pages according to the linguas flags
+ if ! use linguas_fr ; then
+ rm -rf "${ED}"/usr/share/man/fr \
+ || die "rm failed to remove ${ED}/usr/share/man/fr"
+ fi
+
+ if ! use linguas_it ; then
+ rm -rf "${ED}"/usr/share/man/it \
+ || die "rm failed to remove ${ED}/usr/share/man/it"
+ fi
+}
diff --git a/app-portage/esearch/esearch-9999.ebuild b/app-portage/esearch/esearch-9999.ebuild
new file mode 100644
index 000000000000..4db5b2426b45
--- /dev/null
+++ b/app-portage/esearch/esearch-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+PYTHON_REQ_USE="readline(+)"
+
+inherit distutils-r1 git-2
+
+EGIT_REPO_URI="git://github.com/fuzzyray/esearch.git"
+
+DESCRIPTION="Replacement for 'emerge --search' with search-index"
+HOMEPAGE="https://github.com/fuzzyray/esearch"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="linguas_fr linguas_it"
+
+KEYWORDS=""
+
+DEPEND="sys-apps/portage"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ python_export_best
+ echo VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version
+ VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc eupdatedb.cron || die "dodoc failed"
+
+ # Remove unused man pages according to the linguas flags
+ if ! use linguas_fr ; then
+ rm -rf "${ED}"/usr/share/man/fr \
+ || die "rm failed to remove ${ED}/usr/share/man/fr"
+ fi
+
+ if ! use linguas_it ; then
+ rm -rf "${ED}"/usr/share/man/it \
+ || die "rm failed to remove ${ED}/usr/share/man/it"
+ fi
+}
diff --git a/app-portage/esearch/files/1.3-Fix-python-3-compatability.patch b/app-portage/esearch/files/1.3-Fix-python-3-compatability.patch
new file mode 100644
index 000000000000..36c9d2255b8c
--- /dev/null
+++ b/app-portage/esearch/files/1.3-Fix-python-3-compatability.patch
@@ -0,0 +1,34 @@
+From 3978f923ac814aef014cf412b63d11fd94f60692 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Wed, 8 May 2013 14:26:48 -0500
+Subject: [PATCH 1/2] Fix python 3 compatability with 'esearch -e' (Bug 469076)
+
+Thanks to zmedico for the patch.
+---
+ esearch/search.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/esearch/search.py b/esearch/search.py
+index f91f5b1..696a0f0 100755
+--- a/esearch/search.py
++++ b/esearch/search.py
+@@ -22,6 +22,7 @@ import re
+ try:
+ from portage.output import bold, red, green, darkgreen, turquoise, blue, nocolor
+ from portage import settings, pkgcmp, pkgsplit, portdb, best
++ from portage.util import cmp_sort_key
+ except ImportError:
+ print("Critical: portage imports failed!")
+ sys.exit(1)
+@@ -107,7 +108,7 @@ def searchEbuilds(path, portdir=True, searchdef="", repo_num="",
+ data['defebuild'] = (searchdef, pkgs[-1][3])
+ if not portdir:
+ config['found_in_overlay'] = True
+- pkgs.sort(mypkgcmp)
++ pkgs.sort(key=cmp_sort_key(mypkgcmp))
+ for pkg in pkgs:
+ rev = ""
+ if pkg[2] != "r0":
+--
+1.8.5.4
+
diff --git a/app-portage/esearch/files/1.3-Fix-setup.py.patch b/app-portage/esearch/files/1.3-Fix-setup.py.patch
new file mode 100644
index 000000000000..aad5d49f2f56
--- /dev/null
+++ b/app-portage/esearch/files/1.3-Fix-setup.py.patch
@@ -0,0 +1,28 @@
+From 94e77b115f5b14b7dfea50e4a7b77047e4b47263 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Tue, 18 Dec 2012 04:33:27 -0600
+Subject: [PATCH 1/3] Fix setup.py so that either VERSION or PVR will set the
+ version.
+
+This fixes the issue with egg-info always having a version number of
+9999. Fix is from Brian Dolbec courtesy of mirrorselect.
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 9d2addd..45a4c06 100755
+--- a/setup.py
++++ b/setup.py
+@@ -14,7 +14,7 @@ import io
+
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'pym'))
+
+-__version__ = os.getenv('VERSION', default='9999')
++__version__ = os.getenv('VERSION', default=os.getenv('PVR', default='9999'))
+
+ cwd = os.getcwd()
+
+--
+1.8.5.4
+
diff --git a/app-portage/esearch/files/eupdatedb.cron b/app-portage/esearch/files/eupdatedb.cron
new file mode 100644
index 000000000000..1cf802f7b05f
--- /dev/null
+++ b/app-portage/esearch/files/eupdatedb.cron
@@ -0,0 +1,32 @@
+#! /bin/bash
+
+# The eupdatedb script _needs_ to be installed with the filename 'eupdatedb'
+# because it does things based on basename $0.
+
+# Run some script
+
+SCRIPT="/usr/sbin/eupdatedb"
+SCRIPTPREOPTS="nice -n 19"
+SCRIPTOPTS="--quiet"
+PRECOMMAND=""
+POSTCOMMAND=""
+DATE="`date +%Y%m%d`"
+LOG="/var/log/`basename ${SCRIPT}`"
+
+${PRECOMMAND}
+
+# Start logging
+echo "--- Starting ${SCRIPT} for ${DATE} ---" >> ${LOG}
+
+if [ "`${SCRIPTPREOPTS} ${SCRIPT} ${SCRIPTOPTS}`" ]
+then
+ echo "${SCRIPT}: success." >> ${LOG}
+else
+ echo "ERROR: ${SCRIPT} failed." >> ${LOG}
+fi
+
+# Cleanup tasks
+${POSTCOMMAND}
+
+# End logging
+echo "--- Ending ${SCRIPT} for ${DATE} ---" >> ${LOG}
diff --git a/app-portage/esearch/metadata.xml b/app-portage/esearch/metadata.xml
new file mode 100644
index 000000000000..953e5243999c
--- /dev/null
+++ b/app-portage/esearch/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <upstream>
+ <remote-id type="github">fuzzyray/esearch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/etc-proposals/Manifest b/app-portage/etc-proposals/Manifest
new file mode 100644
index 000000000000..ab3862929468
--- /dev/null
+++ b/app-portage/etc-proposals/Manifest
@@ -0,0 +1 @@
+DIST etc-proposals-1.4.3.tar.gz 53696 SHA256 42c2b117e141d0e69a8717e98e9ddc9dffd2ed27533c6296e87e810c631e71c7 SHA512 9de117b96908bbde87e8ee9c326525961547ba779ae571071c57571d039f3e01f9d0ec6be5eefc1ea40abdfe73631b4c750964dc94dbb6348119b83afbc556a1 WHIRLPOOL 6fb095554bc8a98cf51d1426252ed3afe620c1cb9308e66315d1456f6a99d1e75fbd4513ce947cd5ab4aa1cc1d9dd680f29fb7fada06ef93dc28fbb5800fe539
diff --git a/app-portage/etc-proposals/etc-proposals-1.4.3-r3.ebuild b/app-portage/etc-proposals/etc-proposals-1.4.3-r3.ebuild
new file mode 100644
index 000000000000..a94485094f7b
--- /dev/null
+++ b/app-portage/etc-proposals/etc-proposals-1.4.3-r3.ebuild
@@ -0,0 +1,43 @@
+# 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
+
+DESCRIPTION="a set of tools for updating gentoo config files"
+HOMEPAGE="http://sourceforge.net/projects/etc-proposals.berlios/"
+SRC_URI="mirror://sourceforge/${PN}.berlios/${P}.tar.gz"
+
+IUSE="gtk qt4"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+
+DEPEND="gtk? ( >=dev-python/pygtk-2.10 )
+ qt4? ( >=dev-python/PyQt4-4.1.1[X] )"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ dodir /usr/sbin
+ einfo "Moving /usr/bin/etc-proposals to /usr/sbin/etc-proposals"
+ mv "${ED%/}/usr/bin/etc-proposals" "${ED%/}/usr/sbin/etc-proposals" || die
+ rmdir "${ED%/}/usr/bin" || die
+
+ # Bug 308725: Filter out the "PreferedFrontends" based on USE Flags:
+ use qt4 || sed -i -e '/^PreferedFrontends=/ s/qt4,//' "${D}"/etc/etc-proposals.conf
+ use gtk || sed -i -e '/^PreferedFrontends=/ s/gtk2,//' "${D}"/etc/etc-proposals.conf
+}
+
+pkg_postinst() {
+ elog "The configuration file has been installed to /etc/etc-proposals.conf"
+ elog "If you are installing etc-proposals for the first time or updating"
+ elog "from a version < 1.3 you should run the following command once:"
+ elog "etc-proposals --init-db"
+ ewarn "A full backup of /etc and other files managed by CONFIG_PROTECT"
+ ewarn "is highly advised before testing this tool!"
+}
diff --git a/app-portage/etc-proposals/metadata.xml b/app-portage/etc-proposals/metadata.xml
new file mode 100644
index 000000000000..b475efa0bdea
--- /dev/null
+++ b/app-portage/etc-proposals/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>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">etc-proposals.berlios</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/euscan/Manifest b/app-portage/euscan/Manifest
new file mode 100644
index 000000000000..7db0dd0aa2a9
--- /dev/null
+++ b/app-portage/euscan/Manifest
@@ -0,0 +1 @@
+DIST euscan-0.1.1.tar.gz 441780 SHA256 cbf89803c0c8d6025239f0abd1ac17179c8ff81b1b059be7fc9415a8cfe6dd7e SHA512 2f55f8f4b0fd46b13c981ba94be29a62f16fe2890ce03f99ac14b1488c2ebb59abdaee12f671d679b934b4fd875ee27e751d2c305420f7cfb08e69ec899a75ab WHIRLPOOL 602bc0e3ee60ee6acc6c39bd477957a544fecfd81b38bbd06e46adab246f16889700b38bf6dde306b9978357e521ebf4d185364fd37f765696cde53836a8e127
diff --git a/app-portage/euscan/euscan-0.1.1-r1.ebuild b/app-portage/euscan/euscan-0.1.1-r1.ebuild
new file mode 100644
index 000000000000..00cde1d27d81
--- /dev/null
+++ b/app-portage/euscan/euscan-0.1.1-r1.ebuild
@@ -0,0 +1,33 @@
+# 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="xml"
+
+inherit distutils-r1
+
+DESCRIPTION="Ebuild upstream scan utility"
+HOMEPAGE="http://euscan.iksaif.net"
+SRC_URI="http://dev.gentoo.org/~hwoarang/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ >=app-portage/gentoolkit-0.2.8[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ python_export_best
+ echo VERSION="${PV}" "${PYTHON}" setup.py set_version
+ VERSION="${PV}" "${PYTHON}" setup.py set_version
+ distutils-r1_python_prepare_all
+}
diff --git a/app-portage/euscan/euscan-9999.ebuild b/app-portage/euscan/euscan-9999.ebuild
new file mode 100644
index 000000000000..2dae71a13d16
--- /dev/null
+++ b/app-portage/euscan/euscan-9999.ebuild
@@ -0,0 +1,34 @@
+# 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="xml"
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="Ebuild upstream scan utility"
+HOMEPAGE="http://euscan.iksaif.net"
+SRC_URI=""
+EGIT_REPO_URI="git://github.com/iksaif/euscan.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS=""
+
+DEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ >=app-portage/gentoolkit-0.2.8[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup[${PYTHON_USEDEP}]"
+
+python_prepare_all() {
+ python_export_best
+ echo VERSION="${PV}" "${PYTHON}" setup.py set_version
+ VERSION="${PV}" "${PYTHON}" setup.py set_version
+ distutils-r1_python_prepare_all
+}
diff --git a/app-portage/euscan/metadata.xml b/app-portage/euscan/metadata.xml
new file mode 100644
index 000000000000..bcc2cc5f2da5
--- /dev/null
+++ b/app-portage/euscan/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>iksaif@gentoo.org</email>
+ <name>Corentin Chary</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/euses/Manifest b/app-portage/euses/Manifest
new file mode 100644
index 000000000000..c9ac495b6187
--- /dev/null
+++ b/app-portage/euses/Manifest
@@ -0,0 +1 @@
+DIST euses-2.5.9.tar.bz2 44281 SHA256 440406e79642dfa8faf477a666425e1b4915991c988fbca4c86c228441645508 SHA512 afbacdcb73bc10548b32050bc38f71e9ac8613277d2cd961f2f96e32e7fa1827c5a208e68a6994efdcaa9e4a64a581138daadab2296a5e60c5e29677dbbd9ef8 WHIRLPOOL c2ac9f6dc63f9013186e86c8c8933b37ee4295d8ff52f30592ab15e9d3c7b3ca634a3dcce08c049f4bf5663dfe12eeadbd3fbdace54a5590eefef4974e902726
diff --git a/app-portage/euses/euses-2.5.9.ebuild b/app-portage/euses/euses-2.5.9.ebuild
new file mode 100644
index 000000000000..7716c9b169bb
--- /dev/null
+++ b/app-portage/euses/euses-2.5.9.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="look up USE flag descriptions fast"
+HOMEPAGE="http://www.xs4all.nl/~rooversj/gentoo"
+SRC_URI="http://www.xs4all.nl/~rooversj/gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE=""
+
+S=${WORKDIR}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc ChangeLog
+}
diff --git a/app-portage/euses/metadata.xml b/app-portage/euses/metadata.xml
new file mode 100644
index 000000000000..0b3d691dc329
--- /dev/null
+++ b/app-portage/euses/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>tools-portage</herd>
+<maintainer>
+ <email>jer@gentoo.org</email>
+ <name>Jeroen Roovers</name>
+</maintainer>
+</pkgmetadata>
diff --git a/app-portage/fetchcommandwrapper/Manifest b/app-portage/fetchcommandwrapper/Manifest
new file mode 100644
index 000000000000..1fae8381e52a
--- /dev/null
+++ b/app-portage/fetchcommandwrapper/Manifest
@@ -0,0 +1,2 @@
+DIST fetchcommandwrapper-0.7.1.tar.gz 3187 SHA256 083eab79afadeadc00e9ad1dce77a54511df1a1e7b48c61c886012b565eba066 SHA512 be1e382180606d527f85c2f45888373286687c2b521c66cb11ed90f05e107bb54cbfe83b0509bf52e31108db3a52b9089259c83e63cae3a1d25dbca583faaf74 WHIRLPOOL dd9bda47ba066fc5ccab658b8914627ab14e0914ccc00541486910e7e2acc974016dacd7e40f86d6782adce45e9948cece74d09611ca965cceb110a491fc650e
+DIST fetchcommandwrapper-0.7.2.tar.gz 3134 SHA256 0ccab9876c6d2ed15c972aa5287069e2f2c503b9b36f6246b15be12eb7ec05b8 SHA512 f268cbef691320106b3f929b0ab3b63085ffdd3e1988fbada2d37c6abcdf7e417758055fff503bb70490840dfde7704e87bb7434faa1d1115cc42729ad10de61 WHIRLPOOL 1c9f2a5681a49a62e06003811a7903d58c816f34a38acf2c424238af58f32e48b0181d034c6ed2b44dcf3e4438ba1a45feb82315e263f5638a5c9fffe2f4b6a3
diff --git a/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.1.ebuild b/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.1.ebuild
new file mode 100644
index 000000000000..7d5854c706a1
--- /dev/null
+++ b/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.1.ebuild
@@ -0,0 +1,26 @@
+# 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
+
+DESCRIPTION="Wrapper integrating aria2 into portage's FETCHCOMMAND"
+HOMEPAGE="https://github.com/gentoo/fetchcommandwrapper"
+SRC_URI="http://www.hartwork.org/public/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=net-misc/aria2-1.10.2"
+
+pkg_postinst() {
+ ewarn 'You need to append'
+ ewarn ' source /usr/share/fetchcommandwrapper/make.conf'
+ ewarn 'to /etc/portage/make.conf in order to integrate fetchcommandwrapper.'
+}
diff --git a/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.2.ebuild b/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.2.ebuild
new file mode 100644
index 000000000000..7d5854c706a1
--- /dev/null
+++ b/app-portage/fetchcommandwrapper/fetchcommandwrapper-0.7.2.ebuild
@@ -0,0 +1,26 @@
+# 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
+
+DESCRIPTION="Wrapper integrating aria2 into portage's FETCHCOMMAND"
+HOMEPAGE="https://github.com/gentoo/fetchcommandwrapper"
+SRC_URI="http://www.hartwork.org/public/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=net-misc/aria2-1.10.2"
+
+pkg_postinst() {
+ ewarn 'You need to append'
+ ewarn ' source /usr/share/fetchcommandwrapper/make.conf'
+ ewarn 'to /etc/portage/make.conf in order to integrate fetchcommandwrapper.'
+}
diff --git a/app-portage/fetchcommandwrapper/metadata.xml b/app-portage/fetchcommandwrapper/metadata.xml
new file mode 100644
index 000000000000..48795f796802
--- /dev/null
+++ b/app-portage/fetchcommandwrapper/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>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gentoo/fetchcommandwrapper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/flaggie/Manifest b/app-portage/flaggie/Manifest
new file mode 100644
index 000000000000..44da735639f1
--- /dev/null
+++ b/app-portage/flaggie/Manifest
@@ -0,0 +1 @@
+DIST flaggie-0.2.1.tar.bz2 16767 SHA256 00a657a6c518bfabbc38770f61600d315a5441e821a8006406346e9a44f025d1 SHA512 3f273ebeceaaedce7a3807126fb3f450e420338a883440066d06a4d6a95b63bd538bb5da882fea23e0d390b28a83f50375dbda2624f656327775b2b700f2b2e4 WHIRLPOOL 9df433aa157dabda6089c9a2cf954085b96b13aaeeff1311be4547132d9b50109aed1f6e0b9f968b498d022721217072dda932137dad5ffc2b99ed23cce018be
diff --git a/app-portage/flaggie/flaggie-0.2.1.ebuild b/app-portage/flaggie/flaggie-0.2.1.ebuild
new file mode 100644
index 000000000000..291ad98f5432
--- /dev/null
+++ b/app-portage/flaggie/flaggie-0.2.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="A smart CLI mangler for package.* files"
+HOMEPAGE="https://bitbucket.org/mgorny/flaggie/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ~hppa ~mips ~ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ newbashcomp contrib/bash-completion/${PN}.bash-completion ${PN}
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ ewarn "Please denote that flaggie creates backups of your package.* files"
+ ewarn "before performing each change through appending a single '~'."
+ ewarn "If you'd like to keep your own backup of them, please use another"
+ ewarn "naming scheme (or even better some VCS)."
+ elog
+ elog "bash-completion support requires:"
+ elog " app-shells/gentoo-bashcomp"
+ has_version app-shells/gentoo-bashcomp && \
+ elog "(installed already)"
+}
diff --git a/app-portage/flaggie/flaggie-9999.ebuild b/app-portage/flaggie/flaggie-9999.ebuild
new file mode 100644
index 000000000000..64ffcb43a66c
--- /dev/null
+++ b/app-portage/flaggie/flaggie-9999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit bash-completion-r1 distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="A smart CLI mangler for package.* files"
+HOMEPAGE="https://bitbucket.org/mgorny/flaggie/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+
+#if LIVE
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_install_all() {
+ newbashcomp contrib/bash-completion/${PN}.bash-completion ${PN}
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ ewarn "Please note that flaggie creates backups of your package.* files"
+ ewarn "before performing each change through appending a single '~'."
+ ewarn "If you'd like to keep your own backup of them, please use another"
+ ewarn "naming scheme (or even better some VCS)."
+ if ! has_version app-shells/gentoo-bashcomp; then
+ elog
+ elog "If you want to use bash-completion, you need to install:"
+ elog " app-shells/gentoo-bashcomp"
+ fi
+}
diff --git a/app-portage/flaggie/metadata.xml b/app-portage/flaggie/metadata.xml
new file mode 100644
index 000000000000..9b7e49debff0
--- /dev/null
+++ b/app-portage/flaggie/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/flaggie/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/flaggie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/fquery/Manifest b/app-portage/fquery/Manifest
new file mode 100644
index 000000000000..a6738dc4227c
--- /dev/null
+++ b/app-portage/fquery/Manifest
@@ -0,0 +1,2 @@
+DIST fquery-0.2.1.4.tar.gz 13229 SHA256 e19ba8bff5414f990fbcc4852fcefc59cad25de02d1114737e32f19499833764 SHA512 bead28fa66b053ce13d6622dd93a212ad99a9183b0caafb36d5a594b529f6a14102305e0fd22197f7b5bfe47126f3e230efd3886fedbbfa223e075e69ee8edd9 WHIRLPOOL 785697f7fb381d13cf588067365f6a17de09ddf59b400017a45c4870042075ff9c44a4530fcb8c0f2fbd1082bb366d18c8e8a2da034a200500e7ee334182313d
+DIST fquery-0.2.1.5.tar.gz 13242 SHA256 f124de95a18d2e177ed1fae3493ad093c8c365d513c0cc958227fc59f2ca38ec SHA512 33282f12b4fd6c62e3ba3abe39c53442fce53b010a85a769f3f5b8107949ddb87e19c0350a0c23c938ec869b33be46de1505efcf44133a4ddecffdf00519013e WHIRLPOOL 0c83bf58866d3cdde602ac8847eb6ae6fb927ec539c76fb16f7d8367d27199455aca3f788481f46eb78b9b81b3572c32c4bb249063f7ad8b721f073979309cb7
diff --git a/app-portage/fquery/fquery-0.2.1.4.ebuild b/app-portage/fquery/fquery-0.2.1.4.ebuild
new file mode 100644
index 000000000000..075cb6b75629
--- /dev/null
+++ b/app-portage/fquery/fquery-0.2.1.4.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.2.9999
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="Installed package query tool for Gentoo Linux"
+HOMEPAGE="http://hackage.haskell.org/package/fquery"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.6
+ dev-haskell/extensible-exceptions
+ dev-haskell/parsec
+ dev-haskell/regex-compat
+ >=dev-lang/ghc-6.10.4"
diff --git a/app-portage/fquery/fquery-0.2.1.5.ebuild b/app-portage/fquery/fquery-0.2.1.5.ebuild
new file mode 100644
index 000000000000..72406f8eda2f
--- /dev/null
+++ b/app-portage/fquery/fquery-0.2.1.5.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.6.9999
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="Installed package query tool for Gentoo Linux"
+HOMEPAGE="http://hackage.haskell.org/package/fquery"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.6.0.3
+ dev-haskell/extensible-exceptions
+ dev-haskell/hashtables
+ dev-haskell/parsec
+ dev-haskell/regex-compat
+ >=dev-lang/ghc-6.10.4
+"
diff --git a/app-portage/fquery/metadata.xml b/app-portage/fquery/metadata.xml
new file mode 100644
index 000000000000..f8069e8c576b
--- /dev/null
+++ b/app-portage/fquery/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>haskell</herd>
+ <maintainer>
+ <email>haskell@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ A fast replacement for equery
+ </longdescription>
+</pkgmetadata>
diff --git a/app-portage/g-cpan/Manifest b/app-portage/g-cpan/Manifest
new file mode 100644
index 000000000000..a2f909a97665
--- /dev/null
+++ b/app-portage/g-cpan/Manifest
@@ -0,0 +1,2 @@
+DIST g-cpan-0.16.5.tar.gz 33894 SHA256 929c06ee2cdd3361121b6f359ea7fc9201bc42caff96ef1df45b4cb93ccfd988 SHA512 f2eab23281abe567ee2df42895e3f0783228c6ab5e3a8230089e900fd2700367d736299da20fb228f2d4542491a24da05fd035a81aff7d79ce5132e35c48ad0b WHIRLPOOL 01e0b9fc59264455d57fc64c432e683ae941c74d6efa6e2b3430dea6caac019cfad3e893a4b39de4386a3dadadecf95d828a9fbaa8e8b1260303081e2cc6ce65
+DIST g-cpan-0.16.6.tar.gz 33844 SHA256 efd0a99483d8ce4a6c828f145592846e6076887b33f95431d7b8256c6973906d SHA512 f8e9e211ffc09ca42d1444a42ad2b8111beb8988e4a01387cf8788f7e4a52e6133168820c2800ac82429fa022e2ff473a774c48ac140b5cde184b3d77cd6e1b1 WHIRLPOOL 95d7db1905df41f320b8876a02f53e3238d55ab1be30e4b086ed362797819629997edd06e167c21325cc8d13540247a842cedcfcf1a236737fec91835b952252
diff --git a/app-portage/g-cpan/g-cpan-0.16.5.ebuild b/app-portage/g-cpan/g-cpan-0.16.5.ebuild
new file mode 100644
index 000000000000..6131e4c99cae
--- /dev/null
+++ b/app-portage/g-cpan/g-cpan-0.16.5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module
+
+DESCRIPTION="g-cpan: generate and install CPAN modules using portage"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl/g-cpan.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz
+ http://dev.gentoo.org/~chainsaw/distfiles/${P}.tar.gz"
+
+LICENSE="|| ( Artistic GPL-2 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ >=dev-perl/yaml-0.60
+ dev-perl/Shell-EnvImporter
+ dev-perl/Log-Agent"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ perl-module_src_install
+ diropts "-m0755"
+ dodir "/var/tmp/g-cpan"
+ keepdir "/var/tmp/g-cpan"
+ dodir "/var/log/g-cpan"
+ keepdir "/var/log/g-cpan"
+}
+
+pkg_postinst() {
+ elog "You may wish to adjust the permissions on /var/tmp/g-cpan"
+ elog "if you have users besides root expecting to use g-cpan."
+ elog "Please note that some CPAN packages need additional manual"
+ elog "parameters or tweaking, due to bugs in their build systems."
+}
diff --git a/app-portage/g-cpan/g-cpan-0.16.6.ebuild b/app-portage/g-cpan/g-cpan-0.16.6.ebuild
new file mode 100644
index 000000000000..741d69c455da
--- /dev/null
+++ b/app-portage/g-cpan/g-cpan-0.16.6.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/gentoo-perl/g-cpan.git"
+ inherit git-r3
+ SRC_URI=""
+else
+ SRC_URI="http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+DESCRIPTION="g-cpan: generate and install CPAN modules using portage"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl/g-cpan.xml"
+
+LICENSE="|| ( Artistic GPL-2 )"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ >=dev-perl/yaml-0.60
+ >=dev-perl/Shell-EnvImporter-1.70.0-r2
+ dev-perl/Log-Agent"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ perl-module_src_install
+ diropts "-m0755"
+ dodir "/var/tmp/g-cpan"
+ keepdir "/var/tmp/g-cpan"
+ dodir "/var/log/g-cpan"
+ keepdir "/var/log/g-cpan"
+}
+
+pkg_postinst() {
+ elog "You may wish to adjust the permissions on /var/tmp/g-cpan"
+ elog "if you have users besides root expecting to use g-cpan."
+ elog "Please note that some CPAN packages need additional manual"
+ elog "parameters or tweaking, due to bugs in their build systems."
+}
diff --git a/app-portage/g-cpan/g-cpan-9999.ebuild b/app-portage/g-cpan/g-cpan-9999.ebuild
new file mode 100644
index 000000000000..389a8437f429
--- /dev/null
+++ b/app-portage/g-cpan/g-cpan-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/gentoo-perl/g-cpan.git"
+ inherit git-r3
+ SRC_URI=""
+else
+ SRC_URI="http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+DESCRIPTION="g-cpan: generate and install CPAN modules using portage"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl/g-cpan.xml"
+
+LICENSE="|| ( Artistic GPL-2 )"
+SLOT="0"
+IUSE=""
+
+DEPEND="
+ >=dev-perl/yaml-0.60
+ >=dev-perl/Shell-EnvImporter-1.70.0-r2
+ dev-perl/Log-Agent
+"
+RDEPEND="${DEPEND}
+ >=sys-apps/portage-2.0.0
+"
+
+src_install() {
+ perl-module_src_install
+ diropts "-m0755"
+ dodir "/var/tmp/g-cpan"
+ keepdir "/var/tmp/g-cpan"
+ dodir "/var/log/g-cpan"
+ keepdir "/var/log/g-cpan"
+}
+
+pkg_postinst() {
+ elog "You may wish to adjust the permissions on /var/tmp/g-cpan"
+ elog "if you have users besides root expecting to use g-cpan."
+ elog "Please note that some CPAN packages need additional manual"
+ elog "parameters or tweaking, due to bugs in their build systems."
+}
diff --git a/app-portage/g-cpan/metadata.xml b/app-portage/g-cpan/metadata.xml
new file mode 100644
index 000000000000..056ad389507d
--- /dev/null
+++ b/app-portage/g-cpan/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>perl</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/g-ctan/Manifest b/app-portage/g-ctan/Manifest
new file mode 100644
index 000000000000..272f9aa31a9e
--- /dev/null
+++ b/app-portage/g-ctan/Manifest
@@ -0,0 +1 @@
+DIST g-ctan-2011.1.tar.bz2 29154 SHA256 35544fbccae772b4f3fd6589c660f82621bc500deafb0e906fdd7436ec9d3fa4 SHA512 4b82178b1acce765df9beb9a94087d154e70803d7b7b49db40a52148672f5f6293bea53471d5ac1f8b7576bf4c679d4901f38441a3c30946cbcad91b0bc8ba9c WHIRLPOOL fb3ae8a9bb791e26ed8e87de52ca07cd921dd652406dfae57a71917b53a0c28c80c1de31884b8606b753513a3175247920d864e6cbd4d206a4375ce19968c85b
diff --git a/app-portage/g-ctan/g-ctan-2011.1.ebuild b/app-portage/g-ctan/g-ctan-2011.1.ebuild
new file mode 100644
index 000000000000..5fa2153b82ca
--- /dev/null
+++ b/app-portage/g-ctan/g-ctan-2011.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+
+DESCRIPTION="Generate and install ebuilds from the TeXLive package manager"
+HOMEPAGE="http://launchpad.net/g-ctan"
+SRC_URI="http://launchpad.net/g-ctan/${PV/\.*/}/${PV}/+download/${P}.tar.bz2"
+LICENSE="GPL-3"
+
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86"
+
+IUSE=""
+DEPEND=""
+RDEPEND="~app-text/texlive-2011
+ app-arch/xz-utils
+ >=dev-libs/libpcre-0.7.6"
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+}
diff --git a/app-portage/g-ctan/metadata.xml b/app-portage/g-ctan/metadata.xml
new file mode 100644
index 000000000000..6954a666585b
--- /dev/null
+++ b/app-portage/g-ctan/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>fauli@gentoo.org</email>
+ <name>Christian Faulhammer</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">g-ctan</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/g-octave/Manifest b/app-portage/g-octave/Manifest
new file mode 100644
index 000000000000..0d170557d544
--- /dev/null
+++ b/app-portage/g-octave/Manifest
@@ -0,0 +1,2 @@
+DIST g-octave-0.4.1.tar.gz 52285 SHA256 14992469fbf82385fc3a2c541289d236030bd3bd7ebf0b654a8ff1d1d20c3437 SHA512 424b95e626981aa5685795ffb3df1a1d608e5293adba074cc67f7dcf08d4a0c94a0174005f97a8da1ba1ae4233299e6a530af96ba3b9fd0d8b224915e947efb3 WHIRLPOOL 82698ceccb4786bebf6127c05ad87759556456a3aca0615f5a7a99260d30170246f3b323f7485ab79f3e5c3f57eb356c3d6cda3dfdad3c7657e04a2eac026b2e
+DIST g-octave-db-bdf02cb.tar.gz 39836 SHA256 e0f0797e44b4d0fe6b0952a66631cd3ed14594881334c35d734f1eb6a46daf88 SHA512 5eae00e18b6d4633ed0feda3a2eea6b36da049c133bcd49e54481443ff435bfcab0f303ab9f0e8c3f48fad707625ee13b4564c510d89fa196e737c7599ea5fa6 WHIRLPOOL 0c8618e9e36c854364cd390eda4d4e1f08c76211088cfe45d6b6d0220bf7afe82137b18417cfbf0f4524561edb6daa9340b7f16fecb4380a4ed90bdb84857c13
diff --git a/app-portage/g-octave/files/g-octave-0.4.1-add_cave_support.patch b/app-portage/g-octave/files/g-octave-0.4.1-add_cave_support.patch
new file mode 100644
index 000000000000..1ef90c9200ed
--- /dev/null
+++ b/app-portage/g-octave/files/g-octave-0.4.1-add_cave_support.patch
@@ -0,0 +1,88 @@
+--- ./g-octave-0.4.1/g_octave/package_manager.py 2010-10-23 23:37:26.000000000 +0200
++++ ./g-octave-0.4.1/g_octave/package_manager.py 2011-05-25 12:52:10.510019006 +0200
+@@ -15,6 +15,7 @@
+ 'Portage',
+ 'Pkgcore',
+ 'Paludis',
++ 'Cave',
+ ]
+
+ import grp
+@@ -243,3 +244,56 @@
+ packages.append(line.strip())
+ return packages
+
++class Cave(Base):
++
++ _client = '/usr/bin/cave'
++ _group = 'paludisbuild'
++
++ post_uninstall = [
++ 'You may want to remove the dependencies too, using:',
++ '# cave purge',
++ ]
++
++ def __init__(self, ask=False, verbose=False, pretend=False, oneshot=False, nocolor=False):
++ self._fullcommand = [self._client]
++ self._cmd = ['-z']
++ oneshot and self._cmd.append('-1')
++ not pretend and self._cmd.append('-x')
++ #if verbose:
++ # self._fullcommand += [
++ # '--show-descriptions', 'all',
++ # '--show-option-descriptions', 'all',
++ # ]
++ #cave doesn't support '--ask'
++ #cave doesn't support '--no-color'
++
++ def run_command(self, command):
++ return subprocess.call(self._fullcommand + command + self._cmd)
++
++ def install_package(self, pkgatom, catpkg):
++ return self.run_command(['resolve'] + [pkgatom])
++
++ def uninstall_package(self, pkgatom, catpkg):
++ return self.run_command(['uninstall'] + [pkgatom])
++
++ def update_package(self, pkgatom=None, catpkg=None):
++ cmd = ['-1','-K','s','-k','s']
++ if pkgatom is None:
++ pkgatom = self.installed_packages()
++ else:
++ pkgatom = [pkgatom]
++ self.do_ebuilds(pkgatom)
++ return self.run_command(['resolve'] + cmd + pkgatom)
++
++ def installed_packages(self):
++ packages = []
++ p = subprocess.Popen([
++ 'cave',
++ 'print-ids',
++ '--matching', 'g-octave/*::installed',
++ '--format', '%c/%p\n',
++ ], stdout=subprocess.PIPE)
++ if p.wait() == os.EX_OK:
++ for line in p.stdout:
++ packages.append(line.strip())
++ return packages
+--- ./g-octave-0.4.1/scripts/g-octave 2011-05-25 12:00:25.740019020 +0200
++++ ./g-octave-0.4.1/scripts/g-octave 2011-05-25 12:00:39.434019008 +0200
+@@ -217,7 +217,7 @@
+ return os.EX_DATAERR
+ return os.EX_OK
+
+- from g_octave.package_manager import Portage, Pkgcore, Paludis
++ from g_octave.package_manager import Portage, Pkgcore, Paludis, Cave
+
+ if conf_prefetch.package_manager == 'portage':
+ log.info('Your package manager is: Portage')
+@@ -228,6 +228,9 @@
+ elif conf_prefetch.package_manager == 'paludis':
+ log.info('Your package manager is: Paludis')
+ pkg_manager = Paludis(options.ask, options.verbose, options.pretend, options.oneshot, not options.colors)
++ elif conf_prefetch.package_manager == 'cave':
++ log.info('Your package manager is: Paludis (Cave)')
++ pkg_manager = Cave(options.ask, options.verbose, options.pretend, options.oneshot, not options.colors)
+ else:
+ log.error('Invalid package manager: %s' % conf_prefetch.package_manager)
+ out.eerror('Invalid package manager: %s' % conf_prefetch.package_manager)
diff --git a/app-portage/g-octave/files/g-octave-0.4.1-fix-Makefile.patch b/app-portage/g-octave/files/g-octave-0.4.1-fix-Makefile.patch
new file mode 100644
index 000000000000..53d3d5e0dbcd
--- /dev/null
+++ b/app-portage/g-octave/files/g-octave-0.4.1-fix-Makefile.patch
@@ -0,0 +1,12 @@
+--- share/g-octave.eclass 2013-05-30 19:01:07.980521612 +0200
++++ share/g-octave.eclass.new 2013-05-30 19:03:38.933514388 +0200
+@@ -48,6 +48,9 @@
+ for filename in Makefile configure; do
+ cp "${DISTDIR}/g-octave_${filename}" "${S}/${filename}"
+ done
++
++ sed -i -e 's@libexec@lib@g' "${S}/Makefile" || die 'sed failed.'
++
+ chmod 0755 "${S}/configure"
+ if [ -e "${S}"/src/autogen.sh ]; then
+ cd "${S}"/src && ./autogen.sh || die 'failed to run autogen.sh'
diff --git a/app-portage/g-octave/files/g-octave-0.4.1-fix-sourceforge-svn-root.patch b/app-portage/g-octave/files/g-octave-0.4.1-fix-sourceforge-svn-root.patch
new file mode 100644
index 000000000000..2700f3b100dc
--- /dev/null
+++ b/app-portage/g-octave/files/g-octave-0.4.1-fix-sourceforge-svn-root.patch
@@ -0,0 +1,36 @@
+--- a/contrib/manage_pkgdb.py
++++ b/contrib/manage_pkgdb.py
+@@ -50,7 +50,7 @@ class SfUpdates:
+ # feed url from 'http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/'
+ feed_url = u'http://sourceforge.net/api/file/index/project-id/2888/mtime/desc/rss?path=%2FOctave%20Forge%20Packages%2FIndividual%20Package%20Releases'
+
+- svnroot_url = u'https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/'
++ svnroot_url = u'http://svn.code.sf.net/p/octave/code/trunk/octave-forge'
+ categories = [u'main', u'extra', u'language', u'nonfree']
+
+ _timestamp = None
+--- a/g_octave/description.py
++++ b/g_octave/description.py
+@@ -269,7 +269,7 @@ def __getattr__(self, name):
+
+ class SvnDescription(Description):
+
+- _url = 'https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge'
++ _url = 'http://svn.code.sf.net/p/octave/code/trunk/octave-forge'
+
+ def __init__(self, category, package):
+ temp_desc = config_file = tempfile.mkstemp()[1]
+--- a/share/g-octave.eclass
++++ b/share/g-octave.eclass
+@@ -13,7 +13,7 @@
+ G_OCTAVE_CAT="${G_OCTAVE_CAT:-main}"
+
+
+-REPO_URI="https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge"
++REPO_URI="http://svn.code.sf.net/p/octave/code/trunk/octave-forge"
+ if [[ ${PV} = 9999* ]]; then
+ inherit subversion autotools
+ ESVN_REPO_URI="${REPO_URI}/${G_OCTAVE_CAT}/${PN}"
+--
+1.7.10
+
diff --git a/app-portage/g-octave/g-octave-0.4.1-r4.ebuild b/app-portage/g-octave/g-octave-0.4.1-r4.ebuild
new file mode 100644
index 000000000000..048375be6468
--- /dev/null
+++ b/app-portage/g-octave/g-octave-0.4.1-r4.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.5 *-jython"
+
+DB_COMMIT="bdf02cbf0a8d017c6c1bddeffd6f03d5d90695ed"
+DB_DIR="rafaelmartins-${PN}-db-${DB_COMMIT:0:7}"
+
+inherit distutils eutils
+
+DESCRIPTION="A tool that generates and installs ebuilds for Octave-Forge"
+HOMEPAGE="https://github.com/rafaelmartins/g-octave"
+
+SRC_URI="mirror://github/rafaelmartins/${PN}/${P}.tar.gz
+ http://github.com/rafaelmartins/${PN}-db/tarball/${DB_COMMIT} ->
+ ${PN}-db-${DB_COMMIT:0:7}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+DEPEND="doc? ( >=dev-python/sphinx-1.0 )"
+RDEPEND="sys-apps/portage"
+
+PYTHON_MODNAME="g_octave"
+
+src_prepare() {
+ distutils_src_prepare
+ epatch "${FILESDIR}/${P}-add_cave_support.patch"
+ epatch "${FILESDIR}/${P}-fix-sourceforge-svn-root.patch"
+ epatch "${FILESDIR}/${P}-fix-Makefile.patch"
+ sed -i -e 's/^has_fetch.*$/has_fetch = False/' scripts/g-octave \
+ || die 'failed to patch the g-octave main script'
+}
+
+src_compile() {
+ distutils_src_compile
+ if use doc; then
+ emake -C docs html || die 'failed to compile the documentation.'
+ fi
+}
+
+src_install() {
+ distutils_src_install
+ dohtml ${PN}.html || die 'dohtml failed.'
+ doman ${PN}.1 || die 'doman failed.'
+ if use doc; then
+ mv docs/_build/{html,sphinx} || die 'mv failed.'
+ dohtml -r docs/_build/sphinx || die 'dohtml failed.'
+ fi
+}
+
+src_test() {
+ testing() {
+ PYTHONPATH="build-${PYTHON_ABI}/lib" "$(PYTHON)" \
+ scripts/run_tests.py || die 'test failed.'
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog
+ elog 'To be able to use g-octave with the shipped package database, please'
+ elog 'edit your configuration file, clean your db directory and run:'
+ elog " emerge --config =${PF}"
+ elog
+ elog "If you are upgrading from =${PN}-0.3, please read this:"
+ elog "http://g-octave.readthedocs.org/en/latest/upgrading/#from-0-3-to-0-4"
+ elog
+ elog 'Please install the package manager that you want to use before run g-octave'
+ elog
+}
+
+pkg_config() {
+ local db="$(g-octave --config db)"
+ mkdir -p "${db}"
+ einfo "Extracting g-octave database files to: ${db}"
+ tar -xzf "${DISTDIR}/${PN}-db-${DB_COMMIT:0:7}.tar.gz" -C "${db}" || die 'tar failed.'
+ rm -rf "${db}"/{patches,octave-forge,info.json,manifest.json,timestamp}
+ mv -f "${db}/${DB_DIR}"/* "${db}" || die 'mv failed.'
+ rm -rf "${db}/${DB_DIR}"
+}
diff --git a/app-portage/g-octave/metadata.xml b/app-portage/g-octave/metadata.xml
new file mode 100644
index 000000000000..e274a6c4c8a2
--- /dev/null
+++ b/app-portage/g-octave/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-mathematics</herd>
+ <maintainer>
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <longdescription lang="en">
+ g-octave is a tool that generates and installs ebuilds for Octave-Forge
+ packages "on-the-fly" to Gentoo Linux, using Portage. It's capable to
+ generate ebuilds and Manifest files for the packages, and to install
+ them using an autogenerated overlay (named g-octave). g-octave can also
+ handle patches to the packages automatically. The command line interface
+ tries to be very similar to the interface of the emerge tool.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rafaelmartins/g-octave</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/g-sorcery/Manifest b/app-portage/g-sorcery/Manifest
new file mode 100644
index 000000000000..98d5f8c4c770
--- /dev/null
+++ b/app-portage/g-sorcery/Manifest
@@ -0,0 +1,2 @@
+DIST g-sorcery-0.1.tar.gz 45796 SHA256 47fbc40864849cb4b9dfe15d79a38310705fc4dd2a7d5c2ef99688f5b31edec6 SHA512 207776ed65c79365dd65a21b14f3ba38589a2b5f47c3c6ac38691ba7949b9a836f6a8543e443119d6f2381a5f34ee854ecbc7d2f88527301c7cb1e10478406a5 WHIRLPOOL 4af6a5267d2c3dc5b9c4932b39dc474419f95c0c279d3211847abd8aa25cb148413815099a8c1866156d2437c673850445fbedd04e00076072c9ed91fc150897
+DIST g-sorcery-0.2.tar.gz 54173 SHA256 0d37d5f7ad41771fadefef4caa7d75470c334f277d50107b727f8cd4688b5189 SHA512 9715d468c3eb34eac2bda81b7442d86fc8af984c2115c93682ae6c63d59a9ed3d7d0234df845659ccd991eb304d732ae33e31c217a7916b8dd08e2617984cb32 WHIRLPOOL 8e9439c11132f25ef8f21421ff89043773de15211934dbb45e0b409d058f41b347f536f0b88d0f1a7f8632918b08988edeb76897a2b9d087e1f83da55e35fcac
diff --git a/app-portage/g-sorcery/g-sorcery-0.1-r1.ebuild b/app-portage/g-sorcery/g-sorcery-0.1-r1.ebuild
new file mode 100644
index 000000000000..11b65619b7bb
--- /dev/null
+++ b/app-portage/g-sorcery/g-sorcery-0.1-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="framework for ebuild generators"
+HOMEPAGE="https://github.com/jauhien/g-sorcery"
+SRC_URI="https://github.com/jauhien/g-sorcery/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+PDEPEND=">=app-portage/layman-2.2.0[g-sorcery,$(python_gen_usedep 'python*')]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman docs/*.8
+ dohtml docs/developer_instructions.html
+ diropts -m0777
+ dodir /var/lib/g-sorcery
+}
diff --git a/app-portage/g-sorcery/g-sorcery-0.2.ebuild b/app-portage/g-sorcery/g-sorcery-0.2.ebuild
new file mode 100644
index 000000000000..532b33af0b55
--- /dev/null
+++ b/app-portage/g-sorcery/g-sorcery-0.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="framework for ebuild generators"
+HOMEPAGE="https://github.com/jauhien/g-sorcery"
+SRC_URI="https://github.com/jauhien/g-sorcery/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="bson"
+KEYWORDS="~amd64 ~hppa ~x86"
+
+DEPEND="bson? ( dev-python/pymongo[$(python_gen_usedep 'python*')] )
+ sys-apps/portage[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+PDEPEND=">=app-portage/layman-2.2.0[g-sorcery(-),$(python_gen_usedep 'python*')]"
+
+python_test() {
+ PYTHONPATH="." "${PYTHON}" scripts/run_tests.py
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman docs/*.8
+ dohtml docs/developer_instructions.html
+ diropts -m0777
+ dodir /var/lib/g-sorcery
+}
diff --git a/app-portage/g-sorcery/g-sorcery-9999.ebuild b/app-portage/g-sorcery/g-sorcery-9999.ebuild
new file mode 100644
index 000000000000..9c42e8262327
--- /dev/null
+++ b/app-portage/g-sorcery/g-sorcery-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="framework for ebuild generators"
+HOMEPAGE="https://github.com/jauhien/g-sorcery"
+SRC_URI=""
+EGIT_BRANCH="master"
+EGIT_REPO_URI="git://git.gentoo.org/proj/g-sorcery.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="bson"
+
+DEPEND="bson? ( dev-python/pymongo[$(python_gen_usedep 'python*')] )
+ sys-apps/portage[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+PDEPEND=">=app-portage/layman-2.2.0[g-sorcery(-),$(python_gen_usedep 'python*')]"
+
+python_test() {
+ PYTHONPATH="." "${PYTHON}" scripts/run_tests.py
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman docs/*.8
+ dohtml docs/developer_instructions.html
+ diropts -m0777
+ dodir /var/lib/g-sorcery
+}
diff --git a/app-portage/g-sorcery/metadata.xml b/app-portage/g-sorcery/metadata.xml
new file mode 100644
index 000000000000..581bb331a9ff
--- /dev/null
+++ b/app-portage/g-sorcery/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jauhien@gentoo.org</email>
+ <name>Jauhien Piatlicki</name>
+ </maintainer>
+ <use>
+ <flag name="bson">Support BSON file format for package DB</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">jauhien/g-sorcery</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/genlop/Manifest b/app-portage/genlop/Manifest
new file mode 100644
index 000000000000..59a03d77157f
--- /dev/null
+++ b/app-portage/genlop/Manifest
@@ -0,0 +1,2 @@
+DIST genlop-0.30.10.tar.gz 20872 SHA256 690ef95d2ce715f2a1a3a2d380d74958cfdd3a28033625aec6e8d694f91dc4de SHA512 eab59d7dc012fbbdbe7de509deba66e6c7d0c5a37064e79c25a37c64becc259ee5206194615b60b3363022fa59e458356547edca307ceb4e19eeeaf4b146c593 WHIRLPOOL 378e2837929ae21417d3be0b840fb9635248b94cdefef9459455ce80236117c79a9a5f406d707d400e7887f38dbcd5004edd24caac6ebb207ab2f693d4f74bfa
+DIST genlop-0.30.9.tar.gz 21160 SHA256 76aae7055c68bd1bd9f0e17d9e984c32b7e94d4824c9e433f45e3457916f1193 SHA512 659c85bb1d75a90e37449a194fca2c610b2684dab3eb722d566aa929626d958aa1584d12a623f31518d982543be9392786291886ea66a5511e61de1beb3a6936 WHIRLPOOL fab528d251c57541c0cb5e5072d863abf6e776282a64ee3ecfcb88113bac3f1f0256825c0a19fdabbb8f671bc442703a12b28a9d1a4ab7b44c388367ea43dd2c
diff --git a/app-portage/genlop/files/genlop-0.30.10-sync.patch b/app-portage/genlop/files/genlop-0.30.10-sync.patch
new file mode 100644
index 000000000000..8c798dddd18a
--- /dev/null
+++ b/app-portage/genlop/files/genlop-0.30.10-sync.patch
@@ -0,0 +1,26 @@
+From 46eb6a5a9a90049920ea84018b69b643c2809bfa Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Thu, 19 Feb 2015 09:46:47 -0600
+Subject: [PATCH] Fix genlop -r to work with new Portage sync code. (Bug
+ 540050)
+
+---
+ genlop | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/genlop b/genlop
+index e36c678..4e0faf0 100755
+--- a/genlop
++++ b/genlop
+@@ -968,7 +968,7 @@ sub rsync() {
+ my $handle;
+ open_file($_, \$handle);
+ while(<$handle>) {
+- if ($_ =~ m/^(.*?)\: \=\=\= Sync completed with/) {
++ if ($_ =~ m/^(.*?)\: \=\=\= Sync completed/) {
+ if ($date_found) {
+ if (datecompare($1) <= 0) {
+ next;
+--
+2.3.0
+
diff --git a/app-portage/genlop/files/genlop-0.30.9-display.patch b/app-portage/genlop/files/genlop-0.30.9-display.patch
new file mode 100644
index 000000000000..cd9919ee3a27
--- /dev/null
+++ b/app-portage/genlop/files/genlop-0.30.9-display.patch
@@ -0,0 +1,26 @@
+From 76cb98e439c65b5ec8d32d809100a67c653e5635 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Mon, 21 Jan 2013 15:37:19 -0600
+Subject: [PATCH] Fix issue where genlop <pkg name> no longer displays merge
+ information (Bug 453382).
+
+---
+ genlop | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/genlop b/genlop
+index 52af5ed..d5020eb 100755
+--- a/genlop
++++ b/genlop
+@@ -1127,7 +1127,7 @@ foreach my $ebuild_arg (@targets)
+ }
+ }
+ }
+- if ($list_found or $ebuild_found or $time_found)
++ if ($list_found or $ebuild_found or $time_found or !$info_found)
+ {
+ my $eb = $2;
+ my $extra = $3 || "";
+--
+1.8.1.1
+
diff --git a/app-portage/genlop/genlop-0.30.10-r1.ebuild b/app-portage/genlop/genlop-0.30.10-r1.ebuild
new file mode 100644
index 000000000000..a0f54a0b8f83
--- /dev/null
+++ b/app-portage/genlop/genlop-0.30.10-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base bash-completion-r1
+
+DESCRIPTION="A nice emerge.log parser"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl"
+SRC_URI="http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ dev-perl/DateManip
+ dev-perl/libwww-perl"
+RDEPEND="${DEPEND}"
+
+# Populate the patches array for any patches for -rX releases
+PATCHES=( "${FILESDIR}"/${P}-sync.patch )
+
+src_install() {
+ dobin genlop
+ dodoc README Changelog
+ doman genlop.1
+ newbashcomp genlop.bash-completion genlop
+}
diff --git a/app-portage/genlop/genlop-0.30.10.ebuild b/app-portage/genlop/genlop-0.30.10.ebuild
new file mode 100644
index 000000000000..8375e1b28e32
--- /dev/null
+++ b/app-portage/genlop/genlop-0.30.10.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit bash-completion-r1
+
+DESCRIPTION="A nice emerge.log parser"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl"
+SRC_URI="http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ dev-perl/DateManip
+ dev-perl/libwww-perl"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ dobin genlop
+ dodoc README Changelog
+ doman genlop.1
+ newbashcomp genlop.bash-completion genlop
+}
diff --git a/app-portage/genlop/genlop-0.30.9-r1.ebuild b/app-portage/genlop/genlop-0.30.9-r1.ebuild
new file mode 100644
index 000000000000..1a614276a856
--- /dev/null
+++ b/app-portage/genlop/genlop-0.30.9-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit base bash-completion-r1
+
+DESCRIPTION="A nice emerge.log parser"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl"
+SRC_URI="mirror://gentoo//${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ dev-perl/DateManip
+ dev-perl/libwww-perl"
+RDEPEND="${DEPEND}"
+
+# Populate the patches array for any patches for -rX releases
+PATCHES=( "${FILESDIR}"/${P}-display.patch )
+
+src_install() {
+ dobin genlop || die "failed to install genlop (via dobin)"
+ dodoc README Changelog
+ doman genlop.1
+ newbashcomp genlop.bash-completion genlop
+}
diff --git a/app-portage/genlop/genlop-9999.ebuild b/app-portage/genlop/genlop-9999.ebuild
new file mode 100644
index 000000000000..8f118101b6cb
--- /dev/null
+++ b/app-portage/genlop/genlop-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit git-2 bash-completion-r1
+
+EGIT_REPO_URI="git://github.com/gentoo-perl/genlop.git"
+DESCRIPTION="A nice emerge.log parser"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="dev-lang/perl
+ dev-perl/DateManip
+ dev-perl/libwww-perl"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ dobin genlop
+ dodoc README Changelog
+ doman genlop.1
+ newbashcomp genlop.bash-completion genlop
+}
diff --git a/app-portage/genlop/metadata.xml b/app-portage/genlop/metadata.xml
new file mode 100644
index 000000000000..f82c90f1e8c4
--- /dev/null
+++ b/app-portage/genlop/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <herd>perl</herd>
+</pkgmetadata>
diff --git a/app-portage/gentoolkit-dev/Manifest b/app-portage/gentoolkit-dev/Manifest
new file mode 100644
index 000000000000..5b140fbb652f
--- /dev/null
+++ b/app-portage/gentoolkit-dev/Manifest
@@ -0,0 +1,2 @@
+DIST gentoolkit-dev-0.2.8.3.tar.gz 53322 SHA256 b9f96deb53adacf7885c937e1c92688a40839a3992da551616f8745835ec59fb SHA512 f55362e46928633598cb07640505202521e3f4bdaade1faecb4ac14ba1bee0489207cb7ab03531e06d7922446a57083365f51c63ceb8cf1e0badba9ac503c16e WHIRLPOOL 9bb50b92c52c62a74249885ff7d82d6ba2426de6b7052b2e65673a85c6dfe76c201d899e71b8d327a3fed550a1cf1a75616cda369d7f5f37bc93912a8d7845e5
+DIST gentoolkit-dev-0.3.0.tar.gz 58655 SHA256 c42d525560f5c85f48e9b2aeb02a5f3ee04e80e52c90e5d1a00eed1ebe9df671 SHA512 d15f6546cf88af0832c14eb003c72b5906bb9b9f078c903e1e444b12c2e432fd1a2fa077eda5496e222cb50cfd5a705e86044b9a1c0164ac6b4b38268461ced5 WHIRLPOOL b3db58c6941ad5ae04fc581de8785d9e0fe6c3b49bdabf401732e881b2e2a1489eb86c3fd650cafe6b56bf26c74ad25dffe8dfb7fdc8b374b3bb0427dd34c2e4
diff --git a/app-portage/gentoolkit-dev/files/gentoolkit-dev-0.2.8.3-tests.patch b/app-portage/gentoolkit-dev/files/gentoolkit-dev-0.2.8.3-tests.patch
new file mode 100644
index 000000000000..533491d76897
--- /dev/null
+++ b/app-portage/gentoolkit-dev/files/gentoolkit-dev-0.2.8.3-tests.patch
@@ -0,0 +1,25 @@
+From 2da4232cfd9597b829dda4bcfbf3aab25f243950 Mon Sep 17 00:00:00 2001
+From: Christian Ruppert <idl0r@gentoo.org>
+Date: Sat, 11 May 2013 23:56:25 +0200
+Subject: [PATCH] Fix echangelog test
+
+---
+ src/echangelog/test/test.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/echangelog/test/test.sh b/src/echangelog/test/test.sh
+index 0559113..53bb0b5 100755
+--- a/src/echangelog/test/test.sh
++++ b/src/echangelog/test/test.sh
+@@ -160,7 +160,7 @@ ebegin "Preparing echangelog"
+
+ if [ -e "../echangelog" ]; then
+ cp ../echangelog "${_ROOT}/tmp" || set $?
+- sed -i -e 's:use POSIX qw.*:use POSIX qw(setlocale getcwd);\nuse TEST qw(strftime);:' "${_ROOT}/tmp/echangelog" || set $?
++ sed -i -e 's:use POSIX qw.*:use POSIX qw(locale_h setlocale getcwd);\nuse TEST qw(strftime);:' "${_ROOT}/tmp/echangelog" || set $?
+ eend ${1:-0} || exit ${1}
+ else
+ eerror "error"
+--
+1.8.1.5
+
diff --git a/app-portage/gentoolkit-dev/gentoolkit-dev-0.2.8.3-r1.ebuild b/app-portage/gentoolkit-dev/gentoolkit-dev-0.2.8.3-r1.ebuild
new file mode 100644
index 000000000000..a95925dd741c
--- /dev/null
+++ b/app-portage/gentoolkit-dev/gentoolkit-dev-0.2.8.3-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+PYTHON_REQ_USE="xml"
+
+inherit python-r1 eutils
+
+DESCRIPTION="Collection of developer scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+CDEPEND="
+ sys-apps/portage[${PYTHON_USEDEP}]
+ dev-lang/perl
+ sys-apps/diffutils"
+DEPEND="${PYTHON_DEPS}
+ test? ( ${CDEPEND} )"
+RDEPEND="${PYTHON_DEPS}
+ ${CDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-tests.patch"
+}
+
+src_test() {
+ # echangelog test is not able to run as root
+ # the EUID check may not work for everybody
+ if [[ ${EUID} -ne 0 ]];
+ then
+ python_foreach_impl emake test
+ else
+ ewarn "test skipped, please re-run as non-root if you wish to test ${PN}"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ python_replicate_script "${ED}"/usr/bin/imlate
+}
diff --git a/app-portage/gentoolkit-dev/gentoolkit-dev-0.3.0.ebuild b/app-portage/gentoolkit-dev/gentoolkit-dev-0.3.0.ebuild
new file mode 100644
index 000000000000..c814f13fdc4c
--- /dev/null
+++ b/app-portage/gentoolkit-dev/gentoolkit-dev-0.3.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit python-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/gentoolkit.git
+ http://anongit.gentoo.org/git/proj/gentoolkit.git"
+ EGIT_BRANCH="gentoolkit-dev"
+else
+ SRC_URI="http://dev.gentoo.org/~floppym/dist/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+DESCRIPTION="Collection of developer scripts for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+CDEPEND="
+ sys-apps/portage[${PYTHON_USEDEP}]
+ dev-lang/perl
+ sys-apps/diffutils"
+DEPEND="${PYTHON_DEPS}
+ test? ( ${CDEPEND} )"
+RDEPEND="${PYTHON_DEPS}
+ ${CDEPEND}"
+
+src_prepare() {
+ if [[ -n ${EPREFIX} ]] ; then
+ # fix shebangs of scripts
+ local d p
+ ebegin "Fixing shebangs"
+ for d in src/* ; do
+ p=${d#*/}
+ sed -i \
+ -e "1s:\(\(/usr\)\?/bin/\):${EPREFIX}\1:" \
+ ${d}/${p}* \
+ || die "failed to fix ${d}/${p}"
+ done
+ eend $?
+
+ # fix repo location
+ sed -i \
+ -e "s:portage\.db\['/'\]:portage.db['${EPREFIX}/']:g" \
+ src/ekeyword/ekeyword.py \
+ || die "failed to set EPREFIX in ekeyword"
+ fi
+}
+
+src_test() {
+ # echangelog test is not able to run as root
+ # the EUID check may not work for everybody
+ if [[ ${EUID} -ne 0 ]]; then
+ python_foreach_impl emake test
+ else
+ ewarn "test skipped, please re-run as non-root if you wish to test ${PN}"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ python_replicate_script "${ED}"/usr/bin/{ekeyword,imlate}
+}
diff --git a/app-portage/gentoolkit-dev/gentoolkit-dev-9999.ebuild b/app-portage/gentoolkit-dev/gentoolkit-dev-9999.ebuild
new file mode 100644
index 000000000000..c814f13fdc4c
--- /dev/null
+++ b/app-portage/gentoolkit-dev/gentoolkit-dev-9999.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit python-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/gentoolkit.git
+ http://anongit.gentoo.org/git/proj/gentoolkit.git"
+ EGIT_BRANCH="gentoolkit-dev"
+else
+ SRC_URI="http://dev.gentoo.org/~floppym/dist/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+DESCRIPTION="Collection of developer scripts for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+CDEPEND="
+ sys-apps/portage[${PYTHON_USEDEP}]
+ dev-lang/perl
+ sys-apps/diffutils"
+DEPEND="${PYTHON_DEPS}
+ test? ( ${CDEPEND} )"
+RDEPEND="${PYTHON_DEPS}
+ ${CDEPEND}"
+
+src_prepare() {
+ if [[ -n ${EPREFIX} ]] ; then
+ # fix shebangs of scripts
+ local d p
+ ebegin "Fixing shebangs"
+ for d in src/* ; do
+ p=${d#*/}
+ sed -i \
+ -e "1s:\(\(/usr\)\?/bin/\):${EPREFIX}\1:" \
+ ${d}/${p}* \
+ || die "failed to fix ${d}/${p}"
+ done
+ eend $?
+
+ # fix repo location
+ sed -i \
+ -e "s:portage\.db\['/'\]:portage.db['${EPREFIX}/']:g" \
+ src/ekeyword/ekeyword.py \
+ || die "failed to set EPREFIX in ekeyword"
+ fi
+}
+
+src_test() {
+ # echangelog test is not able to run as root
+ # the EUID check may not work for everybody
+ if [[ ${EUID} -ne 0 ]]; then
+ python_foreach_impl emake test
+ else
+ ewarn "test skipped, please re-run as non-root if you wish to test ${PN}"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ python_replicate_script "${ED}"/usr/bin/{ekeyword,imlate}
+}
diff --git a/app-portage/gentoolkit-dev/metadata.xml b/app-portage/gentoolkit-dev/metadata.xml
new file mode 100644
index 000000000000..625509fbfad5
--- /dev/null
+++ b/app-portage/gentoolkit-dev/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <longdescription>
+ Gentoolkit-dev is a collection of developer tools for the Gentoo distribution.
+ </longdescription>
+</pkgmetadata>
diff --git a/app-portage/gentoolkit/Manifest b/app-portage/gentoolkit/Manifest
new file mode 100644
index 000000000000..479b53e00c71
--- /dev/null
+++ b/app-portage/gentoolkit/Manifest
@@ -0,0 +1,2 @@
+DIST gentoolkit-0.3.0.8.tar.gz 3192497 SHA256 0338dee7c295c32b60a84e529b764d2bc61536fa3aca021cd5a75c6e534864a6 SHA512 50efd701d0d056740bcf7c7cdce652ae7c9e2786f799f5d30946e752b8aa735489d3e0dc5c7664a5810a0f22cec05b9bc7ccc10292b07ac4dd0777658651f72d WHIRLPOOL 5a2455e50d4e0f4df8abab5b81deb6bb00e078dfed1687ae046ce97a0427eafea2d3de9b83ac6de8155d207653d001c6684ac92226fa2320515c6e14c8fea6e0
+DIST gentoolkit-0.3.0.9.tar.gz 3194703 SHA256 c660d150dfccbaea6f291fb7fc2659c8e0e38eaebe6e68f92dee728c8c7e320d SHA512 75b2d15b2b9ed08055840b56b239ed5d63838a10e8d31ec3ed8822cf1d3ef32841609763433736e17f93a5fdd293ccbda4a3dfa0f007241321aec3333bcde847 WHIRLPOOL 5e9dc038c161361eb2dd8f0cd17e8efaa41183a281d6fcf620c1631c6da661673d085c60572424cd48504222c29613473591f8dd276792ab96ba3cfda88f1fe1
diff --git a/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-476740.patch b/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-476740.patch
new file mode 100644
index 000000000000..8832838bd33f
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-476740.patch
@@ -0,0 +1,33 @@
+From 87a01450ab33220f6f0821d4f4209004cdc3aa8b Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Tue, 10 Sep 2013 13:52:28 -0500
+Subject: [PATCH] Fix Ctrl-C handling when running emerge (Bug 476740).
+
+---
+ bin/revdep-rebuild.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh
+index 6cb5608..09f5135 100755
+--- a/bin/revdep-rebuild.sh
++++ b/bin/revdep-rebuild.sh
+@@ -1052,6 +1052,7 @@ portage_settings() {
+ if [[ -n ${REVDEP_REBUILD_DEFAULT_OPTS} ]]; then
+ EMERGE_DEFAULT_OPTS=("${REVDEP_REBUILD_DEFAULT_OPTS[@]}")
+ fi
++
+ }
+
+ ##
+@@ -1138,7 +1139,7 @@ rebuild() {
+ REBUILD_LIST=$(sort -u "$EBUILDS_FILE")
+ fi
+
+- trap - SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
++ trap "kill 0" SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
+
+ [[ $QUIET -ne 1 ]] && einfo 'All prepared. Starting rebuild'
+ echo "emerge --complete-graph=y --oneshot ${EMERGE_DEFAULT_OPTS[@]} ${EMERGE_OPTIONS[@]} $REBUILD_LIST"
+--
+1.8.3.2
+
diff --git a/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-484340.patch b/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-484340.patch
new file mode 100644
index 000000000000..1a0393dac48d
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.8-revdep-rebuild-484340.patch
@@ -0,0 +1,46 @@
+From db997501ec8e0ef0c5e4426649c17d2498b40e06 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Tue, 10 Sep 2013 10:59:31 -0500
+Subject: [PATCH] Fix use of REVDEP_REBUILD_DEFAULT_OPTS (Bug 484340).
+
+---
+ bin/revdep-rebuild.sh | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh
+index 7f848bc..6cb5608 100755
+--- a/bin/revdep-rebuild.sh
++++ b/bin/revdep-rebuild.sh
+@@ -1034,27 +1034,24 @@ portage_settings() {
+ local ORIG_SEARCH_DIRS="$SEARCH_DIRS"
+ local ORIG_SEARCH_DIRS_MASK="$SEARCH_DIRS_MASK"
+ local ORIG_LD_LIBRARY_MASK="$LD_LIBRARY_MASK"
+- local ORIG_REVDEP_REBUILD_DEFAULT_OPTS="$REVDEP_REBUILD_DEFAULT_OPTS"
+ unset SEARCH_DIRS
+ unset SEARCH_DIRS_MASK
+ unset LD_LIBRARY_MASK
+- unset REVDEP_REBUILD_DEFAULT_OPTS
+
+ eval $(portageq envvar -v PORTAGE_ROOT PORTAGE_NICENESS EMERGE_DEFAULT_OPTS NOCOLOR SEARCH_DIRS SEARCH_DIRS_MASK LD_LIBRARY_MASK REVDEP_REBUILD_DEFAULT_OPTS)
+ export NOCOLOR
+
+ # Convert quoted paths to array.
+ eval "EMERGE_DEFAULT_OPTS=(${EMERGE_DEFAULT_OPTS})"
++ eval "REVDEP_REBUILD_DEFAULT_OPTS=(${REVDEP_REBUILD_DEFAULT_OPTS})"
+ SEARCH_DIRS="$ORIG_SEARCH_DIRS $SEARCH_DIRS"
+ SEARCH_DIRS_MASK="$ORIG_SEARCH_DIRS_MASK $SEARCH_DIRS_MASK"
+ LD_LIBRARY_MASK="$ORIG_LD_LIBRARY_MASK $LD_LIBRARY_MASK"
+- REVDEP_REBUILD_DEFAULT_OPTS="$ORIG_REVDEP_REBUILD_DEFAULT_OPTS $REVDEP_REBUILD_DEFAULT_OPTS"
+
+ # Replace EMERGE_DEFAULT_OPTS with REVDEP_REBUILD_DEFAULT_OPTS (if it exists)
+ if [[ -n ${REVDEP_REBUILD_DEFAULT_OPTS} ]]; then
+- EMERGE_DEFAULT_OPTS=("$REVDEP_REBUILD_DEFAULT_OPTS")
++ EMERGE_DEFAULT_OPTS=("${REVDEP_REBUILD_DEFAULT_OPTS[@]}")
+ fi
+-
+ }
+
+ ##
+--
+1.8.3.2
+
diff --git a/app-portage/gentoolkit/files/0.3.0.9-equery-508114.patch b/app-portage/gentoolkit/files/0.3.0.9-equery-508114.patch
new file mode 100644
index 000000000000..3fc67d366545
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.9-equery-508114.patch
@@ -0,0 +1,37 @@
+From 9a33ceffe2e0045bf75b1209a90e9a53530d4e0d Mon Sep 17 00:00:00 2001
+From: Tobias Heinlein <keytoaster@gentoo.org>
+Date: Sat, 19 Apr 2014 18:39:03 +0200
+Subject: [PATCH 01/14] equery: Don't always print the license field (bug
+ #508114).
+
+---
+ pym/gentoolkit/equery/meta.py | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/pym/gentoolkit/equery/meta.py b/pym/gentoolkit/equery/meta.py
+index e2d2124..d3342cd 100644
+--- a/pym/gentoolkit/equery/meta.py
++++ b/pym/gentoolkit/equery/meta.py
+@@ -373,12 +373,13 @@ def call_format_functions(best_match, matches):
+ useflags = format_useflags(best_match.metadata.use())
+ print_sequence(format_list(useflags))
+
+- _license = best_match.environment(["LICENSE"])
+- if QUERY_OPTS["license"]:
+- _license = format_list(_license)
+- else:
+- _license = format_list(_license, "License: ", " " * 13)
+- print_sequence(_license)
++ if QUERY_OPTS["license"] or not got_opts:
++ _license = best_match.environment(["LICENSE"])
++ if QUERY_OPTS["license"]:
++ _license = format_list(_license)
++ else:
++ _license = format_list(_license, "License: ", " " * 13)
++ print_sequence(_license)
+
+ if QUERY_OPTS["stablereq"]:
+ # Get {<Package 'dev-libs/glib-2.20.5'>: [u'ia64', u'm68k', ...], ...}
+--
+2.1.3
+
diff --git a/app-portage/gentoolkit/files/0.3.0.9-equery-strip-XXXFLAGS.patch b/app-portage/gentoolkit/files/0.3.0.9-equery-strip-XXXFLAGS.patch
new file mode 100644
index 000000000000..42c5e35e057b
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.9-equery-strip-XXXFLAGS.patch
@@ -0,0 +1,27 @@
+From 1351a6b8f09ab2f4a7469d6e2be874b56a31d3c4 Mon Sep 17 00:00:00 2001
+From: Brian Dolbec <dolsen@gentoo.org>
+Date: Thu, 28 Aug 2014 20:56:22 -0700
+Subject: [PATCH 03/14] equery has: Add CFLAGS, CXXFLAGS, LDFLAGS to strip the
+ leading '-'
+
+Strip the leading '-' from values found in these files.
+---
+ pym/gentoolkit/equery/has.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pym/gentoolkit/equery/has.py b/pym/gentoolkit/equery/has.py
+index 15c60b9..180f7f0 100644
+--- a/pym/gentoolkit/equery/has.py
++++ b/pym/gentoolkit/equery/has.py
+@@ -74,7 +74,7 @@ def query_in_env(query, env_var, pkg):
+ """Check if the query is in the pkg's environment."""
+
+ try:
+- if env_var in ("USE", "IUSE"):
++ if env_var in ("USE", "IUSE", "CFLAGS", "CXXFLAGS", "LDFLAGS"):
+ results = set(
+ [x.lstrip("+-") for x in pkg.environment(env_var).split()]
+ )
+--
+2.1.3
+
diff --git a/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-526400.patch b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-526400.patch
new file mode 100644
index 000000000000..a9f45b6dd406
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-526400.patch
@@ -0,0 +1,26 @@
+From 91023ef967c680db9307b5c58762e8872346167e Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Fri, 24 Oct 2014 12:59:59 -0500
+Subject: [PATCH 06/14] Fix gawk warning escape sequence \. treated as plain.
+ Bug 526400
+
+---
+ bin/revdep-rebuild.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh
+index 3179a83..01a0454 100755
+--- a/bin/revdep-rebuild.sh
++++ b/bin/revdep-rebuild.sh
+@@ -842,7 +842,7 @@ main_checks() {
+ done < <(
+ # Regexify LD_LIBRARY_MASK. Exclude it from the search.
+ LD_LIBRARY_MASK="${LD_LIBRARY_MASK//$'\n'/|}"
+- gawk -v ldmask="(${LD_LIBRARY_MASK//./\\\.})" '
++ gawk -v ldmask="(${LD_LIBRARY_MASK//./\\\\.})" '
+ /no version information available/ && $0 !~ ldmask {
+ gsub(/[()]/, "", $NF)
+ if (seen[$NF]++) next
+--
+2.1.3
+
diff --git a/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-1.patch b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-1.patch
new file mode 100644
index 000000000000..3af64a2afb9f
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-1.patch
@@ -0,0 +1,26 @@
+From c5baf551987e2fb412caa396ae34f7f4341ad819 Mon Sep 17 00:00:00 2001
+From: slis <lis.slawek@gmail.com>
+Date: Mon, 17 Mar 2014 07:42:01 +0100
+Subject: [PATCH 1/2] Fix #504654 - problem with encoding for non-ascii
+ filenames
+
+---
+ pym/gentoolkit/revdep_rebuild/stuff.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pym/gentoolkit/revdep_rebuild/stuff.py b/pym/gentoolkit/revdep_rebuild/stuff.py
+index cc3da7b..7a8373d 100644
+--- a/pym/gentoolkit/revdep_rebuild/stuff.py
++++ b/pym/gentoolkit/revdep_rebuild/stuff.py
+@@ -22,7 +22,7 @@ def call_program(args):
+ subp = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout, stderr = subp.communicate()
+ stdout = stdout.decode('utf-8')
+- return str(stdout)
++ return stdout
+
+
+ def scan(params, files, max_args, logger):
+--
+1.9.1
+
diff --git a/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-2.patch b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-2.patch
new file mode 100644
index 000000000000..ca3894dba26e
--- /dev/null
+++ b/app-portage/gentoolkit/files/0.3.0.9-revdep-rebuild-py-504654-2.patch
@@ -0,0 +1,30 @@
+From ae20dbd7f2ef2810d3150e870ece6f5b7278f676 Mon Sep 17 00:00:00 2001
+From: slis <lis.slawek@gmail.com>
+Date: Mon, 17 Mar 2014 07:48:19 +0100
+Subject: [PATCH 2/2] Fix for non-existing libraries version
+ (https://bugs.gentoo.org/show_bug.cgi?id=504654#c5)
+
+---
+ pym/gentoolkit/revdep_rebuild/analyse.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/pym/gentoolkit/revdep_rebuild/analyse.py b/pym/gentoolkit/revdep_rebuild/analyse.py
+index d7b210b..bd1b6b7 100644
+--- a/pym/gentoolkit/revdep_rebuild/analyse.py
++++ b/pym/gentoolkit/revdep_rebuild/analyse.py
+@@ -185,7 +185,11 @@ class LibCheck(object):
+ scanned_files = self.scanned_files
+ found_libs = {}
+ for bits in self.searchbits:
+- scanned = scanned_files[bits]
++ try:
++ scanned = scanned_files[bits]
++ except KeyError:
++ self.logger.debug('There are no %s-bit libraries'%bits)
++ continue
+ self.logger.debug(self.smsg % bits)
+ self.setlibs(sorted(scanned), bits)
+ for soname, filepaths in scanned.items():
+--
+1.9.1
+
diff --git a/app-portage/gentoolkit/gentoolkit-0.3.0.8-r2.ebuild b/app-portage/gentoolkit/gentoolkit-0.3.0.8-r2.ebuild
new file mode 100644
index 000000000000..5a8d9013196a
--- /dev/null
+++ b/app-portage/gentoolkit/gentoolkit-0.3.0.8-r2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3})
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of administration scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="sys-apps/portage"
+RDEPEND="${DEPEND}
+ !<=app-portage/gentoolkit-dev-0.2.7
+ || ( >=sys-apps/coreutils-8.15 app-misc/realpath sys-freebsd/freebsd-bin )
+ sys-apps/gawk
+ sys-apps/grep"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-revdep-rebuild-484340.patch
+ "${FILESDIR}"/${PV}-revdep-rebuild-476740.patch
+)
+
+python_prepare_all() {
+ python_setup
+ echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ mv ./bin/revdep-rebuild{,.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Rename the python versions of revdep-rebuild, since we are not ready
+ # to switch to the python version yet. Link /usr/bin/revdep-rebuild to
+ # revdep-rebuild.sh. Leaving the python version available for potential
+ # testing by a wider audience.
+ dosym revdep-rebuild.sh /usr/bin/revdep-rebuild
+
+ # Create cache directory for revdep-rebuild
+ keepdir /var/cache/revdep-rebuild
+ use prefix || fowners root:0 /var/cache/revdep-rebuild
+ fperms 0700 /var/cache/revdep-rebuild
+
+ # remove on Gentoo Prefix platforms where it's broken anyway
+ if use prefix; then
+ elog "The revdep-rebuild command is removed, the preserve-libs"
+ elog "feature of portage will handle issues."
+ rm "${ED}"/usr/bin/revdep-rebuild*
+ rm "${ED}"/usr/share/man/man1/revdep-rebuild.1
+ rm -rf "${ED}"/etc/revdep-rebuild
+ rm -rf "${ED}"/var
+ fi
+}
+
+pkg_postinst() {
+ # Only show the elog information on a new install
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "For further information on gentoolkit, please read the gentoolkit"
+ elog "guide: http://www.gentoo.org/doc/en/gentoolkit.xml"
+ elog
+ elog "Another alternative to equery is app-portage/portage-utils"
+ elog
+ elog "Additional tools that may be of interest:"
+ elog
+ elog " app-admin/eclean-kernel"
+ elog " app-portage/diffmask"
+ elog " app-portage/flaggie"
+ elog " app-portage/install-mask"
+ elog " app-portage/portpeek"
+ elog " app-portage/smart-live-rebuild"
+ fi
+}
diff --git a/app-portage/gentoolkit/gentoolkit-0.3.0.9-r1.ebuild b/app-portage/gentoolkit/gentoolkit-0.3.0.9-r1.ebuild
new file mode 100644
index 000000000000..00885bf14c92
--- /dev/null
+++ b/app-portage/gentoolkit/gentoolkit-0.3.0.9-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3} pypy)
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of administration scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ !<=app-portage/gentoolkit-dev-0.2.7
+ || ( >=sys-apps/coreutils-8.15 app-misc/realpath sys-freebsd/freebsd-bin )
+ sys-apps/gawk
+ sys-apps/gentoo-functions
+ sys-apps/grep"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-revdep-rebuild-py-504654-1.patch
+ "${FILESDIR}"/${PV}-revdep-rebuild-py-504654-2.patch
+)
+
+python_prepare_all() {
+ python_setup
+ echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ mv ./bin/revdep-rebuild{,.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Rename the python versions of revdep-rebuild, since we are not ready
+ # to switch to the python version yet. Link /usr/bin/revdep-rebuild to
+ # revdep-rebuild.sh. Leaving the python version available for potential
+ # testing by a wider audience.
+ dosym revdep-rebuild.sh /usr/bin/revdep-rebuild
+
+ # TODO: Fix this as it is now a QA violation
+ # Create cache directory for revdep-rebuild
+ keepdir /var/cache/revdep-rebuild
+ use prefix || fowners root:0 /var/cache/revdep-rebuild
+ fperms 0700 /var/cache/revdep-rebuild
+
+ # remove on Gentoo Prefix platforms where it's broken anyway
+ if use prefix; then
+ elog "The revdep-rebuild command is removed, the preserve-libs"
+ elog "feature of portage will handle issues."
+ rm "${ED}"/usr/bin/revdep-rebuild*
+ rm "${ED}"/usr/share/man/man1/revdep-rebuild.1
+ rm -rf "${ED}"/etc/revdep-rebuild
+ rm -rf "${ED}"/var
+ fi
+}
+
+pkg_postinst() {
+ # Only show the elog information on a new install
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "For further information on gentoolkit, please read the gentoolkit"
+ elog "guide: http://www.gentoo.org/doc/en/gentoolkit.xml"
+ elog
+ elog "Another alternative to equery is app-portage/portage-utils"
+ elog
+ elog "Additional tools that may be of interest:"
+ elog
+ elog " app-admin/eclean-kernel"
+ elog " app-portage/diffmask"
+ elog " app-portage/flaggie"
+ elog " app-portage/install-mask"
+ elog " app-portage/portpeek"
+ elog " app-portage/smart-live-rebuild"
+ fi
+}
diff --git a/app-portage/gentoolkit/gentoolkit-0.3.0.9-r2.ebuild b/app-portage/gentoolkit/gentoolkit-0.3.0.9-r2.ebuild
new file mode 100644
index 000000000000..8e30b32366b0
--- /dev/null
+++ b/app-portage/gentoolkit/gentoolkit-0.3.0.9-r2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4} pypy)
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of administration scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ !<=app-portage/gentoolkit-dev-0.2.7
+ || ( >=sys-apps/coreutils-8.15 app-misc/realpath sys-freebsd/freebsd-bin )
+ sys-apps/gawk
+ sys-apps/gentoo-functions
+ sys-apps/grep"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-revdep-rebuild-py-504654-1.patch
+ "${FILESDIR}"/${PV}-revdep-rebuild-py-504654-2.patch
+ "${FILESDIR}"/${PV}-equery-508114.patch
+ "${FILESDIR}"/${PV}-equery-strip-XXXFLAGS.patch
+ "${FILESDIR}"/${PV}-revdep-rebuild-526400.patch
+)
+
+python_prepare_all() {
+ python_setup
+ echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ mv ./bin/revdep-rebuild{,.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Rename the python versions of revdep-rebuild, since we are not ready
+ # to switch to the python version yet. Link /usr/bin/revdep-rebuild to
+ # revdep-rebuild.sh. Leaving the python version available for potential
+ # testing by a wider audience.
+ dosym revdep-rebuild.sh /usr/bin/revdep-rebuild
+
+ # TODO: Fix this as it is now a QA violation
+ # Create cache directory for revdep-rebuild
+ keepdir /var/cache/revdep-rebuild
+ use prefix || fowners root:0 /var/cache/revdep-rebuild
+ fperms 0700 /var/cache/revdep-rebuild
+
+ # remove on Gentoo Prefix platforms where it's broken anyway
+ if use prefix; then
+ elog "The revdep-rebuild command is removed, the preserve-libs"
+ elog "feature of portage will handle issues."
+ rm "${ED}"/usr/bin/revdep-rebuild*
+ rm "${ED}"/usr/share/man/man1/revdep-rebuild.1
+ rm -rf "${ED}"/etc/revdep-rebuild
+ rm -rf "${ED}"/var
+ fi
+}
+
+pkg_postinst() {
+ # Only show the elog information on a new install
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "For further information on gentoolkit, please read the gentoolkit"
+ elog "guide: http://www.gentoo.org/doc/en/gentoolkit.xml"
+ elog
+ elog "Another alternative to equery is app-portage/portage-utils"
+ elog
+ elog "Additional tools that may be of interest:"
+ elog
+ elog " app-admin/eclean-kernel"
+ elog " app-portage/diffmask"
+ elog " app-portage/flaggie"
+ elog " app-portage/install-mask"
+ elog " app-portage/portpeek"
+ elog " app-portage/smart-live-rebuild"
+ fi
+}
diff --git a/app-portage/gentoolkit/gentoolkit-0.3.0.9.ebuild b/app-portage/gentoolkit/gentoolkit-0.3.0.9.ebuild
new file mode 100644
index 000000000000..8f92a802d170
--- /dev/null
+++ b/app-portage/gentoolkit/gentoolkit-0.3.0.9.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3})
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of administration scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+DEPEND="sys-apps/portage"
+RDEPEND="${DEPEND}
+ !<=app-portage/gentoolkit-dev-0.2.7
+ || ( >=sys-apps/coreutils-8.15 app-misc/realpath sys-freebsd/freebsd-bin )
+ sys-apps/gawk
+ sys-apps/grep"
+
+PATCHES=()
+
+python_prepare_all() {
+ python_setup
+ echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ mv ./bin/revdep-rebuild{,.py} || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Rename the python versions of revdep-rebuild, since we are not ready
+ # to switch to the python version yet. Link /usr/bin/revdep-rebuild to
+ # revdep-rebuild.sh. Leaving the python version available for potential
+ # testing by a wider audience.
+ dosym revdep-rebuild.sh /usr/bin/revdep-rebuild
+
+ # TODO: Fix this as it is now a QA violation
+ # Create cache directory for revdep-rebuild
+ keepdir /var/cache/revdep-rebuild
+ use prefix || fowners root:0 /var/cache/revdep-rebuild
+ fperms 0700 /var/cache/revdep-rebuild
+
+ # remove on Gentoo Prefix platforms where it's broken anyway
+ if use prefix; then
+ elog "The revdep-rebuild command is removed, the preserve-libs"
+ elog "feature of portage will handle issues."
+ rm "${ED}"/usr/bin/revdep-rebuild*
+ rm "${ED}"/usr/share/man/man1/revdep-rebuild.1
+ rm -rf "${ED}"/etc/revdep-rebuild
+ rm -rf "${ED}"/var
+ fi
+}
+
+pkg_postinst() {
+ # Only show the elog information on a new install
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "For further information on gentoolkit, please read the gentoolkit"
+ elog "guide: http://www.gentoo.org/doc/en/gentoolkit.xml"
+ elog
+ elog "Another alternative to equery is app-portage/portage-utils"
+ elog
+ elog "Additional tools that may be of interest:"
+ elog
+ elog " app-admin/eclean-kernel"
+ elog " app-portage/diffmask"
+ elog " app-portage/flaggie"
+ elog " app-portage/install-mask"
+ elog " app-portage/portpeek"
+ elog " app-portage/smart-live-rebuild"
+ fi
+}
diff --git a/app-portage/gentoolkit/gentoolkit-9999.ebuild b/app-portage/gentoolkit/gentoolkit-9999.ebuild
new file mode 100644
index 000000000000..f3ced1e3c460
--- /dev/null
+++ b/app-portage/gentoolkit/gentoolkit-9999.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4} pypy)
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 git-r3
+
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/gentoolkit.git"
+EGIT_BRANCH="gentoolkit"
+
+DESCRIPTION="Collection of administration scripts for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS=""
+
+DEPEND="sys-apps/portage[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ !<=app-portage/gentoolkit-dev-0.2.7
+ || ( >=sys-apps/coreutils-8.15 app-misc/realpath sys-freebsd/freebsd-bin )
+ sys-apps/gawk
+ sys-apps/gentoo-functions
+ sys-apps/grep"
+
+python_prepare_all() {
+ python_setup
+ echo VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version
+ VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Create cache directory for revdep-rebuild
+ keepdir /var/cache/revdep-rebuild
+ use prefix || fowners root:0 /var/cache/revdep-rebuild
+ fperms 0700 /var/cache/revdep-rebuild
+
+ # remove on Gentoo Prefix platforms where it's broken anyway
+ if use prefix; then
+ elog "The revdep-rebuild command is removed, the preserve-libs"
+ elog "feature of portage will handle issues."
+ rm "${ED}"/usr/bin/revdep-rebuild*
+ rm "${ED}"/usr/share/man/man1/revdep-rebuild.1
+ rm -rf "${ED}"/etc/revdep-rebuild
+ rm -rf "${ED}"/var
+ fi
+}
+
+pkg_postinst() {
+ # Only show the elog information on a new install
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "For further information on gentoolkit, please read the gentoolkit"
+ elog "guide: http://www.gentoo.org/doc/en/gentoolkit.xml"
+ elog
+ elog "Another alternative to equery is app-portage/portage-utils"
+ elog
+ elog "Additional tools that may be of interest:"
+ elog
+ elog " app-admin/eclean-kernel"
+ elog " app-portage/diffmask"
+ elog " app-portage/flaggie"
+ elog " app-portage/install-mask"
+ elog " app-portage/portpeek"
+ elog " app-portage/smart-live-rebuild"
+ fi
+}
diff --git a/app-portage/gentoolkit/metadata.xml b/app-portage/gentoolkit/metadata.xml
new file mode 100644
index 000000000000..26a333ce8632
--- /dev/null
+++ b/app-portage/gentoolkit/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>tools-portage</herd>
+ <longdescription>
+Gentoolkit is a collection of useful adminstration scripts particular to
+the Gentoo Linux distribution. It contains rough drafts and
+implementations of features that may in time make it into Portage, or
+into full-fledged tools in their own right.
+</longdescription>
+</pkgmetadata>
diff --git a/app-portage/gentoopm/Manifest b/app-portage/gentoopm/Manifest
new file mode 100644
index 000000000000..860f43b4b1c0
--- /dev/null
+++ b/app-portage/gentoopm/Manifest
@@ -0,0 +1,3 @@
+DIST gentoopm-0.2.6.tar.bz2 24410 SHA256 8620e509a1fb186871a757353477857366883338a3be9e7bfa8d93e3e966157e SHA512 5818540eb847546953a3e313be653861f41a937a53fd65c00f4794361da68b257739cb5e1147e8267d17a16a7f86c88eb108bacdc5a86d45fbb91c9e4f992343 WHIRLPOOL 3422d08e10289ff4700cdacf8dd030bb23f81609ec514ac918f365a16dee6deffd59edb103977cdf9c719763d00ed946f14061ae3310d7864228449b5eaf10b6
+DIST gentoopm-0.2.8.tar.bz2 24540 SHA256 f5c0f032cf093a9a0f74df7eebc0909541f4f5ee7b82971351a404b2998094a9 SHA512 de0eaf7adf8e549f6659af9bf4fb1b51f978954fa791b623b4626069edfa8982facaddcc29030a94e774bdf64828ea1c4f16b616d43cf9cc6fd9b9b63dbbe21c WHIRLPOOL 0f113f20bd795685b876e9d98008c20faee1d28e2a38815fd0bb4e05366a6ccd1a91f410f69a8d6a3e7cd6f28ba13a1cf8e33c9a823b0cd2f742cf74ec169352
+DIST gentoopm-0.2.9.tar.bz2 24652 SHA256 49d757e521a9a254645ca1f765e9ea86c082f68263c697dec84acd2d80d48368 SHA512 e7d1daa811eb6c0877c2bec98b72bce61380802fe704f271a4df6383506d62ba661eb83ac9afd432627e2f10bf38840796768a565b80b6489563cfc54ed81ae7 WHIRLPOOL 2bc4fcace43b306c6677a37bd675042214bef36a7f4977be944d76fcbba735b54490c8d60add7e15fa30ab0213a8fab14c488a55f6da67b0e1cac10eb30e4a20
diff --git a/app-portage/gentoopm/gentoopm-0.2.6.ebuild b/app-portage/gentoopm/gentoopm-0.2.6.ebuild
new file mode 100644
index 000000000000..884c2eeeec1d
--- /dev/null
+++ b/app-portage/gentoopm/gentoopm-0.2.6.ebuild
@@ -0,0 +1,40 @@
+# 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
+
+DESCRIPTION="A common interface to Gentoo package managers"
+HOMEPAGE="https://bitbucket.org/mgorny/gentoopm/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc"
+
+RDEPEND="|| (
+ sys-apps/pkgcore
+ >=sys-apps/portage-2.1.10.3
+ >=sys-apps/paludis-0.64.2[python-bindings] )"
+DEPEND="doc? ( dev-python/epydoc )"
+PDEPEND="app-eselect/eselect-package-manager"
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py doc || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/app-portage/gentoopm/gentoopm-0.2.8.ebuild b/app-portage/gentoopm/gentoopm-0.2.8.ebuild
new file mode 100644
index 000000000000..a1dd03dd0dd5
--- /dev/null
+++ b/app-portage/gentoopm/gentoopm-0.2.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="A common interface to Gentoo package managers"
+HOMEPAGE="https://bitbucket.org/mgorny/gentoopm/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc"
+
+RDEPEND="|| (
+ sys-apps/pkgcore
+ >=sys-apps/portage-2.1.10.3[${PYTHON_USEDEP}]
+ >=sys-apps/paludis-0.64.2[python-bindings] )"
+DEPEND="doc? ( dev-python/epydoc )"
+PDEPEND="app-eselect/eselect-package-manager"
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py doc || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/app-portage/gentoopm/gentoopm-0.2.9.ebuild b/app-portage/gentoopm/gentoopm-0.2.9.ebuild
new file mode 100644
index 000000000000..d1722d0c4393
--- /dev/null
+++ b/app-portage/gentoopm/gentoopm-0.2.9.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A common interface to Gentoo package managers"
+HOMEPAGE="https://bitbucket.org/mgorny/gentoopm/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc"
+
+RDEPEND="|| (
+ sys-apps/pkgcore
+ >=sys-apps/portage-2.1.10.3[${PYTHON_USEDEP}]
+ >=sys-apps/paludis-0.64.2[python-bindings] )"
+DEPEND="doc? ( dev-python/epydoc )"
+PDEPEND="app-eselect/eselect-package-manager"
+
+python_compile_all() {
+ if use doc; then
+ "${PYTHON}" setup.py doc || die
+ fi
+}
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/* )
+
+ distutils-r1_python_install_all
+}
diff --git a/app-portage/gentoopm/gentoopm-9999.ebuild b/app-portage/gentoopm/gentoopm-9999.ebuild
new file mode 100644
index 000000000000..ce9b16374c2e
--- /dev/null
+++ b/app-portage/gentoopm/gentoopm-9999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/${PN}.git
+ http://anongit.gentoo.org/git/proj/${PN}.git
+ http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="A common interface to Gentoo package managers"
+HOMEPAGE="https://bitbucket.org/mgorny/gentoopm/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="doc"
+
+RDEPEND="|| (
+ sys-apps/pkgcore
+ >=sys-apps/portage-2.1.10.3[${PYTHON_USEDEP}]
+ >=sys-apps/paludis-0.64.2[python-bindings] )"
+DEPEND="doc? ( dev-python/epydoc )"
+PDEPEND="app-eselect/eselect-package-manager"
+
+#if LIVE
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_compile_all() {
+ if use doc; then
+ esetup.py doc
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/app-portage/gentoopm/metadata.xml b/app-portage/gentoopm/metadata.xml
new file mode 100644
index 000000000000..58f3f3c219da
--- /dev/null
+++ b/app-portage/gentoopm/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/gentoopm/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/gentoopm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/getdelta/Manifest b/app-portage/getdelta/Manifest
new file mode 100644
index 000000000000..df88baf5ad13
--- /dev/null
+++ b/app-portage/getdelta/Manifest
@@ -0,0 +1 @@
+DIST getdelta-0.7.8.tar.bz2 10335 SHA256 72bd5dac59e86a5c78217a15e3198df513152dc784a8685b1a8c2c5efdb34217 SHA512 66374ce1a0ec5492d11478ddcaeb67b497a44357605f3cd1b9176796ca9f69d8c6865f9db188a6d7722c4ab372a5a317dfa6fafe97d9f08f76f332469f1ee2b2 WHIRLPOOL 88e6f1df59e4897c3c667634b8d08c0a225daad56f627793074947b8f2bd3840b9108e50e0506fe49ca2ab43179d43c902f3da49a994b1886b855bb3cc65f395
diff --git a/app-portage/getdelta/files/getdelta-0.7.9.patch b/app-portage/getdelta/files/getdelta-0.7.9.patch
new file mode 100644
index 000000000000..9ab117e59c95
--- /dev/null
+++ b/app-portage/getdelta/files/getdelta-0.7.9.patch
@@ -0,0 +1,252 @@
+--- getdelta.sh 2007-07-13 16:30:26.000000000 +0000
++++ getdelta.sh 2010-08-27 17:23:31.692000002 +0000
+@@ -25,6 +25,9 @@
+ VERSION="0.7"
+
+ # Changelog
++# version 0.7.9 2008/10/08
++# - add second parameter for destination name (EAPI=2)
++# - quote more carefully
+ # version 0.7.8 2007/07/13
+ # - added option -O to call of emerge when finding mirrors
+ # - replaced some calls of coreutils with bash-internals
+@@ -326,13 +329,13 @@
+
+ remove() {
+ output "${GREEN}You have chosen to remove ${CYAN}$1\n"
+- pushd ${DISTDIR} >/dev/null 2>&1
++ pushd -- "${DISTDIR}" >/dev/null 2>&1
+ removeme=true
+ for n in $(grep -v "^#" ${DO_NOT_REMOVE})
+ do
+ grep -q $n <<< "$1" && removeme=false && output "${CYAN}${1}${RED} is not deleted, since it matches ${n} in ${DO_NOT_REMOVE}"
+ done
+- $removeme && rm -f $1
++ $removeme && rm -f -- "$1"
+ popd >/dev/null 2>&1
+ }
+
+@@ -349,7 +352,7 @@
+ -e "s/src4/srcDDD/g" \
+ -e "s/src5/srcEEE/g" \
+ -e "s/src6/srcFFF/g" \
+- -e "s/src7/srcGGG/g" <<< $MASK_FILENAME)
++ -e "s/src7/srcGGG/g" <<< "$MASK_FILENAME")
+ fi
+
+ # ignore PR for src-files of firefox
+@@ -375,7 +378,7 @@
+ -e "s/rc//g" \
+ -e "s/[\._-]//g" \
+ -e "s/\+//g" \
+- -e "s/ //g" <<< $MASK_FILENAME)
++ -e "s/ //g" <<< "$MASK_FILENAME")
+ }
+
+ # create or update a config-file
+@@ -384,6 +387,7 @@
+ add_to_configfile LOCAL_MIRROR "" "set this to one or more (space separated) URI ending with '/' if you want to check one or more local mirror(s) first\n# most people just leave it empty."
+ add_to_configfile DELTUP_SERVER "http://linux01.gwdg.de/~nlissne/deltup.php" "deltup-server to use"
+ add_to_configfile FETCH "/usr/bin/wget -t 1 --passive-ftp" "command to use for downloading"
++add_to_configfile FETCHNAME "\$FETCH -O" "command to use for downloading; first parameter is the filename, second the url"
+ add_to_configfile QUEUERETRY 15 "number of seconds to wait before a queued request is retried"
+ add_to_configfile MAXIMUM_ACCEPTABLE_QUEUEPOS "15" "the maximum queuepos you would accept (if higher download full archive instead)"
+ add_to_configfile QUEUETIMEOUT 900 "when a dtu-request is queued - how long should we wait max. before downloading the original archive instead (in seconds)"
+@@ -424,14 +428,14 @@
+ add_to_donotremove "^rp-pppoe"
+
+
+-if [ -z $1 ]
++if [ -z "$1" ]
+ then
+ COLOR=true
+ echo -e "${YELLOW}getdelta.sh version ${VERSION}"
+ echo "This script has to be called like this:"
+ echo -e "${CYAN}$0 <URI>"
+ echo -e "\n${YELLOW}To use it, you should just put the following line into your /etc/make.conf"
+- echo -e "${GREEN}FETCHCOMMAND=\"$0 \\\${URI}\""
++ echo -e "${GREEN}FETCHCOMMAND=\"$0 \\\"\\\${URI}\\\" \\\"\\\${FILE}\\\"\""
+ echo -e "\n${YELLOW}There is a config-file ${CYAN}${GETDELTA_CONFIGFILE}${YELLOW} with some variables to control the behaviour of this script."
+ echo -e "Edit it to your needs.${NORMAL}"
+ exit 1
+@@ -464,10 +468,12 @@
+ output "use getdelta.sh for your FETCHCOMMAND, only." &&
+ sleep 5 && exit 1
+
+-pushd $DISTDIR >/dev/null 2>/dev/null
++pushd -- "$DISTDIR" >/dev/null 2>/dev/null
+ ORIG_URI=$1
+ NEW_FILE=$(basename $ORIG_URI)
+
++[ -z "${NEW_FILE}" ] && NEW_FILE=${ORIG_URI##*/}
++
+ # repoman downloads metadata.dtd with FETCHCOMMAND
+ # this should not be done with getdelta - so just fetch the file and exit
+
+@@ -475,7 +481,7 @@
+ # dtu files.
+ if [ "${NEW_FILE}" = "metadata.dtd" ] || [ "$GETDELTA" = "0" ]
+ then
+- $FETCH $@
++ $FETCHNAME "$NEW_FILE" "$ORIG_URI"
+ exit $?
+ fi
+
+@@ -516,7 +522,7 @@
+ #
+ output "${GREEN}Searching for a previously downloaded file in ${YELLOW}${DISTDIR}\n"
+
+-first_chars=$(sed 's/[[:digit:]][[:print:]]*$//' <<< $NEW_FILE)
++first_chars=$(sed 's/[[:digit:]][[:print:]]*$//' <<< "$NEW_FILE")
+ length_first_chars=${#first_chars}
+ [ $length_first_chars -lt 3 ] && first_chars="${NEW_FILE:0:2}"
+
+@@ -527,7 +533,7 @@
+ let len1=${#mask}
+ filelist=""
+
+-for name in $( ls ${first_chars}* 2>/dev/null )
++for name in $( ls -- "${first_chars}"* 2>/dev/null )
+ do
+ mask2=$(mask_name "${name}")
+ # add any file, that results in the same mask or differ not more than two letters
+@@ -582,7 +588,7 @@
+
+ # find matching part of filename - first: frontmatch
+ x=0;
+- a=($NEW_FILE $filelist)
++ a=("$NEW_FILE" $filelist)
+ match=""
+ while [ -z "$match" ]
+ do
+@@ -657,7 +663,7 @@
+ FILE_IS_CORRUPT=false
+ if $CHECK_OLD_FILE
+ then
+- file_digest=$(grep -h ${best_candidate} ${FILESDIR}/digest-* | sed -n 1p)
++ file_digest=$(grep -h ${best_candidate} "${FILESDIR}"/digest-* | sed -n 1p)
+ if [ "$file_digest" ]
+ then
+ file_md5=$(cut -d ' ' -f2 <<< "$file_digest")
+@@ -669,7 +675,7 @@
+ FILE_IS_CORRUPT=true
+ fi
+ else
+- if [ $(rev <<< ${best_candidate} | cut -d. -f2 | rev) = "tar" ]
++ if [ $(rev <<< "${best_candidate}" | cut -d. -f2 | rev) = "tar" ]
+ then
+ output "${YELLOW}Could not find a digest-file for ${CYAN}${best_candidate}${YELLOW}. Testing file integrity with tar.\n"
+ if ! tar -tf ${best_candidate} >/dev/null
+@@ -698,17 +704,16 @@
+
+ # Remember where we are, and go to a new dir there we can work
+ tmp_dwn_dest="${DISTDIR}/.getdelta-`date +%N`-tmp"
+- mkdir ${tmp_dwn_dest}
++ mkdir -- "${tmp_dwn_dest}"
+ # If user abort Ctrl+C (signal 2), remove tmp-dir; enabable trap again and send it again to stop wget
+- trap "rm -r ${tmp_dwn_dest}; trap 2; kill -2 $$" 2
+- pushd ${tmp_dwn_dest} >/dev/null 2>&1
++ trap 'rm -r -- "${tmp_dwn_dest}"; trap 2; kill -2 '$$ 2
++ pushd -- "${tmp_dwn_dest}" >/dev/null 2>&1
+
+ # thanks to MATSUI Fe2+ Tetsushi for idea and patch
+ FILESIZE=$(stat -c %s "${DISTDIR}/${best_candidate}")
+ let TIMELIMIT=${FILESIZE}/${BANDWIDTH}
+ [[ $TIMELIMIT -lt $QUEUETIMEOUT ]] && QUEUETIMEOUT=$TIMELIMIT
+-
+- if $FETCH "${DELTUP_SERVER}${query}"
++ if $FETCH "${DELTUP_SERVER}${query}" -O ${best_candidate}-${NEW_FILE}.dtu
+ then
+ # thanks to deelkar for this much more elegant solution to the "broken pipe" problem with "head -n1"
+ GOTFILE=$(ls -c | sed -n 1p)
+@@ -718,15 +723,15 @@
+ # may have sento to us.
+
+ # first: the request have been queued
+- if [ "${GOTFILE}" = "deltup-queued" ]
++# if [ "${GOTFILE}" = "deltup-queued" ]
++ if [[ "$(file -bi ${GOTFILE}|cut -d ";" -f1)" != "application/x-bzip2" && "$(cat ${GOTFILE}|cut -d "," -f1)" != "sorry" ]]
+ then
+ let QTMOUT=$(date +%s)+QUEUETIMEOUT
+- while [ -f deltup-queued ]
++ while [[ "$(file -bi ${GOTFILE}|cut -d ";" -f1)" != "application/x-bzip2" && "$(cat ${GOTFILE}|cut -d "," -f1)" != "sorry" ]]
+ do
+ output "${GREEN}destination file: ${CYAN}${NEW_FILE}\n"
+- output "${YELLOW}$(cat deltup-queued)"
+- QUEUEPOS=$(grep "has been queued" deltup-queued | cut -d. -f2 | cut -d")" -f1)
+- rm -f deltup-queued
++ output "${YELLOW}$(cat ${GOTFILE})"
++ QUEUEPOS=$(grep "has been queued" ${GOTFILE} | cut -d. -f2 | cut -d")" -f1)
+ TSTAMP=$(date +%s)
+ if ((TSTAMP<QTMOUT)) && ((QUEUEPOS<=MAXIMUM_ACCEPTABLE_QUEUEPOS))
+ then
+@@ -741,7 +746,7 @@
+ sleep 1
+ done
+ echo -n -e "${NORMAL}"
+- $FETCH "${DELTUP_SERVER}${query}"
++ $FETCH "${DELTUP_SERVER}${query}" -O ${best_candidate}-${NEW_FILE}.dtu
+ GOTFILE=$(ls -c | sed -n 1p)
+ else
+ if ((TSTAMP>=QTMOUT))
+@@ -761,20 +766,20 @@
+ done
+ fi
+
+- if [ -f ${best_candidate}-${NEW_FILE}.failed ]
++ if [ "$(cat ${GOTFILE}|cut -d "," -f1)" = "sorry" ]
+ then
+ output "\n${RED}The server could not build the dtu-file for ${NEW_FILE}\n"
+- output "${YELLOW}reason:\n${RED}$(cat ${best_candidate}-${NEW_FILE}.failed)\n"
+- rm -rf ${best_candidate}-${NEW_FILE}.failed
++ output "${YELLOW}reason:\n${RED}$(cat ${GOTFILE})\n"
++ rm -rf -- "${GOTFILE}"
+ fi
+
+- if [ -f ${best_candidate}-${NEW_FILE}.dtu ]
++ if [ -f "${best_candidate}-${NEW_FILE}.dtu" ]
+ then
+ output "${GREEN}Successfully fetched the dtu-file - let's build ${NEW_FILE}...\n"
+- downloadsize=$(stat -c %s ${best_candidate}-${NEW_FILE}.dtu)
+- if deltup -p -v -D ${DISTDIR} ${best_candidate}-${NEW_FILE}.dtu
++ downloadsize=$(stat -c %s "${best_candidate}-${NEW_FILE}.dtu")
++ if deltup -p -v -D "${DISTDIR}" "${best_candidate}-${NEW_FILE}.dtu"
+ then
+- newsize=$(stat -c %s ${NEW_FILE})
++ newsize=$(stat -c %s "${NEW_FILE}")
+ let savedsize=${newsize}-${downloadsize}
+ let percent=${savedsize}*100/${newsize}
+ unit="bytes"
+@@ -791,8 +796,8 @@
+ esac
+ output "${YELLOW}This dtu-file saved ${UCOLOR}${savedsize} ${unit} (${percent}%)${YELLOW} download size.\n"
+ fi
+- mv -f ${NEW_FILE} ${DISTDIR} &&
+- ${REMOVE_OLD} && remove "${best_candidate}"
++ mv -f -- "${NEW_FILE}" "${DISTDIR}" &&
++ ${REMOVE_OLD} && remove ${best_candidate}
+ fi
+
+ fi # if $FETCH "${DELTUP_SERVER}${query}"
+@@ -812,7 +817,7 @@
+ read
+ fi
+ popd >/dev/null 2>&1
+- rm -rf ${tmp_dwn_dest}
++ rm -rf -- "${tmp_dwn_dest}"
+ #stop respond to trap2
+ trap 2
+ fi # if ! FILE_IS_CORRUPT
+@@ -824,10 +829,10 @@
+
+ # Ok, once we are here, we should have got the delta (and used it)
+ # or we still have to download the full file
+-if ! [ -f ${DISTDIR}/${NEW_FILE} ]
++if ! [ -f "${DISTDIR}/${NEW_FILE}" ]
+ then
+ output "${RED}The dtu could not be fetched,${YELLOW} downloading full file from original URL\n"
+- $FETCH $ORIG_URI
++ $FETCHNAME "$NEW_FILE" "$ORIG_URI"
+ # remember we had a fallback to use correct exitcode for portage
+ FALLBACK=$?
+ fi
diff --git a/app-portage/getdelta/getdelta-0.7.9-r2.ebuild b/app-portage/getdelta/getdelta-0.7.9-r2.ebuild
new file mode 100644
index 000000000000..ddedb432473c
--- /dev/null
+++ b/app-portage/getdelta/getdelta-0.7.9-r2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="dynamic deltup client"
+HOMEPAGE="http://linux01.gwdg.de/~nlissne/"
+SRC_URI="http://linux01.gwdg.de/~nlissne/${PN}-0.7.8.tar.bz2"
+SLOT="0"
+IUSE=""
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~sparc ~x86"
+
+RDEPEND="app-portage/deltup
+ dev-util/bdelta"
+
+S=${WORKDIR}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}.patch
+}
+
+src_install () {
+ # portage has moved make.globals, so we just hotfix it
+ sed -i -e "s:/etc/make.globals:/usr/share/portage/config/make.globals:g" "${WORKDIR}"/getdelta.sh || die "Couldn't fix make.globals path"
+
+ # make.conf has now two locations. This should fix it ( #461726 )
+ sed -i -e "s:source /etc/make.conf:source /etc/make.conf || source /etc/portage/make.conf:" "${WORKDIR}"/getdelta.sh || die "Couldn't fix make.conf path"
+
+ sed -i -e "s:/bin/sh:/bin/bash:" "${WORKDIR}"/getdelta.sh || die
+ dobin "${WORKDIR}"/getdelta.sh || die
+}
+
+pkg_postinst() {
+ elog "You need to put"
+ elog "FETCHCOMMAND=\"/usr/bin/getdelta.sh \\\${URI}\""
+ elog "into your /etc/make.conf to make use of getdelta"
+
+ # make sure permissions are ok
+ touch "${ROOT}"/var/log/getdelta.log
+ mkdir -p "${ROOT}"/etc/deltup
+ chown -R portage:portage "${ROOT}"/{var/log/getdelta.log,etc/deltup}
+ chmod -R ug+rwX "${ROOT}"/{var/log/getdelta.log,etc/deltup}
+}
diff --git a/app-portage/getdelta/metadata.xml b/app-portage/getdelta/metadata.xml
new file mode 100644
index 000000000000..1f987434f823
--- /dev/null
+++ b/app-portage/getdelta/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <maintainer>
+ <email>nlissne@linux01.gwdg.de</email>
+ <name>Nicolai Lissner</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/gpytage/Manifest b/app-portage/gpytage/Manifest
new file mode 100644
index 000000000000..db83b9fb3c57
--- /dev/null
+++ b/app-portage/gpytage/Manifest
@@ -0,0 +1 @@
+DIST gpytage-0.3.0_rc1.tar.gz 45470 SHA256 2d083999ad266eac5bce2c5cea9a00977d08d5bfae452903749609b824714930 SHA512 82f6ecdf5a5710c5f11a22401f46dbb50410f78101086f4ae727b09e6a022065c83b1ceccc3cf6771b5b09c37fabedd9ba58a01121c941c55d0fe9185ae9d0b7 WHIRLPOOL eb72604a269f015370e583e448b8f24b72909e0748c7eb74171580fcbe725864187c679f2c9ca00b1ac5f8b1eb39f07851cf03018f27c1f0fb88b89488e502a2
diff --git a/app-portage/gpytage/gpytage-0.3.0_rc1.ebuild b/app-portage/gpytage/gpytage-0.3.0_rc1.ebuild
new file mode 100644
index 000000000000..7830dc697438
--- /dev/null
+++ b/app-portage/gpytage/gpytage-0.3.0_rc1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.6"
+
+inherit distutils
+
+DESCRIPTION="GTK Utility to help manage Portage's user config files"
+HOMEPAGE="https://gna.org/projects/gpytage"
+SRC_URI="http://download.gna.org/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND=">=dev-python/pygtk-2.14"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
diff --git a/app-portage/gpytage/metadata.xml b/app-portage/gpytage/metadata.xml
new file mode 100644
index 000000000000..2b0a4702ab26
--- /dev/null
+++ b/app-portage/gpytage/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+</pkgmetadata>
+
diff --git a/app-portage/gpyutils/Manifest b/app-portage/gpyutils/Manifest
new file mode 100644
index 000000000000..97720008ab61
--- /dev/null
+++ b/app-portage/gpyutils/Manifest
@@ -0,0 +1,4 @@
+DIST gpyutils-0.1.2.tar.bz2 12032 SHA256 90157667e4784d6818a97e40f68730dc20dc0aa9a2bf4ce728e936b6e6d13006 SHA512 c9d3edb2a18d6181f38b54c8725cc9fd4c12e996ef5fadafedd090ad9ebfd2b9daeb787568f705fddcc53ed9f8855834cbec2910c3bb712c2d9deaf32d4cb7fb WHIRLPOOL 357493446d75e68e30f162e87f807029cf073e31aa0d0d01c41a8389c36bd9d9057931ec944f12ac5b8da0791388078be49fc1f228bec99a0725623e74681e32
+DIST gpyutils-0.1.3.tar.bz2 13203 SHA256 daa89c26301db23f351430bdb85139cd15b8dfa729d71daecb53382eeb8a51c7 SHA512 d87dac9a03d2fd7b6e21df54a5371aa270dcd3ebf17fd9d69e66cb6b122e280d602e57df2cf83b48618eca106475f7e84d2d0178a265d2449e3ab6cb0056b7cf WHIRLPOOL 89544cbde84b4eb1f34ea8c87c13e4bfc62336e1a3ccae29d730cc8e68150e58f191e915fa278019535fc6f32430f583e12dd49c706f6ec448f70b264e2cbd7c
+DIST gpyutils-0.1.4.tar.bz2 13458 SHA256 bdffc77f526708e2c7d46aa35d75003b2489c2ed09a1d1f49f4574ec48a173e4 SHA512 fce002bd77868106990ceda1f7ef5e734ec279b85352d9481c0044624e0c837c558654f1d59617301dc7d8125fe7fb2b9778547f1dad19448c0aae165018babc WHIRLPOOL eddc8c4394bff7d37e4c02004d82972b7bc8d3c17970e384b9123e85a9c310c5d6ecb8f7b062396ac53a3bde175beeb7095d7b9ea3d4bb72336552b40f084766
+DIST gpyutils-0.1.tar.bz2 7916 SHA256 16df60024c1499c7bd73e30a7a3d97129070c905bea18967bfc92de60ce668c2 SHA512 8a26144ca02b6c9752e8a22d4c7d80a4e8033cfabd49d394cd45ee277f30703bcbc67aba5372f0b4ef267d400d761b8eeaa1ce37b8867007286c2b9cdf9f706e WHIRLPOOL 92195445fce9be949f68805103ff1afa490a3127c6cf0ec976893569ceab05f82aeca052a7bcc10bdc9313d5c5762b14255a9c9385234d291a8f0d4c89aaaa80
diff --git a/app-portage/gpyutils/files/implementations.txt b/app-portage/gpyutils/files/implementations.txt
new file mode 100644
index 000000000000..2a9de588a822
--- /dev/null
+++ b/app-portage/gpyutils/files/implementations.txt
@@ -0,0 +1,29 @@
+# python-r1 old-eclass status short-code
+#
+# python-r1: python-r1 eclass implementation name
+# old-eclass: python.eclass implementation name (null if not supported)
+# status: dead, old, supported, current, experimental, future
+# short-code: short string used in tabular output
+
+python2_4 2.4 dead 2.4
+python2_5 2.5 dead 2.5
+python2_6 2.6 dead 2.6
+python2_7 2.7 current 2.7
+python3_0 3.0 dead 3.0
+python3_1 3.1 dead 3.1
+python3_2 3.2 dead 3.2
+python3_3 3.3 current 3.3
+python3_4 supported 3.4
+python3_5 future 3.5
+
+pypy1_8 2.7-pypy-1.8 dead p1.8
+pypy1_9 2.7-pypy-1.9 dead p1.9
+pypy2_0 2.7-pypy-2.0 dead p2.0
+
+pypy supported pypy
+pypy3 supported pypy3
+
+jython2_5 2.5-jython dead j2.5
+jython2_7 2.7-jython experimental j2.7
+
+# vim:ts=16:sts=16:noet:ft=conf
diff --git a/app-portage/gpyutils/gpyutils-0.1.2.ebuild b/app-portage/gpyutils/gpyutils-0.1.2.ebuild
new file mode 100644
index 000000000000..7e5f64e2fcb5
--- /dev/null
+++ b/app-portage/gpyutils/gpyutils-0.1.2.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Utitilies for maintaining Python packages"
+HOMEPAGE="https://bitbucket.org/mgorny/gpyutils/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.9[${PYTHON_USEDEP}]"
diff --git a/app-portage/gpyutils/gpyutils-0.1.3.ebuild b/app-portage/gpyutils/gpyutils-0.1.3.ebuild
new file mode 100644
index 000000000000..fe87133a6e34
--- /dev/null
+++ b/app-portage/gpyutils/gpyutils-0.1.3.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Utitilies for maintaining Python packages"
+HOMEPAGE="https://bitbucket.org/mgorny/gpyutils/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.9[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/app-portage/gpyutils/gpyutils-0.1.4.ebuild b/app-portage/gpyutils/gpyutils-0.1.4.ebuild
new file mode 100644
index 000000000000..fe87133a6e34
--- /dev/null
+++ b/app-portage/gpyutils/gpyutils-0.1.4.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="Utitilies for maintaining Python packages"
+HOMEPAGE="https://bitbucket.org/mgorny/gpyutils/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.9[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
diff --git a/app-portage/gpyutils/gpyutils-0.1.ebuild b/app-portage/gpyutils/gpyutils-0.1.ebuild
new file mode 100644
index 000000000000..75e012a0cdb3
--- /dev/null
+++ b/app-portage/gpyutils/gpyutils-0.1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Utitilies for maintaining Python packages"
+HOMEPAGE="https://bitbucket.org/mgorny/gpyutils/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.9[${PYTHON_USEDEP}]"
diff --git a/app-portage/gpyutils/gpyutils-9999.ebuild b/app-portage/gpyutils/gpyutils-9999.ebuild
new file mode 100644
index 000000000000..b8c7ec5fa10f
--- /dev/null
+++ b/app-portage/gpyutils/gpyutils-9999.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="Utitilies for maintaining Python packages"
+HOMEPAGE="https://bitbucket.org/mgorny/gpyutils/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.9[${PYTHON_USEDEP}]"
+#if LIVE
+
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_test() {
+ esetup.py test
+}
diff --git a/app-portage/gpyutils/metadata.xml b/app-portage/gpyutils/metadata.xml
new file mode 100644
index 000000000000..63eaaeed126e
--- /dev/null
+++ b/app-portage/gpyutils/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/gpyutils/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/gpyutils</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/grs/grs-9999.ebuild b/app-portage/grs/grs-9999.ebuild
new file mode 100644
index 000000000000..8b9f64a6d7ff
--- /dev/null
+++ b/app-portage/grs/grs-9999.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python3_4 )
+
+inherit distutils-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/grss.git"
+ inherit git-2
+else
+ SRC_URI="http://dev.gentoo.org/~blueness/${PN}/${P}.tar.bz2"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Suite to build Gentoo Reference Systems"
+HOMEPAGE="http://dev.gentoo.org/~blueness/${PN}"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ app-arch/tar[xattr]
+ app-crypt/md5deep
+ dev-libs/libcgroup
+ dev-vcs/git
+ net-misc/rsync
+ sys-apps/portage
+ sys-kernel/genkernel"
+
+src_install() {
+ distutils-r1_src_install
+ echo "CONFIG_PROTECT=\"/etc/grs/systems.conf\"" > "${T}"/20grs
+ doenvd "${T}"/20grs
+}
diff --git a/app-portage/grs/metadata.xml b/app-portage/grs/metadata.xml
new file mode 100644
index 000000000000..1e7587374fdf
--- /dev/null
+++ b/app-portage/grs/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>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/gs-elpa/Manifest b/app-portage/gs-elpa/Manifest
new file mode 100644
index 000000000000..07dd55433fd2
--- /dev/null
+++ b/app-portage/gs-elpa/Manifest
@@ -0,0 +1 @@
+DIST gs-elpa-0.1.3.tar.gz 15486 SHA256 2cc71f64bd2109711ea9f4baeff4413dcd39d4d0318f115ce056572efcce8e71 SHA512 616c6cc33e89094e727c9ebe577d211cf9200a95b7ad6fd4b350b16d6982e3d509278b63a145880cdbc8f83481ba409b650e43260d463bf90a22e2a705997020 WHIRLPOOL 3d8562485b70a1d64a8a53bb5fb492ebdc84fafd3c1e880fb55172f69342d76966e425a85082370d15e71f938935e05496487cd7a3dde016868cc32a97c660a6
diff --git a/app-portage/gs-elpa/gs-elpa-0.1.3.ebuild b/app-portage/gs-elpa/gs-elpa-0.1.3.ebuild
new file mode 100644
index 000000000000..71bea7b75da4
--- /dev/null
+++ b/app-portage/gs-elpa/gs-elpa-0.1.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="g-sorcery backend for elisp packages"
+HOMEPAGE="https://github.com/jauhien/gs-elpa"
+SRC_URI="https://github.com/jauhien/gs-elpa/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="app-portage/g-sorcery[$(python_gen_usedep 'python*')]
+ dev-python/sexpdata[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/*.8
+}
diff --git a/app-portage/gs-elpa/gs-elpa-9999.ebuild b/app-portage/gs-elpa/gs-elpa-9999.ebuild
new file mode 100644
index 000000000000..ecc659d6f9ed
--- /dev/null
+++ b/app-portage/gs-elpa/gs-elpa-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="g-sorcery backend for elisp packages"
+HOMEPAGE="https://github.com/jauhien/gs-elpa"
+SRC_URI=""
+EGIT_BRANCH="master"
+EGIT_REPO_URI="http://github.com/jauhien/gs-elpa"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+DEPEND=">=app-portage/g-sorcery-0.2[$(python_gen_usedep 'python*')]
+ dev-python/sexpdata[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/*.8
+}
diff --git a/app-portage/gs-elpa/metadata.xml b/app-portage/gs-elpa/metadata.xml
new file mode 100644
index 000000000000..fbecb347cba3
--- /dev/null
+++ b/app-portage/gs-elpa/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>jauhien@gentoo.org</email>
+ <name>Jauhien Piatlicki</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">jauhien/gs-elpa</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/gs-pypi/Manifest b/app-portage/gs-pypi/Manifest
new file mode 100644
index 000000000000..91fbd7312c30
--- /dev/null
+++ b/app-portage/gs-pypi/Manifest
@@ -0,0 +1,2 @@
+DIST gs-pypi-0.1.tar.gz 15351 SHA256 98a684cad3bb64af397dac5373b57a4bb23a6784dec6f3d049423808d068c1d8 SHA512 e7d8dabed21de28f327da3163e95ea16dfb63c27d502233c0f6eae7bf3146866498c492795eff5c7126bf56bf6dd1613457290ffab83962741d49bd9254f059f WHIRLPOOL e7ce64d24302e4daa5ea2fdb96d1f43ccf9c5af1bd28a4de12dce05f73772de495e8c3f459088bac305caab02cae6f97018081d800eb1fadcc2e1ae133302c26
+DIST gs-pypi-0.2.tar.gz 16582 SHA256 17c72368d10d740f31cd84e237a350b10ec1ac0606432fc226a167d0433061ac SHA512 b28143f6eb85151cee27c24f11fd8e2adae7115120cc38eeaaa9a59af49af9cee8423725db0babc0dec7ef357ed2485f8a360f69db9fb246f1097fc0f3c227b0 WHIRLPOOL dbeae06ece88f1842c8be9b517a386534da433f599bbf6001b5b50fc22cfe0977569651c3b9d41a725a3dacb436991e8679ba403e8cc12528c9674ff1dcf78d6
diff --git a/app-portage/gs-pypi/gs-pypi-0.1.ebuild b/app-portage/gs-pypi/gs-pypi-0.1.ebuild
new file mode 100644
index 000000000000..9c50a1c07437
--- /dev/null
+++ b/app-portage/gs-pypi/gs-pypi-0.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="g-sorcery backend for pypi packages"
+HOMEPAGE="https://github.com/jauhien/gs-pypi"
+SRC_URI="https://github.com/jauhien/gs-pypi/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="app-portage/g-sorcery[$(python_gen_usedep 'python*')]
+ dev-python/beautifulsoup:4[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/*.8
+}
diff --git a/app-portage/gs-pypi/gs-pypi-0.2.ebuild b/app-portage/gs-pypi/gs-pypi-0.2.ebuild
new file mode 100644
index 000000000000..63dee48dda0a
--- /dev/null
+++ b/app-portage/gs-pypi/gs-pypi-0.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1
+
+DESCRIPTION="g-sorcery backend for pypi packages"
+HOMEPAGE="https://github.com/jauhien/gs-pypi"
+SRC_URI="https://github.com/jauhien/gs-pypi/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND=">=app-portage/g-sorcery-0.2[bson(-),$(python_gen_usedep 'python*')]
+ dev-python/beautifulsoup:4[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/*.8
+}
diff --git a/app-portage/gs-pypi/gs-pypi-9999.ebuild b/app-portage/gs-pypi/gs-pypi-9999.ebuild
new file mode 100644
index 000000000000..5d2136daf349
--- /dev/null
+++ b/app-portage/gs-pypi/gs-pypi-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=(python{2_7,3_3,3_4})
+
+inherit distutils-r1 git-2
+
+DESCRIPTION="g-sorcery backend for pypi packages"
+HOMEPAGE="https://github.com/jauhien/gs-pypi"
+SRC_URI=""
+EGIT_BRANCH="master"
+EGIT_REPO_URI="http://github.com/jauhien/gs-pypi"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+DEPEND=">=app-portage/g-sorcery-0.2[bson(-),$(python_gen_usedep 'python*')]
+ dev-python/beautifulsoup:4[$(python_gen_usedep 'python*')]"
+RDEPEND="${DEPEND}"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/*.8
+}
diff --git a/app-portage/gs-pypi/metadata.xml b/app-portage/gs-pypi/metadata.xml
new file mode 100644
index 000000000000..400232bcc172
--- /dev/null
+++ b/app-portage/gs-pypi/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>jauhien@gentoo.org</email>
+ <name>Jauhien Piatlicki</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">jauhien/gs-pypi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/install-mask/Manifest b/app-portage/install-mask/Manifest
new file mode 100644
index 000000000000..3994d0d870e3
--- /dev/null
+++ b/app-portage/install-mask/Manifest
@@ -0,0 +1,2 @@
+DIST install-mask-0.0.2.tar.bz2 4247 SHA256 7d43c980fdbcecb11d500af9cd091f5e26f3d8c54f6044d63e378bafdc67c9d8 SHA512 3f0686c720d26448cf76742ebee22f5413973b8cab7122373f4122576991497bbe72fa0fddef01e83c8148dac749e3a5c2d865fdf917794a5fea0e6823f2743e WHIRLPOOL 157b40ea394e7d25a79b8f63b1f2118c4a8abbd45d6825ba67187412870812ec0c582fbdef96fb0c34e33524dc594eb904de72676608b5842c3958ab252183b9
+DIST install-mask-0.1.1.tar.bz2 4241 SHA256 e81cfccc1b382816911598fb432a85ac9242fd2bc50203b12dcbcae3ee956203 SHA512 461f58b4e6fc41bfbe60d713a6d02eec8fe0a4e9ed8a19f8e155174b27f8e3d93c739e2ccce8ab34488ba31649ee585d7b23033dc94f19aa2e3b2033f21f5e79 WHIRLPOOL 4d229ae5c2d01a78daf002565a2699213e98eeed1e0e22d3240b4bc4fcacf147e9ab0a63d3b6e191e474c2869c112a8ad2bf7e4945263cdf43f44b4a568cd3e8
diff --git a/app-portage/install-mask/files/install-mask.conf b/app-portage/install-mask/files/install-mask.conf
new file mode 100644
index 000000000000..78b49a473427
--- /dev/null
+++ b/app-portage/install-mask/files/install-mask.conf
@@ -0,0 +1,6 @@
+# Example /etc/portage/sets.conf adding the @install-mask set.
+
+[install-mask]
+class = portage.sets.shell.CommandOutputSet
+command = install-mask -r
+world-candidate = False
diff --git a/app-portage/install-mask/files/location-db.conf b/app-portage/install-mask/files/location-db.conf
new file mode 100644
index 000000000000..cb050cab37c4
--- /dev/null
+++ b/app-portage/install-mask/files/location-db.conf
@@ -0,0 +1,18 @@
+[__install-mask__]
+version=1
+
+[systemd]
+path=/usr/lib/systemd/system
+description=systemd unit and auxiliary files.
+
+[bash-completion]
+path=/usr/share/bash-completion
+
+[locale]
+path=/usr/share/locale
+description=All localizations.
+
+[logrotate]
+path=/etc/logrotate.d
+
+# vim:ft=dosini
diff --git a/app-portage/install-mask/files/location-db.xml b/app-portage/install-mask/files/location-db.xml
new file mode 100644
index 000000000000..eea4842e235c
--- /dev/null
+++ b/app-portage/install-mask/files/location-db.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<install-mask>
+ <location id="systemd">
+ <path>/usr/lib/systemd/system</path>
+ <description>
+ systemd unit and auxiliary files.
+ </description>
+ </location>
+
+ <location id="bash-completion">
+ <path>/usr/share/bash-completion</path>
+ </location>
+
+ <location id="locale">
+ <path>/usr/share/locale</path>
+ <description>
+ All localizations.
+ </description>
+ </location>
+
+ <location id="logrotate">
+ <path>/etc/logrotate.d</path>
+ </location>
+</install-mask>
diff --git a/app-portage/install-mask/install-mask-0.0.2-r3.ebuild b/app-portage/install-mask/install-mask-0.0.2-r3.ebuild
new file mode 100644
index 000000000000..8801d9e6f8d3
--- /dev/null
+++ b/app-portage/install-mask/install-mask-0.0.2-r3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Handle INSTALL_MASK setting in make.conf"
+HOMEPAGE="https://bitbucket.org/mgorny/install-mask/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND="app-portage/flaggie[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/portage/config/sets
+ doins "${FILESDIR}"/${PN}.conf
+}
diff --git a/app-portage/install-mask/install-mask-0.1.1.ebuild b/app-portage/install-mask/install-mask-0.1.1.ebuild
new file mode 100644
index 000000000000..19ebe063104a
--- /dev/null
+++ b/app-portage/install-mask/install-mask-0.1.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Handle INSTALL_MASK setting in make.conf"
+HOMEPAGE="https://bitbucket.org/mgorny/install-mask/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND="app-portage/flaggie[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/portage/config/sets
+ newins sets.conf ${PN}.conf
+}
diff --git a/app-portage/install-mask/install-mask-9999.ebuild b/app-portage/install-mask/install-mask-9999.ebuild
new file mode 100644
index 000000000000..7a4ae97da401
--- /dev/null
+++ b/app-portage/install-mask/install-mask-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="Handle INSTALL_MASK setting in make.conf"
+HOMEPAGE="https://bitbucket.org/mgorny/install-mask/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND="app-portage/flaggie[${PYTHON_USEDEP}]"
+#if LIVE
+
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/portage/config/sets
+ newins sets.conf ${PN}.conf
+}
diff --git a/app-portage/install-mask/metadata.xml b/app-portage/install-mask/metadata.xml
new file mode 100644
index 000000000000..8719a88df6c6
--- /dev/null
+++ b/app-portage/install-mask/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/install-mask/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/install-mask</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/kuroo4/Manifest b/app-portage/kuroo4/Manifest
new file mode 100644
index 000000000000..2e273fd23a75
--- /dev/null
+++ b/app-portage/kuroo4/Manifest
@@ -0,0 +1,2 @@
+DIST kuroo4-0.90.4.tar.gz 326049 SHA256 509445057ce357cfc56db304982928d3e67c36bea02e70b1f544ff1772590e8d SHA512 55e42e5d96d109a38673b1cd677e3e41e3a792957482cebd5a8be72f20420d83b14355aa0362aab0eac54cb8a72639dcdd66ffc6aa9b5a6d1cd4df9563b4d3c6 WHIRLPOOL 4bce2ac5e1b438be4f7bb113b0224aa9e26f816c372194a96d4eec96ec59c030b6f8efd95b0cccfcf274def534a45c130b27843cbe3740cdfee4e966e6d46368
+DIST kuroo4-0.90.5.tar.gz 342698 SHA256 698b4fa177b52bc84787e925304f5287eaa4dc4c77e10339232d2703ba3fc536 SHA512 aed2ec984b77768f5325b41b01ea1c63e214e45699f9c29e1bf11cf7d6ff6ecc6660c2cc07948d0fc66f0469154fa00e1df9e78d330ad426db86a70db85f400f WHIRLPOOL 5a2ff9a14aa345117da539ff390357561332b40b2dba7709421b056d83363acc2bf7cd0232f945b942b8e894bf23816208304db6a5ef05a4049ca45f3c039035
diff --git a/app-portage/kuroo4/kuroo4-0.90.4.ebuild b/app-portage/kuroo4/kuroo4-0.90.4.ebuild
new file mode 100644
index 000000000000..dcec937f75f8
--- /dev/null
+++ b/app-portage/kuroo4/kuroo4-0.90.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit kde4-base
+
+DESCRIPTION="Graphical Portage frontend based on KDE4/Qt4"
+HOMEPAGE="http://kuroo.sourceforge.net/"
+SRC_URI="mirror://sourceforge/kuroo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="4"
+IUSE="debug"
+
+DEPEND="dev-db/sqlite"
+
+RDEPEND="${DEPEND}
+ app-portage/gentoolkit
+ $(add_kdeapps_dep kdesu)
+ $(add_kdeapps_dep kompare)
+"
diff --git a/app-portage/kuroo4/kuroo4-0.90.5.ebuild b/app-portage/kuroo4/kuroo4-0.90.5.ebuild
new file mode 100644
index 000000000000..dcec937f75f8
--- /dev/null
+++ b/app-portage/kuroo4/kuroo4-0.90.5.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit kde4-base
+
+DESCRIPTION="Graphical Portage frontend based on KDE4/Qt4"
+HOMEPAGE="http://kuroo.sourceforge.net/"
+SRC_URI="mirror://sourceforge/kuroo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+SLOT="4"
+IUSE="debug"
+
+DEPEND="dev-db/sqlite"
+
+RDEPEND="${DEPEND}
+ app-portage/gentoolkit
+ $(add_kdeapps_dep kdesu)
+ $(add_kdeapps_dep kompare)
+"
diff --git a/app-portage/kuroo4/metadata.xml b/app-portage/kuroo4/metadata.xml
new file mode 100644
index 000000000000..ce405f1b6efe
--- /dev/null
+++ b/app-portage/kuroo4/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>tools-portage</herd>
+ <herd>proxy-maintainers</herd>
+ <herd>kde</herd>
+ <longdescription lang="en">Graphical Portage frontend based on KDE4/Qt4</longdescription>
+ <maintainer>
+ <email>galiven@users.sourceforge.net</email>
+ <name>Andrew Schenck</name>
+ <description>Upstream Maintainer (please CC on bugs)</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">kuroo</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/layman-dbtools/layman-dbtools-0_p20100322.ebuild b/app-portage/layman-dbtools/layman-dbtools-0_p20100322.ebuild
new file mode 100644
index 000000000000..186af044cf41
--- /dev/null
+++ b/app-portage/layman-dbtools/layman-dbtools-0_p20100322.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="xml"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit git-2 python
+
+DESCRIPTION="Tools to work with layman-global.txt/repositories.xml like files"
+HOMEPAGE="http://cgit.gentoo.org/proj/repositories-xml-format.git"
+SRC_URI=""
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/repositories-xml-format.git
+ http://anongit.gentoo.org/git/proj/repositories-xml-format.git"
+EGIT_COMMIT="8c4d7440c6d47f7ed690edafb7c0af53742f3297"
+
+if [[ ${PV} != 0_p20100322 ]]; then
+ die 'Broken bump detected: same \${EGIT_COMMIT} again'
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="app-portage/layman"
+
+src_install() {
+ abi_specific_install() {
+ local code_dir="$(python_get_sitedir)"/layman/dbtools
+
+ exeinto "${code_dir}"
+ doexe write-repositories-xml.py || die "doexe failed"
+
+ insinto "${code_dir}"
+ doins layman/dbtools/*.py || die "doins failed"
+
+ dodir /usr/bin
+ dosym "${code_dir}"/write-repositories-xml.py /usr/bin/write-repositories-xml-${PYTHON_ABI} \
+ || die "dosym failed"
+ }
+ python_execute_function abi_specific_install
+
+ python_generate_wrapper_scripts "${ED}usr/bin/write-repositories-xml"
+}
+
+pkg_postinst() {
+ python_mod_optimize layman/dbtools
+}
+
+pkg_postrm() {
+ python_mod_cleanup layman/dbtools
+}
diff --git a/app-portage/layman-dbtools/metadata.xml b/app-portage/layman-dbtools/metadata.xml
new file mode 100644
index 000000000000..16bcc9f800a2
--- /dev/null
+++ b/app-portage/layman-dbtools/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>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/layman/Manifest b/app-portage/layman/Manifest
new file mode 100644
index 000000000000..6e914628f30f
--- /dev/null
+++ b/app-portage/layman/Manifest
@@ -0,0 +1,4 @@
+DIST layman-2.0.0.tar.gz 81184 SHA256 5843035ae4cc069693c05cf9821dae3d89d3ea7e2115b8137ea5a4a6c2807f33 SHA512 30756464d71ab1e047036550b6500d7e57999d808ebe3efba1d1ae6c037f8ca777ba704a4981d75a90285133635027a7bc13f1890f34823de33ae991ed99e2da WHIRLPOOL ec362189c4757ee032dc93e079ea0f5b291d5652231a84f1175fb308ca5622882d5008f23fd6a3d5143ff0dc98c91632d19c2e6604dcaa9b6a550bc902d79c1a
+DIST layman-2.1.0.tar.gz 94150 SHA256 cb96306c84da1d49ff54a31f7511c62c859565361bd59164516cd2812c439987 SHA512 1fa21392157c811c7751b8e3a11b858308c48720e377871bdd5afc525ebb50a92772064aa1148a4c20e3019f77b676ff65552439a71361d498952e362398c67f WHIRLPOOL 77643bedb4167eb371357444328d439c8b433cfc22a8bf9e39693feb68b701ec158064db8d22da0e6eb5260f27d5604d8b252a67930b38d8bed5921822f71c29
+DIST layman-2.2.0.tar.gz 116210 SHA256 4a10cfd3eb354e993886369995ae9b1243418e0370c6aabd4d0ef6c5b387b7a2 SHA512 34cac041d7b64274debdbc42cab079fd3bb3aee511ea9e80db726df0f828207d79a5262788483ced5cbf49924e3aa4f19fe21439c98dceea973d8f83473c2e41 WHIRLPOOL 8c5d3cbbfef35c6294dfac899cb42f49e0761745573721e38b7d6c9ac48031f95bbb961c9d8dd9d309e4672cc1e5b050107ba025a9f28127e5d7d6d9a73a6e9a
+DIST layman-2.3.0.tar.gz 119223 SHA256 76559b8e202c012d124deac01b92bbe70b550afe711144a3b1e301c5d8bbd0f2 SHA512 d110fb1781017d87e995098ecb48c4223347323d67534b584a393dc4354b761a6d960fd31e6e6787b5f37fa7e63b357c49486042c7cb527f78dd5beb5373627d WHIRLPOOL 76c82f08b18830e925ffd4c97b490753de2e7d0b3c71a82a0a75fd776ed3af84d2ba2fe06dab25e5e4d2ea400b0f0b66eda65f1f4eded0521ec579a1a0c1b17f
diff --git a/app-portage/layman/files/layman-2.0.0.doctest.patch b/app-portage/layman/files/layman-2.0.0.doctest.patch
new file mode 100644
index 000000000000..6d3305ca3ef7
--- /dev/null
+++ b/app-portage/layman/files/layman-2.0.0.doctest.patch
@@ -0,0 +1,20 @@
+diff --git a/layman/db.py b/layman/db.py
+index e2d740c..55a846a 100644
+--- a/layman/db.py
++++ b/layman/db.py
+@@ -93,6 +93,7 @@ class DB(DbBase):
+ >>> from layman.config import OptionConfig
+ >>> myoptions = {'installed' :
+ ... here + '/tests/testfiles/global-overlays.xml',
++ ... 'local_list': here + '/tests/testfiles/overlays.xml',
+ ... 'make_conf' : write2,
+ ... 'nocheck' : 'yes',
+ ... 'storage' : tmpdir}
+@@ -173,6 +174,7 @@ class DB(DbBase):
+ >>> from layman.config import OptionConfig
+ >>> myoptions = {'installed' :
+ ... here + '/tests/testfiles/global-overlays.xml',
++ ... 'local_list': here + '/tests/testfiles/overlays.xml',
+ ... 'make_conf' : write2,
+ ... 'nocheck' : 'yes',
+ ... 'storage' : tmpdir}
diff --git a/app-portage/layman/files/layman-2.0.0.svn_upgrade.patch b/app-portage/layman/files/layman-2.0.0.svn_upgrade.patch
new file mode 100644
index 000000000000..431b9370593a
--- /dev/null
+++ b/app-portage/layman/files/layman-2.0.0.svn_upgrade.patch
@@ -0,0 +1,58 @@
+From 580097d4bc0cd3f07b4ce1b8da33e63f03ef0305 Mon Sep 17 00:00:00 2001
+From: Brian Dolbec <dolsen@gentoo.org>
+Date: Mon, 6 Jan 2014 22:01:12 -0800
+Subject: [PATCH] Update svn's check_upgrade() for newer svn versions.
+
+Thanks you, Arfrever, for your assistance.
+---
+ layman/overlays/svn.py | 32 ++++++++++++--------------------
+ 1 file changed, 12 insertions(+), 20 deletions(-)
+
+diff --git a/layman/overlays/svn.py b/layman/overlays/svn.py
+index 4804925..374a516 100644
+--- a/layman/overlays/svn.py
++++ b/layman/overlays/svn.py
+@@ -131,27 +131,19 @@ class SvnOverlay(OverlaySource):
+ return
+
+ def check_upgrade(self, target):
+- '''Code to check the installed svn version and
+- run "svn upgrade" if needed.'''
++ '''Code to run "svn upgrade" it only takes longer
++ than checking if it does need an upgrade if it is
++ actually needed.
++ '''
+ file_to_run = _resolve_command(self.command(), self.output.error)[1]
+- args = file_to_run + ' -q --version'
++ args = " ".join([file_to_run, " upgrade", target])
+- pipe = Popen(args, shell=True, stdout=PIPE)
++ pipe = Popen(args, shell=True, stdout=PIPE, stderr=PIPE)
+ if pipe:
+- self.output.debug("SVN: check_upgrade()... have a valid pipe", 4)
+- version = pipe.stdout.readline().strip('\n')
+- self.output.debug("SVN: check_upgrade()... svn version found: %s"
+- % version, 4)
++ self.output.debug("SVN: check_upgrade()... have a valid pipe, "
++ "running upgrade", 4)
++ upgrade_output = pipe.stdout.readline().strip('\n')
++ if upgrade_output:
++ self.output.debug(" output: %s" % upgrade_output, 4)
++ self.output.debug("SVN: check_upgrade()... svn upgrade done", 4)
+ pipe.terminate()
+- if version >= '1.7.0':
+- self.output.debug("SVN: check_upgrade()... svn upgrade maybe",
+- 4)
+- _path = path([target,'.svn/wc.db'])
+- if not os.path.exists(_path):
+- self.output.info("An svn upgrade needs to be run...",
+- 2)
+- args = ["upgrade"]
+- return self.run_command(self.command(), args,
+- cwd=target, cmd="svn upgrade")
+- return
+- else:
+- return
++ return
+--
+1.8.3.2
+
diff --git a/app-portage/layman/files/layman-2.1.0-incorrect-import-make-conf-fix.patch b/app-portage/layman/files/layman-2.1.0-incorrect-import-make-conf-fix.patch
new file mode 100644
index 000000000000..1396e320ed5a
--- /dev/null
+++ b/app-portage/layman/files/layman-2.1.0-incorrect-import-make-conf-fix.patch
@@ -0,0 +1,29 @@
+From 8f6005fcfb9d2012bba428863f89b6b9168c8226 Mon Sep 17 00:00:00 2001
+From: Devan Franchini <twitch153@gentoo.org>
+Date: Thu, 22 May 2014 22:57:08 -0400
+Subject: [PATCH] updater.py: Fixes incorrect import for make.conf class
+
+X-Gentoo-Bug: 521724
+X-Gentoo-Bug-URL: https://bugs.gentoo.org/521724
+---
+ layman/updater.py | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/layman/updater.py b/layman/updater.py
+index 26aeed2..b2187e3 100644
+--- a/layman/updater.py
++++ b/layman/updater.py
+@@ -155,8 +155,8 @@ class Main(object):
+ self.output.info(" Creating layman's make.conf file")
+ # create layman's %(storage)s/make.conf
+ # so portage won't error
+- from layman.makeconf import MakeConf
+- maker = MakeConf(self.config, None)
++ from layman.makeconf import ConfigHandler
++ maker = ConfigHandler(self.config, None)
+ maker.write()
+
+
+--
+1.8.5.5
+
diff --git a/app-portage/layman/files/layman-2.1.0-local_overlay.patch b/app-portage/layman/files/layman-2.1.0-local_overlay.patch
new file mode 100644
index 000000000000..fbe5cd0e8137
--- /dev/null
+++ b/app-portage/layman/files/layman-2.1.0-local_overlay.patch
@@ -0,0 +1,27 @@
+From d0e5d9120c27f678e9039bb2f65cfc0e457be6c7 Mon Sep 17 00:00:00 2001
+From: Douglas Freed <dwfreed@mtu.edu>
+Date: Sat, 26 Jul 2014 15:54:11 -0700
+Subject: [PATCH] Fix a bug when an overlay isn't in the remote list
+
+If the overlay isn't in the remote list, it obviously isn't a different
+type, nor has its URL changed, so just init those to False so we can
+sync the overlay without hitting UnboundLocalError.
+---
+ layman/api.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/layman/api.py b/layman/api.py
+index a86970f..930f449 100755
+--- a/layman/api.py
++++ b/layman/api.py
+@@ -426,6 +426,7 @@ class LaymanAPI(object):
+ message = 'Overlay "%s" could not be found in the remote lists.\n' \
+ 'Please check if it has been renamed and re-add if necessary.' % ovl
+ warnings.append((ovl, message))
++ (diff_type, update_url) = (False, False)
+ else:
+ self.output.debug("API.sync(); else: self._get_remote_db().select(ovl)", 5)
+
+--
+1.8.5.5
+
diff --git a/app-portage/layman/files/layman-2.2.0-adds-kwargs-debug.patch b/app-portage/layman/files/layman-2.2.0-adds-kwargs-debug.patch
new file mode 100644
index 000000000000..2020cb716449
--- /dev/null
+++ b/app-portage/layman/files/layman-2.2.0-adds-kwargs-debug.patch
@@ -0,0 +1,28 @@
+From: Devan Franchini <twitch153@gentoo.org>
+Date: Sun, 7 Dec 2014 23:12:36 -0500
+Subject: [PATCH] Adds kwargs-debug and modifies kwargs-info level to 5
+
+--- a/layman/overlays/archive.py
++++ b/layman/overlays/archive.py
+@@ -50,7 +50,8 @@ class ArchiveOverlay(OverlaySource):
+ connector_output = {
+ 'info': self.output.debug,
+ 'error': self.output.error,
+- 'kwargs-info': {'level': 2},
++ 'kwargs-info': {'level': 5},
++ 'kwargs-debug': {'level': 2},
+ 'kwargs-error': {'level': None},
+ }
+
+--- a/layman/remotedb.py
++++ b/layman/remotedb.py
+@@ -120,6 +120,6 @@ class RemoteDB(DbBase):
+ 'info': self.output.info,
+ 'debug': self.output.debug,
+ 'error': self.output.error,
+- 'kwargs-info': {'level': 2},
++ 'kwargs-info': {'level': 5},
+ 'kwargs-debug': {'level': 2},
+ 'kwargs-error':{'level': None},
+ }
+
diff --git a/app-portage/layman/files/layman-2.2.0-change-for-upstream-ssl-fetch.patch b/app-portage/layman/files/layman-2.2.0-change-for-upstream-ssl-fetch.patch
new file mode 100644
index 000000000000..d738b26f12c0
--- /dev/null
+++ b/app-portage/layman/files/layman-2.2.0-change-for-upstream-ssl-fetch.patch
@@ -0,0 +1,38 @@
+From 81f1545f1371931d560492e8b323096d4befc775 Mon Sep 17 00:00:00 2001
+From: Brian Dolbec <dolsen@gentoo.org>
+Date: Fri, 17 Oct 2014 19:40:38 -0700
+Subject: [PATCH] remotedb.py: Change for upstream ssl-fetch change
+
+---
+ layman/remotedb.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/layman/remotedb.py b/layman/remotedb.py
+index f0f7ea9..b866bd7 100644
+--- a/layman/remotedb.py
++++ b/layman/remotedb.py
+@@ -57,7 +57,7 @@ class RemoteDB(DbBase):
+ self.detached_urls = []
+ self.signed_urls = []
+ self.proxies = config.proxies
+-
++
+ self.urls = [i.strip()
+ for i in config['overlays'].split('\n') if len(i)]
+
+@@ -116,9 +116,11 @@ class RemoteDB(DbBase):
+ need_gpg = [False, True, True]
+ # setup the ssl-fetch output map
+ connector_output = {
+- 'info': self.output.debug,
++ 'info': self.output.info,
++ 'debug': self.output.debug,
+ 'error': self.output.error,
+ 'kwargs-info': {'level': 2},
++ 'kwargs-debug': {'level': 2},
+ 'kwargs-error':{'level': None},
+ }
+ fetcher = Connector(connector_output, self.proxies, USERAGENT)
+--
+2.0.5
+
diff --git a/app-portage/layman/files/layman-2.2.0-removes-doctest-remnants.patch b/app-portage/layman/files/layman-2.2.0-removes-doctest-remnants.patch
new file mode 100644
index 000000000000..4b077140019b
--- /dev/null
+++ b/app-portage/layman/files/layman-2.2.0-removes-doctest-remnants.patch
@@ -0,0 +1,208 @@
+From: Devan Franchini <twitch153@gentoo.org>
+Date: Fri, 18 Oct 2014 15:21:24 -0400
+Subject: [PATCH] Removes doctest remnants
+
+--- a/layman/api.py 2014-10-18 14:27:13.233842116 -0400
++++ b/layman/api.py 2014-10-18 14:29:51.184849673 -0400
+@@ -714,15 +714,3 @@
+ write = os.fdopen(fd_w, 'w')
+ read = os.fdopen(fd_r, 'r')
+ return (read, write, fd_r, fd_w)
+-
+-
+-if __name__ == '__main__':
+- import doctest, sys
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/argsparser.py 2014-10-18 14:27:13.233842116 -0400
++++ b/layman/argsparser.py 2014-10-18 14:30:35.256851781 -0400
+@@ -404,14 +404,3 @@
+ self.output.debug('ARGSPARSER: Returning keys', 9)
+
+ return keys
+-
+-
+-#===============================================================================
+-#
+-# Testing
+-#
+-#-------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest
+- doctest.testmod(sys.modules[__name__])
+--- a/layman/cli.py 2014-10-18 14:27:13.233842116 -0400
++++ b/layman/cli.py 2014-10-18 14:32:11.456856384 -0400
+@@ -397,15 +397,3 @@
+ # blank newline -- no " *"
+ self.output.notice('')
+ return info != {}
+-
+-
+-if __name__ == '__main__':
+- import doctest
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/config.py 2014-10-18 14:27:13.233842116 -0400
++++ b/layman/config.py 2014-10-18 14:31:02.528853086 -0400
+@@ -348,13 +348,3 @@
+ if new_defaults is not None:
+ self._defaults.update(new_defaults)
+ return
+-
+-#===============================================================================
+-#
+-# Testing
+-#
+-#-------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest
+- doctest.testmod(sys.modules[__name__])
+--- a/layman/db.py 2014-10-18 14:27:13.234842116 -0400
++++ b/layman/db.py 2014-10-18 14:32:32.160857374 -0400
+@@ -315,21 +315,3 @@
+ raise Exception('Syncing overlay "' + overlay_name +
+ '" returned status ' + str(result) + '!' +
+ '\ndb.sync()')
+-
+-
+-#===============================================================================
+-#
+-# Testing
+-#
+-#-------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest, sys
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/dbbase.py 2014-10-18 14:27:13.234842116 -0400
++++ b/layman/dbbase.py 2014-10-18 14:31:14.648853666 -0400
+@@ -252,21 +252,3 @@
+ """returns a list of the overlay names
+ """
+ return sorted(self.overlays)
+-
+-
+-#===============================================================================
+-#
+-# Testing
+-#
+-#-------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/overlays/archive.py 2014-10-18 14:27:13.253842116 -0400
++++ b/layman/overlays/archive.py 2014-10-18 14:31:54.640855579 -0400
+@@ -188,15 +188,3 @@
+ '''
+
+ return self.is_supported()
+-
+-
+-if __name__ == '__main__':
+- import doctest
+-
+- # Ignore warnings here. We are just testing.
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/overlays/modules/tar/tar.py 2014-10-18 14:27:13.245842116 -0400
++++ b/layman/overlays/modules/tar/tar.py 2014-10-18 15:10:13.303965557 -0400
+@@ -94,14 +94,3 @@
+ return require_supported(
+ [(self.command(), 'tar', 'app-arch/tar'), ],
+ self.output.warn)
+-
+-if __name__ == '__main__':
+- import doctest
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/overlays/overlay.py 2014-10-18 14:27:13.253842116 -0400
++++ b/layman/overlays/overlay.py 2014-10-18 14:31:38.624854813 -0400
+@@ -546,14 +546,3 @@
+ def source_types(self):
+ for i in self.sources:
+ yield i.type
+-
+-
+-#==============================================================================
+-#
+-# Testing
+-#
+-#------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest
+- doctest.testmod(sys.modules[__name__])
+--- a/layman/remotedb.py 2014-10-18 14:27:13.253842116 -0400
++++ b/layman/remotedb.py 2014-10-18 14:29:31.064848710 -0400
+@@ -384,14 +384,3 @@
+ self.signed_urls = [i.strip()
+ for i in self.config['gpg_signed_lists'].split('\n') if len(i)]
+ '''
+-
+-if __name__ == '__main__':
+- import doctest
+-
+- # Ignore warnings here. We are just testing
+- from warnings import filterwarnings, resetwarnings
+- filterwarnings('ignore')
+-
+- doctest.testmod(sys.modules[__name__])
+-
+- resetwarnings()
+--- a/layman/utils.py 2014-10-18 14:27:13.254842117 -0400
++++ b/layman/utils.py 2014-10-18 14:30:24.088851247 -0400
+@@ -347,14 +347,3 @@
+ for key in kwargs:
+ result[key] = kwargs[key]
+ return result
+-
+-
+-#===============================================================================
+-#
+-# Testing
+-#
+-#-------------------------------------------------------------------------------
+-
+-if __name__ == '__main__':
+- import doctest
+- doctest.testmod(sys.modules[__name__])
+
diff --git a/app-portage/layman/layman-2.0.0-r1.ebuild b/app-portage/layman/layman-2.0.0-r1.ebuild
new file mode 100644
index 000000000000..4bc9ab64d780
--- /dev/null
+++ b/app-portage/layman/layman-2.0.0-r1.ebuild
@@ -0,0 +1,69 @@
+# 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="xml(+)"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="bazaar cvs darcs +git mercurial subversion test"
+
+DEPEND="test? ( dev-vcs/subversion )"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ "
+
+python_prepare_all() {
+ local PATCHES=( "${FILESDIR}"/layman-2.0.0.doctest.patch )
+ distutils-r1_python_prepare_all
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ for suite in layman/tests/{dtest,external}.py ; do
+ PYTHONPATH="." "${PYTHON}" ${suite} \
+ || die "test suite '${suite}' failed"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/layman-2.0.0-r3.ebuild b/app-portage/layman/layman-2.0.0-r3.ebuild
new file mode 100644
index 000000000000..b57494a490b2
--- /dev/null
+++ b/app-portage/layman/layman-2.0.0-r3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="bazaar cvs darcs +git mercurial subversion test"
+
+DEPEND="test? ( dev-vcs/subversion )"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ sys-apps/portage[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ local PATCHES=( "${FILESDIR}"/layman-2.0.0.*.patch )
+ distutils-r1_python_prepare_all
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ for suite in layman/tests/{dtest,external}.py ; do
+ PYTHONPATH="." "${PYTHON}" ${suite} \
+ || die "test suite '${suite}' failed"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/layman-2.1.0-r3.ebuild b/app-portage/layman/layman-2.1.0-r3.ebuild
new file mode 100644
index 000000000000..965651144631
--- /dev/null
+++ b/app-portage/layman/layman-2.1.0-r3.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~s390 ~sh ~x86 ~ppc-aix ~ppc ~ppc64 ~x86-fbsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~sparc"
+IUSE="bazaar cvs darcs +git mercurial subversion test"
+
+DEPEND="test? ( dev-vcs/subversion )"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ sys-apps/portage[${PYTHON_USEDEP}]
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ epatch "${FILESDIR}"/${P}-local_overlay.patch
+ epatch "${FILESDIR}"/${P}-incorrect-import-make-conf-fix.patch
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ for suite in layman/tests/{dtest,external}.py ; do
+ PYTHONPATH="." "${PYTHON}" ${suite} \
+ || die "test suite '${suite}' failed"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/layman-2.2.0-r7.ebuild b/app-portage/layman/layman-2.2.0-r7.ebuild
new file mode 100644
index 000000000000..421f6bae22a3
--- /dev/null
+++ b/app-portage/layman/layman-2.2.0-r7.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit eutils distutils-r1 linux-info prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="bazaar cvs darcs +git g-sorcery mercurial squashfs subversion test"
+
+DEPEND="test? ( dev-vcs/subversion )"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ g-sorcery? ( app-portage/g-sorcery )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ sys-apps/portage[${PYTHON_USEDEP}]
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+ "
+
+layman_check_kernel_config() {
+ local CONFIG_CHECK
+ use squashfs && CONFIG_CHECK+=" ~BLK_DEV_LOOP ~SQUASHFS"
+ [[ -n ${CONFIG_CHECK} ]] && check_extra_config
+}
+
+pkg_pretend() {
+ layman_check_kernel_config
+}
+
+pkg_setup() {
+ layman_check_kernel_config
+}
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ epatch "${FILESDIR}"/${P}-removes-doctest-remnants.patch
+ epatch "${FILESDIR}"/${P}-change-for-upstream-ssl-fetch.patch
+ epatch "${FILESDIR}"/${P}-adds-kwargs-debug.patch
+ rm "${S}"/"${PN}"/tests/dtest.py
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ for suite in layman/tests/external.py ; do
+ PYTHONPATH="." "${PYTHON}" ${suite} \
+ || die "test suite '${suite}' failed"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/layman-2.3.0.ebuild b/app-portage/layman/layman-2.3.0.ebuild
new file mode 100644
index 000000000000..567877a0475b
--- /dev/null
+++ b/app-portage/layman/layman-2.3.0.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit eutils distutils-r1 linux-info prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~x86"
+IUSE="bazaar cvs darcs +git gpg g-sorcery mercurial squashfs subversion sync-plugin-portage test"
+
+DEPEND="test? ( dev-vcs/subversion )
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ g-sorcery? ( app-portage/g-sorcery )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ sync-plugin-portage? ( >=sys-apps/portage-2.2.16[${PYTHON_USEDEP}] )
+ !sync-plugin-portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
+ gpg? ( dev-python/pyGPG )
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+ "
+
+layman_check_kernel_config() {
+ local CONFIG_CHECK
+ use squashfs && CONFIG_CHECK+=" ~BLK_DEV_LOOP ~SQUASHFS"
+ [[ -n ${CONFIG_CHECK} ]] && check_extra_config
+}
+
+pkg_pretend() {
+ layman_check_kernel_config
+}
+
+pkg_setup() {
+ layman_check_kernel_config
+}
+
+python_prepare_all() {
+ python_setup
+ esetup.py setup_plugins
+ distutils-r1_python_prepare_all
+ #rm "${S}"/"${PN}"/tests/dtest.py
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ for suite in layman/tests/external.py ; do
+ PYTHONPATH="." "${PYTHON}" ${suite} \
+ || die "test suite '${suite}' failed"
+ done
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/layman-9999.ebuild b/app-portage/layman/layman-9999.ebuild
new file mode 100644
index 000000000000..14439447be0f
--- /dev/null
+++ b/app-portage/layman/layman-9999.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+PYTHON_REQ_USE="xml(+)"
+
+inherit eutils distutils-r1 git-2 linux-info prefix
+
+DESCRIPTION="Tool to manage Gentoo overlays"
+HOMEPAGE="http://layman.sourceforge.net"
+SRC_URI=""
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/layman.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="bazaar cvs darcs +git gpg g-sorcery mercurial squashfs subversion sync-plugin-portage test"
+
+DEPEND="test? ( dev-vcs/subversion )
+ app-text/asciidoc"
+
+RDEPEND="
+ bazaar? ( dev-vcs/bzr )
+ cvs? ( dev-vcs/cvs )
+ darcs? ( dev-vcs/darcs )
+ git? ( dev-vcs/git )
+ mercurial? ( dev-vcs/mercurial )
+ g-sorcery? ( app-portage/g-sorcery )
+ subversion? (
+ || (
+ >=dev-vcs/subversion-1.5.4[http]
+ >=dev-vcs/subversion-1.5.4[webdav-neon]
+ >=dev-vcs/subversion-1.5.4[webdav-serf]
+ )
+ )
+ gpg? ( =dev-python/pyGPG-9999 )
+ sync-plugin-portage? ( >=sys-apps/portage-2.2.16[${PYTHON_USEDEP}] )
+ !sync-plugin-portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+ "
+
+layman_check_kernel_config() {
+ local CONFIG_CHECK
+ use squashfs && CONFIG_CHECK+=" ~BLK_DEV_LOOP ~SQUASHFS"
+ [[ -n ${CONFIG_CHECK} ]] && check_extra_config
+}
+
+pkg_pretend() {
+ layman_check_kernel_config
+}
+
+pkg_setup() {
+ layman_check_kernel_config
+}
+
+python_prepare_all() {
+ python_setup
+ esetup.py setup_plugins
+ distutils-r1_python_prepare_all
+ eprefixify etc/layman.cfg layman/config.py
+}
+
+python_test() {
+ suite=layman/tests/external.py
+ PYTHONPATH="." "${PYTHON}" ${suite} || die "test suite '${suite}' failed"
+ unset suite
+}
+
+python_compile_all() {
+ # override MAKEOPTS to prevent build failure
+ emake -j1 -C doc
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/layman
+ doins etc/layman.cfg
+
+ doman doc/layman.8
+ dohtml doc/layman.8.html
+
+ keepdir /var/lib/layman
+ keepdir /etc/layman/overlays
+}
+
+pkg_postinst() {
+ # now run layman's update utility
+ einfo "Running layman-updater..."
+ "${EROOT}"/usr/bin/layman-updater
+ einfo
+}
diff --git a/app-portage/layman/metadata.xml b/app-portage/layman/metadata.xml
new file mode 100644
index 000000000000..5f6237c6c7d9
--- /dev/null
+++ b/app-portage/layman/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+ <maintainer>
+ <email>twitch153@gentoo.org</email>
+ <name>Devan Franchini</name>
+ </maintainer>
+ <use>
+ <flag name="bazaar">Support <pkg>dev-vcs/bzr</pkg> based overlays</flag>
+ <flag name="cvs">Support <pkg>dev-vcs/cvs</pkg> based overlays</flag>
+ <flag name="darcs">Support <pkg>dev-vcs/darcs</pkg> based overlays</flag>
+ <flag name="g-sorcery">Support <pkg>app-portage/g-sorcery</pkg> based overlays</flag>
+ <flag name="git">Support <pkg>dev-vcs/git</pkg> based overlays</flag>
+ <flag name="gpg">Support <pkg>app-crypt/gnupg</pkg> signed overlays lists and manifests</flag>
+ <flag name="mercurial">Support <pkg>dev-vcs/mercurial</pkg> based overlays</flag>
+ <flag name="squashfs">Support mounting squashfs image overlays locally read-only</flag>
+ <flag name="subversion">Support <pkg>dev-vcs/subversion</pkg> based overlays</flag>
+ <flag name="sync-plugin-portage">Install the <pkg>sys-apps/portage</pkg> sync module</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-portage/lightweight-cvs-toolkit/Manifest b/app-portage/lightweight-cvs-toolkit/Manifest
new file mode 100644
index 000000000000..8c63709f4c8c
--- /dev/null
+++ b/app-portage/lightweight-cvs-toolkit/Manifest
@@ -0,0 +1 @@
+DIST lightweight-cvs-toolkit-1.tar.gz 4823 SHA256 aa3d3a76f9685b6f6f7c6b766f0061b4ed053b0bb15ef3ac9b5eb3ddf22e0cfa SHA512 5ba80de35e9176d3862e6edc174c77001a48e737c5b618d03cb532b89a3927b104002ae41fa62f4c26fd224684f832c5638650a9e44a50f2e2945e6d44228628 WHIRLPOOL 1c440b0a2a3f23a8fd1c3e8c704b6b81d10241f10f0f4565e769cfad96fb0bb9a04016d38810e1da3a12f7cec4b00ca1a35a3892c888cd28dc237f807285629c
diff --git a/app-portage/lightweight-cvs-toolkit/lightweight-cvs-toolkit-1.ebuild b/app-portage/lightweight-cvs-toolkit/lightweight-cvs-toolkit-1.ebuild
new file mode 100644
index 000000000000..8e74aadfab91
--- /dev/null
+++ b/app-portage/lightweight-cvs-toolkit/lightweight-cvs-toolkit-1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Tools to create partial CVS checkout, merge PRs and revert commits"
+HOMEPAGE="https://bitbucket.org/mgorny/lightweight-cvs-toolkit"
+SRC_URI="https://bitbucket.org/mgorny/${PN}/downloads/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/cvs
+ dev-vcs/git"
+
+src_install() {
+ dobin lcvs-*
+ dodoc README
+}
diff --git a/app-portage/lightweight-cvs-toolkit/metadata.xml b/app-portage/lightweight-cvs-toolkit/metadata.xml
new file mode 100644
index 000000000000..bbec287bb7bf
--- /dev/null
+++ b/app-portage/lightweight-cvs-toolkit/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/lightweight-cvs-toolkit/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/lightweight-cvs-toolkit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/maintainer-helper/Manifest b/app-portage/maintainer-helper/Manifest
new file mode 100644
index 000000000000..0d310dea00a6
--- /dev/null
+++ b/app-portage/maintainer-helper/Manifest
@@ -0,0 +1 @@
+DIST maintainer-helper-0.1.2.tar.bz2 99698 SHA256 820213b6699f5c19df8a0e69537e9197947021c55f9843e3061322e27a678b97 SHA512 a33418ff84290d1d7deed789f3a45c8d9d635f06a69257713b37983158c363c631002d85a68dbfccf94df400cf04059eba670e115aa474ee8ec0474627a58343 WHIRLPOOL 46438c70f0a1d595188a0643b5eac9e6c7af390b013058f5fd6e3f12ade8cdf62c6b67cb6688736162af88370f18701a80661d0bf638c3cd6f665a94cc8588ee
diff --git a/app-portage/maintainer-helper/maintainer-helper-0.1.2.ebuild b/app-portage/maintainer-helper/maintainer-helper-0.1.2.ebuild
new file mode 100644
index 000000000000..3247e485941e
--- /dev/null
+++ b/app-portage/maintainer-helper/maintainer-helper-0.1.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="An application to help with ebuild maintenance"
+HOMEPAGE="http://dev.gentoo.org/~jokey/maintainer-helper"
+SRC_URI="http://dev.gentoo.org/~jokey/maintainer-helper/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-qt/qtgui:4
+ >=dev-python/PyQt4-4.2[X]
+ >=sys-apps/pkgcore-0.3.1
+ >=dev-python/snakeoil-0.1_rc2"
+
+PYTHON_MODNAME="maintainer_helper"
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Currently gvim is hardcoded as editor, to change it, edit"
+ elog "${EROOT}$(python_get_sitedir -b -f)/maintainer_helper/backend/tasks.py"
+ elog "It will be a real setting in the next version"
+}
diff --git a/app-portage/maintainer-helper/metadata.xml b/app-portage/maintainer-helper/metadata.xml
new file mode 100644
index 000000000000..d9cd2cad66c2
--- /dev/null
+++ b/app-portage/maintainer-helper/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-portage/metadata.xml b/app-portage/metadata.xml
new file mode 100644
index 000000000000..3872164d80bc
--- /dev/null
+++ b/app-portage/metadata.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The app-portage category contains software which works with portage or
+ ebuilds.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie app-portage enthält Programme für das Arbeiten mit Portage
+ oder Ebuilds.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría app-portage contiene programas para trabajar con portage
+ o con ebuilds.
+ </longdescription>
+ <longdescription lang="ja">
+ app-portageカテゴリにはportageかebuildと使うソフトウェアが含まれます。
+ </longdescription>
+ <longdescription lang="nl">
+ De app-portage categorie bevat applicaties die samenwerken met portage of
+ direct met ebuilds te maken hebben.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm app-portage chứa các ứng dụng liên quan đến
+ portage.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria app-portage contiene programmi per portage o per le ebuilds.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria app-portage contém programas que funcionam com o portage
+ ou ebuilds.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria app-portage zawiera dodatkowe programy do pracy z systemem
+ Portage oraz ebuildami.
+ </longdescription>
+</catmetadata>
+
diff --git a/app-portage/metagen/Manifest b/app-portage/metagen/Manifest
new file mode 100644
index 000000000000..18b28356ba3c
--- /dev/null
+++ b/app-portage/metagen/Manifest
@@ -0,0 +1 @@
+DIST metagen-0.6.2.tar.gz 6100 SHA256 d1f6c7a24fa9f7f119c9309ed2ec217bc0fd3da48568417a46220a40e2c74201 SHA512 0ab8d7755259b870c995c471f366a976f4acc336dda4c2fa1c4e5b78b5aa701fb75d4dd88ac0ee069a231550b07b89b4a8f724c94ec791efe6c4c64b97ac19ff WHIRLPOOL fa6b85934e58cc5b73237fb619d64bd87df148b8f70fa5df2bbf94ef986f1ea3e693b7e3eb25b56cbe26fe35fff5102ba5787a22ec94800d3d328ccc9606473c
diff --git a/app-portage/metagen/metadata.xml b/app-portage/metagen/metadata.xml
new file mode 100644
index 000000000000..158dd115541a
--- /dev/null
+++ b/app-portage/metagen/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>neurogeek@gentoo.org</email>
+</maintainer>
+<maintainer>
+ <email>sping@gentoo.org</email>
+</maintainer>
+<longdescription>metagen creates metadata.xml files for ebuilds</longdescription>
+</pkgmetadata>
diff --git a/app-portage/metagen/metagen-0.6.2-r1.ebuild b/app-portage/metagen/metagen-0.6.2-r1.ebuild
new file mode 100644
index 000000000000..78b643f549a0
--- /dev/null
+++ b/app-portage/metagen/metagen-0.6.2-r1.ebuild
@@ -0,0 +1,35 @@
+# 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
+
+DESCRIPTION="metadata.xml generator for ebuilds"
+HOMEPAGE="http://cgit.gentoo.org/proj/metagen.git"
+SRC_URI="http://dev.gentoo.org/~neurogeek/metagen_releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 hppa ppc x86 ~amd64-linux ~x86-linux"
+
+IUSE=""
+DEPEND=">=dev-python/jaxml-3.01[${PYTHON_USEDEP}]
+ >=sys-apps/portage-2.1.9.42[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript metagen/main.py metagen
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/metagen.1
+}
+
+python_test() {
+ "${PYTHON}" -c "from metagen import metagenerator; metagenerator.do_tests()" || die
+}
diff --git a/app-portage/metagen/metagen-9999.ebuild b/app-portage/metagen/metagen-9999.ebuild
new file mode 100644
index 000000000000..0251fc9ac956
--- /dev/null
+++ b/app-portage/metagen/metagen-9999.ebuild
@@ -0,0 +1,36 @@
+# 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 git-r3
+
+DESCRIPTION="metadata.xml generator for ebuilds"
+HOMEPAGE="http://cgit.gentoo.org/proj/metagen.git"
+SRC_URI=""
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/metagen.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+
+IUSE=""
+DEPEND=">=dev-python/jaxml-3.01[${PYTHON_USEDEP}]
+ >=sys-apps/portage-2.1.9.42[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript metagen/main.py metagen
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ doman docs/metagen.1
+}
+
+python_test() {
+ "${PYTHON}" -c "from metagen import metagenerator; metagenerator.do_tests()" || die
+}
diff --git a/app-portage/mirrorselect/Manifest b/app-portage/mirrorselect/Manifest
new file mode 100644
index 000000000000..582e919961cd
--- /dev/null
+++ b/app-portage/mirrorselect/Manifest
@@ -0,0 +1,3 @@
+DIST mirrorselect-2.2.0.1.tar.gz 13138 SHA256 029a09073d6a4363f060912d257f8f118bb3a061c05db532bde1c05816affab1 SHA512 08216c381b70856dd56e903a208bc0ed202826b89136dd0b1cf69bd7cf2afa2df608ac2a0aed5161a56f51cf4bcb51f3826ad55b3a26e671ba2c68490c9cffad WHIRLPOOL 6925c4dc514fdd5f7c50427627b1ef6babba99c4e98d00d7144489ba16c3740ba967461847d99cd080805e6aebd44ca51ca85bd117ffdb52ba3cdf511fac0c69
+DIST mirrorselect-2.2.2.tar.gz 15964 SHA256 343089675448e8928ccc74f0eed285f3034a9252de4d1b8980cacf3047cca20f SHA512 91ce16d236418ba186c447c6497684c4138afd4279a0ba95ee0f069309e8ce086a5a4ce4715ef21275362b7c3772924d422d7711d188d40c1e0b90f773765cf9 WHIRLPOOL 0625ac6f01ebdbf6e78a1c1f42a960afb8b2911297b07ca735dcf51615697a3a3926f3dc62925501b8fce6170d94785f6df57147280011b3643746200fb6001d
+DIST mirrorselect-test 102403 SHA256 add93012c44824626a7e05eed2186dcfb60e0b696d4ad7910fdb9eb31c93d3b5 SHA512 f43d92e9bf7e77c8f04449a786cb659bdfc07257892caca842ab4a63eb9c5351fa48130c2e163857f3233a595cea7b83f5ea9fa879b782e15b73beb62f0e5e27 WHIRLPOOL ca9be67338986403d87db7de04d3d1b3ecd483f2a104668a7c23e8e2ef1141a31394d12d3cd4121ec25436c967aac960f3652c20f20d2c89fdde6dd547cd9f8a
diff --git a/app-portage/mirrorselect/files/mirrorselect-2.2.2-Add-outputmodefunctionassignment.patch b/app-portage/mirrorselect/files/mirrorselect-2.2.2-Add-outputmodefunctionassignment.patch
new file mode 100644
index 000000000000..d170103a4657
--- /dev/null
+++ b/app-portage/mirrorselect/files/mirrorselect-2.2.2-Add-outputmodefunctionassignment.patch
@@ -0,0 +1,24 @@
+From e9dea3a98aa5031fecf1c7115de77e948e8d07ca Mon Sep 17 00:00:00 2001
+From: Brian Dolbec <dolsen@gentoo.org>
+Date: Tue, 27 Jan 2015 10:19:05 -0800
+Subject: [PATCH] Add missed output mode function assignment.
+
+---
+ mirrorselect/extractor.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mirrorselect/extractor.py b/mirrorselect/extractor.py
+index 59efad1..06dce6c 100644
+--- a/mirrorselect/extractor.py
++++ b/mirrorselect/extractor.py
+@@ -107,6 +107,7 @@ class Extractor(object):
+ # setup the ssl-fetch ouptut map
+ connector_output = {
+ 'info':self.output.write,
++ 'debug': self.output.write,
+ 'error': self.output.print_err,
+ 'kwargs-info': {'level': 2},
+ 'kwargs-debug': {'level':2},
+--
+2.2.2
+
diff --git a/app-portage/mirrorselect/files/mirrorselect-2.2.2-Update-for-ssl-fetch-api-change.patch b/app-portage/mirrorselect/files/mirrorselect-2.2.2-Update-for-ssl-fetch-api-change.patch
new file mode 100644
index 000000000000..2e5fd93c09cb
--- /dev/null
+++ b/app-portage/mirrorselect/files/mirrorselect-2.2.2-Update-for-ssl-fetch-api-change.patch
@@ -0,0 +1,24 @@
+From 9ec1e9649c980d32d23aab40eff3cac5e8f6f555 Mon Sep 17 00:00:00 2001
+From: Brian Dolbec <dolsen@gentoo.org>
+Date: Mon, 26 Jan 2015 18:23:05 -0800
+Subject: [PATCH] Update for ssl-fetch api change
+
+---
+ mirrorselect/extractor.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mirrorselect/extractor.py b/mirrorselect/extractor.py
+index ec5f299..59efad1 100644
+--- a/mirrorselect/extractor.py
++++ b/mirrorselect/extractor.py
+@@ -109,6 +109,7 @@ class Extractor(object):
+ 'info':self.output.write,
+ 'error': self.output.print_err,
+ 'kwargs-info': {'level': 2},
++ 'kwargs-debug': {'level':2},
+ 'kwargs-error': {'level':0},
+ }
+
+--
+2.2.2
+
diff --git a/app-portage/mirrorselect/metadata.xml b/app-portage/mirrorselect/metadata.xml
new file mode 100644
index 000000000000..413349cad7cb
--- /dev/null
+++ b/app-portage/mirrorselect/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <longdescription lang="en">
+ This utility is used to select the fastest mirror (distfiles) and
+ provide a nicer front-end for mirror selection
+ (both rsync + distfiles) to a user.
+ </longdescription>
+</pkgmetadata>
diff --git a/app-portage/mirrorselect/mirrorselect-2.2.0.1.ebuild b/app-portage/mirrorselect/mirrorselect-2.2.0.1.ebuild
new file mode 100644
index 000000000000..6305d869df21
--- /dev/null
+++ b/app-portage/mirrorselect/mirrorselect-2.2.0.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to help select distfiles mirrors for Gentoo"
+HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
+SRC_URI="http://dev.gentoo.org/~dolsen/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux"
+
+RDEPEND="
+ dev-util/dialog
+ net-analyzer/netselect
+ "
+
+python_prepare_all() {
+ python_export_best
+ eprefixify setup.py mirrorselect/main.py
+ echo Now setting version... VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version || die "setup.py set_version failed"
+ distutils-r1_python_prepare_all
+}
diff --git a/app-portage/mirrorselect/mirrorselect-2.2.2-r2.ebuild b/app-portage/mirrorselect/mirrorselect-2.2.2-r2.ebuild
new file mode 100644
index 000000000000..83dc918bf7c2
--- /dev/null
+++ b/app-portage/mirrorselect/mirrorselect-2.2.2-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to help select distfiles mirrors for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Mirrorselect"
+SRC_URI="http://dev.gentoo.org/~dolsen/releases/mirrorselect/${P}.tar.gz
+ http://dev.gentoo.org/~dolsen/releases/mirrorselect/mirrorselect-test
+ "
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+
+RDEPEND="
+ dev-util/dialog
+ net-analyzer/netselect
+ >=dev-python/ssl-fetch-0.3[${PYTHON_USEDEP}]
+ "
+
+PATCHES=(
+ "${FILESDIR}/mirrorselect-2.2.2-Update-for-ssl-fetch-api-change.patch"
+ "${FILESDIR}/mirrorselect-2.2.2-Add-outputmodefunctionassignment.patch"
+)
+
+python_prepare_all() {
+ python_setup
+ eprefixify setup.py mirrorselect/main.py
+ echo Now setting version... VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version || die "setup.py set_version failed"
+ distutils-r1_python_prepare_all
+}
diff --git a/app-portage/mirrorselect/mirrorselect-2.2.2.ebuild b/app-portage/mirrorselect/mirrorselect-2.2.2.ebuild
new file mode 100644
index 000000000000..3cc5d7750e88
--- /dev/null
+++ b/app-portage/mirrorselect/mirrorselect-2.2.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit eutils distutils-r1 prefix
+
+DESCRIPTION="Tool to help select distfiles mirrors for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Mirrorselect"
+SRC_URI="http://dev.gentoo.org/~dolsen/releases/mirrorselect/${P}.tar.gz
+ http://dev.gentoo.org/~dolsen/releases/mirrorselect/mirrorselect-test
+ "
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+
+RDEPEND="
+ dev-util/dialog
+ net-analyzer/netselect
+ >=dev-python/ssl-fetch-0.2[${PYTHON_USEDEP}]
+ <dev-python/ssl-fetch-0.3[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ python_export_best
+ eprefixify setup.py mirrorselect/main.py
+ echo Now setting version... VERSION="${PVR}" "${PYTHON}" setup.py set_version
+ VERSION="${PVR}" "${PYTHON}" setup.py set_version || die "setup.py set_version failed"
+ distutils-r1_python_prepare_all
+}
diff --git a/app-portage/mirrorselect/mirrorselect-9999.ebuild b/app-portage/mirrorselect/mirrorselect-9999.ebuild
new file mode 100644
index 000000000000..a5cd0ebe6440
--- /dev/null
+++ b/app-portage/mirrorselect/mirrorselect-9999.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+PYTHON_REQ_USE="xml"
+
+inherit eutils distutils-r1 git-2 prefix
+
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/mirrorselect.git"
+EGIT_MASTER="master"
+
+DESCRIPTION="Tool to help select distfiles mirrors for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Mirrorselect"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+KEYWORDS=""
+
+RDEPEND="
+ dev-util/dialog
+ net-analyzer/netselect
+ =dev-python/ssl-fetch-9999[${PYTHON_USEDEP}]
+ "
+
+python_prepare_all() {
+ python_export_best
+ eprefixify setup.py mirrorselect/main.py
+ echo Now setting version... VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version
+ VERSION="9999-${EGIT_VERSION}" "${PYTHON}" setup.py set_version || die "setup.py set_version failed"
+ distutils-r1_python_prepare_all
+}
+
+pkg_postinst() {
+ distutils-r1_pkg_postinst
+
+ einfo "This is a development version."
+ einfo "Please report any bugs you encounter to:"
+ einfo "https://bugs.gentoo.org/"
+}
diff --git a/app-portage/overlint/Manifest b/app-portage/overlint/Manifest
new file mode 100644
index 000000000000..7b3553a43a0d
--- /dev/null
+++ b/app-portage/overlint/Manifest
@@ -0,0 +1,2 @@
+DIST overlint-0.5.2.tar.gz 2701 SHA256 3d6db0fcd73bbc4a3f31755f61751cc15a2c4fa3334ef5dc1bffa7d574a61ced SHA512 aae78ed2d3f02e83ced3dbe8ace468adb204b80e040b979a97d92af0c91e79019f2ed14e6e3655ffa8137c55c8fd1f054c27229819ae7908632586acb284f3ea WHIRLPOOL fbe3c646d9b36bf2e5cf53583ade3f64c768508b2ca11aa66032d0f15e828c1297f271db3f845523c88204b5005ca4d335080e81862bc8d1c140395431a937d2
+DIST overlint-0.5.3.tar.gz 2706 SHA256 c770527fb5a04caccaea1a9d787b7d8d3415c1401374800af065075c8eb38d5f SHA512 348b59e5f013b1c4060312208fdc7fddad3252d6f386513d743b7685d8aafbf76ac626fb9000c2d47c362b85d223dea5f59b4cfec55dbf24a52185c5b943a149 WHIRLPOOL b8fab05a8b35d245f373ad89723c37d6043576bba7975631c856694fe40a9ef35310a70373f88013836056fe801712ccd8dd6eaa9bea954e18056c5fda3c8b29
diff --git a/app-portage/overlint/metadata.xml b/app-portage/overlint/metadata.xml
new file mode 100644
index 000000000000..16bcc9f800a2
--- /dev/null
+++ b/app-portage/overlint/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>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/overlint/overlint-0.5.2.ebuild b/app-portage/overlint/overlint-0.5.2.ebuild
new file mode 100644
index 000000000000..d6f6d35bac01
--- /dev/null
+++ b/app-portage/overlint/overlint-0.5.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple tool for static analysis of overlays"
+HOMEPAGE="http://cgit.gentoo.org/proj/overlint.git"
+SRC_URI="http://www.hartwork.org/public/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-apps/portage"
diff --git a/app-portage/overlint/overlint-0.5.3.ebuild b/app-portage/overlint/overlint-0.5.3.ebuild
new file mode 100644
index 000000000000..a86945b53401
--- /dev/null
+++ b/app-portage/overlint/overlint-0.5.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple tool for static analysis of overlays"
+HOMEPAGE="http://cgit.gentoo.org/proj/overlint.git"
+SRC_URI="http://www.hartwork.org/public/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-apps/portage"
diff --git a/app-portage/perl-info/Manifest b/app-portage/perl-info/Manifest
new file mode 100644
index 000000000000..5aa2206b5ed2
--- /dev/null
+++ b/app-portage/perl-info/Manifest
@@ -0,0 +1 @@
+DIST perl-info-0.16.tar.gz 2058 SHA256 1b562f4f192bf7761f394a3ec52cfe183e04d338382db7d09e27eb7990c59fca SHA512 4e37b2496d8a9490de9d105fcaf74ed24d7d2809a4aea4709d0f15811736a8101edf9a4274c82448c24be37692455350e490d29560e616d688da1e6d72d38483 WHIRLPOOL cb32c7b126421483bd601e81345e6d12c46165748b77500556ebc5bc47d472e61796f3bcad20e253a50951281567a207425d47d1ae4c2aa69093a10a7f4d2053
diff --git a/app-portage/perl-info/metadata.xml b/app-portage/perl-info/metadata.xml
new file mode 100644
index 000000000000..801e9385a1e0
--- /dev/null
+++ b/app-portage/perl-info/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>perl</herd>
+</pkgmetadata>
diff --git a/app-portage/perl-info/perl-info-0.16.ebuild b/app-portage/perl-info/perl-info-0.16.ebuild
new file mode 100644
index 000000000000..d4aeccbed712
--- /dev/null
+++ b/app-portage/perl-info/perl-info-0.16.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="Tool to gather relevant perl data useful for bugreports; 'emerge --info' for perl"
+HOMEPAGE="http://www.gentoo.org/proj/en/perl/"
+SRC_URI="mirror://gentoo/${P}.tar.gz
+ http://dev.gentoo.org/~tove/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ~ia64 ppc sparc x86"
+IUSE=""
+
+DEPEND="dev-lang/perl
+ virtual/perl-Term-ANSIColor
+ >=dev-perl/PortageXS-0.02.04"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ dobin ${PN} || die
+}
diff --git a/app-portage/pfl/Manifest b/app-portage/pfl/Manifest
new file mode 100644
index 000000000000..50375e1b0239
--- /dev/null
+++ b/app-portage/pfl/Manifest
@@ -0,0 +1 @@
+DIST pfl-2.4.tar.bz2 6274 SHA256 7e09db7fe79a2c0cdd8faf39ff05069f5c03b5f994168ecb0395c628b8d5f297 SHA512 a33712bc38d6e02474856dc3a9eac0d39be032a9554f2510815602e94648cd6bf499111a3354568788ddcc0a653a2ac54fac56b0af03fb1cf822ec44ffcb1d72 WHIRLPOOL 3091e30199313c27b88f35563825c2add7bcee972337ef8936636342442b663d12d5ad3c178342812906476071d7224ff134eacdabbf9f7478d7823d793b128f
diff --git a/app-portage/pfl/files/e-file-20110906-http-response.patch b/app-portage/pfl/files/e-file-20110906-http-response.patch
new file mode 100644
index 000000000000..672cde5f5375
--- /dev/null
+++ b/app-portage/pfl/files/e-file-20110906-http-response.patch
@@ -0,0 +1,11 @@
+--- bin/e-file 2013-10-14 21:33:54.421701259 +0200
++++ bin/e-file 2013-10-14 21:34:10.004702370 +0200
+@@ -25,7 +25,7 @@
+
+ URL="http://www.portagefilelist.de/index.php/Special:PFLQuery2?file=$1&searchfile=lookup&lookup=file&txt"
+
+-curl -s $URL | awk -v isgentoo=$isgentoo '
++curl -s -f $URL | awk -v isgentoo=$isgentoo '
+ BEGIN{
+ FOUND=0
+ if(isgentoo){
diff --git a/app-portage/pfl/files/e-file-20110906-portageq.patch b/app-portage/pfl/files/e-file-20110906-portageq.patch
new file mode 100644
index 000000000000..2a65519f459b
--- /dev/null
+++ b/app-portage/pfl/files/e-file-20110906-portageq.patch
@@ -0,0 +1,44 @@
+--- bin/e-file
++++ bin/e-file
+@@ -16,11 +16,11 @@
+ exit 1
+ fi
+
+-if type emerge >/dev/null 2>&1; then
++if type portageq >/dev/null 2>&1; then
+ isgentoo=1
+ else
+ isgentoo=0
+- echo 'WARNING: "emerge" no found. If your system is not gentoo, a part of function will not available!' >&2
++ echo 'WARNING: "portageq" no found. If your system is not gentoo, a part of function will not available!' >&2
+ fi
+
+ URL="http://www.portagefilelist.de/index.php/Special:PFLQuery2?file=$1&searchfile=lookup&lookup=file&txt"
+@@ -29,8 +29,7 @@
+ BEGIN{
+ FOUND=0
+ if(isgentoo){
+- "emerge --info | grep PORTDIR" | getline
+- split($0,PORTDIR,/\"/)
++ "portageq get_repo_path $(portageq envvar EROOT) gentoo" | getline PORTDIR
+ }
+ }
+ {
+@@ -75,7 +74,7 @@
+ }
+
+ NF=0
+- cmd="(grep -h HOMEPAGE\\= " PORTDIR[2] "/" pkg "/*.ebuild | tail -n 1)2>/dev/null"
++ cmd="(grep -h HOMEPAGE\\= " PORTDIR "/" pkg "/*.ebuild | tail -n 1)2>/dev/null"
+ cmd | getline
+ if(NF==0){
+ HOMEPAGE=""
+@@ -85,7 +84,7 @@
+ }
+
+ NF=0
+- cmd="(grep -h DESCRIPTION " PORTDIR[2] "/" pkg "/*.ebuild | tail -n 1)2>/dev/null"
++ cmd="(grep -h DESCRIPTION " PORTDIR "/" pkg "/*.ebuild | tail -n 1)2>/dev/null"
+ cmd | getline
+ if(NF==0){
+ DESCRIPTION=""
diff --git a/app-portage/pfl/files/pfl-2.4-reponame.patch b/app-portage/pfl/files/pfl-2.4-reponame.patch
new file mode 100644
index 000000000000..a9041d46b329
--- /dev/null
+++ b/app-portage/pfl/files/pfl-2.4-reponame.patch
@@ -0,0 +1,11 @@
+--- pfl/pfl.py (Revision 68)
++++ pfl/pfl.py (Arbeitskopie)
+@@ -226,6 +226,8 @@
+ v = '%s-%s' % (v, r)
+
+ repo, = self._vardbapi.aux_get(cpv, ['repository'])
++ if len(repo) == 0:
++ repo, = self._vardbapi.aux_get(cpv, ['REPOSITORY'])
+
+ # timestamp of merge
+ mergedstamp = self._vardbapi.aux_get(cpv, ['_mtime_'])[0]
diff --git a/app-portage/pfl/metadata.xml b/app-portage/pfl/metadata.xml
new file mode 100644
index 000000000000..d18909eadb68
--- /dev/null
+++ b/app-portage/pfl/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>billie@gentoo.org</email>
+ <name>Daniel Pielmeier</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email>bugs@portagefilelist.de</email>
+ <description>Upstream author, please CC on bugs</description>
+ </maintainer>
+ </upstream>
+ <use>
+ <flag name='network-cron'>Adds a cron job which does a weekly submit of the package database</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-portage/pfl/pfl-2.4-r4.ebuild b/app-portage/pfl/pfl-2.4-r4.ebuild
new file mode 100644
index 000000000000..2ceba845f3ae
--- /dev/null
+++ b/app-portage/pfl/pfl-2.4-r4.ebuild
@@ -0,0 +1,48 @@
+# 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="xml"
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Searchable online file/package database for Gentoo"
+HOMEPAGE="http://www.portagefilelist.de"
+SRC_URI="http://files.portagefilelist.de/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x64-freebsd ~amd64-linux ~x86-linux"
+IUSE="+network-cron"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ net-misc/curl
+ sys-apps/portage[${PYTHON_USEDEP}]"
+
+src_prepare() {
+ epatch "${FILESDIR}"/e-file-20110906-http-response.patch \
+ "${FILESDIR}"/e-file-20110906-portageq.patch \
+ "${FILESDIR}"/pfl-2.4-reponame.patch
+}
+
+python_install_all() {
+ if use network-cron ; then
+ exeinto /etc/cron.weekly
+ doexe cron/pfl
+ fi
+
+ keepdir /var/lib/${PN}
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ if [[ ! -e "${EROOT%/}/var/lib/${PN}/pfl.info" ]]; then
+ touch "${EROOT%/}/var/lib/${PN}/pfl.info" || die
+ chown -R 0:portage "${EROOT%/}/var/lib/${PN}" || die
+ chmod 775 "${EROOT%/}/var/lib/${PN}" || die
+ fi
+}
diff --git a/app-portage/pms-test-suite/Manifest b/app-portage/pms-test-suite/Manifest
new file mode 100644
index 000000000000..cba23b3f9746
--- /dev/null
+++ b/app-portage/pms-test-suite/Manifest
@@ -0,0 +1 @@
+DIST pms-test-suite-0.2.tar.bz2 21962 SHA256 104a757edf5b223ff38885691b332420da82a0c62b80469787883579385aafea SHA512 66e5d166458f6a1082c8c53cb52a679d25d26187369c25f2df16519d0b44ad447d12c726abaca45187965bb4263bc063ef969b391ae0912c449907f0b8e79b68 WHIRLPOOL dd92de5d204501c79538f5d007e919ecbd6c78daff0377115df3d022e7b46233d1b2b97278081996471044f5b42f5350fd6f8eeef90a85097ea578e949f628de
diff --git a/app-portage/pms-test-suite/metadata.xml b/app-portage/pms-test-suite/metadata.xml
new file mode 100644
index 000000000000..38dc3aae0e72
--- /dev/null
+++ b/app-portage/pms-test-suite/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/pms-test-suite/issues/</bugs-to>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/pms-test-suite/pms-test-suite-0.2.ebuild b/app-portage/pms-test-suite/pms-test-suite-0.2.ebuild
new file mode 100644
index 000000000000..3b6d1087dc4f
--- /dev/null
+++ b/app-portage/pms-test-suite/pms-test-suite-0.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND='2:2.6'
+# Python ABIs are not supported by pkgcore
+#SUPPORT_PYTHON_ABIS=1
+# Python3 is not supported by dbus & gobject
+RESTRICT_PYTHON_ABIS='2.4 2.5 3.*'
+DISTUTILS_SRC_TEST=setup.py
+
+inherit base distutils
+
+DESCRIPTION="A test suite for Package Manager PMS compliance"
+HOMEPAGE="http://www.gentoo.org/proj/en/qa/pms/pms-test-suite.xml"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=app-portage/gentoopm-0.1.5
+ dev-python/dbus-python
+ dev-python/pygobject:2"
+DEPEND="doc? ( dev-python/epydoc )
+ test? ( >=sys-apps/portage-2.1.10.3
+ sys-apps/pkgcore
+ >=sys-apps/paludis-0.64.2[python] )"
+
+# broken atm
+RESTRICT=test
+
+PYTHON_MODNAME=pmstestsuite
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ base_src_prepare
+ distutils_src_prepare
+}
+
+src_compile() {
+ distutils_src_compile
+
+ if use doc; then
+ "$(PYTHON)" setup.py "${_DISTUTILS_GLOBAL_OPTIONS[@]}" doc || die
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc; then
+ dohtml -r doc/*
+ fi
+}
diff --git a/app-portage/pms-test-suite/pms-test-suite-9999.ebuild b/app-portage/pms-test-suite/pms-test-suite-9999.ebuild
new file mode 100644
index 000000000000..f0709db09569
--- /dev/null
+++ b/app-portage/pms-test-suite/pms-test-suite-9999.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND='2:2.6'
+# Python ABIs are not supported by pkgcore
+#SUPPORT_PYTHON_ABIS=1
+# Python3 is not supported by dbus & gobject
+RESTRICT_PYTHON_ABIS='2.4 2.5 3.*'
+DISTUTILS_SRC_TEST=setup.py
+
+inherit base distutils
+
+#if LIVE
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/${PN}.git
+ http://anongit.gentoo.org/git/proj/${PN}.git
+ http://bitbucket.org/mgorny/${PN}.git"
+inherit git-2
+#endif
+
+DESCRIPTION="A test suite for Package Manager PMS compliance"
+HOMEPAGE="http://www.gentoo.org/proj/en/qa/pms/pms-test-suite.xml"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=app-portage/gentoopm-0.1.5
+ dev-python/dbus-python
+ dev-python/pygobject:2"
+DEPEND="doc? ( dev-python/epydoc )
+ test? ( >=sys-apps/portage-2.1.10.3
+ sys-apps/pkgcore
+ >=sys-apps/paludis-0.64.2[python] )"
+
+PYTHON_MODNAME=pmstestsuite
+
+#if LIVE
+KEYWORDS=
+SRC_URI=
+#endif
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ base_src_prepare
+ distutils_src_prepare
+}
+
+src_compile() {
+ distutils_src_compile
+
+ if use doc; then
+ "$(PYTHON)" setup.py "${_DISTUTILS_GLOBAL_OPTIONS[@]}" doc || die
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc; then
+ dohtml -r doc/*
+ fi
+}
diff --git a/app-portage/portage-utils/Manifest b/app-portage/portage-utils/Manifest
new file mode 100644
index 000000000000..27d9ea50834f
--- /dev/null
+++ b/app-portage/portage-utils/Manifest
@@ -0,0 +1,4 @@
+DIST portage-utils-0.53.tar.xz 404040 SHA256 876653e795af89aeadfac1206403b1ed9543f3ac75232459d4e597e20f236c04 SHA512 5965c39572dd476bde2668a4a643d6c44da47d822f75201efbaf10a8dbb02a5bb0210ef95519b99d762106caf6f3440f78312327516d33fa8551139104483259 WHIRLPOOL 115f9e67962b890e9027ba2b16ffb7c282426a514a0272e279fb2d171152cd54638e6fb94df4121f72d84b59ed3713e05d177ed29cacddd0070d555671d21e42
+DIST portage-utils-0.54.tar.xz 510528 SHA256 d3cd50e822253008c83e871ee53e83f4fa3dcfbfa25799ec48a8dcf37ac67928 SHA512 4e7b01cff96744f767a0892df5fd2f28c17a619aac1912a2f1ebb91c0706367cb02eb478e9192e6f4fb9a22956d8fb6256497b03086938f26efcd0ba27e8c1ff WHIRLPOOL 04ea363f9867896226040c9011168ea2755f67706400f9a1d183e1a8a46e97dd9f8ff3e225c933d8c01d609da72c2a2ed7ec15b050bee4c5fbd12f187b1dabf1
+DIST portage-utils-0.55.tar.xz 513336 SHA256 4754aaeda32cc9aaf2fa3943badde51caf84ccf2e03129bd2dc2a5459936baff SHA512 25a5ceabc03b264ff2210ced8307c5a73c739ea3be74ba65f59c70372255e055ccbe25f565420ee1d61490b0baa43d6af8151f8c0a47b3c67a4ff7fff1fce2d0 WHIRLPOOL b437d09cbda38ede3d233639cbada731ac5beef5201db1de37bc80f0041935b141454205d89e31db4b2ddf9c82ec356343d1ce4ee6f937f1679f95225da8910d
+DIST portage-utils-0.56.tar.xz 513832 SHA256 4df7323fb2667dd9bcee0f2d169c01ed8600aa6196118e6cd3a10cfe99852bbf SHA512 f2136a7df4cd91499b135fbf000f81a71177d5a39b4da2db484ab0f9492d152eaa72a5fee0e56d4b58611462e251905e554f5e41890a749f05d19e50c16c77b6 WHIRLPOOL af0a96ca3bf2dd39335317829aa8aff110a63042c415368400977e974cc21163da7eb76f7d53fcd05e133fd8a8568255ba022a32f1b174bda0dcb15b5f1476b9
diff --git a/app-portage/portage-utils/files/portage-utils-0.56-qcheck-tz.patch b/app-portage/portage-utils/files/portage-utils-0.56-qcheck-tz.patch
new file mode 100644
index 000000000000..5b493b680bac
--- /dev/null
+++ b/app-portage/portage-utils/files/portage-utils-0.56-qcheck-tz.patch
@@ -0,0 +1,31 @@
+From 359fe5097ca531291a2cbb878dc6940351a7a358 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 11 Jun 2015 09:51:22 +0000
+Subject: [PATCH] tests: qcheck: fix timezone handling
+
+Make sure the stamps are pinned to UTC rather than using the active TZ.
+
+URL: https://bugs.gentoo.org/551718
+Reported-by: Jeroen Roovers <jer@gentoo.org>
+---
+ tests/qcheck/dotest | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/qcheck/dotest b/tests/qcheck/dotest
+index 965a5b5..9122321 100755
+--- a/tests/qcheck/dotest
++++ b/tests/qcheck/dotest
+@@ -10,8 +10,8 @@ export Q_VDB=/
+ # This is the "valid" mtime the test packages have hardcoded in the CONTENTS
+ # files. The stamp is the CONTENTS while the touch date is the corresponding
+ # unpacked date.
+-STAMP=1398954900 DATE=201405011035
+-find "${ROOT}" -exec touch -h -t "${DATE}" {} +
++STAMP=1398954900 DATE='2014-05-01T14:35:00Z'
++find "${ROOT}" -exec touch -h -d "${DATE}" {} +
+
+ mktmpdir
+
+--
+2.4.1
+
diff --git a/app-portage/portage-utils/files/portage-utils-0.56-qlop-tz.patch b/app-portage/portage-utils/files/portage-utils-0.56-qlop-tz.patch
new file mode 100644
index 000000000000..d812daa574bc
--- /dev/null
+++ b/app-portage/portage-utils/files/portage-utils-0.56-qlop-tz.patch
@@ -0,0 +1,39 @@
+From 286688cb68c9989f697203ca779b08fad23366db Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 12 Jun 2015 05:05:41 -0400
+Subject: [PATCH] tests: force TZ to UTC for everyone
+
+This should make test outputs more stable across systems.
+
+URL: https://bugs.gentoo.org/551806
+Reported-by: Nikoli <nikoli@gmx.us>
+---
+ tests/init.sh | 2 ++
+ tests/qlop/list01.good | 4 ++--
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tests/init.sh b/tests/init.sh
+index b3f634e..11fd379 100644
+--- a/tests/init.sh
++++ b/tests/init.sh
+@@ -33,6 +33,8 @@ setup_env
+ unset ROOT PORTAGE_CONFIGROOT PORTAGE_QUIET
+ # but make sure we don't implicitly rely on user's setup
+ export PORTAGE_CONFIGROOT="${ab}/not/a/real/path"
++# Always use UTC for timestamps to keep tests stable. #551806
++export TZ='UTC 0'
+
+ q -i -q
+
+diff --git a/tests/qlop/list01.good b/tests/qlop/list01.good
+index 458c751..fc8683c 100644
+--- a/tests/qlop/list01.good
++++ b/tests/qlop/list01.good
+@@ -1,2 +1,2 @@
+-Thu Jan 27 00:42:17 2005 >>> rsync://192.168.0.5/gentoo-portage
+-Sat May 16 04:21:00 2015 >>> gentoo
++Thu Jan 27 05:42:17 2005 >>> rsync://192.168.0.5/gentoo-portage
++Sat May 16 08:21:00 2015 >>> gentoo
+--
+2.4.1
+
diff --git a/app-portage/portage-utils/files/post_sync b/app-portage/portage-utils/files/post_sync
new file mode 100755
index 000000000000..e94ea5d0257a
--- /dev/null
+++ b/app-portage/portage-utils/files/post_sync
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Copyright 2006-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+for f in /etc/portage/postsync.d/* ; do
+ [ -x "${f}" ] && "${f}"
+done
+:
diff --git a/app-portage/portage-utils/files/q-reinitialize b/app-portage/portage-utils/files/q-reinitialize
new file mode 100644
index 000000000000..7bca1a86b3ae
--- /dev/null
+++ b/app-portage/portage-utils/files/q-reinitialize
@@ -0,0 +1,3 @@
+#!/bin/sh
+[ -x /usr/bin/q ] && /usr/bin/q -r ${PORTAGE_QUIET:+-q}
+:
diff --git a/app-portage/portage-utils/metadata.xml b/app-portage/portage-utils/metadata.xml
new file mode 100644
index 000000000000..5480650ca459
--- /dev/null
+++ b/app-portage/portage-utils/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>portage-utils@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/app-portage/portage-utils/portage-utils-0.53.ebuild b/app-portage/portage-utils/portage-utils-0.53.ebuild
new file mode 100644
index 000000000000..657cb621349f
--- /dev/null
+++ b/app-portage/portage-utils/portage-utils-0.53.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit flag-o-matic toolchain-funcs eutils
+
+DESCRIPTION="small and fast portage helper tools written in C"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Portage-utils"
+SRC_URI="mirror://gentoo/${P}.tar.xz
+ http://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="nls static"
+
+DEPEND="app-arch/xz-utils"
+RDEPEND=""
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # Avoid slow configure+gnulib+make if on an up-to-date Linux system
+ if use prefix || ! use kernel_linux || \
+ has_version '<sys-libs/glibc-2.10'
+ then
+ econf --with-eprefix="${EPREFIX}"
+ else
+ tc-export CC
+ fi
+}
+
+src_compile() {
+ emake NLS=$(usex nls)
+}
+
+src_install() {
+ default
+
+ exeinto /etc/portage/bin
+ doexe "${FILESDIR}"/post_sync
+ insinto /etc/portage/postsync.d
+ doins "${FILESDIR}"/q-reinitialize
+
+ # Portage fixes shebangs, we just need to fix the paths in the files
+ sed -i \
+ -e "s:\(/etc/portage/postsync.d\|/usr/bin/q\):${EPREFIX}&:g" \
+ "${ED}"/etc/portage/bin/post_sync \
+ "${ED}"/etc/portage/postsync.d/q-reinitialize || die
+}
+
+pkg_preinst() {
+ # preserve +x bit on postsync files #301721
+ local x
+ pushd "${ED}" >/dev/null
+ for x in etc/portage/postsync.d/* ; do
+ [[ -x ${EROOT}/${x} ]] && chmod +x "${x}"
+ done
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog "${EPREFIX}/etc/portage/postsync.d/q-reinitialize has been installed for convenience"
+ elog "If you wish for it to be automatically run at the end of every --sync:"
+ elog " # chmod +x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ elog "Normally this should only take a few seconds to run but file systems"
+ elog "such as ext3 can take a lot longer. To disable, simply do:"
+ elog " # chmod -x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ fi
+}
diff --git a/app-portage/portage-utils/portage-utils-0.54.ebuild b/app-portage/portage-utils/portage-utils-0.54.ebuild
new file mode 100644
index 000000000000..f26e63454c04
--- /dev/null
+++ b/app-portage/portage-utils/portage-utils-0.54.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit flag-o-matic toolchain-funcs eutils
+
+DESCRIPTION="small and fast portage helper tools written in C"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Portage-utils"
+SRC_URI="mirror://gentoo/${P}.tar.xz
+ http://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="nls static"
+
+DEPEND="app-arch/xz-utils"
+RDEPEND=""
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # Avoid slow configure+gnulib+make if on an up-to-date Linux system
+ if use prefix || ! use kernel_linux || \
+ has_version '<sys-libs/glibc-2.10'
+ then
+ econf --with-eprefix="${EPREFIX}"
+ else
+ tc-export CC
+ fi
+}
+
+src_compile() {
+ emake NLS=$(usex nls)
+}
+
+src_install() {
+ default
+
+ exeinto /etc/portage/bin
+ doexe "${FILESDIR}"/post_sync
+ insinto /etc/portage/postsync.d
+ doins "${FILESDIR}"/q-reinitialize
+
+ # Portage fixes shebangs, we just need to fix the paths in the files
+ sed -i \
+ -e "s:\(/etc/portage/postsync.d\|/usr/bin/q\):${EPREFIX}&:g" \
+ "${ED}"/etc/portage/bin/post_sync \
+ "${ED}"/etc/portage/postsync.d/q-reinitialize || die
+}
+
+pkg_preinst() {
+ # preserve +x bit on postsync files #301721
+ local x
+ pushd "${ED}" >/dev/null
+ for x in etc/portage/postsync.d/* ; do
+ [[ -x ${EROOT}/${x} ]] && chmod +x "${x}"
+ done
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog "${EPREFIX}/etc/portage/postsync.d/q-reinitialize has been installed for convenience"
+ elog "If you wish for it to be automatically run at the end of every --sync:"
+ elog " # chmod +x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ elog "Normally this should only take a few seconds to run but file systems"
+ elog "such as ext3 can take a lot longer. To disable, simply do:"
+ elog " # chmod -x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ fi
+}
diff --git a/app-portage/portage-utils/portage-utils-0.55.ebuild b/app-portage/portage-utils/portage-utils-0.55.ebuild
new file mode 100644
index 000000000000..f26e63454c04
--- /dev/null
+++ b/app-portage/portage-utils/portage-utils-0.55.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit flag-o-matic toolchain-funcs eutils
+
+DESCRIPTION="small and fast portage helper tools written in C"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Portage-utils"
+SRC_URI="mirror://gentoo/${P}.tar.xz
+ http://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="nls static"
+
+DEPEND="app-arch/xz-utils"
+RDEPEND=""
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # Avoid slow configure+gnulib+make if on an up-to-date Linux system
+ if use prefix || ! use kernel_linux || \
+ has_version '<sys-libs/glibc-2.10'
+ then
+ econf --with-eprefix="${EPREFIX}"
+ else
+ tc-export CC
+ fi
+}
+
+src_compile() {
+ emake NLS=$(usex nls)
+}
+
+src_install() {
+ default
+
+ exeinto /etc/portage/bin
+ doexe "${FILESDIR}"/post_sync
+ insinto /etc/portage/postsync.d
+ doins "${FILESDIR}"/q-reinitialize
+
+ # Portage fixes shebangs, we just need to fix the paths in the files
+ sed -i \
+ -e "s:\(/etc/portage/postsync.d\|/usr/bin/q\):${EPREFIX}&:g" \
+ "${ED}"/etc/portage/bin/post_sync \
+ "${ED}"/etc/portage/postsync.d/q-reinitialize || die
+}
+
+pkg_preinst() {
+ # preserve +x bit on postsync files #301721
+ local x
+ pushd "${ED}" >/dev/null
+ for x in etc/portage/postsync.d/* ; do
+ [[ -x ${EROOT}/${x} ]] && chmod +x "${x}"
+ done
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog "${EPREFIX}/etc/portage/postsync.d/q-reinitialize has been installed for convenience"
+ elog "If you wish for it to be automatically run at the end of every --sync:"
+ elog " # chmod +x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ elog "Normally this should only take a few seconds to run but file systems"
+ elog "such as ext3 can take a lot longer. To disable, simply do:"
+ elog " # chmod -x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ fi
+}
diff --git a/app-portage/portage-utils/portage-utils-0.56.ebuild b/app-portage/portage-utils/portage-utils-0.56.ebuild
new file mode 100644
index 000000000000..410c1cd545ae
--- /dev/null
+++ b/app-portage/portage-utils/portage-utils-0.56.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit flag-o-matic toolchain-funcs eutils
+
+DESCRIPTION="small and fast portage helper tools written in C"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Portage-utils"
+SRC_URI="mirror://gentoo/${P}.tar.xz
+ http://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="nls static"
+
+RDEPEND="dev-libs/iniparser"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ static? ( dev-libs/iniparser[static-libs] )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-qcheck-tz.patch #551718
+ epatch "${FILESDIR}"/${P}-qlop-tz.patch #551806
+ epatch_user
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # Avoid slow configure+gnulib+make if on an up-to-date Linux system
+ if use prefix || ! use kernel_linux || \
+ has_version '<sys-libs/glibc-2.10'
+ then
+ econf --with-eprefix="${EPREFIX}"
+ else
+ tc-export CC
+ fi
+}
+
+src_compile() {
+ emake NLS=$(usex nls)
+}
+
+src_install() {
+ default
+
+ exeinto /etc/portage/bin
+ doexe "${FILESDIR}"/post_sync
+ insinto /etc/portage/postsync.d
+ doins "${FILESDIR}"/q-reinitialize
+
+ # Portage fixes shebangs, we just need to fix the paths in the files
+ sed -i \
+ -e "s:\(/etc/portage/postsync.d\|/usr/bin/q\):${EPREFIX}&:g" \
+ "${ED}"/etc/portage/bin/post_sync \
+ "${ED}"/etc/portage/postsync.d/q-reinitialize || die
+}
+
+pkg_preinst() {
+ # preserve +x bit on postsync files #301721
+ local x
+ pushd "${ED}" >/dev/null
+ for x in etc/portage/postsync.d/* ; do
+ [[ -x ${EROOT}/${x} ]] && chmod +x "${x}"
+ done
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog "${EPREFIX}/etc/portage/postsync.d/q-reinitialize has been installed for convenience"
+ elog "If you wish for it to be automatically run at the end of every --sync:"
+ elog " # chmod +x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ elog "Normally this should only take a few seconds to run but file systems"
+ elog "such as ext3 can take a lot longer. To disable, simply do:"
+ elog " # chmod -x ${EPREFIX}/etc/portage/postsync.d/q-reinitialize"
+ fi
+}
diff --git a/app-portage/porthole/Manifest b/app-portage/porthole/Manifest
new file mode 100644
index 000000000000..8804ab28048f
--- /dev/null
+++ b/app-portage/porthole/Manifest
@@ -0,0 +1 @@
+DIST porthole-0.6.1.tar.bz2 958696 SHA256 eb9991cb078f51f5b4c9900995ffc3f7f5e3891e62b10cd1c5384efece010d62 SHA512 9bc1d79c587ad8228b9bb4eee6cb32559a5d7b6a9f4f6ece752fce9030f71fdbfd6158d7a2a055641b63df1f0a1c31995747e15b618de79cd8a7a56e4d8f634c WHIRLPOOL 8f9cf3b2d7b4ec44b0425115b19c9c00b4fe816d035d512b305a5e3d02f7e92f2b0d12057b141f123ff2d8c747e23e8075bb1afefe5bb02d9a02884f08eb1ba7
diff --git a/app-portage/porthole/files/porthole-0.6.1-masking_status.patch b/app-portage/porthole/files/porthole-0.6.1-masking_status.patch
new file mode 100644
index 000000000000..e626fbb3c58f
--- /dev/null
+++ b/app-portage/porthole/files/porthole-0.6.1-masking_status.patch
@@ -0,0 +1,17 @@
+Index: porthole/backends/portagelib.py
+===================================================================
+--- porthole/backends/portagelib.py (revision 1209)
++++ porthole/backends/portagelib.py (working copy)
+@@ -452,7 +452,11 @@
+
+
+ def get_masking_status(ebuild):
+- return portage.getmaskingstatus(ebuild)
++ try:
++ status = portage.getmaskingstatus(ebuild)
++ except KeyError:
++ status = ['deprecated']
++ return status
+
+
+ def get_masking_reason(ebuild):
diff --git a/app-portage/porthole/files/porthole-0.6.1-missing-attribute.patch b/app-portage/porthole/files/porthole-0.6.1-missing-attribute.patch
new file mode 100644
index 000000000000..aa011a174b17
--- /dev/null
+++ b/app-portage/porthole/files/porthole-0.6.1-missing-attribute.patch
@@ -0,0 +1,14 @@
+diff -uNr porthole/db/user_configs.py.old porthole/db/user_configs.py
+
+--- porthole/db/user_configs.py.old 2010-11-27 13:34:35.000000000 +0600
++++ porthole/db/user_configs.py 2010-11-27 13:31:24.000000000 +0600
+@@ -364,7 +364,7 @@
+ debug.dprint("USER_CONFIGS: set_user_config(): add: " +
+ "%s,\n remove: %s " %(str(add),str(remove)))
+ set_config.set_user_config(filename=file, name=name, ebuild=ebuild,
+- comment=comment, username=privileges.USER,
++ comment=comment, username=privileges.user,
+ add=add, remove=remove)
+ self.set_config_callback()
+ else:
+ \ No newline at end of file
diff --git a/app-portage/porthole/files/porthole-0.6.1-missing_import.patch b/app-portage/porthole/files/porthole-0.6.1-missing_import.patch
new file mode 100644
index 000000000000..33c9e4ee3353
--- /dev/null
+++ b/app-portage/porthole/files/porthole-0.6.1-missing_import.patch
@@ -0,0 +1,19 @@
+--- porthole/db/user_configs.py 2010/03/20 12:32:29 1217
++++ porthole/db/user_configs.py 2010/03/20 14:10:46 1218
+@@ -36,6 +36,7 @@
+ from porthole import backends
+ portage_lib = backends.portage_lib
+ from porthole.utils import debug
++from porthole.privilege import controller as privileges
+
+ ## set up this module to act as a user configs data server,
+ ## watch the user configs for changes and auto update
+@@ -363,7 +364,7 @@
+ debug.dprint("USER_CONFIGS: set_user_config(): add: " +
+ "%s,\n remove: %s " %(str(add),str(remove)))
+ set_config.set_user_config(filename=file, name=name, ebuild=ebuild,
+- comment=comment, username=priviliges.USER,
++ comment=comment, username=privileges.USER,
+ add=add, remove=remove)
+ self.set_config_callback()
+ else:
diff --git a/app-portage/porthole/metadata.xml b/app-portage/porthole/metadata.xml
new file mode 100644
index 000000000000..7b77e0fe7005
--- /dev/null
+++ b/app-portage/porthole/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>tools-portage</herd>
+ <maintainer>
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ <description>Upstream Maintainer (please CC on bugs)</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">porthole</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/porthole/porthole-0.6.1-r1.ebuild b/app-portage/porthole/porthole-0.6.1-r1.ebuild
new file mode 100644
index 000000000000..606f49f3ffd2
--- /dev/null
+++ b/app-portage/porthole/porthole-0.6.1-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_USE_WITH="xml threads"
+RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
+
+inherit distutils eutils
+
+DESCRIPTION="A GTK+-based frontend to Portage"
+HOMEPAGE="http://porthole.sourceforge.net"
+SRC_URI="mirror://sourceforge/porthole/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ~sparc x86 ~x86-fbsd"
+IUSE="nls"
+LANGS="de pl ru vi it fr tr"
+for X in $LANGS; do IUSE="${IUSE} linguas_${X}"; done
+
+RDEPEND=">=sys-apps/portage-2.1
+ dev-python/pygtk:2
+ gnome-base/libglade:2.0
+ dev-python/pygtksourceview:2
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( >=sys-devel/gettext-0.14 )"
+RESTRICT_PYTHON_ABIS="3.*"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-masking_status.patch" # bug 307037
+}
+
+src_compile(){
+ # Compile localizations if necessary
+ if use nls ; then
+ cd scripts
+ ./pocompile.sh -emerge ${LINGUAS} || die "pocompile failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ dodoc TODO README NEWS AUTHORS
+
+ keepdir /var/log/porthole
+ fperms g+w /var/log/porthole
+ keepdir /var/db/porthole
+ fperms g+w /var/db/porthole
+
+ # nls
+ if use nls; then
+ # mo directory doesn't exists with nls enabled and unsupported LINGUAS
+ [[ -d porthole/i18n/mo ]] && domo porthole/i18n/mo/*
+ fi
+}
+
+pkg_preinst() {
+ chgrp portage "${D}"/var/log/porthole
+ chgrp portage "${D}"/var/db/porthole
+}
+
+pkg_postinst() {
+ einfo
+ einfo "Porthole has updated the way that the upgrades are sent to emerge."
+ einfo "In this new way the user needs to set any 'Settings' menu emerge options"
+ einfo "Porthole automatically adds '--oneshot' for all upgrades selections"
+ einfo "Other options recommended are '--noreplace' along with '--update'"
+ einfo "They allow for portage to skip any packages that might have already"
+ einfo "been upgraded as a dependency of another previously upgraded package"
+ einfo
+}
diff --git a/app-portage/porthole/porthole-0.6.1-r2.ebuild b/app-portage/porthole/porthole-0.6.1-r2.ebuild
new file mode 100644
index 000000000000..8e7db7f2a39a
--- /dev/null
+++ b/app-portage/porthole/porthole-0.6.1-r2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_USE_WITH="xml threads"
+RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
+
+inherit distutils eutils
+
+DESCRIPTION="A GTK+-based frontend to Portage"
+HOMEPAGE="http://porthole.sourceforge.net"
+SRC_URI="mirror://sourceforge/porthole/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="nls"
+LANGS="de pl ru vi it fr tr"
+for X in $LANGS; do IUSE="${IUSE} linguas_${X}"; done
+
+RDEPEND=">=sys-apps/portage-2.1
+ dev-python/pygtk:2
+ gnome-base/libglade:2.0
+ dev-python/pygtksourceview:2
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( >=sys-devel/gettext-0.14 )"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-masking_status.patch" # bug 307037
+ epatch "${FILESDIR}/${P}-missing_import.patch" # bug 323179
+}
+
+src_compile(){
+ # Compile localizations if necessary
+ if use nls ; then
+ cd scripts
+ ./pocompile.sh -emerge ${LINGUAS} || die "pocompile failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ dodoc TODO README NEWS AUTHORS
+
+ keepdir /var/log/porthole
+ fperms g+w /var/log/porthole
+ keepdir /var/db/porthole
+ fperms g+w /var/db/porthole
+
+ # nls
+ if use nls; then
+ # mo directory doesn't exists with nls enabled and unsupported LINGUAS
+ [[ -d porthole/i18n/mo ]] && domo porthole/i18n/mo/*
+ fi
+}
+
+pkg_preinst() {
+ chgrp portage "${D}"/var/log/porthole
+ chgrp portage "${D}"/var/db/porthole
+}
+
+pkg_postinst() {
+ einfo
+ einfo "Porthole has updated the way that the upgrades are sent to emerge."
+ einfo "In this new way the user needs to set any 'Settings' menu emerge options"
+ einfo "Porthole automatically adds '--oneshot' for all upgrades selections"
+ einfo "Other options recommended are '--noreplace' along with '--update'"
+ einfo "They allow for portage to skip any packages that might have already"
+ einfo "been upgraded as a dependency of another previously upgraded package"
+ einfo
+}
diff --git a/app-portage/porthole/porthole-0.6.1-r3.ebuild b/app-portage/porthole/porthole-0.6.1-r3.ebuild
new file mode 100644
index 000000000000..7a2fca24728a
--- /dev/null
+++ b/app-portage/porthole/porthole-0.6.1-r3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_USE_WITH="xml threads"
+RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
+
+inherit distutils eutils
+
+DESCRIPTION="A GTK+-based frontend to Portage"
+HOMEPAGE="http://porthole.sourceforge.net"
+SRC_URI="mirror://sourceforge/porthole/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="nls"
+LANGS="de pl ru vi it fr tr"
+for X in $LANGS; do IUSE="${IUSE} linguas_${X}"; done
+
+RDEPEND=">=sys-apps/portage-2.1
+ dev-python/pygtk:2
+ gnome-base/libglade:2.0
+ dev-python/pygtksourceview:2
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( >=sys-devel/gettext-0.14 )"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-masking_status.patch" # bug 307037
+ epatch "${FILESDIR}/${P}-missing_import.patch" # bug 323179
+ epatch "${FILESDIR}/${P}-missing-attribute.patch" #bug 323179
+}
+
+src_compile(){
+ # Compile localizations if necessary
+ if use nls ; then
+ cd scripts
+ ./pocompile.sh -emerge ${LINGUAS} || die "pocompile failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ dodoc TODO README NEWS AUTHORS
+
+ keepdir /var/log/porthole
+ fperms g+w /var/log/porthole
+ keepdir /var/db/porthole
+ fperms g+w /var/db/porthole
+
+ # nls
+ if use nls; then
+ # mo directory doesn't exists with nls enabled and unsupported LINGUAS
+ [[ -d porthole/i18n/mo ]] && domo porthole/i18n/mo/*
+ fi
+}
+
+pkg_preinst() {
+ chgrp portage "${D}"/var/log/porthole
+ chgrp portage "${D}"/var/db/porthole
+}
+
+pkg_postinst() {
+ einfo
+ einfo "Porthole has updated the way that the upgrades are sent to emerge."
+ einfo "In this new way the user needs to set any 'Settings' menu emerge options"
+ einfo "Porthole automatically adds '--oneshot' for all upgrades selections"
+ einfo "Other options recommended are '--noreplace' along with '--update'"
+ einfo "They allow for portage to skip any packages that might have already"
+ einfo "been upgraded as a dependency of another previously upgraded package"
+ einfo
+}
diff --git a/app-portage/porticron/Manifest b/app-portage/porticron/Manifest
new file mode 100644
index 000000000000..71626d3143af
--- /dev/null
+++ b/app-portage/porticron/Manifest
@@ -0,0 +1 @@
+DIST porticron-0.7_p20140126.tar.gz 4453 SHA256 46b61958a182d9cdd73dbea76a017855eebc4780dc75692503c0d1e7ff0ea482 SHA512 c14c5ff18eff74d7c225883dc0e1cea16666f0dcab07f9b249aed0db2874179eacc824c0f35dc2cfd97dc0c2db5f2bf6d13c3e76a2cd1b87de46fb073622f3d5 WHIRLPOOL f932a2319be582b564412badb456daf0fd86e3991ffc63fa25718337669b860097ac6d446a220f4e56e3a97cb8660a9f2bd25eeb1c54a2921fb0c7d6991bad5b
diff --git a/app-portage/porticron/files/porticron-0.7_p20140126-portage-2.2.8.patch b/app-portage/porticron/files/porticron-0.7_p20140126-portage-2.2.8.patch
new file mode 100644
index 000000000000..4531ab638fd8
--- /dev/null
+++ b/app-portage/porticron/files/porticron-0.7_p20140126-portage-2.2.8.patch
@@ -0,0 +1,26 @@
+From 7a7002d5af62d0a4791a386cdc3560330f27f1c0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rainer=20M=C3=BCller?= <raimue@codingfarm.de>
+Date: Sun, 26 Jan 2014 23:23:03 +0100
+Subject: [PATCH] Avoid the deprecated `portageq portdir'
+
+This implements the fix proposed in hollow/porticron#6.
+---
+ bin/porticron | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/porticron b/bin/porticron
+index d168b27..86a1f70 100755
+--- a/bin/porticron
++++ b/bin/porticron
+@@ -117,7 +117,7 @@ FQDN=$(hostname --fqdn)
+ HOST=$(hostname -s)
+ IP=$(dig +short ${FQDN} | tr '\n' ' ')
+ DATE=$(date -R)
+-PORTDIR=$(portageq portdir)
++PORTDIR=$(portageq get_repo_path $(portageq envvar EROOT) gentoo)
+
+ # replace variables
+ for var in FQDN HOST IP DATE; do
+--
+1.8.5.1
+
diff --git a/app-portage/porticron/metadata.xml b/app-portage/porticron/metadata.xml
new file mode 100644
index 000000000000..3386e5a0be82
--- /dev/null
+++ b/app-portage/porticron/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>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gentoo/porticron</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/porticron/porticron-0.7_p20140126.ebuild b/app-portage/porticron/porticron-0.7_p20140126.ebuild
new file mode 100644
index 000000000000..aaa786f89a8c
--- /dev/null
+++ b/app-portage/porticron/porticron-0.7_p20140126.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils vcs-snapshot
+
+DESCRIPTION="cron script to sync portage and send update mails to root"
+HOMEPAGE="https://github.com/gentoo/porticron"
+SRC_URI="https://github.com/hollow/${PN}/tarball/df727fe -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm hppa ppc ~ppc64 x86"
+IUSE=""
+
+RDEPEND="
+ app-portage/gentoolkit
+ net-dns/bind-tools
+"
+DEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-portage-2.2.8.patch
+}
+
+src_install() {
+ dosbin bin/porticron
+ insinto /etc
+ doins etc/porticron.conf
+}
diff --git a/app-portage/portpeek/Manifest b/app-portage/portpeek/Manifest
new file mode 100644
index 000000000000..caa69bec35c8
--- /dev/null
+++ b/app-portage/portpeek/Manifest
@@ -0,0 +1,4 @@
+DIST portpeek-2.0.25.tar.gz 11367 SHA256 38de327bdefdd853166ec0ecdae03ccd508fb27c9762b99cea9926ce38801f5b SHA512 ea4b996787f4f956e3146f6618189f389f78f7a3778297ba1a2118b048c5f2e950221fbe4f9c52249a043f1fc65b4c45a01b799bb52b61e337527702f2149d9d WHIRLPOOL b57636fb820d6e5f0cb1611ca0e417c8d6b04a2c0fc50f9b32da78b940984c687c3ea1dc9a00660ce395108daca372fc3b9d90d9158cab51c502aa6677fd282d
+DIST portpeek-2.1.18.tar.gz 12233 SHA256 9cda20138b3e75f6f38c3cb117b23e9c01f2b8b0418379bfd68a30b09da835c5 SHA512 f3f7e728c3255f39394393344af469f719f5d0d83e45ddc75b81d53a2c80fe0ac18a606f5c8159917f784eb10a0b0bede44f7d764e11986d492ac61da48f4ade WHIRLPOOL cb97f3cdf95e5c31ba6530757bcd5aed71aa5e0dbb5d683db9a7d5a2e5f4fb9137463167802fe131b4bc6d2d8df2bf662bba9d1282f5df4148444c52ff59fc57
+DIST portpeek-2.1.19.tar.gz 12246 SHA256 d1b82b014718754c06506fe58e4a4ecffa660626273a395a0966dd985d2db4c8 SHA512 c19dfbba92094e063f2c81cbc5482712cb32d0ffb9f0984511109f141960d0cf39e1f7882880d17e97ad86c78107ddf735d4f338140460578e919f42f27f372c WHIRLPOOL fb7a00b21cdf44e8b907c46a94dceabc94870f0ef2b1ec4df179ef8a5def0b461360d782b10f972d4a8365bd35f1fbd1d93be6afacde09e3b51601074abf8edd
+DIST portpeek-2.1.9.tar.gz 11827 SHA256 46d7fe52bdc1113e9a790d9d77fc7284721ec6e99817a553204800d7cad19382 SHA512 751b313c605355d92a4fc11d4b717bdaf30cf9e1dd3f78346761fd0c9ed64ce195efdc33cc541f136370b264f60d1438191eae6f1ef6c10d499c6a7e084cefb5 WHIRLPOOL 3f1a18376756d837202268565fa695be0898ff4c27e297ddd3fa4c80670e9d03759e4ad4ec7b6d3032b1230769cc224e6c6444d539c8890aa57beadda2314d71
diff --git a/app-portage/portpeek/metadata.xml b/app-portage/portpeek/metadata.xml
new file mode 100644
index 000000000000..1c37e40592a6
--- /dev/null
+++ b/app-portage/portpeek/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>mpagano@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/portpeek/portpeek-2.0.25.ebuild b/app-portage/portpeek/portpeek-2.0.25.ebuild
new file mode 100644
index 000000000000..ea6a58718f9e
--- /dev/null
+++ b/app-portage/portpeek/portpeek-2.0.25.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-single-r1
+
+DESCRIPTION="A helper program for maintaining the package.keyword and package.unmask files"
+HOMEPAGE="http://www.mpagano.com/blog/?page_id=3"
+SRC_URI="http://www.mpagano.com/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=">=app-portage/gentoolkit-0.3.0.6-r3
+ >=sys-apps/portage-2.1.11.9"
+
+src_install() {
+ dobin ${PN} || die "dobin failed"
+ doman *.[0-9]
+}
diff --git a/app-portage/portpeek/portpeek-2.1.18.ebuild b/app-portage/portpeek/portpeek-2.1.18.ebuild
new file mode 100644
index 000000000000..c922a590eac7
--- /dev/null
+++ b/app-portage/portpeek/portpeek-2.1.18.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="A helper program for maintaining the package.keyword and package.unmask files"
+HOMEPAGE="http://www.mpagano.com/blog/?page_id=3"
+SRC_URI="http://www.mpagano.com/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86 ~x86-fbsd"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ >=app-portage/gentoolkit-0.3.0.9-r2
+ >=sys-apps/portage-2.2.8-r1[${PYTHON_USEDEP}]"
+
+src_install() {
+ python_foreach_impl python_doscript ${PN}
+ doman *.[0-9]
+}
diff --git a/app-portage/portpeek/portpeek-2.1.19.ebuild b/app-portage/portpeek/portpeek-2.1.19.ebuild
new file mode 100644
index 000000000000..630480838147
--- /dev/null
+++ b/app-portage/portpeek/portpeek-2.1.19.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="A helper program for maintaining the package.keyword and package.unmask files"
+HOMEPAGE="http://www.mpagano.com/blog/?page_id=3"
+SRC_URI="http://www.mpagano.com/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ >=app-portage/gentoolkit-0.3.0.9-r2
+ >=sys-apps/portage-2.2.20[${PYTHON_USEDEP}]"
+
+src_install() {
+ python_foreach_impl python_doscript ${PN}
+ doman *.[0-9]
+}
diff --git a/app-portage/portpeek/portpeek-2.1.9.ebuild b/app-portage/portpeek/portpeek-2.1.9.ebuild
new file mode 100644
index 000000000000..2c9034fb4935
--- /dev/null
+++ b/app-portage/portpeek/portpeek-2.1.9.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit python-r1
+
+DESCRIPTION="A helper program for maintaining the package.keyword and package.unmask files"
+HOMEPAGE="http://www.mpagano.com/blog/?page_id=3"
+SRC_URI="http://www.mpagano.com/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86 ~x86-fbsd"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ >=app-portage/gentoolkit-0.3.0.7
+ >=sys-apps/portage-2.1.11.52[${PYTHON_USEDEP}]"
+
+src_install() {
+ python_foreach_impl python_doscript ${PN}
+ doman *.[0-9]
+}
diff --git a/app-portage/pqlop/Manifest b/app-portage/pqlop/Manifest
new file mode 100644
index 000000000000..688cfccaf973
--- /dev/null
+++ b/app-portage/pqlop/Manifest
@@ -0,0 +1 @@
+DIST pqlop-0.02.py 14920 SHA256 aeeeeab1e5d38a694c80401472506e95a10f4ffada70765b9737d6f8f0f6c543 SHA512 6c2cca73b5280ac8563573a81baff56cf43420c18688fae497ff014ec5668806d589473a2cb8093fdc07675761e8c4124f18eb568a74e1816f573541459d633f WHIRLPOOL fedf6a863b02a74017eb40a3175a377f8e4b96c2e7f1c09e516769cf6c30dff60ca96d586d27ac17442e9194a401f9a4a7011af7b5aef939bee38e6837829dc6
diff --git a/app-portage/pqlop/metadata.xml b/app-portage/pqlop/metadata.xml
new file mode 100644
index 000000000000..eaa80b067831
--- /dev/null
+++ b/app-portage/pqlop/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>proxy-maintainers</herd>
+ <maintainer>
+ <email>lk4d4math@gmail.com</email>
+ <name>Alexandr Morozov</name>
+ <description>Author and maintainer of package</description>
+ </maintainer>
+ <maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="bitbucket">LK4D4/pqlop</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/pqlop/pqlop-0.02-r1.ebuild b/app-portage/pqlop/pqlop-0.02-r1.ebuild
new file mode 100644
index 000000000000..63e7f4447cb4
--- /dev/null
+++ b/app-portage/pqlop/pqlop-0.02-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+DESCRIPTION="emerge.log parser written in python"
+HOMEPAGE="https://bitbucket.org/LK4D4/pqlop"
+SRC_URI="https://bitbucket.org/LK4D4/pqlop/raw/${PV}/pqlop.py -> ${P}.py"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ ${PYTHON_DEPS}
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S="${WORKDIR}"
+
+src_unpack() {
+ :
+}
+
+src_install() {
+ newbin "${DISTDIR}"/${P}.py ${PN} || die "newbin failed"
+ python_replicate_script "${ED}"/usr/bin/${PN} || die "python_replicate_script failed"
+}
diff --git a/app-portage/prefix-chain-setup/files/prefix-chain-setup.in b/app-portage/prefix-chain-setup/files/prefix-chain-setup.in
new file mode 100755
index 000000000000..1d2f9b11a5da
--- /dev/null
+++ b/app-portage/prefix-chain-setup/files/prefix-chain-setup.in
@@ -0,0 +1,170 @@
+#!/bin/env bash
+
+PARENT_EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
+PARENT_CHOST="@GENTOO_PORTAGE_CHOST@"
+CHILD_EPREFIX=
+CHILD_PROFILE=
+DO_MINIMAL=no
+DO_SOURCES=no
+PORT_TMPDIR=
+
+#
+# get ourselfs the functions.sh script for ebegin/eend/etc.
+#
+. "${PARENT_EPREFIX}"/sbin/functions.sh
+
+for arg in "$@"; do
+ case "${arg}" in
+ --eprefix=*) CHILD_EPREFIX="${arg#--eprefix=}" ;;
+ --profile=*) CHILD_PROFILE="${arg#--profile=}" ;;
+ --sources) DO_SOURCES=yes ;;
+ --portage-tmpdir=*) PORT_TMPDIR="${arg#--portage-tmpdir=}" ;;
+
+ --help)
+ einfo "$0 usage:"
+ einfo " --eprefix=[PATH] Path to new EPREFIX to create chained to the prefix"
+ einfo " where this script is installed (${PARENT_EPREFIX})"
+ einfo " --profile=[PATH] The absolute path to the profile to use. This path"
+ einfo " must point to a directory within ${PARENT_EPREFIX}"
+ einfo " --sources inherit 'source' statements from the parent make.conf"
+ einfo " --portage-tmpdir=DIR use DIR as portage temporary directory."
+ exit 0
+ ;;
+ esac
+done
+
+#
+# sanity check of given values
+#
+
+test -n "${CHILD_EPREFIX}" || { eerror "no eprefix argument given"; exit 1; }
+test -d "${CHILD_EPREFIX}" && { eerror "${CHILD_EPREFIX} already exists"; exit 1; }
+test -n "${CHILD_PROFILE}" || { eerror "no profile argument given"; exit 1; }
+test -d "${CHILD_PROFILE}" || { eerror "${CHILD_PROFILE} does not exist"; exit 1; }
+if test -n "${PORT_TMPDIR}"; then
+ if ! test -d "${PORT_TMPDIR}"; then
+ einfo "creating temporary directory ${PORT_TMPDIR}"
+ mkdir -p "${PORT_TMPDIR}"
+ fi
+fi
+
+einfo "creating chained prefix ${CHILD_EPREFIX}"
+
+#
+# functions needed below.
+#
+eend_exit() {
+ eend $1
+ [[ $1 != 0 ]] && exit 1
+}
+
+#
+# create the directories required to bootstrap the least.
+#
+ebegin "creating directory structure"
+(
+ set -e
+ mkdir -p "${CHILD_EPREFIX}"/etc
+ mkdir -p "${CHILD_EPREFIX}"/var/log
+)
+eend_exit $?
+
+#
+# create a make.conf and set PORTDIR and PORTAGE_TMPDIR
+#
+ebegin "creating make.conf"
+(
+ set -e
+ echo "#"
+ echo "# The following values where taken from the parent prefix's"
+ echo "# environment. Feel free to adopt them as you like."
+ echo "#"
+ echo "CFLAGS=\"$(portageq envvar CFLAGS)\""
+ echo "CXXFLAGS=\"$(portageq envvar CXXFLAGS)\""
+ echo "MAKEOPTS=\"$(portageq envvar MAKEOPTS)\""
+ niceness=$(portageq envvar PORTAGE_NICENESS)
+ [[ -n ${niceness} ]] &&
+ echo "PORTAGE_NICENESS=\"${niceness}\""
+ echo "USE=\"prefix-chaining\""
+ echo
+ echo "# Mirrors from parent prefix."
+ echo "GENTOO_MIRRORS=\"$(portageq envvar GENTOO_MIRRORS)\""
+ echo
+ echo "#"
+ echo "# Below comes the chained-prefix setup. Only change things"
+ echo "# if you know exactly what you are doing!"
+ echo "# by default, only DEPEND is inherited from the parent in"
+ echo "# the chain. if you want more, make it a comma seperated"
+ echo "# list - like this: DEPEND,RDEPEND,PDEPEN - which would the"
+ echo "# all that is possible"
+ echo "#"
+ echo "PORTDIR=\"$(portageq envvar PORTDIR)\""
+ echo "SYNC=\"$(portageq envvar SYNC)\""
+ if test -z "${PORT_TMPDIR}"; then
+ case "${CHILD_PROFILE}" in
+ *winnt*) echo "PORTAGE_TMPDIR=/var/tmp" ;;
+ *) echo "PORTAGE_TMPDIR=\"${CHILD_EPREFIX}/var/tmp\"" ;;
+ esac
+ else
+ echo "PORTAGE_TMPDIR=\"${PORT_TMPDIR}\""
+ fi
+ echo "READONLY_EPREFIX=\"${PARENT_EPREFIX}:DEPEND\""
+
+ if test "${DO_SOURCES}" == "yes"; then
+ # don't fail if nothing found
+ egrep "^source .*" "${PARENT_EPREFIX}/etc/make.conf" 2>/dev/null || true
+ fi
+) > "${CHILD_EPREFIX}"/etc/make.conf
+eend_exit $?
+
+#
+# create the make.profile symlinks.
+#
+ebegin "creating make.profile"
+(
+ ln -s "${CHILD_PROFILE}" "${CHILD_EPREFIX}/etc/make.profile"
+)
+eend_exit $?
+
+#
+# adjust permissions of generated files.
+#
+ebegin "adjusting permissions"
+(
+ chmod 644 "${CHILD_EPREFIX}"/etc/make.conf
+)
+eend_exit $?
+
+#
+# now merge some basics.
+#
+ebegin "installing required basic packages"
+(
+ # this -pv is there to avoid the global update output, which is
+ # there on the first emerge run. (thus, just cosmetics).
+ EPREFIX="${CHILD_EPREFIX}" emerge -p1qO baselayout > /dev/null 2>&1
+
+ EPREFIX="${CHILD_EPREFIX}" emerge -1qO baselayout prefix-chain-utils
+
+ # merge with the parent's chost. this forces the use of the parent
+ # compiler, which generally would be illegal - this is an exception.
+ # This is required for example on winnt, because the wrapper has to
+ # be able to use/resolve symlinks, etc. native winnt binaries miss that
+ # ability, but interix binaries don't.
+ EPREFIX="${CHILD_EPREFIX}" CHOST="${PARENT_CHOST}" emerge -1qO gcc-config
+
+ # select the chain wrapper profile from gcc-config
+ env -i "$(type -P bash)" "${CHILD_EPREFIX}"/usr/bin/gcc-config 1
+
+ # do this _AFTER_ selecting the correct compiler!
+ EPREFIX="${CHILD_EPREFIX}" emerge -1qO libtool
+)
+eend_exit $?
+
+#
+# wow, all ok :)
+#
+ewarn
+ewarn "all done. don't forget to tune ${CHILD_EPREFIX}/etc/make.conf."
+ewarn "to enter the new prefix, run \"${CHILD_EPREFIX}/startprefix\"."
+ewarn
diff --git a/app-portage/prefix-chain-setup/metadata.xml b/app-portage/prefix-chain-setup/metadata.xml
new file mode 100644
index 000000000000..46dee96f4e7a
--- /dev/null
+++ b/app-portage/prefix-chain-setup/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>prefix</herd>
+</pkgmetadata>
diff --git a/app-portage/prefix-chain-setup/prefix-chain-setup-0.4-r5.ebuild b/app-portage/prefix-chain-setup/prefix-chain-setup-0.4-r5.ebuild
new file mode 100644
index 000000000000..842b6f78fa87
--- /dev/null
+++ b/app-portage/prefix-chain-setup/prefix-chain-setup-0.4-r5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit prefix
+
+DESCRIPTION="Chained EPREFIX bootstrapping utility"
+HOMEPAGE="http://dev.gentoo.org/~mduft"
+SRC_URI=""
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~ppc-aix ~ia64-hpux ~x86-interix ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+src_install() {
+ cp "${FILESDIR}"/prefix-chain-setup.in "${T}"/prefix-chain-setup
+ eprefixify "${T}"/prefix-chain-setup
+ dobin "${T}"/prefix-chain-setup
+}
diff --git a/app-portage/repo-commit/Manifest b/app-portage/repo-commit/Manifest
new file mode 100644
index 000000000000..5d20638129a2
--- /dev/null
+++ b/app-portage/repo-commit/Manifest
@@ -0,0 +1,2 @@
+DIST repo-commit-0.4.1.tar.bz2 54416 SHA256 2012984b21af51cb65dfbba7ab67c5df886ff0555143be85763259acb06df1d9 SHA512 25d4ec02605454e49dafb59a753abbe6b28b2e07225d5479bfa0e0d493d3dd6bd2302dd4efaa2d6a6af5f8c7e41a5029ac8edb9d7b1dd8ec9349a057d1d61622 WHIRLPOOL a8f0c46cf950a74b6fdf6d5c0a35bed3fac4a86da16f8c36df2a9da01bc0bbb678044e8640d19b1fb8d5535e34eed65a987e1f4f40c251c2d165b2c4f186dc5f
+DIST repo-commit-0.4.tar.bz2 54122 SHA256 63dc29d7f485df0966ed0b73cf61f40a1892953f5b3355aa11859b395b736d60 SHA512 5d338a359bd4024339d26e56d1f4809acab00ab3c6b69227b1b7431aae6038c1154a6ded41d1a5e9810ebc1bd59609e205428efaf36b539e1ad15a0295f25155 WHIRLPOOL f9ce0aa4acf16f30656a35ce33c9c51f04e0c9ef2086addaa7cc148bb0f5094dcb8076e2c06d28eed2b218a397249e1f303c514c78476c42c461375fef7137cd
diff --git a/app-portage/repo-commit/metadata.xml b/app-portage/repo-commit/metadata.xml
new file mode 100644
index 000000000000..1f7786ad0942
--- /dev/null
+++ b/app-portage/repo-commit/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <maintainer>
+ <email>binki@gentoo.org</email>
+ <name>Nathan Phillip Brink</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <maintainer status="active">
+ <email>binki@gentoo.org</email>
+ <name>Nathan Phillip Brink</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/gentoo/repo-commit/issues/</bugs-to>
+ <remote-id type="bitbucket">gentoo/repo-commit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/repo-commit/repo-commit-0.4.1.ebuild b/app-portage/repo-commit/repo-commit-0.4.1.ebuild
new file mode 100644
index 000000000000..98d15a93f986
--- /dev/null
+++ b/app-portage/repo-commit/repo-commit-0.4.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit autotools-utils
+
+DESCRIPTION="A repository commit helper"
+HOMEPAGE="https://bitbucket.org/gentoo/repo-commit/"
+SRC_URI="https://www.bitbucket.org/gentoo/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ || (
+ >=sys-apps/portage-2.2.0_alpha86
+ ( >=sys-apps/portage-2.1.10.30
+ <sys-apps/portage-2.2.0_alpha )
+ app-portage/gentoolkit-dev
+ )
+ sys-apps/portage"
diff --git a/app-portage/repo-commit/repo-commit-0.4.ebuild b/app-portage/repo-commit/repo-commit-0.4.ebuild
new file mode 100644
index 000000000000..98d15a93f986
--- /dev/null
+++ b/app-portage/repo-commit/repo-commit-0.4.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit autotools-utils
+
+DESCRIPTION="A repository commit helper"
+HOMEPAGE="https://bitbucket.org/gentoo/repo-commit/"
+SRC_URI="https://www.bitbucket.org/gentoo/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ || (
+ >=sys-apps/portage-2.2.0_alpha86
+ ( >=sys-apps/portage-2.1.10.30
+ <sys-apps/portage-2.2.0_alpha )
+ app-portage/gentoolkit-dev
+ )
+ sys-apps/portage"
diff --git a/app-portage/repo-commit/repo-commit-9999.ebuild b/app-portage/repo-commit/repo-commit-9999.ebuild
new file mode 100644
index 000000000000..ed1d4f858722
--- /dev/null
+++ b/app-portage/repo-commit/repo-commit-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+#if LIVE
+AUTOTOOLS_AUTORECONF=yes
+EGIT_REPO_URI="http://bitbucket.org/gentoo/${PN}.git"
+
+inherit git-r3
+#endif
+
+inherit autotools-utils
+
+DESCRIPTION="A repository commit helper"
+HOMEPAGE="https://bitbucket.org/gentoo/repo-commit/"
+SRC_URI="https://www.bitbucket.org/gentoo/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ || (
+ >=sys-apps/portage-2.2.0_alpha86
+ ( >=sys-apps/portage-2.1.10.30
+ <sys-apps/portage-2.2.0_alpha )
+ app-portage/gentoolkit-dev
+ )
+ sys-apps/portage"
+#if LIVE
+
+KEYWORDS=
+SRC_URI=
+#endif
diff --git a/app-portage/smart-live-rebuild/Manifest b/app-portage/smart-live-rebuild/Manifest
new file mode 100644
index 000000000000..483c9e73288e
--- /dev/null
+++ b/app-portage/smart-live-rebuild/Manifest
@@ -0,0 +1,3 @@
+DIST smart-live-rebuild-1.3.3.tar.bz2 16270 SHA256 7ec74e796695dfb8ee34c3172b6abe20d77d5523679cc3890f02e06384eb716a SHA512 e06105e7cca91151e37b501de258ddce15ccd3afb356391485bbbe37021cea6fe6a04140b29526547cf52503fc9272c15e621b84deba2e04cde07539b61268f2 WHIRLPOOL 6bdb5415b477b334d47c9046816251f7f7bae1731d49b93e7b67baee12aaa7355d3a6602a5fc804b6372bc777eceaf4e225e252c6c1d0e23d1277564c16967d6
+DIST smart-live-rebuild-1.3.4.1.tar.bz2 15980 SHA256 dd1e780937322a4cdee5a8f9af48d24283bda203e40167d02c7bb18924a4335f SHA512 65b864532e662d0fa032962673c2c2d6c1e21c557c82e295591086aea22de90ca9fed0e90bb0da0f6926ab19176a04ab41ee80c88dd8c5c05c3751c30ca39a92 WHIRLPOOL 329ea91bba103c6b2728905dac33532030d2c0ae802deb19056b1719bec6d85bd9b9a039cad4b3add92620c003cc573c797080cb2e02f09e670a0475439904be
+DIST smart-live-rebuild-1.3.4.tar.bz2 16022 SHA256 1d949b91a925faaae70b46c88b5af8d4b72a1a435abd85845dd8adadae5f3d92 SHA512 4dc50b226b8bd2dc2ce8f7d41eccff2d788cc5c4caa779d22a40d53a491726153419c6678e3bac764238cf9e7adf0dc4c1631a4e11df9b88deb0f9dc7c0e7cd7 WHIRLPOOL 39d8732aee4b09b464e45e990e26ce49989280e0734f27fccdbb5044b0a1d983a9e1cf25529a650feb7faab13ec63c1c116e535897c6c2845af0efcc1a8f079b
diff --git a/app-portage/smart-live-rebuild/metadata.xml b/app-portage/smart-live-rebuild/metadata.xml
new file mode 100644
index 000000000000..cd075cb773a2
--- /dev/null
+++ b/app-portage/smart-live-rebuild/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <longdescription>
+ A smart replacement for various live package rebuilding
+ solutions. smart-live-rebuild tries to update the source
+ checkouts of live packages and calls emerge to rebuild those
+ which are out-of-date.
+ </longdescription>
+ <upstream>
+ <maintainer status="active">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <bugs-to>https://bitbucket.org/mgorny/smart-live-rebuild/issues/</bugs-to>
+ <remote-id type="bitbucket">mgorny/smart-live-rebuild</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.3.ebuild b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.3.ebuild
new file mode 100644
index 000000000000..59cc96fd2c10
--- /dev/null
+++ b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Check live packages for updates and emerge them as necessary"
+HOMEPAGE="https://bitbucket.org/mgorny/smart-live-rebuild/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.1[${PYTHON_USEDEP}]"
+
+python_test() {
+ "${PYTHON}" setup.py test || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/portage
+ newins smart-live-rebuild.conf{.example,}
+ insinto /usr/share/portage/config/sets
+ newins sets.conf.example ${PN}.conf
+}
diff --git a/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.1.ebuild b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.1.ebuild
new file mode 100644
index 000000000000..dea4ec7e1de5
--- /dev/null
+++ b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Check live packages for updates and emerge them as necessary"
+HOMEPAGE="https://bitbucket.org/mgorny/smart-live-rebuild/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.1[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/portage
+ newins smart-live-rebuild.conf{.example,}
+ insinto /usr/share/portage/config/sets
+ newins sets.conf.example ${PN}.conf
+}
diff --git a/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.ebuild b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.ebuild
new file mode 100644
index 000000000000..52b79bc0f719
--- /dev/null
+++ b/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.4.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+DESCRIPTION="Check live packages for updates and emerge them as necessary"
+HOMEPAGE="https://bitbucket.org/mgorny/smart-live-rebuild/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 arm ~mips ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.1[${PYTHON_USEDEP}]"
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/portage
+ newins smart-live-rebuild.conf{.example,}
+ insinto /usr/share/portage/config/sets
+ newins sets.conf.example ${PN}.conf
+}
diff --git a/app-portage/smart-live-rebuild/smart-live-rebuild-9999.ebuild b/app-portage/smart-live-rebuild/smart-live-rebuild-9999.ebuild
new file mode 100644
index 000000000000..a9f1bac38aee
--- /dev/null
+++ b/app-portage/smart-live-rebuild/smart-live-rebuild-9999.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit distutils-r1
+
+#if LIVE
+EGIT_REPO_URI="http://bitbucket.org/mgorny/${PN}.git"
+inherit git-r3
+#endif
+
+DESCRIPTION="Check live packages for updates and emerge them as necessary"
+HOMEPAGE="https://bitbucket.org/mgorny/smart-live-rebuild/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=app-portage/gentoopm-0.2.1[${PYTHON_USEDEP}]"
+
+#if LIVE
+KEYWORDS=
+SRC_URI=
+#endif
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/portage
+ newins smart-live-rebuild.conf{.example,}
+ insinto /usr/share/portage/config/sets
+ newins sets.conf.example ${PN}.conf
+}
diff --git a/app-portage/splat/Manifest b/app-portage/splat/Manifest
new file mode 100644
index 000000000000..9e79c638361e
--- /dev/null
+++ b/app-portage/splat/Manifest
@@ -0,0 +1 @@
+DIST splat-0.08.tar.bz2 12180 SHA256 cdadf79909308d830d68e9b2583f91f081291ee9db2dbadd05c291b6566241e3 SHA512 18be949f601cd7ba61babc667a26df9bc5ba7ece33c9b680be7c3541418ea65f3ecf1ae402a70fa3499b79ca2b000c36a58e202d06456cbb7745bec749b1374f WHIRLPOOL a80900d2d831ad9a9a9db65ac644269de60a3f3ca7ad614ff64d0a416c2ce39638520fca7abb58721ea05c58bded3e0d3a8779f92bd6875f956718dcc580862b
diff --git a/app-portage/splat/files/splat-0.08-prefix.patch b/app-portage/splat/files/splat-0.08-prefix.patch
new file mode 100644
index 000000000000..e2599deb8bf5
--- /dev/null
+++ b/app-portage/splat/files/splat-0.08-prefix.patch
@@ -0,0 +1,33 @@
+--- splat.pl
++++ splat.pl
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl -w
++#!@GENTOO_PORTAGE_EPREFIX@/usr/bin/perl -w
+
+ # Copyright 2003; Shaun Guth <l8nite@l8nite.net>
+ #
+@@ -65,13 +65,13 @@
+ return unless /\.ebuild$/;
+
+ my $basedir = dirname($File::Find::name);
+- $basedir =~ s/^\/var\/db\/pkg//;
++ $basedir =~ s|^@GENTOO_PORTAGE_EPREFIX@/var/db/pkg||;
+ my $package = join('/',(splitdir($basedir))[1,2]);
+
+ $INSTALLED{$package} = 1;
+
+ }, 'no_chdir' => 1, },
+- '/var/db/pkg',
++ '@GENTOO_PORTAGE_EPREFIX@/var/db/pkg',
+ );
+
+ &parse_command_line();
+@@ -320,7 +320,7 @@
+ # no logfile defined? Let's check make.conf
+ if( !defined($logfile) || $logfile eq "" )
+ {
+- $logfile = '/var/log/emerge.log';
++ $logfile = '@GENTOO_PORTAGE_EPREFIX@/var/log/emerge.log';
+
+ if( $OPT->{'verbose'} ) {
+ warn "*** No log file specified.\n";
diff --git a/app-portage/splat/metadata.xml b/app-portage/splat/metadata.xml
new file mode 100644
index 000000000000..d9cd2cad66c2
--- /dev/null
+++ b/app-portage/splat/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-portage/splat/splat-0.08-r1.ebuild b/app-portage/splat/splat-0.08-r1.ebuild
new file mode 100644
index 000000000000..1aef171bc0c0
--- /dev/null
+++ b/app-portage/splat/splat-0.08-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils prefix
+
+DESCRIPTION="Simple Portage Log Analyzer Tool"
+HOMEPAGE="http://www.l8nite.net/projects/splat/"
+SRC_URI="http://www.l8nite.net/projects/splat/downloads/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ~mips ppc ppc64 ~sparc x86 ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND="dev-lang/perl"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-prefix.patch
+ eprefixify splat.pl
+}
+
+src_install() {
+ newbin splat.pl splat
+ dodoc ChangeLog
+}
diff --git a/app-portage/tatt/Manifest b/app-portage/tatt/Manifest
new file mode 100644
index 000000000000..0c1a9466e785
--- /dev/null
+++ b/app-portage/tatt/Manifest
@@ -0,0 +1 @@
+DIST tatt-0.3.tar.gz 22527 SHA256 bad1f0f33889aaa5887bab8c80bcbdaa620c379de5ff381ab983ae23d24ac9ed SHA512 822ec8904e452afd2373ca7ff01a05b8020b261acfc02864523a22e91d83dea51a1d2a8c79ec75db38e6de00cb3c06b3799dee261f376ec91d261a9f468aaa19 WHIRLPOOL f9be83b45c3d79e004600fa3e1ecd2d1ab6e6720035f13ab5f0b4a46555c280663e6371fb9ed88ab0de6bbfb4a853a0f07963dbc25f668a3cd8482c369343b90
diff --git a/app-portage/tatt/metadata.xml b/app-portage/tatt/metadata.xml
new file mode 100644
index 000000000000..d8f38b33dba7
--- /dev/null
+++ b/app-portage/tatt/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tomka@gentoo.org</email>
+ <name>Thomas Kahle</name>
+ </maintainer>
+ <maintainer>
+ <email>fauli@gentoo.org</email>
+ <name>Christian Faulhammer</name>
+ </maintainer>
+ <use>
+ <flag name="templates">Install template scripts to be used with tatt</flag>
+ </use>
+ <longdescription lang="en">
+Tatt arch testing tool can be use to automatically generate scripts for various boring tasks during arch work.
+It aims at developers. If you are a normal user you will not need tatt.
+</longdescription>
+ <upstream>
+ <remote-id type="github">tom111/tatt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-portage/tatt/tatt-0.3.ebuild b/app-portage/tatt/tatt-0.3.ebuild
new file mode 100644
index 000000000000..ad1bc15e3c34
--- /dev/null
+++ b/app-portage/tatt/tatt-0.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1
+
+DESCRIPTION="tatt is an arch testing tool"
+HOMEPAGE="https://github.com/tom111/tatt"
+SRC_URI="https://github.com/tom111/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+templates"
+
+RDEPEND="
+ app-portage/eix
+ app-portage/gentoolkit
+ www-client/pybugz
+ dev-python/configobj[${PYTHON_USEDEP}]"
+DEPEND="
+ ${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use templates; then
+ insinto "/usr/share/${PN}"
+ doins -r templates
+ fi
+ doman tatt.1
+ doman tatt.5
+}
diff --git a/app-portage/tatt/tatt-9999.ebuild b/app-portage/tatt/tatt-9999.ebuild
new file mode 100644
index 000000000000..e97834d1f64e
--- /dev/null
+++ b/app-portage/tatt/tatt-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+
+inherit distutils-r1 git-r3
+
+DESCRIPTION="arch testing tool"
+HOMEPAGE="http://github.com/tom111/tatt"
+EGIT_REPO_URI="https://github.com/tom111/tatt.git \
+ git://github.com/tom111/tatt.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="+templates"
+
+RDEPEND="
+ app-portage/eix
+ app-portage/gentoolkit
+ www-client/pybugz
+ dev-python/configobj[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use templates; then
+ insinto "/usr/share/${PN}"
+ doins -r templates
+ fi
+ doman tatt.1
+ doman tatt.5
+}
diff --git a/app-portage/ufed/Manifest b/app-portage/ufed/Manifest
new file mode 100644
index 000000000000..383cd1b5c5ad
--- /dev/null
+++ b/app-portage/ufed/Manifest
@@ -0,0 +1,5 @@
+DIST ufed-0.40.2.tar.bz2 33982 SHA256 d88048e1940ba774d8517e80109cf3f0d93e2113841be9aaad14995da284a3cf SHA512 81b37d92cac9a247c97b8b741410962a5cb55a507d0092863f15d084b00b1482092ab6153277c0d0f4728cdfdbbda41d54431f4d3cf939270ee451f2938a1b3e WHIRLPOOL 36c88488f06b06eea99b1004ee67e69ea579965ae74a37a49e7a9a01fc43dd599a7cc056b270f6f937ab975ce6fd7691acf7ab2a2cde0d4fe0db11dbc01c0fbf
+DIST ufed-0.90_rc1.tar.bz2 51336 SHA256 291c48ed7baa183fac394affaff97d43c448244bfdb0365ac14f650f13e67ee4 SHA512 f1fc03f425d2b7e51d8dba386ae8dfb8b947fb5506270c27f6148d36a8075468b268ef7b0d65f54a44dc9961dc1527050eae310f27472725151468301890d47e WHIRLPOOL ab5a16546171dbea26da098a789baa72c99dcc9bca0e890ae5952478fdcce2e28103e6e20fbad8659ae2addacd3d697d34dbe14df09401ffb46b1f5979163d01
+DIST ufed-0.90_rc2.tar.bz2 51762 SHA256 f85226fffd20e971a9e5c1599e67aa3ae46f10d267eb57f65bba2bfc7321ece8 SHA512 c5ed326596d4c6706ba2a2ad6ecfe0e2700121878fbdb71f4fe7793895649498c3a3bd4e226e5478af6e13d9519ee3e84b3a85dfd47fb986432c6ebb898eae1d WHIRLPOOL 8d639fe966f675b171e420e8ad9b8b30d4beeb62dde6fe4eb0cce7c9a4186035bdedce32d55e9a7a432aafb641e2fb437d72abaa9c64a32337ece961254ae323
+DIST ufed-0.91.tar.bz2 61466 SHA256 1f53be6c2a3dacf3e88f43245fd9775c793236044c85441a6f80bed7ff2f11fd SHA512 34fc57b4d3fd1e8c4226401aec409ce4303294ec9044673ec62053b8dc6ade9d54419a5d208ba6767b75507bc9f8983a401dc258b0bae5b733e7a0c791554c35 WHIRLPOOL 9ee78247430ac3ece6f7e52cadc2305ef409f02c556576a8dea47ba25082b81fc917350854d479363a77558b8b0a312a58d76b233b29510b69e75983bf7515b6
+DIST ufed-0.92.tar.bz2 61606 SHA256 0816d2ba522e1e61ab585c13bb67c33ca037ab3021f958a9e66803d678692405 SHA512 b1a608d026945144653f43ad322e54f0f1192d39fea3da2a4919e07de65445c75aa5e2d1e8cf9b24849c45f891a0de5952c92b3227f6c1200965f3c280611408 WHIRLPOOL 388ed787bf5743fa8d431b3cdbb97fb01106057b74b0dd6bac97fd89b213b400ecd2626f690ae06e7d77edf1cdc72b6a4dfaf07db6eef59a02be0b3e84a4487d
diff --git a/app-portage/ufed/files/ufed-0.40.2-manpage-URL.patch b/app-portage/ufed/files/ufed-0.40.2-manpage-URL.patch
new file mode 100644
index 000000000000..dd8b73446997
--- /dev/null
+++ b/app-portage/ufed/files/ufed-0.40.2-manpage-URL.patch
@@ -0,0 +1,25 @@
+From 0f67e677776c6a5b6a095c3c2486a2184a5427a0 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Tue, 20 Nov 2012 11:28:57 -0600
+Subject: [PATCH 2/2] Update handbook URL for more information on USE flags
+
+---
+ ufed.8 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ufed.8 b/ufed.8
+index 4c55c29..f42fdc1 100644
+--- a/ufed.8
++++ b/ufed.8
+@@ -47,7 +47,7 @@ thus USE settings will have no effect on those mandatory dependencies.
+ A list of USE keywords used by a particular package can be found by checking
+ the IUSE line in any ebuild file.
+
+-See http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1
++See http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2
+ for more information on USE flags.
+
+ Please also note that if UFED describes a flag (Unknown) it generally means
+--
+1.8.0
+
diff --git a/app-portage/ufed/files/ufed-0.40.2-prefix.patch b/app-portage/ufed/files/ufed-0.40.2-prefix.patch
new file mode 100644
index 000000000000..6eea85b991de
--- /dev/null
+++ b/app-portage/ufed/files/ufed-0.40.2-prefix.patch
@@ -0,0 +1,203 @@
+From 7d133e58b27253ebc1bcfc16fa45ef91125ccde9 Mon Sep 17 00:00:00 2001
+From: Paul Varner <fuzzyray@gentoo.org>
+Date: Tue, 20 Nov 2012 11:22:09 -0600
+Subject: [PATCH 1/2] Change ufed to use EPREFIX for prefix installs.
+
+---
+ Portage.pm | 26 ++++++++++++++++++--------
+ ufed-curses-help.c | 7 +++----
+ ufed.8 | 29 +++++++++++++++--------------
+ ufed.pl.in | 6 +++---
+ 4 files changed, 39 insertions(+), 29 deletions(-)
+
+diff --git a/Portage.pm b/Portage.pm
+index 0b02cab..c7e236d 100644
+--- a/Portage.pm
++++ b/Portage.pm
+@@ -15,7 +15,9 @@ our %default_flags;
+ our %make_conf_flags;
+ our %archs;
+ our %all_flags;
++our $eprefix;
+
++sub get_eprefix();
+ sub have_package($);
+ sub merge(\%%);
+ sub merge_env(\%);
+@@ -30,6 +32,7 @@ sub read_profiles();
+ sub read_sh($);
+ sub read_use_mask();
+
++get_eprefix;
+ read_packages;
+ read_profiles;
+ read_use_mask;
+@@ -54,6 +57,13 @@ if($lastorder ne 'conf') {
+ die "Sorry, USE_ORDER without make.conf overriding global USE flags are not currently supported by ufed.\n";
+ }
+
++
++sub get_eprefix() {
++ $eprefix = `portageq envvar EPREFIX 2>&1`;
++ die "Couldn't determine EPREFIX from Portage" if $? != 0;
++ chomp($eprefix);
++}
++
+ sub have_package($) {
+ my ($cp) = @_;
+ return $packages{$cp};
+@@ -130,8 +140,8 @@ sub read_archs() {
+ }
+
+ sub read_make_conf() {
+- my %env = read_sh "/etc/make.conf";
+- merge (%env, read_sh('/etc/portage/make.conf'));
++ my %env = read_sh "$eprefix/etc/make.conf";
++ merge (%env, read_sh("$eprefix/etc/portage/make.conf"));
+ merge %make_conf_flags, %{$env{USE}} if exists $env{USE};
+ @portagedirs = $environment{PORTDIR};
+ push @portagedirs, split ' ', $environment{PORTDIR_OVERLAY} if defined $environment{PORTDIR_OVERLAY};
+@@ -145,13 +155,13 @@ sub read_make_defaults() {
+ }
+
+ sub read_make_globals() {
+- for my $dir(@profiles, '/usr/share/portage/config') {
++ for my $dir(@profiles, "$eprefix/usr/share/portage/config") {
+ read_sh "$dir/make.globals";
+ }
+ }
+
+ sub read_packages() {
+- die "Couldn't read /var/db/pkg\n" unless opendir my $pkgdir, '/var/db/pkg';
++ die "Couldn't read $eprefix/var/db/pkg\n" unless opendir my $pkgdir, "$eprefix/var/db/pkg";
+ while(my $cat = readdir $pkgdir) {
+ next if $cat eq '.' or $cat eq '..';
+ next unless opendir my $catdir, "/var/db/pkg/$cat";
+@@ -199,16 +209,16 @@ sub read_packages() {
+ }
+
+ sub read_profiles() {
+- $_ = readlink '/etc/make.profile';
+- $_ = readlink '/etc/portage/make.profile' if not defined $_;
+- die "/etc\{,/portage\}/make.profile is not a symlink\n" if not defined $_;
++ $_ = readlink "$eprefix/etc/make.profile";
++ $_ = readlink "$eprefix/etc/portage/make.profile" if not defined $_;
++ die "$eprefix/etc\{,/portage\}/make.profile is not a symlink\n" if not defined $_;
+ @profiles = norm_path '/etc', $_;
+ for (my $i = -1; $i >= -@profiles; $i--) {
+ for(noncomments "$profiles[$i]/parent") {
+ splice @profiles, $i, 0, norm_path $profiles[$i], $_;
+ }
+ }
+- push @profiles, '/etc/portage/profile';
++ push @profiles, "$eprefix/etc/portage/profile";
+ }
+
+ sub read_sh($) {
+diff --git a/ufed-curses-help.c b/ufed-curses-help.c
+index 19679bb..79bd35e 100644
+--- a/ufed-curses-help.c
++++ b/ufed-curses-help.c
+@@ -40,11 +40,10 @@ static void init_lines(void) {
+ "Each USE flag has a 2 character descriptor that represents the two "
+ "ways a use flag can be set.",
+ "",
+-"The 1st char is the setting from the /etc/make.profile/make.defaults "
+-"file. These are the defaults for Gentoo as a whole. These should not be "
+-"changed.",
++"The 1st char is the setting from the make.defaults file. These are "
++"the defaults for Gentoo as a whole. These should not be changed.",
+ "",
+-"The 2nd char is the settings from the /etc/make.conf file. these are "
++"The 2nd char is the settings from the make.conf file. these are "
+ "the only ones that should be changed by the user and these are the ones "
+ "that ufed changes.",
+ "",
+diff --git a/ufed.8 b/ufed.8
+index 7d7fe50..4c55c29 100644
+--- a/ufed.8
++++ b/ufed.8
+@@ -12,15 +12,14 @@ UFED attempts to show you where a particular use setting came from. Each USE
+ flag has a 3 character descriptor that represents the three ways a use flag can
+ be set.
+
+-The 1st char is the setting from the /etc/make.profile/make.defaults file.
+-These are the defaults for Gentoo as a whole. These should not be changed.
++The 1st char is the setting from the make.defaults file. These are the defaults
++for Gentoo as a whole. These should not be changed.
+
+-The 2nd char is the setting from the /etc/make.profile/use.defaults file. These
+-will change as packages are added and removes from the system.
++The 2nd char is the setting from the use.defaults file. These will change as
++packages are added and removes from the system.
+
+-The 3rd char is the settings from the /etc/make.conf file. these are the only
+-ones that should be changed by the user and these are the ones that UFED
+-changes.
++The 3rd char is the settings from the make.conf file. these are the only ones
++that should be changed by the user and these are the ones that UFED changes.
+
+ If the character is a + then that USE flag was set in that file, if it is a
+ space then the flag was not mentioned in that file and if it is a - then that
+@@ -64,25 +63,27 @@ Please report bugs via http://bugs.gentoo.org/
+ .BR make.conf (5)
+ .SH "FILES"
+ .TP
+-\fB/etc/make.conf\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.conf\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/portage/make.conf\fR
+ Contains user specified USE flags
+ .TP
+-\fB/etc/make.conf.old \fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.conf.old \fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/portage/make.conf.old \fR
+ This is where ufed places a backup of your make.conf file.
+ .TP
+-\fB/etc/make.profile/make.defaults\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/make.defaults\fR
+ Contains system default USE flags
+ .TP
+-\fB/etc/make.profile/use.defaults\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/use.defaults\fR
+ Provides an automatic ebuild to USE flag mapping ('auto' flags)
+ .TP
+-\fB/etc/make.profile/use.mask\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/etc/make.profile/use.mask\fR
+ Restricted USE flags
+ .TP
+-\fB/usr/portage/profiles/use.desc\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/usr/portage/profiles/use.desc\fR
+ Description strings for global USE flags
+ .TP
+-\fB/usr/portage/profiles/use.local.desc\fR
++\fB@GENTOO_PORTAGE_EPREFIX@/usr/portage/profiles/use.local.desc\fR
+ Description strings for local USE flags
+ .SH "AUTHORS"
+ Robin Johnson <robbat2@gentoo.org>
+diff --git a/ufed.pl.in b/ufed.pl.in
+index 7493147..3435dae 100644
+--- a/ufed.pl.in
++++ b/ufed.pl.in
+@@ -29,7 +29,7 @@ for(keys %Portage::all_flags) {
+ @{$use_descriptions{$_}} = "(Unknown)"
+ if not exists $use_descriptions{$_};
+ }
+-@{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in /etc/make.conf';
++@{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in make.conf';
+
+ for(@Portage::archs) {
+ delete $Portage::default_flags{$_};
+@@ -155,8 +155,8 @@ sub save_flags(@) {
+ my (@flags) = @_;
+ my $contents;
+
+- my $makeconf_name = '/etc/portage/make.conf';
+- $makeconf_name = '/etc/make.conf' unless(-r $makeconf_name);
++ my $makeconf_name = "$Portage::eprefix/etc/portage/make.conf";
++ $makeconf_name = "$Portage::eprefix/etc/make.conf" unless(-r $makeconf_name);
+ {
+ open my $makeconf, '<', $makeconf_name or die "Couldn't open $makeconf_name\n";
+ open my $makeconfold, '>', $makeconf_name . '.old' or die "Couldn't open $makeconf_name.old\n";
+--
+1.8.0
+
diff --git a/app-portage/ufed/files/ufed-0.90_rc2-get_portdir_from_portageq.patch b/app-portage/ufed/files/ufed-0.90_rc2-get_portdir_from_portageq.patch
new file mode 100644
index 000000000000..b66398a824f6
--- /dev/null
+++ b/app-portage/ufed/files/ufed-0.90_rc2-get_portdir_from_portageq.patch
@@ -0,0 +1,99 @@
+--- a/Portage.pm 2013-09-11 08:34:10.792161194 +0200
++++ b/Portage.pm 2013-09-11 09:00:45.737142232 +0200
+@@ -46,11 +46,13 @@
+ our $used_make_conf = "";
+
+ # --- private members ---
+-my %_environment = ();
+-my $_EPREFIX = "";
+-my @_profiles = ();
+-my %_use_eh_safe = (); ## USE_EXPAND_HIDDEN safe hash. See _read_make_defaults()
+-my %_use_order = ();
++my %_environment = ();
++my $_EPREFIX = "";
++my $_PORTDIR = "";
++my $_PORTDIR_OVERLAY = "";
++my @_profiles = ();
++my %_use_eh_safe = (); ## USE_EXPAND_HIDDEN safe hash. See _read_make_defaults()
++my %_use_order = ();
+
+ # $_use_temp - hashref that represents the current state of
+ # all known flags. This is for data gathering, the public
+@@ -87,7 +89,7 @@
+ # --- private methods ---
+ sub _add_flag;
+ sub _add_temp;
+-sub _determine_eprefix;
++sub _determine_eprefix_portdir;
+ sub _determine_make_conf;
+ sub _determine_profiles;
+ sub _final_cleaning;
+@@ -112,7 +114,7 @@
+ # --- Package initialization ---
+ INIT {
+ $_environment{$_} = {} for qw{USE USE_EXPAND USE_EXPAND_HIDDEN};
+- _determine_eprefix;
++ _determine_eprefix_portdir;
+ _determine_make_conf;
+ _determine_profiles;
+ _read_make_globals;
+@@ -223,14 +225,29 @@
+ }
+
+
+-# Determine the value for EPREFIX and save it
+-# in $_EPREFIX. This is done using 'portageq'.
++# Determine the values for EPREFIX, PORTDIR
++# and PORTDIR_OVERLAY. These are saved in
++# $_EPREFIX, $_PORTDIR and $_PORTDIR_OVERLAY.
++# This is done using 'portageq'.
+ # Other output from portageq is printed on
+ # STDERR.
+ # No parameters accepted.
+-sub _determine_eprefix {
++sub _determine_eprefix_portdir {
+ my $tmp = "/tmp/ufed_$$.tmp";
+- $_EPREFIX = qx{portageq envvar EPREFIX 2>$tmp};
++ my @res = map {
++ my $x = $_;
++ chomp $x;
++ $x =~ s/'//g;
++ $x
++ } qx{portageq envvar -v EPREFIX PORTDIR PORTDIR_OVERLAY 2>$tmp};
++
++ while (my $res = shift @res) {
++ if ($res =~ /^(.*)=(.*)$/) {
++ "EPREFIX" eq $1 and $_EPREFIX = $2;
++ "PORTDIR" eq $1 and $_PORTDIR = $2;
++ "PORTDIR_OVERLAY" eq $1 and $_PORTDIR_OVERLAY = $2;
++ }
++ }
+ die "Couldn't determine EPREFIX from Portage" if $? != 0;
+
+ if ( -s $tmp ) {
+@@ -241,7 +258,6 @@
+ }
+ -e $tmp and unlink $tmp;
+
+- chomp($_EPREFIX);
+ return;
+ }
+
+@@ -631,13 +647,11 @@
+ }
+
+ # Add PORTDIR and overlays to @_profiles
+- defined ($_environment{PORTDIR})
+- and push @_profiles, "$_environment{PORTDIR}/profiles"
++ length ($_PORTDIR)
++ and push @_profiles, "${_PORTDIR}/profiles"
+ or die("Unable to determine PORTDIR!\nSomething is seriously broken here!\n");
+- defined ($_environment{PORTDIR_OVERLAY})
+- and push @_profiles,
+- map { my $x=$_; $x =~ s/^\s*(\S+)\s*$/$1\/profiles/mg ; $x }
+- split('\n', $_environment{PORTDIR_OVERLAY});
++ length ($_PORTDIR_OVERLAY)
++ and push @_profiles, split(' ', $_PORTDIR_OVERLAY);
+ -e "${_EPREFIX}/etc/portage/profile"
+ and push @_profiles, "${_EPREFIX}/etc/portage/profile";
+ return;
diff --git a/app-portage/ufed/metadata.xml b/app-portage/ufed/metadata.xml
new file mode 100644
index 000000000000..c65e3908712f
--- /dev/null
+++ b/app-portage/ufed/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>yamakuzure@gmx.net</email>
+ <name>Sven Eden</name>
+ <description>Current maintainer, assign bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>fuzzyray@gentoo.org</email>
+ <description>Proxy committer, CC bugs</description>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-portage/ufed/ufed-0.40.2-r1.ebuild b/app-portage/ufed/ufed-0.40.2-r1.ebuild
new file mode 100644
index 000000000000..e9a695221d68
--- /dev/null
+++ b/app-portage/ufed/ufed-0.40.2-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit base multilib autotools prefix
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="sys-libs/ncurses"
+RDEPEND="${DEPEND}
+ dev-lang/perl"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=(
+ "${FILESDIR}"/${P}-prefix.patch
+ "${FILESDIR}"/${P}-manpage-URL.patch
+)
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eprefixify ufed.8
+ eautoreconf
+}
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+}
diff --git a/app-portage/ufed/ufed-0.90_rc1.ebuild b/app-portage/ufed/ufed-0.90_rc1.ebuild
new file mode 100644
index 000000000000..d17f1c957b08
--- /dev/null
+++ b/app-portage/ufed/ufed-0.90_rc1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils multilib autotools
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="sys-libs/ncurses"
+RDEPEND="${DEPEND}
+ dev-lang/perl"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=()
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
diff --git a/app-portage/ufed/ufed-0.90_rc2-r1.ebuild b/app-portage/ufed/ufed-0.90_rc2-r1.ebuild
new file mode 100644
index 000000000000..d9073eb8b82e
--- /dev/null
+++ b/app-portage/ufed/ufed-0.90_rc2-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils multilib autotools
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+COMMON_DEPEND="sys-libs/ncurses"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=(
+ "${FILESDIR}"/${P}-get_portdir_from_portageq.patch
+)
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
diff --git a/app-portage/ufed/ufed-0.90_rc2.ebuild b/app-portage/ufed/ufed-0.90_rc2.ebuild
new file mode 100644
index 000000000000..de55bfd8e6d8
--- /dev/null
+++ b/app-portage/ufed/ufed-0.90_rc2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils multilib autotools
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+COMMON_DEPEND="sys-libs/ncurses"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=()
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
diff --git a/app-portage/ufed/ufed-0.91.ebuild b/app-portage/ufed/ufed-0.91.ebuild
new file mode 100644
index 000000000000..e30a13a6f81d
--- /dev/null
+++ b/app-portage/ufed/ufed-0.91.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils multilib autotools
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+COMMON_DEPEND="sys-libs/ncurses"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=()
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
diff --git a/app-portage/ufed/ufed-0.92.ebuild b/app-portage/ufed/ufed-0.92.ebuild
new file mode 100644
index 000000000000..9690899e4659
--- /dev/null
+++ b/app-portage/ufed/ufed-0.92.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils multilib autotools
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~fuzzyray/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE=""
+
+COMMON_DEPEND="sys-libs/ncurses"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig"
+
+# Populate the patches array for patches applied for -rX releases
+# It is an array of patch file names of the form:
+# "${FILESDIR}"/${P}-make.globals-path.patch
+PATCHES=()
+
+src_prepare() {
+ base_src_prepare
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[${PVR}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}
diff --git a/app-portage/ufed/ufed-9999.ebuild b/app-portage/ufed/ufed-9999.ebuild
new file mode 100644
index 000000000000..80651693e199
--- /dev/null
+++ b/app-portage/ufed/ufed-9999.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils multilib git-2 autotools
+
+EGIT_REPO_URI="git://anongit.gentoo.org/proj/ufed.git"
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+COMMON_DEPEND="sys-libs/ncurses"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ # Change the version number to reflect the ebuild version
+ sed -i "s:,\[git\],:,\[9999-${EGIT_VERSION}\],:" configure.ac
+ eautoreconf
+}
+
+src_configure() {
+ econf --libexecdir="${EPREFIX}"/usr/$(get_libdir)/ufed
+}