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 /dev-vcs
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 'dev-vcs')
-rw-r--r--dev-vcs/archway/Manifest1
-rw-r--r--dev-vcs/archway/archway-0.2.1.ebuild30
-rw-r--r--dev-vcs/archway/metadata.xml8
-rw-r--r--dev-vcs/bfg/Manifest6
-rw-r--r--dev-vcs/bfg/bfg-1.11.10.ebuild27
-rw-r--r--dev-vcs/bfg/bfg-1.11.7.ebuild27
-rw-r--r--dev-vcs/bfg/bfg-1.11.8.ebuild27
-rw-r--r--dev-vcs/bfg/bfg-1.12.0.ebuild27
-rw-r--r--dev-vcs/bfg/bfg-1.12.1.ebuild27
-rw-r--r--dev-vcs/bfg/bfg-1.12.3.ebuild27
-rw-r--r--dev-vcs/bfg/metadata.xml8
-rw-r--r--dev-vcs/bzr-explorer/Manifest1
-rw-r--r--dev-vcs/bzr-explorer/bzr-explorer-1.3.0-r1.ebuild34
-rw-r--r--dev-vcs/bzr-explorer/bzr-explorer-1.3.0.ebuild31
-rw-r--r--dev-vcs/bzr-explorer/metadata.xml15
-rw-r--r--dev-vcs/bzr-fastimport/Manifest1
-rw-r--r--dev-vcs/bzr-fastimport/bzr-fastimport-0.13.0.ebuild34
-rw-r--r--dev-vcs/bzr-fastimport/metadata.xml12
-rw-r--r--dev-vcs/bzr-git/Manifest1
-rw-r--r--dev-vcs/bzr-git/bzr-git-0.6.8-r1.ebuild41
-rw-r--r--dev-vcs/bzr-git/bzr-git-0.6.8.ebuild37
-rw-r--r--dev-vcs/bzr-git/metadata.xml5
-rw-r--r--dev-vcs/bzr-gtk/Manifest2
-rw-r--r--dev-vcs/bzr-gtk/bzr-gtk-0.103.0.ebuild50
-rw-r--r--dev-vcs/bzr-gtk/bzr-gtk-0.104.0-r1.ebuild62
-rw-r--r--dev-vcs/bzr-gtk/bzr-gtk-0.104.0.ebuild50
-rw-r--r--dev-vcs/bzr-gtk/files/credits.pickle193
-rw-r--r--dev-vcs/bzr-gtk/metadata.xml18
-rw-r--r--dev-vcs/bzr-rewrite/Manifest1
-rw-r--r--dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild22
-rw-r--r--dev-vcs/bzr-rewrite/metadata.xml8
-rw-r--r--dev-vcs/bzr-xmloutput/Manifest1
-rw-r--r--dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r1.ebuild27
-rw-r--r--dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r2.ebuild28
-rw-r--r--dev-vcs/bzr-xmloutput/files/bzr-xmloutput-0.8.8_remove-relative-imports.patch220
-rw-r--r--dev-vcs/bzr-xmloutput/metadata.xml8
-rw-r--r--dev-vcs/bzr/Manifest3
-rw-r--r--dev-vcs/bzr/bzr-2.4.2.ebuild88
-rw-r--r--dev-vcs/bzr/bzr-2.5.1-r1.ebuild97
-rw-r--r--dev-vcs/bzr/bzr-2.5.1.ebuild88
-rw-r--r--dev-vcs/bzr/bzr-2.6.0.ebuild95
-rw-r--r--dev-vcs/bzr/files/71bzr-gentoo.el5
-rw-r--r--dev-vcs/bzr/files/bzr-2.4.0-no-pyrex-citon.patch33
-rw-r--r--dev-vcs/bzr/files/bzr-2.4.2-no-pyrex-citon.patch33
-rw-r--r--dev-vcs/bzr/files/bzr-2.5.1-sphinx-test-failures.patch24
-rw-r--r--dev-vcs/bzr/metadata.xml19
-rw-r--r--dev-vcs/bzrtools/Manifest2
-rw-r--r--dev-vcs/bzrtools/bzrtools-2.4.1.ebuild53
-rw-r--r--dev-vcs/bzrtools/bzrtools-2.5.ebuild28
-rw-r--r--dev-vcs/bzrtools/metadata.xml8
-rw-r--r--dev-vcs/colorcvs/Manifest1
-rw-r--r--dev-vcs/colorcvs/colorcvs-1.4-r1.ebuild44
-rw-r--r--dev-vcs/colorcvs/files/colorcvs-1.4-prefix.patch20
-rw-r--r--dev-vcs/colorcvs/files/colorcvs-profile.sh3
-rw-r--r--dev-vcs/colorcvs/metadata.xml5
-rw-r--r--dev-vcs/colorsvn/Manifest1
-rw-r--r--dev-vcs/colorsvn/colorsvn-0.3.2-r2.ebuild54
-rw-r--r--dev-vcs/colorsvn/files/0001-Don-t-colorize-svn-mkdir-bug-321451.-Use-IPC-open2-i.patch43
-rw-r--r--dev-vcs/colorsvn/metadata.xml12
-rw-r--r--dev-vcs/cssc/Manifest1
-rw-r--r--dev-vcs/cssc/cssc-1.4.0.ebuild47
-rw-r--r--dev-vcs/cssc/files/cssc-1.3.0-gcc47.patch10
-rw-r--r--dev-vcs/cssc/files/cssc-1.4.0-config.patch15
-rw-r--r--dev-vcs/cssc/files/cssc-1.4.0-m4.patch13
-rw-r--r--dev-vcs/cssc/files/cssc-1.4.0-test-large.patch14
-rw-r--r--dev-vcs/cssc/metadata.xml10
-rw-r--r--dev-vcs/cvs-fast-export/Manifest1
-rw-r--r--dev-vcs/cvs-fast-export/cvs-fast-export-1.26.ebuild40
-rw-r--r--dev-vcs/cvs-fast-export/metadata.xml12
-rw-r--r--dev-vcs/cvs/Manifest13
-rw-r--r--dev-vcs/cvs/cvs-1.11.23.ebuild62
-rw-r--r--dev-vcs/cvs/cvs-1.12.12-r10.ebuild90
-rw-r--r--dev-vcs/cvs/cvs-1.12.12-r6.ebuild82
-rw-r--r--dev-vcs/cvs/cvs-1.12.12-r7.ebuild83
-rw-r--r--dev-vcs/cvs/cvs-1.12.12-r8.ebuild84
-rw-r--r--dev-vcs/cvs/cvs-1.12.12-r9.ebuild89
-rw-r--r--dev-vcs/cvs/cvs-1.12.13-r1.ebuild131
-rw-r--r--dev-vcs/cvs/cvs-1.12.13-r2.ebuild132
-rw-r--r--dev-vcs/cvs/cvs-1.12.13.1-r1.ebuild154
-rw-r--r--dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild155
-rw-r--r--dev-vcs/cvs/cvs-1.12.13.1.ebuild151
-rw-r--r--dev-vcs/cvs/files/01-cvs-env.d1
-rw-r--r--dev-vcs/cvs/files/cvs-1.11.23-CVE-2010-3846.patch167
-rw-r--r--dev-vcs/cvs/files/cvs-1.11.23-getline64.patch36
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch140
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c58
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch34
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch22
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch52
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch21
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch42
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch12
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch29
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-openat.patch21
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch14
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13-openat.patch21
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13-zlib.patch31
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch101
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch42
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch24
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch43
-rw-r--r--dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch30
-rw-r--r--dev-vcs/cvs/files/cvs.pam-include-1.12.124
-rw-r--r--dev-vcs/cvs/files/cvspserver.xinetd.d14
-rw-r--r--dev-vcs/cvs/metadata.xml8
-rw-r--r--dev-vcs/cvs2cl/Manifest1
-rw-r--r--dev-vcs/cvs2cl/cvs2cl-2.71.ebuild30
-rw-r--r--dev-vcs/cvs2cl/metadata.xml5
-rw-r--r--dev-vcs/cvs2svn/Manifest8
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-1.5.0.ebuild55
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-1.5.1.ebuild55
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.0.1.ebuild55
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.1.0.ebuild55
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.1.1.ebuild55
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.2.0.ebuild60
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.3.0.ebuild64
-rw-r--r--dev-vcs/cvs2svn/cvs2svn-2.4.0.ebuild64
-rw-r--r--dev-vcs/cvs2svn/files/2.2.0-deprecated-modules.patch54
-rw-r--r--dev-vcs/cvs2svn/metadata.xml10
-rw-r--r--dev-vcs/cvsd/Manifest2
-rw-r--r--dev-vcs/cvsd/cvsd-1.0.17.ebuild44
-rw-r--r--dev-vcs/cvsd/cvsd-1.0.7.ebuild44
-rw-r--r--dev-vcs/cvsd/files/cvsd.rc620
-rw-r--r--dev-vcs/cvsd/metadata.xml5
-rw-r--r--dev-vcs/cvsgraph/Manifest2
-rw-r--r--dev-vcs/cvsgraph/cvsgraph-1.6.1.ebuild41
-rw-r--r--dev-vcs/cvsgraph/cvsgraph-1.7.0.ebuild41
-rw-r--r--dev-vcs/cvsgraph/metadata.xml12
-rw-r--r--dev-vcs/cvsps/Manifest3
-rw-r--r--dev-vcs/cvsps/cvsps-2.1-r1.ebuild38
-rw-r--r--dev-vcs/cvsps/cvsps-2.2_beta1.ebuild38
-rw-r--r--dev-vcs/cvsps/cvsps-3.13-r1.ebuild39
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.1-build.patch18
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.1-solaris.patch131
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch135
-rw-r--r--dev-vcs/cvsps/files/cvsps-3.13-make.patch52
-rw-r--r--dev-vcs/cvsps/metadata.xml12
-rw-r--r--dev-vcs/cvsq/Manifest1
-rw-r--r--dev-vcs/cvsq/cvsq-0.4.4.ebuild24
-rw-r--r--dev-vcs/cvsq/metadata.xml5
-rw-r--r--dev-vcs/cvsspam/Manifest1
-rw-r--r--dev-vcs/cvsspam/cvsspam-0.2.12.ebuild35
-rw-r--r--dev-vcs/cvsspam/files/cvsspam-0.2.12-svn.patch30
-rw-r--r--dev-vcs/cvsspam/metadata.xml7
-rw-r--r--dev-vcs/cvsutils/Manifest1
-rw-r--r--dev-vcs/cvsutils/cvsutils-0.2.5.ebuild20
-rw-r--r--dev-vcs/cvsutils/metadata.xml11
-rw-r--r--dev-vcs/darcs/Manifest4
-rw-r--r--dev-vcs/darcs/darcs-2.10.0-r1.ebuild107
-rw-r--r--dev-vcs/darcs/darcs-2.10.1.ebuild100
-rw-r--r--dev-vcs/darcs/darcs-2.8.4-r3.ebuild128
-rw-r--r--dev-vcs/darcs/darcs-2.8.4-r6.ebuild134
-rw-r--r--dev-vcs/darcs/darcs-2.8.4.ebuild117
-rw-r--r--dev-vcs/darcs/darcs-2.8.5-r3.ebuild94
-rw-r--r--dev-vcs/darcs/darcs-2.8.5-r4.ebuild96
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.4-fix-nonatomic-global.patch20
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-1.patch128
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-2.patch14
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.4-issue2364-part-2.patch52
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.4-issue2364.patch70
-rw-r--r--dev-vcs/darcs/files/darcs-2.8.5-ghc-7.10.patch142
-rw-r--r--dev-vcs/darcs/metadata.xml17
-rw-r--r--dev-vcs/easygit/Manifest1
-rw-r--r--dev-vcs/easygit/easygit-1.6.5.5.ebuild23
-rw-r--r--dev-vcs/easygit/metadata.xml7
-rw-r--r--dev-vcs/fossil/Manifest1
-rw-r--r--dev-vcs/fossil/fossil-20150119112900.ebuild48
-rw-r--r--dev-vcs/fossil/metadata.xml20
-rw-r--r--dev-vcs/giggle/Manifest1
-rw-r--r--dev-vcs/giggle/files/giggle-0.6.2-gtksourceview-3.8.0.patch24
-rw-r--r--dev-vcs/giggle/giggle-0.7-r1.ebuild46
-rw-r--r--dev-vcs/giggle/metadata.xml12
-rw-r--r--dev-vcs/git-annex/Manifest8
-rw-r--r--dev-vcs/git-annex/files/git-annex.xpm47
-rw-r--r--dev-vcs/git-annex/git-annex-5.20140927.ebuild162
-rw-r--r--dev-vcs/git-annex/git-annex-5.20141125.ebuild162
-rw-r--r--dev-vcs/git-annex/git-annex-5.20141203.ebuild165
-rw-r--r--dev-vcs/git-annex/git-annex-5.20141231.ebuild173
-rw-r--r--dev-vcs/git-annex/git-annex-5.20150219.ebuild172
-rw-r--r--dev-vcs/git-annex/git-annex-5.20150327.ebuild172
-rw-r--r--dev-vcs/git-annex/git-annex-5.20150617.ebuild178
-rw-r--r--dev-vcs/git-annex/git-annex-5.20150710.ebuild178
-rw-r--r--dev-vcs/git-annex/metadata.xml41
-rw-r--r--dev-vcs/git-bz/Manifest2
-rw-r--r--dev-vcs/git-bz/git-bz-0.12.04.26.ebuild29
-rw-r--r--dev-vcs/git-bz/git-bz-0.12.12.15.ebuild25
-rw-r--r--dev-vcs/git-bz/git-bz-9999.ebuild49
-rw-r--r--dev-vcs/git-bz/metadata.xml8
-rw-r--r--dev-vcs/git-bzr-ng/Manifest2
-rw-r--r--dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120130.ebuild39
-rw-r--r--dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120822.ebuild39
-rw-r--r--dev-vcs/git-bzr-ng/metadata.xml12
-rw-r--r--dev-vcs/git-cola/Manifest2
-rw-r--r--dev-vcs/git-cola/files/README.gentoo3
-rw-r--r--dev-vcs/git-cola/files/git-cola-1.9.1-system-ssh-askpass.patch16
-rw-r--r--dev-vcs/git-cola/files/git-cola-1.9.3-disable-tests.patch21
-rw-r--r--dev-vcs/git-cola/files/git-cola-2.2.1-disable-live-tests.patch22
-rw-r--r--dev-vcs/git-cola/files/git-cola-2.2.1-update-git-config-in-tests.patch13
-rw-r--r--dev-vcs/git-cola/files/index.html15
-rw-r--r--dev-vcs/git-cola/git-cola-2.1.2.ebuild111
-rw-r--r--dev-vcs/git-cola/git-cola-2.2.1.ebuild98
-rw-r--r--dev-vcs/git-cola/metadata.xml15
-rw-r--r--dev-vcs/git-crypt/Manifest3
-rw-r--r--dev-vcs/git-crypt/git-crypt-0.3.ebuild21
-rw-r--r--dev-vcs/git-crypt/git-crypt-0.4.ebuild21
-rw-r--r--dev-vcs/git-crypt/git-crypt-0.5.0.ebuild21
-rw-r--r--dev-vcs/git-crypt/metadata.xml11
-rw-r--r--dev-vcs/git-deploy/Manifest1
-rw-r--r--dev-vcs/git-deploy/git-deploy-6.0.1_p20131024.ebuild68
-rw-r--r--dev-vcs/git-deploy/metadata.xml11
-rw-r--r--dev-vcs/git-flow/Manifest4
-rw-r--r--dev-vcs/git-flow/files/git-flow-0.4.1-unbundle-shflags.patch32
-rw-r--r--dev-vcs/git-flow/files/git-flow-1.8.0-unbundle-shflags.patch25
-rw-r--r--dev-vcs/git-flow/git-flow-0.4.1.ebuild51
-rw-r--r--dev-vcs/git-flow/git-flow-1.8.0.ebuild51
-rw-r--r--dev-vcs/git-flow/metadata.xml11
-rw-r--r--dev-vcs/git-mailz/Manifest2
-rw-r--r--dev-vcs/git-mailz/git-mailz-0.12.ebuild29
-rw-r--r--dev-vcs/git-mailz/git-mailz-0.14.ebuild29
-rw-r--r--dev-vcs/git-mailz/metadata.xml13
-rw-r--r--dev-vcs/git-mantle/Manifest1
-rw-r--r--dev-vcs/git-mantle/git-mantle-0.6.ebuild27
-rw-r--r--dev-vcs/git-mantle/metadata.xml13
-rw-r--r--dev-vcs/git-merge-changelog/Manifest2
-rw-r--r--dev-vcs/git-merge-changelog/git-merge-changelog-20140103.ebuild23
-rw-r--r--dev-vcs/git-merge-changelog/git-merge-changelog-20140223.ebuild25
-rw-r--r--dev-vcs/git-merge-changelog/metadata.xml7
-rw-r--r--dev-vcs/git-pimp/Manifest1
-rw-r--r--dev-vcs/git-pimp/git-pimp-0.8.ebuild29
-rw-r--r--dev-vcs/git-pimp/metadata.xml13
-rw-r--r--dev-vcs/git-sh/Manifest2
-rw-r--r--dev-vcs/git-sh/git-sh-1.1.ebuild32
-rw-r--r--dev-vcs/git-sh/git-sh-1.3.ebuild32
-rw-r--r--dev-vcs/git-sh/metadata.xml12
-rw-r--r--dev-vcs/git/Manifest33
-rw-r--r--dev-vcs/git/files/50git-gentoo.el13
-rw-r--r--dev-vcs/git/files/git-1.8.5-mw-destdir.patch37
-rw-r--r--dev-vcs/git/files/git-1.8.5-mw-vendor.patch39
-rw-r--r--dev-vcs/git/files/git-1.8.5-optional-cvs.patch362
-rw-r--r--dev-vcs/git/files/git-1.9.0_rc3-optional-cvs.patch372
-rw-r--r--dev-vcs/git/files/git-2.0.0-r2-optional-cvs.patch375
-rw-r--r--dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch11
-rw-r--r--dev-vcs/git/files/git-2.2.2-optional-cvs.patch454
-rw-r--r--dev-vcs/git/files/git-daemon-r1.initd13
-rw-r--r--dev-vcs/git/files/git-daemon.confd19
-rw-r--r--dev-vcs/git/files/git-daemon.socket9
-rw-r--r--dev-vcs/git/files/git-daemon.xinetd13
-rw-r--r--dev-vcs/git/files/git-daemon_at.service13
-rw-r--r--dev-vcs/git/git-1.8.5.6.ebuild641
-rw-r--r--dev-vcs/git/git-1.9.5.ebuild640
-rw-r--r--dev-vcs/git/git-2.0.5.ebuild639
-rw-r--r--dev-vcs/git/git-2.1.4.ebuild635
-rw-r--r--dev-vcs/git/git-2.2.2.ebuild637
-rw-r--r--dev-vcs/git/git-2.3.6.ebuild636
-rw-r--r--dev-vcs/git/git-2.3.8.ebuild636
-rw-r--r--dev-vcs/git/git-2.4.6.ebuild636
-rw-r--r--dev-vcs/git/git-2.4.7.ebuild636
-rw-r--r--dev-vcs/git/git-2.4.8.ebuild636
-rw-r--r--dev-vcs/git/git-2.5.0.ebuild636
-rw-r--r--dev-vcs/git/git-9999-r1.ebuild637
-rw-r--r--dev-vcs/git/git-9999-r2.ebuild637
-rw-r--r--dev-vcs/git/git-9999-r3.ebuild637
-rw-r--r--dev-vcs/git/git-9999.ebuild637
-rw-r--r--dev-vcs/git/metadata.xml38
-rw-r--r--dev-vcs/gitg/Manifest5
-rw-r--r--dev-vcs/gitg/files/gitg-0.1.2-fix-disable-debug.patch58
-rw-r--r--dev-vcs/gitg/files/gitg-0.2.6-fix-libreoffice.patch371
-rw-r--r--dev-vcs/gitg/files/gitg-3.14.1-libgit2-glib-0.22.0.patch123
-rw-r--r--dev-vcs/gitg/gitg-0.2.7.ebuild59
-rw-r--r--dev-vcs/gitg/gitg-0.3.2.ebuild80
-rw-r--r--dev-vcs/gitg/gitg-3.14.0.ebuild84
-rw-r--r--dev-vcs/gitg/gitg-3.14.1.ebuild88
-rw-r--r--dev-vcs/gitg/gitg-3.16.1.ebuild82
-rw-r--r--dev-vcs/gitg/metadata.xml15
-rw-r--r--dev-vcs/github-pages-publish/Manifest1
-rw-r--r--dev-vcs/github-pages-publish/github-pages-publish-0.1.2.ebuild35
-rw-r--r--dev-vcs/github-pages-publish/metadata.xml20
-rw-r--r--dev-vcs/gitinspector/Manifest2
-rw-r--r--dev-vcs/gitinspector/gitinspector-0.3.1.ebuild22
-rw-r--r--dev-vcs/gitinspector/gitinspector-0.3.2.ebuild27
-rw-r--r--dev-vcs/gitinspector/metadata.xml7
-rw-r--r--dev-vcs/gitolite-gentoo/Manifest10
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.1-r1.ebuild77
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.3-r1.ebuild77
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.5.3.1.ebuild91
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1-r1.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1.ebuild91
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.1.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.2.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.3.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.4.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.2.ebuild106
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild105
-rw-r--r--dev-vcs/gitolite-gentoo/metadata.xml14
-rw-r--r--dev-vcs/gitolite/Manifest5
-rw-r--r--dev-vcs/gitolite/gitolite-2.3.1-r1.ebuild73
-rw-r--r--dev-vcs/gitolite/gitolite-3.6.1.ebuild83
-rw-r--r--dev-vcs/gitolite/gitolite-3.6.2-r1.ebuild96
-rw-r--r--dev-vcs/gitolite/gitolite-3.6.2.ebuild83
-rw-r--r--dev-vcs/gitolite/gitolite-3.6.3.ebuild97
-rw-r--r--dev-vcs/gitolite/gitolite-3.6.ebuild83
-rw-r--r--dev-vcs/gitolite/gitolite-9999.ebuild96
-rw-r--r--dev-vcs/gitolite/metadata.xml21
-rw-r--r--dev-vcs/gitsh/Manifest1
-rw-r--r--dev-vcs/gitsh/gitsh-0.8.ebuild50
-rw-r--r--dev-vcs/gitsh/metadata.xml10
-rw-r--r--dev-vcs/gitstats/Manifest1
-rw-r--r--dev-vcs/gitstats/gitstats-0_pre131024.ebuild39
-rw-r--r--dev-vcs/gitstats/gitstats-9999.ebuild42
-rw-r--r--dev-vcs/gitstats/metadata.xml7
-rw-r--r--dev-vcs/gti/gti-9999.ebuild35
-rw-r--r--dev-vcs/gti/metadata.xml8
-rw-r--r--dev-vcs/guilt/Manifest4
-rw-r--r--dev-vcs/guilt/guilt-0.32.ebuild48
-rw-r--r--dev-vcs/guilt/guilt-0.34.ebuild49
-rw-r--r--dev-vcs/guilt/metadata.xml7
-rw-r--r--dev-vcs/hg-fast-export/Manifest2
-rw-r--r--dev-vcs/hg-fast-export/hg-fast-export-20140328.ebuild37
-rw-r--r--dev-vcs/hg-fast-export/hg-fast-export-20140706.ebuild39
-rw-r--r--dev-vcs/hg-fast-export/metadata.xml11
-rw-r--r--dev-vcs/hg-git/Manifest3
-rw-r--r--dev-vcs/hg-git/files/hg-git-0.3.4-git_handler-bookmarks-hg25.patch31
-rw-r--r--dev-vcs/hg-git/hg-git-0.7.0.ebuild26
-rw-r--r--dev-vcs/hg-git/hg-git-0.8.0.ebuild26
-rw-r--r--dev-vcs/hg-git/hg-git-0.8.1.ebuild25
-rw-r--r--dev-vcs/hg-git/metadata.xml15
-rw-r--r--dev-vcs/hgsubversion/Manifest5
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-1.4.ebuild42
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-1.6.1.ebuild32
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-1.6.3.ebuild32
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-1.7.ebuild32
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-1.8.ebuild32
-rw-r--r--dev-vcs/hgsubversion/hgsubversion-9999.ebuild43
-rw-r--r--dev-vcs/hgsubversion/metadata.xml12
-rw-r--r--dev-vcs/hgsvn/Manifest1
-rw-r--r--dev-vcs/hgsvn/hgsvn-0.2.3-r1.ebuild38
-rw-r--r--dev-vcs/hgsvn/metadata.xml11
-rw-r--r--dev-vcs/hgview/Manifest4
-rw-r--r--dev-vcs/hgview/hgview-1.7.1-r1.ebuild52
-rw-r--r--dev-vcs/hgview/hgview-1.8.0.ebuild61
-rw-r--r--dev-vcs/hgview/hgview-1.8.1.ebuild61
-rw-r--r--dev-vcs/hgview/hgview-1.8.2.ebuild61
-rw-r--r--dev-vcs/hgview/metadata.xml12
-rw-r--r--dev-vcs/hub/Manifest2
-rw-r--r--dev-vcs/hub/hub-1.12.4.ebuild53
-rw-r--r--dev-vcs/hub/hub-2.2.0-r1.ebuild41
-rw-r--r--dev-vcs/hub/metadata.xml15
-rw-r--r--dev-vcs/kdesvn/Manifest1
-rw-r--r--dev-vcs/kdesvn/files/kdesvn-1.6.0-bug-address.patch20
-rw-r--r--dev-vcs/kdesvn/kdesvn-1.6.0-r1.ebuild42
-rw-r--r--dev-vcs/kdesvn/metadata.xml10
-rw-r--r--dev-vcs/mercurial-server/Manifest2
-rw-r--r--dev-vcs/mercurial-server/files/mercurial-server-1.1_documentation.patch18
-rw-r--r--dev-vcs/mercurial-server/mercurial-server-1.1.ebuild82
-rw-r--r--dev-vcs/mercurial-server/mercurial-server-1.2.ebuild82
-rw-r--r--dev-vcs/mercurial-server/mercurial-server-9999.ebuild82
-rw-r--r--dev-vcs/mercurial-server/metadata.xml14
-rw-r--r--dev-vcs/mercurial/Manifest5
-rw-r--r--dev-vcs/mercurial/files/70mercurial-gentoo.el3
-rw-r--r--dev-vcs/mercurial/files/cacerts.rc2
-rw-r--r--dev-vcs/mercurial/files/mercurial-3.0.1-po_fixes.patch40
-rw-r--r--dev-vcs/mercurial/mercurial-3.3.2.ebuild140
-rw-r--r--dev-vcs/mercurial/mercurial-3.3.3.ebuild140
-rw-r--r--dev-vcs/mercurial/mercurial-3.4.1.ebuild140
-rw-r--r--dev-vcs/mercurial/mercurial-3.4.2.ebuild140
-rw-r--r--dev-vcs/mercurial/mercurial-3.5.ebuild140
-rw-r--r--dev-vcs/mercurial/mercurial-9999.ebuild155
-rw-r--r--dev-vcs/mercurial/metadata.xml22
-rw-r--r--dev-vcs/metadata.xml13
-rw-r--r--dev-vcs/monotone/Manifest1
-rw-r--r--dev-vcs/monotone/files/50monotone-gentoo.el28
-rw-r--r--dev-vcs/monotone/files/hooks.lua4
-rw-r--r--dev-vcs/monotone/files/monotone-0.36.initd85
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch18
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch92
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch644
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-botan-1.10.patch412
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch166
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-pcre3.patch26
-rw-r--r--dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch625
-rw-r--r--dev-vcs/monotone/files/monotone.confd26
-rw-r--r--dev-vcs/monotone/files/read-permissions7
-rw-r--r--dev-vcs/monotone/files/write-permissions2
-rw-r--r--dev-vcs/monotone/metadata.xml25
-rw-r--r--dev-vcs/monotone/monotone-1.0-r4.ebuild116
-rw-r--r--dev-vcs/mr/Manifest2
-rw-r--r--dev-vcs/mr/metadata.xml33
-rw-r--r--dev-vcs/mr/mr-1.20140831.1.ebuild32
-rw-r--r--dev-vcs/mr/mr-1.20141024.ebuild32
-rw-r--r--dev-vcs/notify-webhook/Manifest3
-rw-r--r--dev-vcs/notify-webhook/metadata.xml17
-rw-r--r--dev-vcs/notify-webhook/notify-webhook-20140805.ebuild27
-rw-r--r--dev-vcs/notify-webhook/notify-webhook-20150308.ebuild57
-rw-r--r--dev-vcs/pwclient/Manifest2
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch45
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch101
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch125
-rw-r--r--dev-vcs/pwclient/metadata.xml7
-rw-r--r--dev-vcs/pwclient/pwclient-20121105131501.ebuild32
-rw-r--r--dev-vcs/pwclient/pwclient-20141110122616.ebuild43
-rw-r--r--dev-vcs/qbzr/Manifest2
-rw-r--r--dev-vcs/qbzr/metadata.xml8
-rw-r--r--dev-vcs/qbzr/qbzr-0.23.0.ebuild46
-rw-r--r--dev-vcs/qbzr/qbzr-0.23.1.ebuild43
-rw-r--r--dev-vcs/qct/Manifest1
-rw-r--r--dev-vcs/qct/files/qct.rc3
-rw-r--r--dev-vcs/qct/metadata.xml16
-rw-r--r--dev-vcs/qct/qct-1.7-r1.ebuild72
-rw-r--r--dev-vcs/qgit/Manifest1
-rw-r--r--dev-vcs/qgit/metadata.xml8
-rw-r--r--dev-vcs/qgit/qgit-2.5.ebuild30
-rw-r--r--dev-vcs/qsvn/Manifest1
-rw-r--r--dev-vcs/qsvn/files/qsvn-0.8.3-static-lib.patch23
-rw-r--r--dev-vcs/qsvn/files/qsvn-0.8.3-tests.patch12
-rw-r--r--dev-vcs/qsvn/metadata.xml6
-rw-r--r--dev-vcs/qsvn/qsvn-0.8.3.ebuild34
-rw-r--r--dev-vcs/rabbitvcs/Manifest3
-rw-r--r--dev-vcs/rabbitvcs/metadata.xml22
-rw-r--r--dev-vcs/rabbitvcs/rabbitvcs-0.15.2.ebuild94
-rw-r--r--dev-vcs/rabbitvcs/rabbitvcs-0.15.3.ebuild94
-rw-r--r--dev-vcs/rabbitvcs/rabbitvcs-0.16.ebuild102
-rw-r--r--dev-vcs/rapidsvn/Manifest2
-rw-r--r--dev-vcs/rapidsvn/files/rapidsvn-0.12.1-locale.patch23
-rw-r--r--dev-vcs/rapidsvn/files/rapidsvn-0.12.1-svncpp_link.patch12
-rw-r--r--dev-vcs/rapidsvn/files/rapidsvn-svncpp_link.patch12
-rw-r--r--dev-vcs/rapidsvn/metadata.xml12
-rw-r--r--dev-vcs/rapidsvn/rapidsvn-0.12.1-r1.ebuild121
-rw-r--r--dev-vcs/rcs/Manifest3
-rw-r--r--dev-vcs/rcs/metadata.xml19
-rw-r--r--dev-vcs/rcs/rcs-5.8.2.ebuild36
-rw-r--r--dev-vcs/rcs/rcs-5.9.3.ebuild48
-rw-r--r--dev-vcs/rcs/rcs-5.9.4.ebuild48
-rw-r--r--dev-vcs/rcsi/Manifest1
-rw-r--r--dev-vcs/rcsi/metadata.xml8
-rw-r--r--dev-vcs/rcsi/rcsi-0.5.ebuild31
-rw-r--r--dev-vcs/rsvndump/Manifest1
-rw-r--r--dev-vcs/rsvndump/files/rsvndump-0.5.6-compile-flags.patch18
-rw-r--r--dev-vcs/rsvndump/files/rsvndump-disable-man.patch12
-rw-r--r--dev-vcs/rsvndump/metadata.xml11
-rw-r--r--dev-vcs/rsvndump/rsvndump-0.6.ebuild36
-rw-r--r--dev-vcs/statcvs/Manifest1
-rw-r--r--dev-vcs/statcvs/files/statcvs-0.4.0-build.xml.patch16
-rw-r--r--dev-vcs/statcvs/files/statcvs-0.4.0-external-jtreemap.patch40
-rw-r--r--dev-vcs/statcvs/files/statcvs-0.4.0-r1-build.xml.patch24
-rw-r--r--dev-vcs/statcvs/files/statcvs-0.5.0-build.xml.patch24
-rw-r--r--dev-vcs/statcvs/metadata.xml11
-rw-r--r--dev-vcs/statcvs/statcvs-0.5.0.ebuild68
-rw-r--r--dev-vcs/statsvn/Manifest1
-rw-r--r--dev-vcs/statsvn/files/statsvn-0.4.1-build.xml.patch19
-rw-r--r--dev-vcs/statsvn/metadata.xml11
-rw-r--r--dev-vcs/statsvn/statsvn-0.5.0.ebuild73
-rw-r--r--dev-vcs/stgit/Manifest4
-rw-r--r--dev-vcs/stgit/files/stgit-0.16-asciidoc-compat.patch13
-rw-r--r--dev-vcs/stgit/files/stgit-0.16-man-linkfix.patch11
-rw-r--r--dev-vcs/stgit/metadata.xml18
-rw-r--r--dev-vcs/stgit/stgit-0.16-r2.ebuild77
-rw-r--r--dev-vcs/stgit/stgit-0.17.1-r1.ebuild87
-rw-r--r--dev-vcs/subversion/Manifest5
-rw-r--r--dev-vcs/subversion/files/47_mod_dav_svn.conf16
-rw-r--r--dev-vcs/subversion/files/70svn-gentoo.el13
-rw-r--r--dev-vcs/subversion/files/subversion-1.5.4-interix.patch114
-rw-r--r--dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch21
-rw-r--r--dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch16
-rw-r--r--dev-vcs/subversion/files/subversion-1.8.0-hpux-dso.patch16
-rw-r--r--dev-vcs/subversion/files/subversion-1.8.1-revert_bdb6check.patch85
-rw-r--r--dev-vcs/subversion/files/subversion-1.8.5-swig-python-no-gnome-keyring.patch495
-rw-r--r--dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch11
-rw-r--r--dev-vcs/subversion/files/svnserve.confd10
-rw-r--r--dev-vcs/subversion/files/svnserve.initd226
-rw-r--r--dev-vcs/subversion/files/svnserve.initd321
-rw-r--r--dev-vcs/subversion/files/svnserve.xinetd14
-rw-r--r--dev-vcs/subversion/metadata.xml20
-rw-r--r--dev-vcs/subversion/subversion-1.7.20.ebuild473
-rw-r--r--dev-vcs/subversion/subversion-1.7.21.ebuild473
-rw-r--r--dev-vcs/subversion/subversion-1.8.13-r1.ebuild493
-rw-r--r--dev-vcs/subversion/subversion-1.8.14-r1.ebuild493
-rw-r--r--dev-vcs/subversion/subversion-1.8.14.ebuild493
-rw-r--r--dev-vcs/subversion/subversion-1.9.0.ebuild493
-rw-r--r--dev-vcs/svn2cl/Manifest1
-rw-r--r--dev-vcs/svn2cl/files/0.9-wrapper.patch20
-rw-r--r--dev-vcs/svn2cl/metadata.xml5
-rw-r--r--dev-vcs/svn2cl/svn2cl-0.12.ebuild39
-rw-r--r--dev-vcs/svn2git/Manifest12
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.10-version.patch23
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.2.1-include-path.patch13
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.2.1-version.patch14
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.3-backup-refs.patch45
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.3_p1-version.patch14
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.4-version.patch14
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.5-version.patch14
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.6-version.patch14
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.8-compile.patch26
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.8-utf8-author-names.patch51
-rw-r--r--dev-vcs/svn2git/files/svn2git-1.0.8-version.patch14
-rw-r--r--dev-vcs/svn2git/metadata.xml11
-rw-r--r--dev-vcs/svn2git/svn2git-0_pre20100303.ebuild40
-rw-r--r--dev-vcs/svn2git/svn2git-0_pre20100324.ebuild40
-rw-r--r--dev-vcs/svn2git/svn2git-0_pre20100327.ebuild40
-rw-r--r--dev-vcs/svn2git/svn2git-0_pre20101008.ebuild40
-rw-r--r--dev-vcs/svn2git/svn2git-0_pre20101101.ebuild40
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.10.ebuild48
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.2.1.ebuild47
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.3_p1.ebuild50
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.4.ebuild47
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.5.ebuild47
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.6.ebuild47
-rw-r--r--dev-vcs/svn2git/svn2git-1.0.8-r1.ebuild49
-rw-r--r--dev-vcs/svn2git/svn2git-9999.ebuild47
-rw-r--r--dev-vcs/svneverever/Manifest2
-rw-r--r--dev-vcs/svneverever/metadata.xml11
-rw-r--r--dev-vcs/svneverever/svneverever-1.2.2-r1.ebuild20
-rw-r--r--dev-vcs/svneverever/svneverever-1.3.0.ebuild20
-rw-r--r--dev-vcs/svnmailer/Manifest1
-rw-r--r--dev-vcs/svnmailer/metadata.xml7
-rw-r--r--dev-vcs/svnmailer/svnmailer-1.0.9-r1.ebuild38
-rw-r--r--dev-vcs/tig/Manifest2
-rw-r--r--dev-vcs/tig/metadata.xml12
-rw-r--r--dev-vcs/tig/tig-2.0.3.ebuild45
-rw-r--r--dev-vcs/tig/tig-2.1.ebuild48
-rw-r--r--dev-vcs/tkcvs/Manifest2
-rw-r--r--dev-vcs/tkcvs/metadata.xml5
-rw-r--r--dev-vcs/tkcvs/tkcvs-8.2.2.ebuild46
-rw-r--r--dev-vcs/tkcvs/tkcvs-8.2.3.ebuild44
-rw-r--r--dev-vcs/topgit/Manifest1
-rw-r--r--dev-vcs/topgit/metadata.xml11
-rw-r--r--dev-vcs/topgit/topgit-0.9.ebuild34
-rw-r--r--dev-vcs/tortoisehg/Manifest4
-rw-r--r--dev-vcs/tortoisehg/metadata.xml8
-rw-r--r--dev-vcs/tortoisehg/tortoisehg-3.3.2.ebuild78
-rw-r--r--dev-vcs/tortoisehg/tortoisehg-3.3.3.ebuild78
-rw-r--r--dev-vcs/tortoisehg/tortoisehg-3.4.1.ebuild78
-rw-r--r--dev-vcs/tortoisehg/tortoisehg-3.4.2.ebuild78
-rw-r--r--dev-vcs/tortoisehg/tortoisehg-9999.ebuild78
-rw-r--r--dev-vcs/vcsh/Manifest3
-rw-r--r--dev-vcs/vcsh/metadata.xml11
-rw-r--r--dev-vcs/vcsh/vcsh-1.20140508-r2.ebuild34
-rw-r--r--dev-vcs/vcsh/vcsh-1.20141026.ebuild34
-rw-r--r--dev-vcs/vcsh/vcsh-1.20150502.ebuild40
-rw-r--r--dev-vcs/veracity/Manifest3
-rw-r--r--dev-vcs/veracity/files/veracity-1.0.0.10517-spidermonkey-as-needed.patch32
-rw-r--r--dev-vcs/veracity/files/veracity-1.0.0.10517-system-sqlite.patch45
-rw-r--r--dev-vcs/veracity/files/veracity-1.0.0.10517-werror.patch19
-rw-r--r--dev-vcs/veracity/metadata.xml8
-rw-r--r--dev-vcs/veracity/veracity-1.0.0.10517.ebuild87
-rw-r--r--dev-vcs/veracity/veracity-1.1.0.10565.ebuild94
546 files changed, 36630 insertions, 0 deletions
diff --git a/dev-vcs/archway/Manifest b/dev-vcs/archway/Manifest
new file mode 100644
index 000000000000..8bcee1195af0
--- /dev/null
+++ b/dev-vcs/archway/Manifest
@@ -0,0 +1 @@
+DIST archway-0.2.1.tar.gz 384389 SHA256 66ce7be2bb5697aac1d060834fcc0419718d99473cbcd472272e98ce8125775b SHA512 52a9a5c3ced55dd50e996c75b7973c0d8e57a1b4f2094c8be598f8cb6f4b291c7d6c8ad79b447a32aa0a4f73263d65409d9b0c8ea8ef505e71e73d03fbb92a7d WHIRLPOOL a1a6c330ef15854ee1728ec90270bf10455181fa11c3a48440c681b6c910a8d493d9b7c30e12959d4a2b3f71900d62041937932d73aa4fecf6e0a1ed6e9abfd5
diff --git a/dev-vcs/archway/archway-0.2.1.ebuild b/dev-vcs/archway/archway-0.2.1.ebuild
new file mode 100644
index 000000000000..82c895fe2978
--- /dev/null
+++ b/dev-vcs/archway/archway-0.2.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+inherit eutils
+
+DESCRIPTION="A GUI for GNU Arch"
+HOMEPAGE="http://www.nongnu.org/archway/"
+SRC_URI="http://savannah.nongnu.org/download/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+#"ArchWay requires gtk-2.4 and gtk2-perl." -$HOMEPAGE
+#DEPEND=">=dev-util/tla-1.1
+# >=dev-lang/perl-5.8.0
+# >=dev-perl/gtk2-perl-1.040
+# >=dev-perl/glib-perl-1.040
+# >=x11-libs/gtk+-2.4.0"
+
+DEPEND=""
+RDEPEND="x11-libs/gtk+:2
+ >=dev-perl/gtk2-perl-1.040"
+
+src_install() {
+ emake DESTDIR="${D}" prefix=/usr install || die
+}
diff --git a/dev-vcs/archway/metadata.xml b/dev-vcs/archway/metadata.xml
new file mode 100644
index 000000000000..59e2b8f78cb5
--- /dev/null
+++ b/dev-vcs/archway/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ <name>Default assignee for orphaned packages</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/bfg/Manifest b/dev-vcs/bfg/Manifest
new file mode 100644
index 000000000000..30d30a109e36
--- /dev/null
+++ b/dev-vcs/bfg/Manifest
@@ -0,0 +1,6 @@
+DIST bfg-1.11.10.jar 13415363 SHA256 8605400d3357cd8bd13a2cef457a3a0b8f7d914ea5159354bc73f72b4dc5b295 SHA512 a960d699e445997897cb0c264a642bb637b8747c6474957c94796c6531c4d7d112f2412fd138bb78185455f8e09e4d3a0135ff53c558d535a6195c00a5698d87 WHIRLPOOL 2caebc6f1c1f14feea069a7d0ee6011570e3a6e58291527918d8bed4a863361af777d399c701a84df63e3e6076fccdc3c4b019e05587245f8069298ad23cf7f2
+DIST bfg-1.11.7.jar 13410526 SHA256 4b5f8eb6f1a28dddcd4cf11589e07e1c4fc9e76fc431baecf2b3a94439d7cf10 SHA512 0c05db6dc87e8da003206ec854d4a5b2c51643033db23bf3ed069f4184f6beed89e8d677584dada97d35819cea47788003bc29614d336fb3b7f9c9fdfa2a1aaa WHIRLPOOL b44ecbe4c877848f618e890e9068ea55da2f7f86a6a80cff2a9303496037cc127d5eeb318566ca46cfa89765fe43a6669e7e8a3e729a2645b8b70ff17a64c184
+DIST bfg-1.11.8.jar 13421588 SHA256 32b83c9bc660af2460d03672bd7febf07b5d5c7ffd915423bd63407e668b00a2 SHA512 947bbb49001c6dcec66fdeeb4fa8ee9b25b983ab1a9e13c32ff7a3b6455e54d4a98660ed42f96c8ba9adb3ac0d4833a541cde01703e097c8d652172a096a246c WHIRLPOOL da383e2a39c759ce239abcccd78a7d516070b43540a4babd0f4b6f895450297e3025193b251ec26a803e554f8e018408b95e2512f8c02bbd9e18b53a688d6bfe
+DIST bfg-1.12.0.jar 13517642 SHA256 e65277640a6836bb6c3723230e2f655d0a1ce82566a6da998f2033c540dc900b SHA512 7b6144793cd2c12661b37fdeb0391331fd423b2c37028cb319ec647dd6b38487397c167dcd70fdf9d67ef983f76a5d516e08351f3f494742f228fae6d93e6fb8 WHIRLPOOL 8bfaf061203c8770deb63c2c0bbe718a810fd72adc0365e604c3fc15e709d4ffd536e273001e114809ac65d6fc86a26da0496ed3650014b07baea3385c8f836d
+DIST bfg-1.12.1.jar 13566555 SHA256 de7eef7cc2fccb622c992d1fd20c7f3368321737dbe01ea8ef1e9c910df83c4c SHA512 6fcbd662f15aabd373b19cc0f9ba4bec81a424cb839bf60e3d524eefed7e7d6245d6bf6fc975e6bf9ec07b9e5b61730c9fe3e3f02242d9893e8588bfc0111b89 WHIRLPOOL e951a92aa0f3e735be60e6508ea2946a241f4af6e9cdd92261749add4ee7e426db7de07b6cba00df397a6030306a83774e83f0670686180fe5c6902459f0c179
+DIST bfg-1.12.3.jar 13569036 SHA256 2e237631235cfb8cc2d49dabb986389851dca8a28a07083345274b443dfa4911 SHA512 c55aaf76004f92fe13294bd54221646b3c7ccd9aaab46b7418fbcb417dfa632de1011608cf7ab9ff85c6c34b4cef1885327ad40e45beb26b27e97753990a0737 WHIRLPOOL d70f4ed866a24a7fe88c93170d8fcfd112ca7fc9e59a0f5a5cb6d78b6c46f6cedd89ee1a534d9a1f84741ee0bfa1b599c2cc3534e6faa2d6d54b21d397fabdf3
diff --git a/dev-vcs/bfg/bfg-1.11.10.ebuild b/dev-vcs/bfg/bfg-1.11.10.ebuild
new file mode 100644
index 000000000000..565ecf289292
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.11.10.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/bfg-1.11.7.ebuild b/dev-vcs/bfg/bfg-1.11.7.ebuild
new file mode 100644
index 000000000000..565ecf289292
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.11.7.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/bfg-1.11.8.ebuild b/dev-vcs/bfg/bfg-1.11.8.ebuild
new file mode 100644
index 000000000000..565ecf289292
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.11.8.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/bfg-1.12.0.ebuild b/dev-vcs/bfg/bfg-1.12.0.ebuild
new file mode 100644
index 000000000000..85b19cade09c
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.12.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/bfg-1.12.1.ebuild b/dev-vcs/bfg/bfg-1.12.1.ebuild
new file mode 100644
index 000000000000..85b19cade09c
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.12.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/bfg-1.12.3.ebuild b/dev-vcs/bfg/bfg-1.12.3.ebuild
new file mode 100644
index 000000000000..85b19cade09c
--- /dev/null
+++ b/dev-vcs/bfg/bfg-1.12.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit java-pkg-2
+
+DESCRIPTION="a simpler, faster alternative to git-filter-branch for removing bad data from git repos"
+HOMEPAGE="http://rtyley.github.io/bfg-repo-cleaner/"
+SRC_URI="http://repo1.maven.org/maven2/com/madgag/${PN}/${PV}/${P}.jar"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+src_compile() { :; }
+
+src_install() {
+ java-pkg_newjar "${DISTDIR}"/${P}.jar
+ java-pkg_dolauncher ${PN}
+}
diff --git a/dev-vcs/bfg/metadata.xml b/dev-vcs/bfg/metadata.xml
new file mode 100644
index 000000000000..157326a7e891
--- /dev/null
+++ b/dev-vcs/bfg/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>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-explorer/Manifest b/dev-vcs/bzr-explorer/Manifest
new file mode 100644
index 000000000000..1209172cb63d
--- /dev/null
+++ b/dev-vcs/bzr-explorer/Manifest
@@ -0,0 +1 @@
+DIST bzr-explorer-1.3.0.tar.gz 1469939 SHA256 e3584df263a5004765a224cc38d00449e0ad47495070edae59ecbcc4dac94086 SHA512 60cf3e70e5a4e19de3816619646ac0445a7847bc48c640712bd1042fce0cce5964de13e6ad5e1e65b85c9d596f073571ec918c8132c77d7348bc34e1e318b156 WHIRLPOOL b64dada7af2bf7502c7ce7d4d16174ffdb97596789b50b3026631da52d595f491cff930da034aaffa6dab938606f3a8a8312fef30f3070f1a6d59541d56ebc32
diff --git a/dev-vcs/bzr-explorer/bzr-explorer-1.3.0-r1.ebuild b/dev-vcs/bzr-explorer/bzr-explorer-1.3.0-r1.ebuild
new file mode 100644
index 000000000000..507f7030d41a
--- /dev/null
+++ b/dev-vcs/bzr-explorer/bzr-explorer-1.3.0-r1.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 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+MY_PV=${PV/_beta/b}
+MY_PV=${MY_PV/_rc/rc}
+LPV=${MY_PV}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="A high level interface to all commonly used Bazaar features"
+HOMEPAGE="https://launchpad.net/bzr-explorer"
+SRC_URI="http://launchpad.net/${PN}/1.3/${LPV}/+download/${MY_P}.tar.gz"
+LICENSE="GPL-2"
+
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk"
+
+DEPEND=""
+RDEPEND=">=dev-vcs/bzr-2.5[${PYTHON_USEDEP}]
+ >=dev-vcs/qbzr-0.23[${PYTHON_USEDEP}]
+ gtk? ( dev-vcs/bzr-gtk[${PYTHON_USEDEP}] )"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-vcs/bzr-explorer/bzr-explorer-1.3.0.ebuild b/dev-vcs/bzr-explorer/bzr-explorer-1.3.0.ebuild
new file mode 100644
index 000000000000..82665ca76b23
--- /dev/null
+++ b/dev-vcs/bzr-explorer/bzr-explorer-1.3.0.ebuild
@@ -0,0 +1,31 @@
+# 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.*"
+
+inherit distutils
+
+MY_PV=${PV/_beta/b}
+MY_PV=${MY_PV/_rc/rc}
+LPV=${MY_PV}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="A high level interface to all commonly used Bazaar features"
+HOMEPAGE="https://launchpad.net/bzr-explorer"
+SRC_URI="http://launchpad.net/${PN}/1.3/${LPV}/+download/${MY_P}.tar.gz"
+LICENSE="GPL-2"
+
+SLOT="0"
+
+KEYWORDS="amd64 x86"
+IUSE="gtk"
+
+DEPEND=""
+RDEPEND=">=dev-vcs/bzr-2.5
+ >=dev-vcs/qbzr-0.23
+ gtk? ( dev-vcs/bzr-gtk )"
diff --git a/dev-vcs/bzr-explorer/metadata.xml b/dev-vcs/bzr-explorer/metadata.xml
new file mode 100644
index 000000000000..764351126d2d
--- /dev/null
+++ b/dev-vcs/bzr-explorer/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>bazaar</herd>
+ <longdescription lang="en">
+ Bazaar Explorer is a desktop application for using the Bazaar
+ Version Control System. It provides a high level interface to all
+ commonly used features, launching "applets" from the QBzr plug-in
+ to provide most of the functionality. Alternatively, the applets
+ from the bzr-gtk plug-in can be used if it is installed.
+ </longdescription>
+ <upstream>
+ <remote-id type="launchpad">bzr-explorer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-fastimport/Manifest b/dev-vcs/bzr-fastimport/Manifest
new file mode 100644
index 000000000000..65d590f70cb0
--- /dev/null
+++ b/dev-vcs/bzr-fastimport/Manifest
@@ -0,0 +1 @@
+DIST bzr-fastimport-0.13.0.tar.gz 80255 SHA256 5e296dc4ff8e9bf1b6447e81fef41e1217656b43368ee4056a1f024221e009eb SHA512 3677a6ebb9d5d36d7d29198f239289a9670ac4f1fcbf74a1f219f8a0a5a9cd4301dbdc969c4bce2da18e3c4f7f9a3752919b662473071a7b3f1d84c2de27d821 WHIRLPOOL be69b7541b2d2bdf7a85278997096a4113ef97aee59d6c25deddd89e8b5e406590f033eb1457946c3aa9f3f2aca16df6c2bf590b7d67f9ba6cf4ed33c72f2c56
diff --git a/dev-vcs/bzr-fastimport/bzr-fastimport-0.13.0.ebuild b/dev-vcs/bzr-fastimport/bzr-fastimport-0.13.0.ebuild
new file mode 100644
index 000000000000..713b659c47bd
--- /dev/null
+++ b/dev-vcs/bzr-fastimport/bzr-fastimport-0.13.0.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 )
+
+inherit distutils-r1
+
+DESCRIPTION="Plugin providing fast loading of revision control data into Bazaar"
+HOMEPAGE="https://launchpad.net/bzr-fastimport http://wiki.bazaar.canonical.com/BzrFastImport"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-vcs/bzr-1.18
+ >=dev-python/python-fastimport-0.9"
+DEPEND=""
+
+DOCS=( NEWS README.txt doc/notes.txt )
+
+pkg_postinst() {
+ elog "These commands need additional dependencies:"
+ elog
+ elog "bzr fast-export-from-darcs: dev-vcs/darcs"
+ elog "bzr fast-export-from-git: dev-vcs/git"
+ elog "bzr fast-export-from-hg: dev-vcs/mercurial"
+ elog "bzr fast-export-from-mtn: dev-vcs/monotone"
+ elog "bzr fast-export-from-svn: dev-vcs/subversion[python]"
+}
diff --git a/dev-vcs/bzr-fastimport/metadata.xml b/dev-vcs/bzr-fastimport/metadata.xml
new file mode 100644
index 000000000000..e8dc124c31fa
--- /dev/null
+++ b/dev-vcs/bzr-fastimport/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+ <herd>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">bzr-fastimport</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-git/Manifest b/dev-vcs/bzr-git/Manifest
new file mode 100644
index 000000000000..d70782568a0c
--- /dev/null
+++ b/dev-vcs/bzr-git/Manifest
@@ -0,0 +1 @@
+DIST bzr-git-0.6.8.tar.gz 117453 SHA256 b157db228717900d109990df349c656d2297803a20f88edb8280f2e9d73bfc27 SHA512 23bd236bdd8bed53a691be03ae0e22bef804e164d4d0ec3760e2ee49d2b83d9cdff64207f33b6e7f088b7d94f7b14249948befb653f3391096210056ebe613cf WHIRLPOOL 9c0d21707a5f556abc685adc987f6777abc21f5339ec0120fa339e60c905ac579c84817b80f4dc7f5170242088c26ca4b6f9eefcfaa7dfbd2252d2efac0927aa
diff --git a/dev-vcs/bzr-git/bzr-git-0.6.8-r1.ebuild b/dev-vcs/bzr-git/bzr-git-0.6.8-r1.ebuild
new file mode 100644
index 000000000000..d14b550aeebe
--- /dev/null
+++ b/dev-vcs/bzr-git/bzr-git-0.6.8-r1.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=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="Support for Git branches in Bazaar"
+HOMEPAGE="http://bazaar-vcs.org/BzrForeignBranches/Git"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+
+if [[ ${PV} = 9999 ]]; then
+ inherit bzr
+ EBZR_REPO_URI="lp:bzr-git"
+ KEYWORDS=""
+else
+ SRC_URI="http://samba.org/~jelmer/bzr/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+IUSE=""
+# Test are broken, they want API functions from Dulwich which are not
+# installed in Gentoo
+RESTRICT="test"
+
+# Check info.py for dulwich and bzr version dependency info.
+# The file should be fairly straightforward to understand.
+DEPEND=""
+RDEPEND=">=dev-python/dulwich-0.8.2[${PYTHON_USEDEP}]
+ >=dev-vcs/bzr-2.5.0[${PYTHON_USEDEP}]"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-vcs/bzr-git/bzr-git-0.6.8.ebuild b/dev-vcs/bzr-git/bzr-git-0.6.8.ebuild
new file mode 100644
index 000000000000..87cb700ecdf2
--- /dev/null
+++ b/dev-vcs/bzr-git/bzr-git-0.6.8.ebuild
@@ -0,0 +1,37 @@
+# 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.*"
+
+inherit distutils
+
+DESCRIPTION="Support for Git branches in Bazaar"
+HOMEPAGE="http://bazaar-vcs.org/BzrForeignBranches/Git"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+
+if [[ ${PV} = 9999 ]]; then
+ inherit bzr
+ EBZR_REPO_URI="lp:bzr-git"
+ KEYWORDS=""
+else
+ SRC_URI="http://samba.org/~jelmer/bzr/${P}.tar.gz"
+ KEYWORDS="amd64 x86"
+fi
+
+IUSE=""
+# Test are broken, they want API functions from Dulwich which are not
+# installed in Gentoo
+RESTRICT="test"
+
+# Check info.py for dulwich and bzr version dependency info.
+# The file should be fairly straightforward to understand.
+DEPEND=""
+RDEPEND=">=dev-python/dulwich-0.8.2
+ >=dev-vcs/bzr-2.5.0"
diff --git a/dev-vcs/bzr-git/metadata.xml b/dev-vcs/bzr-git/metadata.xml
new file mode 100644
index 000000000000..e74a92d1562c
--- /dev/null
+++ b/dev-vcs/bzr-git/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>bazaar</herd>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-gtk/Manifest b/dev-vcs/bzr-gtk/Manifest
new file mode 100644
index 000000000000..7d5a9568e584
--- /dev/null
+++ b/dev-vcs/bzr-gtk/Manifest
@@ -0,0 +1,2 @@
+DIST bzr-gtk-0.103.0.tar.gz 210971 SHA256 5dc8b222d36f1a1d5d9a4c5048b9c5c2febb653e70a9a752dae941f58d34e2fe SHA512 b95496e514b2144ffc70f516360c4f59f885ad2105a8b989ac469313dada9d5ebf05fa5b11f4e6cb16f41f0b5380159ff974f867391387f702dd35ca6dd4fe27 WHIRLPOOL 7d9a2ea8d27ed25e6f2f3a83e0eed292b758dd25942c3f26b99cf2f267b9242c77d4be814dce6d86e226fc710752ff5e1664554fe5c151fd2da051eb69c6a21b
+DIST bzr-gtk-0.104.0.tar.gz 218863 SHA256 c6d378d5111ca3483de7c54ffd9f6c7264407f567c9556e76e802b9c55ff419b SHA512 d39a1303570dd7504cad9211f3b1c86d3e6f022535c262b7b5f7b19899b362ff7b01d9f19e557cb4391d7ccf1470635ebc5d5380d2d5216b6610c4e8e1b7b6a3 WHIRLPOOL 26f611122ba3a08cc281a9d8490ed53dedad5a64d13567518ea1697285fe6f1eaa331847f928b5ac91cb35e7deef0c7bef0f9f38eddb5f3abc8dec67a3f9772d
diff --git a/dev-vcs/bzr-gtk/bzr-gtk-0.103.0.ebuild b/dev-vcs/bzr-gtk/bzr-gtk-0.103.0.ebuild
new file mode 100644
index 000000000000..ba18350706e5
--- /dev/null
+++ b/dev-vcs/bzr-gtk/bzr-gtk-0.103.0.ebuild
@@ -0,0 +1,50 @@
+# 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.*"
+
+inherit distutils
+
+MY_P="/${P/_rc/rc}"
+
+DESCRIPTION="A GTK+ interfaces to most Bazaar operations"
+HOMEPAGE="http://bazaar-vcs.org/bzr-gtk"
+SRC_URI="http://launchpad.net/${PN}/gtk3/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="gnome-keyring gpg nautilus"
+
+DEPEND=">=dev-vcs/bzr-1.6_rc1
+ dev-python/pygobject
+ dev-python/notify-python
+ >=dev-python/pycairo-1.0"
+RDEPEND="${DEPEND}
+ nautilus? ( >=dev-python/nautilus-python-1.0 )
+ dev-python/notify-python
+ gnome-keyring? ( dev-python/gnome-keyring-python )
+ gpg? ( app-crypt/seahorse )"
+
+S="${WORKDIR}/${MY_P}"
+
+#TODO: src_test
+
+src_prepare() {
+ cp "${FILESDIR}"/credits.pickle "${S}"/credits.pickle
+}
+
+src_install() {
+ distutils_src_install
+ insinto /etc/xdg/autostart
+ doins bzr-notify.desktop
+ if ! use nautilus
+ then
+ rm -rf "${D}"/usr/$(get_libdir)/nautilus/
+ rm -rf "${D}"$(python_get_libdir --final-ABI)/site-packages/bzrlib/plugins/gtk/nautilus-bzr.py
+ fi
+}
diff --git a/dev-vcs/bzr-gtk/bzr-gtk-0.104.0-r1.ebuild b/dev-vcs/bzr-gtk/bzr-gtk-0.104.0-r1.ebuild
new file mode 100644
index 000000000000..f6339bf98872
--- /dev/null
+++ b/dev-vcs/bzr-gtk/bzr-gtk-0.104.0-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+MY_P="/${P/_rc/rc}"
+
+DESCRIPTION="A GTK+ interfaces to most Bazaar operations"
+HOMEPAGE="http://bazaar-vcs.org/bzr-gtk"
+SRC_URI="http://launchpad.net/${PN}/gtk3/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome-keyring gpg nautilus"
+
+DEPEND=">=dev-vcs/bzr-1.6_rc1[${PYTHON_USEDEP}]
+ dev-python/pygobject[${PYTHON_USEDEP}]
+ dev-python/notify-python[${PYTHON_USEDEP}]
+ >=dev-python/pycairo-1.0[${PYTHON_USEDEP}]
+ nautilus? (
+ >=dev-python/nautilus-python-1.0[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ )"
+RDEPEND="${DEPEND}
+ nautilus? ( >=dev-python/nautilus-python-1.0[${PYTHON_USEDEP}] )
+ dev-python/notify-python[${PYTHON_USEDEP}]
+ gnome-keyring? ( dev-python/gnome-keyring-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/seahorse )"
+
+S="${WORKDIR}/${MY_P}"
+
+#TODO: src_test
+
+python_prepare_all() {
+ cp "${FILESDIR}"/credits.pickle "${S}"/credits.pickle || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ if ! use nautilus; then
+ # automagic dep
+ rm -rf "${D%/}"/usr/$(get_libdir)/nautilus/ || die
+ rm -rf "${D%/}"$(python_get_sitedir)/bzrlib/plugins/gtk/nautilus-bzr.py* || die
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc/xdg/autostart
+ doins bzr-notify.desktop
+}
diff --git a/dev-vcs/bzr-gtk/bzr-gtk-0.104.0.ebuild b/dev-vcs/bzr-gtk/bzr-gtk-0.104.0.ebuild
new file mode 100644
index 000000000000..f0a9f29feddc
--- /dev/null
+++ b/dev-vcs/bzr-gtk/bzr-gtk-0.104.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2012 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.*"
+
+inherit distutils
+
+MY_P="/${P/_rc/rc}"
+
+DESCRIPTION="A GTK+ interfaces to most Bazaar operations"
+HOMEPAGE="http://bazaar-vcs.org/bzr-gtk"
+SRC_URI="http://launchpad.net/${PN}/gtk3/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome-keyring gpg nautilus"
+
+DEPEND=">=dev-vcs/bzr-1.6_rc1
+ dev-python/pygobject
+ dev-python/notify-python
+ >=dev-python/pycairo-1.0"
+RDEPEND="${DEPEND}
+ nautilus? ( >=dev-python/nautilus-python-1.0 )
+ dev-python/notify-python
+ gnome-keyring? ( dev-python/gnome-keyring-python )
+ gpg? ( app-crypt/seahorse )"
+
+S="${WORKDIR}/${MY_P}"
+
+#TODO: src_test
+
+src_prepare() {
+ cp "${FILESDIR}"/credits.pickle "${S}"/credits.pickle
+}
+
+src_install() {
+ distutils_src_install
+ insinto /etc/xdg/autostart
+ doins bzr-notify.desktop
+ if ! use nautilus
+ then
+ rm -rf "${D}"/usr/$(get_libdir)/nautilus/
+ rm -rf "${D}"$(python_get_libdir --final-ABI)/site-packages/bzrlib/plugins/gtk/nautilus-bzr.py
+ fi
+}
diff --git a/dev-vcs/bzr-gtk/files/credits.pickle b/dev-vcs/bzr-gtk/files/credits.pickle
new file mode 100644
index 000000000000..fc0e9deceaec
--- /dev/null
+++ b/dev-vcs/bzr-gtk/files/credits.pickle
@@ -0,0 +1,193 @@
+((lp0
+VJelmer Vernooij <jelmer@samba.org>
+p1
+aVDaniel Schierbeck <daniel.schierbeck@gmail.com>
+p2
+aVSzilveszter Farkas (Phanatic) <Szilveszter.Farkas@gmail.com>
+p3
+aVGary van der Merwe <garyvdm@gmail.com>
+p4
+aVJasper Groenewegen <colbrac@xs4all.nl>
+p5
+aVVincent Ladeuil <v.ladeuil+lp@free.fr>
+p6
+aVJohn Arbash Meinel <john@arbash-meinel.com>
+p7
+aVAaron Bentley <abentley@panoramicfeedback.com>
+p8
+aVAaron Bentley <aaron@aaronbentley.com>
+p9
+aVAlexander Belchenko <bialix@ukr.net>
+p10
+aVDavid Allouche <david.allouche@canonical.com>
+p11
+aVDan Loda <danloda@gmail.com>
+p12
+aVAaron Bentley <aaron.bentley@utoronto.ca>
+p13
+aVScott James Remnant <scott@netsplit.com>
+p14
+aVScott Scriven <ubuntu@toykeeper.net>
+p15
+aVMateusz Korniak <matkor@laptop-hp>
+p16
+aVRobert Collins <robertc@robertcollins.net>
+p17
+aVSzilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
+p18
+aVMartin Albisetti <argentina@gmail.com>
+p19
+aVSabin Iacob (m0n5t3r) <iacobs@m0n5t3r.info>
+p20
+aVJavier Derderian <javierder@gmail.com>
+p21
+aVjbailey@ubuntu.com
+p22
+aVGary van der Merwe <garyvdm@garyvdm-desktop>
+p23
+aVRichard Ferguson <ubuntu@fergusnet.com>
+p24
+aVMartin Pool <mbp@canonical.com>
+p25
+aVElliot Murphy <elliot@elliotmurphy.com>
+p26
+aVAdeodato Simó <dato@net.com.org.es>
+p27
+aVv.ladeuil+lp@free.fr
+p28
+aVSzilveszter Farkas <szilveszter.farkas@gmail.com>
+p29
+aVWouter van Heyst <larstiq@larstiq.dyndns.org>
+p30
+aVTorsten Landschoff <torsten@debian.org>
+p31
+aVJamie Wilkinson <jaq@spacepants.org>
+p32
+aVGediminas Paulauskas <menesis@pov.lt>
+p33
+aVAli Sabil <ali.sabil@gmail.com>
+p34
+aVAdrian Wilkins <adrian.wilkins@gmail.com>
+p35
+aVMichael Ellerman <michael@ellerman.id.au>
+p36
+aVMateusz Korniak (matkor@laptop-hp)
+p37
+aVJelmer Vernooij <Jelmer Vernooij@LENOVO-C29B82CD>
+p38
+aVFarkas Szilveszter <szilveszter@szilveszter-desktop>
+p39
+aVDaniel Schömer <daniel.schoemer@gmx.net>
+p40
+aVChris Lamb <chris@chris-lamb.co.uk>
+p41
+aVChad MILLER <chad@mysql.com>
+p42
+aVrodney.dawes@canonical.com
+p43
+aVmatkor <matkor@laptop-hp>
+p44
+aVklight@walkertechnical.com
+p45
+aVklight <klight@X111>
+p46
+aVVincent Geddes <vincent.geddes@gmail.com>
+p47
+aVToshio Kuratomi <toshio@fedoraproject.org>
+p48
+aVTom Badran <tom@badrunner.net>
+p49
+aVSzilveszter Farkas <szilveszter@MacBookPro.local>
+p50
+aVStéphane Raimbault <stephane.raimbault@gmail.com>
+p51
+aVScott James Remnant <scott@ubuntu.com>
+p52
+aVRuss Brown <pickscrape@gmail.com>
+p53
+aVRichard Ferguson <fergus@fergusnet.com>
+p54
+aVRene Huber <rhuber@ubuntu>
+p55
+aVPelle Johansson <pelle@blocket.se>
+p56
+aVMichael Vogt <michael.vogt@ubuntu.com>
+p57
+aVMathias Brodala <info@noctus.net>
+p58
+aVMarkus Korn <thekorn@gmx.de>
+p59
+aVMario Danic <mario.danic@gmail.com>
+p60
+aVLucas Shrewsbury <rollbak@gmail.com>
+p61
+aVKevin Light <klight@walkertechnical.com>
+p62
+aVJohn Szakmeister <john@szakmeister.net>
+p63
+aVJean-François Fortin Tam <jeff@ecchi.ca>
+p64
+aVJasper Groenewegen <colbrac@xs4al.nl>
+p65
+aVJames Westby <jw+debian@jameswestby.net>
+p66
+aVJames Henstridge <james@jamesh.id.au>
+p67
+aVErik Bagfors <erik@bagfors.nu>
+p68
+aVDennis Miller <millerdl@telusplanet.net>
+p69
+aVAndrew Starr-Bochicchio <a.starr.b@gmail.com>
+p70
+aVAndrew Bennetts <andrew@puzzling.org>
+p71
+aVAlexandre Défossez <alexandre.defossez@gmail.com>
+p72
+aVAdrian Room <ingolemo@gmail.com>
+p73
+a(lp74
+g1
+ag3
+ag6
+ag2
+ag12
+ag4
+ag27
+ag50
+ag29
+ag15
+ag14
+ag66
+ag44
+ag22
+ag49
+aVSense Hofstede <qense@ubuntu.com>
+p75
+ag52
+ag53
+ag17
+ag16
+ag25
+ag19
+ag61
+aVKiddo <nekohayo@gmail.com>
+p76
+ag62
+ag63
+ag38
+ag5
+ag23
+ag11
+ag8
+a(lp77
+g3
+ag2
+ag19
+ag61
+ag1
+a(lp78
+g3
+ag18
+ag51
+atp79
+. \ No newline at end of file
diff --git a/dev-vcs/bzr-gtk/metadata.xml b/dev-vcs/bzr-gtk/metadata.xml
new file mode 100644
index 000000000000..a41036fb8275
--- /dev/null
+++ b/dev-vcs/bzr-gtk/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>bazaar</herd>
+ <longdescription lang="en">
+ GTK+ Frontends to various Bazaar commands. Currently contains
+ dialogs for almost all common operations, including annotate and
+ visualise (log). Olive, the integrated version control application
+ is also part of bzr-gtk.
+ </longdescription>
+ <use>
+ <flag name="gpg">Support signing with GnuPG.</flag>
+ <flag name="nautilus">Integrate with Nautilus file manager</flag>
+ </use>
+ <upstream>
+ <remote-id type="launchpad">bzr-gtk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-rewrite/Manifest b/dev-vcs/bzr-rewrite/Manifest
new file mode 100644
index 000000000000..d2199fa74c91
--- /dev/null
+++ b/dev-vcs/bzr-rewrite/Manifest
@@ -0,0 +1 @@
+DIST bzr-rewrite-0.6.3.tar.gz 33045 SHA256 f4d0032a41a549a0bc3ac4248cd4599da859174ea33e56befcb095dd2c930794 SHA512 f1a55307e80090dcc3739e4b111e08b02e4c4ec07ed479a5ac28d2d40535a699492eba785c142d8f6396032ed9db143d86dc68dac5280c071b79a9818ac69250 WHIRLPOOL 7c27030e94ae0f57449fc77d226c385d8956965c693e2e24e1b431043021b30a519857ca9db3d0018ac93081cafd3908221b0dcd526753dee2d7d79922927115
diff --git a/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild b/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild
new file mode 100644
index 000000000000..8fb2c28f807a
--- /dev/null
+++ b/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild
@@ -0,0 +1,22 @@
+# 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="Bazaar plugin that adds support for rebasing, similar to the functionality in git"
+HOMEPAGE="https://launchpad.net/bzr-rewrite"
+SRC_URI="http://launchpad.net/bzr-rewrite/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/bzr-2.5.0
+ !dev-vcs/bzr-rebase"
+RDEPEND="${DEPEND}
+ !<dev-vcs/bzr-svn-0.6"
diff --git a/dev-vcs/bzr-rewrite/metadata.xml b/dev-vcs/bzr-rewrite/metadata.xml
new file mode 100644
index 000000000000..49b47809416d
--- /dev/null
+++ b/dev-vcs/bzr-rewrite/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>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">bzr-rewrite</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzr-xmloutput/Manifest b/dev-vcs/bzr-xmloutput/Manifest
new file mode 100644
index 000000000000..01afeda0df0d
--- /dev/null
+++ b/dev-vcs/bzr-xmloutput/Manifest
@@ -0,0 +1 @@
+DIST bzr-xmloutput-0.8.8.tar.gz 49969 SHA256 73b9b2f6ce4d9910031df7fd153d56d14f833c20a106f099bee5a33463f73b36 SHA512 9eb87ba86dd45b7132eca69ef6e52726d7ee2d9211cc3052655e40f5cee2b99e160336c347ddce7ad912c0027e8b6a05ca542f70733d2e3493922cfa311b38ef WHIRLPOOL e07a08cd0738524207e7ab8d6c645b86d087391fb06d1e0ecf08cfbe78e6f6a1e730af41f4e2dea9e197e7c7f0de69cf6494ab1f906919febb86e06b490fe4e2
diff --git a/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r1.ebuild b/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r1.ebuild
new file mode 100644
index 000000000000..ce4302f8d888
--- /dev/null
+++ b/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r1.ebuild
@@ -0,0 +1,27 @@
+# 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.*"
+
+inherit distutils eutils
+
+DESCRIPTION="A Bazaar plugin that provides a option to generate XML output for
+builtin commands."
+HOMEPAGE="http://bazaar-vcs.org/XMLOutput"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/bzr"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}_remove-relative-imports.patch
+}
diff --git a/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r2.ebuild b/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r2.ebuild
new file mode 100644
index 000000000000..5fd210f25a21
--- /dev/null
+++ b/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="A Bazaar plugin that provides a option to generate XML output forbuiltin commands."
+HOMEPAGE="http://bazaar-vcs.org/XMLOutput"
+SRC_URI="http://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/bzr[${PYTHON_USEDEP}]"
+
+PATCHES=( "${FILESDIR}"/${P}_remove-relative-imports.patch )
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/dev-vcs/bzr-xmloutput/files/bzr-xmloutput-0.8.8_remove-relative-imports.patch b/dev-vcs/bzr-xmloutput/files/bzr-xmloutput-0.8.8_remove-relative-imports.patch
new file mode 100644
index 000000000000..b21eef05d2ad
--- /dev/null
+++ b/dev-vcs/bzr-xmloutput/files/bzr-xmloutput-0.8.8_remove-relative-imports.patch
@@ -0,0 +1,220 @@
+revno: 160 [merge]
+author: Jelmer Vernooij <jelmer@samba.org>
+committer: Guillermo Gonzalez <guillo.gonzo@gmail.com>
+branch nick: trunk
+timestamp: Mon 2011-12-19 18:45:35 -0300
+message:
+ Removes the use of relative imports and avoids using lazy_import in a few places we're it doesn't make a difference.
+
+Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=418969
+Upstream bug: https://bugs.launchpad.net/bzr-xmloutput/+bug/955329
+Commit: http://bazaar.launchpad.net/~verterok/bzr-xmloutput/trunk/revision/160
+
+--- cmds.py 2011-03-09 23:19:41 +0000
++++ cmds.py 2011-12-12 15:11:38 +0000
+@@ -22,36 +22,39 @@
+
+ import info
+ import bzrlib
++from bzrlib.option import Option
++from bzrlib.commands import (
++ Command,
++ display_command,
++ )
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ import sys
+ from bzrlib import (
+ builtins,
+ bzrdir,
+- commands,
+- option,
+ log,
+ workingtree,
+ errors
+ )
+
+-from bzrlib.option import Option, custom_help
+-from bzrlib.commands import display_command
+-import logxml
+-import service
++from bzrlib.plugins.xmloutput import (
++ logxml,
++ service,
++ )
+ import socket
+-from xml_errors import handle_error_xml
+ """)
+
++from bzrlib.plugins.xmloutput.xml_errors import handle_error_xml
+
+ version_info = info.bzr_plugin_version
+ plugin_name = info.bzr_plugin_name
+
+-null_option = option.Option('null',
+- help='Write an ascii NUL (\\0) as the final char.')
+-
+-
+-class cmd_xmlstatus(commands.Command):
++null_option = Option('null',
++ help='Write an ascii NUL (\\0) as the final char.')
++
++
++class cmd_xmlstatus(Command):
+ """Display status summary.
+
+ This reports on versioned and unknown files, reporting them
+@@ -118,7 +121,7 @@
+ self.outf.write('\n')
+
+
+-class cmd_xmlannotate(commands.Command):
++class cmd_xmlannotate(Command):
+ """Show the origin of each line in a file.
+
+ This prints out the given file with an annotation on the left side
+@@ -176,7 +179,7 @@
+ branch.unlock()
+
+
+-class cmd_xmlmissing(commands.Command):
++class cmd_xmlmissing(Command):
+ """Show unmerged/unpulled revisions between two branches.
+
+ OTHER_BRANCH may be local or remote.
+@@ -212,7 +215,7 @@
+ self.outf.write('\n')
+
+
+-class cmd_xmlinfo(commands.Command):
++class cmd_xmlinfo(Command):
+ """Show information about a working tree, branch or repository.
+
+ This command will show all known locations and formats associated to the
+@@ -247,7 +250,7 @@
+ self.outf.write('\n')
+
+
+-class cmd_xmlplugins(commands.Command):
++class cmd_xmlplugins(Command):
+ """List the installed plugins.
+
+ This command displays the list of installed plugins including
+@@ -284,7 +287,7 @@
+ self.outf.write('\n')
+
+
+-class cmd_xmlversion(commands.Command):
++class cmd_xmlversion(Command):
+ """Show version of bzr."""
+ hidden = True
+ encoding_type = 'replace'
+@@ -383,7 +386,7 @@
+ self.outf.write('\0')
+ self.outf.write('\n')
+
+-class cmd_start_xmlrpc(commands.Command):
++class cmd_start_xmlrpc(Command):
+ """Start the xmlrpc service."""
+
+ hidden = True
+@@ -413,7 +416,7 @@
+ self.server.shutdown()
+
+
+-class cmd_stop_xmlrpc(commands.Command):
++class cmd_stop_xmlrpc(Command):
+ """Stops a xmlrpc service."""
+
+ hidden = True
+
+--- infoxml.py 2009-07-28 03:43:56 +0000
++++ infoxml.py 2011-12-12 15:11:38 +0000
+@@ -27,6 +27,7 @@
+
+ __all__ = ['show_bzrdir_info_xml']
+
++from bzrlib import info
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ import os, sys, time
+@@ -36,7 +37,6 @@
+ errors,
+ osutils,
+ urlutils,
+- info,
+ missing,
+ )
+ """)
+
+--- logxml.py 2010-12-15 18:27:12 +0000
++++ logxml.py 2011-12-12 15:11:38 +0000
+@@ -1,14 +1,12 @@
+ # -*- encoding: utf-8 -*-
+
+-import os
+-
++from bzrlib import log
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ import bzrlib
+ from bzrlib import (
+ debug,
+ osutils,
+- log,
+ )
+ """)
+
+
+--- lsxml.py 2011-03-09 23:41:22 +0000
++++ lsxml.py 2011-12-12 15:11:38 +0000
+@@ -19,8 +19,6 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ #
+
+-import os
+-
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ from bzrlib import bzrdir, errors, osutils
+
+--- service.py 2010-02-23 23:38:02 +0000
++++ service.py 2011-12-12 15:11:38 +0000
+@@ -20,6 +20,8 @@
+ #
+ """ xmlrpc service module """
+
++import os
++
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ import bzrlib
+@@ -30,14 +32,13 @@
+ osutils
+ )
+ import sys
+-import os
+ import codecs
+ import logging
+ import traceback
+ from cStringIO import StringIO
+ """)
+
+-from xml_errors import XMLError
++from bzrlib.plugins.xmloutput.xml_errors import XMLError
+ from xmlrpclib import Fault, Binary
+ from SimpleXMLRPCServer import SimpleXMLRPCServer
+
+
+--- statusxml.py 2010-12-15 18:27:12 +0000
++++ statusxml.py 2011-12-12 15:11:38 +0000
+@@ -33,7 +33,7 @@
+ trace,
+ )
+
+-import logxml
++from bzrlib.plugins.xmloutput import logxml
+ """)
+
+ from writer import _escape_cdata
+
diff --git a/dev-vcs/bzr-xmloutput/metadata.xml b/dev-vcs/bzr-xmloutput/metadata.xml
new file mode 100644
index 000000000000..db982428e047
--- /dev/null
+++ b/dev-vcs/bzr-xmloutput/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>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">bzr-xmloutput</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzr/Manifest b/dev-vcs/bzr/Manifest
new file mode 100644
index 000000000000..b4c3b64c73c2
--- /dev/null
+++ b/dev-vcs/bzr/Manifest
@@ -0,0 +1,3 @@
+DIST bzr-2.4.2.tar.gz 7528721 SHA256 a5b8db77c61e54450680befdbb4795f8a972fa5a167123786360d898b752656f SHA512 7a54f242618adafea989d904cc4c5c0b8c53c40b4d5548cf393109a134b8319f19a57e72927e7c1b6872feacea8a17ed92df3cd0e36ca22dd1ad8959ad0c4294 WHIRLPOOL 3bf6f2db16dae3466d76537fc6cc8c37cb7872fa94dd6f0d6a6c2a2b3a4b76fce00b5fd673eeb6656a4d277b03b3647e76b208b06834e1dbacd5f7a9041653f9
+DIST bzr-2.5.1.tar.gz 10451513 SHA256 967346fa6cc52971a8dfd5171ec22e1928cf455fb4317013b05b0915ff927982 SHA512 40700d0f4f61bb1609d85772812249114c9e7af619143aafec97163617cb58828e63bda22abf576704848b479463bb85c0b2dc7e5bb49108f48fa397c7bfe85c WHIRLPOOL 34e90eb01e49840bc2eedba6a664fe936ecc6fcc75e3f350a21a2d868609672984182e50f4f3f127da2e7e8b6dbf229aca587fc8dfe1522cf9bbe1d5c9272288
+DIST bzr-2.6.0.tar.gz 11301124 SHA256 0994797182eb828867eee81cccc79480bd2946c99304266bc427b902cf91dab0 SHA512 f40d4380a837321c2ed168d15b0b5d31e9de6df93c0f8f2fd9b16c9351524b0afac5b8744740f587e9704efeb4cc004cae7f35aed47f73b5c796cbe2526af980 WHIRLPOOL a20f45bebb480e0d9d2052373b671ca32f39f52ef3a04800a5d0662248347cbde8a37d24dbaccc6809a7a046646d10bb62ab392302a3dfe983afca0479ce242e
diff --git a/dev-vcs/bzr/bzr-2.4.2.ebuild b/dev-vcs/bzr/bzr-2.4.2.ebuild
new file mode 100644
index 000000000000..9478eda0d0e1
--- /dev/null
+++ b/dev-vcs/bzr/bzr-2.4.2.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2:2.6"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.[45] 3.* 2.7-pypy-*"
+
+inherit bash-completion-r1 distutils eutils versionator
+
+MY_P=${PN}-${PV}
+SERIES=$(get_version_component_range 1-2)
+
+DESCRIPTION="Bazaar is a next generation distributed version control system"
+HOMEPAGE="http://bazaar-vcs.org/"
+#SRC_URI="http://bazaar-vcs.org/releases/src/${MY_P}.tar.gz"
+SRC_URI="http://launchpad.net/bzr/${SERIES}/${PV}/+download/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="curl doc +sftp test"
+
+RDEPEND="|| ( dev-lang/python:2.7[xml] dev-lang/python:2.6[xml] dev-python/celementtree )
+ curl? ( dev-python/pycurl )
+ sftp? ( dev-python/paramiko )"
+
+DEPEND="test? (
+ ${RDEPEND}
+ || ( dev-python/pyftpdlib dev-python/medusa )
+ dev-python/subunit
+ >=dev-python/testtools-0.9.5
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+
+DOCS="doc/*.txt"
+PYTHON_MODNAME="bzrlib"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # Don't regenerate .c files from .pyx when pyrex is found.
+ epatch "${FILESDIR}/${PN}-2.4.2-no-pyrex-citon.patch"
+}
+
+src_test() {
+ # Some tests expect the usual pyc compiling behaviour.
+ python_enable_pyc
+
+ # Define tests which are known to fail below.
+ local skip_tests="("
+ # https://bugs.launchpad.net/bzr/+bug/850676
+ skip_tests+="per_transport.TransportTests.test_unicode_paths.*|"
+ # libcurl cannot verify SSL certs
+ # https://bugs.launchpad.net/bzr/+bug/82086
+ skip_tests+="per_transport.TransportTests.test_clone|per_transport.TransportTests.test_connection_sharing|per_transport.TransportTests.test_copy_to|per_transport.TransportTests.test_get|per_transport.TransportTests.test_get_bytes|per_transport.TransportTests.test_get_bytes_unknown_file|per_transport.TransportTests.test_get_directory_read_gives_ReadError|per_transport.TransportTests.test_get_unknown_file|per_transport.TransportTests.test_has|per_transport.TransportTests.test_has_root_works|per_transport.TransportTests.test_readv|per_transport.TransportTests.test_readv_out_of_order|per_transport.TransportTests.test_readv_short_read|per_transport.TransportTests.test_readv_with_adjust_for_latency|per_transport.TransportTests.test_readv_with_adjust_for_latency_with_big_file|per_transport.TransportTests.test_reuse_connection_for_various_paths|test_read_bundle.TestReadMergeableBundleFromURL.test_read_mergeable_respects_possible_transports|test_read_bundle.TestReadMergeableBundleFromURL.test_read_mergeable_from_url|test_read_bundle.TestReadMergeableBundleFromURL.test_read_fail|test_http.TestActivity.test_readv|test_http.TestActivity.test_post|test_http.TestActivity.test_has|test_http.TestActivity.test_get"
+ skip_tests+=")"
+ if [[ -n ${skip_tests} ]]; then
+ einfo "Skipping tests known to fail: ${skip_tests}"
+ fi
+
+ testing() {
+ LC_ALL="C" "$(PYTHON)" bzr --no-plugins selftest ${skip_tests:+-x} ${skip_tests}
+ }
+ python_execute_function testing
+
+ # Just to make sure we don't hit any errors on later stages.
+ python_disable_pyc
+}
+
+src_install() {
+ distutils_src_install --install-data "${EPREFIX}/usr/share"
+
+ if use doc; then
+ docinto developers
+ dodoc doc/developers/* || die
+ for doc in mini-tutorial tutorials user-{guide,reference}; do
+ docinto $doc
+ dodoc doc/en/$doc/* || die
+ done
+ fi
+
+ dobashcomp contrib/bash/bzr || die
+}
diff --git a/dev-vcs/bzr/bzr-2.5.1-r1.ebuild b/dev-vcs/bzr/bzr-2.5.1-r1.ebuild
new file mode 100644
index 000000000000..bff18fd5605a
--- /dev/null
+++ b/dev-vcs/bzr/bzr-2.5.1-r1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads,ssl,xml"
+
+inherit bash-completion-r1 distutils-r1 eutils flag-o-matic versionator
+
+MY_P=${PN}-${PV}
+SERIES=$(get_version_component_range 1-2)
+
+DESCRIPTION="Bazaar is a next generation distributed version control system"
+HOMEPAGE="http://bazaar-vcs.org/"
+#SRC_URI="http://bazaar-vcs.org/releases/src/${MY_P}.tar.gz"
+SRC_URI="http://launchpad.net/bzr/${SERIES}/${PV}/+download/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="curl doc +sftp test"
+
+RDEPEND="curl? ( dev-python/pycurl[${PYTHON_USEDEP}] )
+ sftp? ( dev-python/paramiko[${PYTHON_USEDEP}] )"
+
+DEPEND="test? (
+ ${RDEPEND}
+ >=dev-python/pyftpdlib-0.7.0[${PYTHON_USEDEP}]
+ dev-python/subunit
+ >=dev-python/testtools-0.9.5[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.4.2-no-pyrex-citon.patch"
+ "${FILESDIR}/${P}-sphinx-test-failures.patch"
+)
+
+python_configure_all() {
+ # Generate the locales first to avoid a race condition.
+ esetup.py build_mo
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # Race due to conflicting ports in
+ # blackbox.test_serve.TestBzrServe.test_bzr_serve*.
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ # Some tests expect the usual pyc compiling behaviour.
+ local -x PYTHONDONTWRITEBYTECODE
+
+ # Define tests which are known to fail below.
+ local skip_tests="("
+ # https://bugs.launchpad.net/bzr/+bug/850676
+ skip_tests+="per_transport.TransportTests.test_unicode_paths.*"
+ skip_tests+=")"
+ if [[ -n ${skip_tests} ]]; then
+ einfo "Skipping tests known to fail: ${skip_tests}"
+ fi
+
+ LC_ALL="C" "${PYTHON}" bzr --no-plugins selftest -v \
+ ${skip_tests:+-x} "${skip_tests}" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Fixup manpages manually; passing --install-data causes locales to be
+ # installed in /usr/share/share/locale
+ dodir /usr/share
+ mv "${ED%/}"/usr/{man,share/man} || die
+
+ dodoc doc/*.txt
+
+ if use doc; then
+ docinto developers
+ dodoc -r doc/developers/* || die
+ for doc in mini-tutorial tutorials user-{guide,reference}; do
+ docinto ${doc}
+ dodoc -r doc/en/${doc}/* || die
+ done
+ fi
+
+ dobashcomp contrib/bash/bzr || die
+}
diff --git a/dev-vcs/bzr/bzr-2.5.1.ebuild b/dev-vcs/bzr/bzr-2.5.1.ebuild
new file mode 100644
index 000000000000..4bc774d19125
--- /dev/null
+++ b/dev-vcs/bzr/bzr-2.5.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+PYTHON_DEPEND="2:2.6"
+PYTHON_USE_WITH="threads ssl"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="2.[45] 3.* 2.7-pypy-*"
+
+inherit bash-completion-r1 distutils eutils versionator
+
+MY_P=${PN}-${PV}
+SERIES=$(get_version_component_range 1-2)
+
+DESCRIPTION="Bazaar is a next generation distributed version control system"
+HOMEPAGE="http://bazaar-vcs.org/"
+#SRC_URI="http://bazaar-vcs.org/releases/src/${MY_P}.tar.gz"
+SRC_URI="http://launchpad.net/bzr/${SERIES}/${PV}/+download/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="curl doc +sftp test"
+
+RDEPEND="|| ( dev-lang/python:2.7[xml] dev-lang/python:2.6[xml] dev-python/celementtree )
+ curl? ( dev-python/pycurl )
+ sftp? ( dev-python/paramiko )"
+
+DEPEND="test? (
+ ${RDEPEND}
+ >=dev-python/pyftpdlib-0.7.0
+ dev-python/subunit
+ >=dev-python/testtools-0.9.5
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
+
+DOCS="doc/*.txt"
+PYTHON_MODNAME="bzrlib"
+
+src_prepare() {
+ distutils_src_prepare
+
+ # Don't regenerate .c files from .pyx when pyrex is found.
+ epatch "${FILESDIR}/${PN}-2.4.2-no-pyrex-citon.patch"
+
+ epatch "${FILESDIR}/${P}-sphinx-test-failures.patch"
+}
+
+src_test() {
+ # Some tests expect the usual pyc compiling behaviour.
+ python_enable_pyc
+
+ # Define tests which are known to fail below.
+ local skip_tests="("
+ # https://bugs.launchpad.net/bzr/+bug/850676
+ skip_tests+="per_transport.TransportTests.test_unicode_paths.*"
+ skip_tests+=")"
+ if [[ -n ${skip_tests} ]]; then
+ einfo "Skipping tests known to fail: ${skip_tests}"
+ fi
+
+ testing() {
+ LC_ALL="C" "$(PYTHON)" bzr --no-plugins selftest ${skip_tests:+-x} ${skip_tests}
+ }
+ python_execute_function testing
+
+ # Just to make sure we don't hit any errors on later stages.
+ python_disable_pyc
+}
+
+src_install() {
+ distutils_src_install --install-data "${EPREFIX}/usr/share"
+
+ if use doc; then
+ docinto developers
+ dodoc -r doc/developers/* || die
+ for doc in mini-tutorial tutorials user-{guide,reference}; do
+ docinto ${doc}
+ dodoc -r doc/en/${doc}/* || die
+ done
+ fi
+
+ dobashcomp contrib/bash/bzr || die
+}
diff --git a/dev-vcs/bzr/bzr-2.6.0.ebuild b/dev-vcs/bzr/bzr-2.6.0.ebuild
new file mode 100644
index 000000000000..632a97fb53af
--- /dev/null
+++ b/dev-vcs/bzr/bzr-2.6.0.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=( python2_7 )
+PYTHON_REQ_USE="threads,ssl,xml"
+
+inherit bash-completion-r1 distutils-r1 eutils flag-o-matic versionator
+
+MY_P=${PN}-${PV}
+SERIES=$(get_version_component_range 1-2)
+
+DESCRIPTION="Bazaar is a next generation distributed version control system"
+HOMEPAGE="http://bazaar-vcs.org/"
+SRC_URI="http://launchpad.net/bzr/${SERIES}/${PV}/+download/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="curl doc +sftp test"
+
+RDEPEND="curl? ( dev-python/pycurl[${PYTHON_USEDEP}] )
+ sftp? ( dev-python/paramiko[${PYTHON_USEDEP}] )"
+
+DEPEND="test? (
+ ${RDEPEND}
+ >=dev-python/pyftpdlib-0.7.0[${PYTHON_USEDEP}]
+ dev-python/subunit
+ >=dev-python/testtools-0.9.5[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Fails tests bug#487216
+# Upstream is not exactly keen on fixing it
+RESTRICT="test"
+
+python_configure_all() {
+ # Generate the locales first to avoid a race condition.
+ esetup.py build_mo
+}
+
+python_compile() {
+ if [[ ${EPYTHON} != python3* ]]; then
+ local CFLAGS=${CFLAGS}
+ append-cflags -fno-strict-aliasing
+ fi
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # Race due to conflicting ports in
+ # blackbox.test_serve.TestBzrServe.test_bzr_serve*.
+ DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
+}
+
+python_test() {
+ # Some tests expect the usual pyc compiling behaviour.
+ local -x PYTHONDONTWRITEBYTECODE
+
+ # Define tests which are known to fail below.
+ local skip_tests="("
+ # https://bugs.launchpad.net/bzr/+bug/850676
+ skip_tests+="per_transport.TransportTests.test_unicode_paths.*"
+ skip_tests+=")"
+ if [[ -n ${skip_tests} ]]; then
+ einfo "Skipping tests known to fail: ${skip_tests}"
+ fi
+
+ LC_ALL="C" "${PYTHON}" bzr --no-plugins selftest -v \
+ ${skip_tests:+-x} "${skip_tests}" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ # Fixup manpages manually; passing --install-data causes locales to be
+ # installed in /usr/share/share/locale
+ dodir /usr/share
+ mv "${ED%/}"/usr/{man,share/man} || die
+
+ dodoc doc/*.txt
+
+ if use doc; then
+ docinto developers
+ dodoc -r doc/developers/* || die
+ for doc in mini-tutorial tutorials user-{guide,reference}; do
+ docinto ${doc}
+ dodoc -r doc/en/${doc}/* || die
+ done
+ fi
+
+ dobashcomp contrib/bash/bzr || die
+}
diff --git a/dev-vcs/bzr/files/71bzr-gentoo.el b/dev-vcs/bzr/files/71bzr-gentoo.el
new file mode 100644
index 000000000000..e8af05fb6ed6
--- /dev/null
+++ b/dev-vcs/bzr/files/71bzr-gentoo.el
@@ -0,0 +1,5 @@
+
+;;; dev-util/bzr site-lisp configuration
+
+(unless (fboundp 'vc-bzr-registered)
+ (add-to-list 'load-path "@SITELISP@"))
diff --git a/dev-vcs/bzr/files/bzr-2.4.0-no-pyrex-citon.patch b/dev-vcs/bzr/files/bzr-2.4.0-no-pyrex-citon.patch
new file mode 100644
index 000000000000..da5b3c881076
--- /dev/null
+++ b/dev-vcs/bzr/files/bzr-2.4.0-no-pyrex-citon.patch
@@ -0,0 +1,33 @@
+--- setup.py.orig 2011-08-16 17:18:11.280853205 +0200
++++ setup.py 2011-08-16 17:20:12.597637778 +0200
+@@ -178,28 +178,8 @@
+ from distutils.errors import CCompilerError, DistutilsPlatformError
+ from distutils.extension import Extension
+ ext_modules = []
+-try:
+- try:
+- from Cython.Distutils import build_ext
+- from Cython.Compiler.Version import version as pyrex_version
+- except ImportError:
+- print("No Cython, trying Pyrex...")
+- from Pyrex.Distutils import build_ext
+- from Pyrex.Compiler.Version import version as pyrex_version
+-except ImportError:
+- have_pyrex = False
+- # try to build the extension from the prior generated source.
+- print("")
+- print("The python package 'Pyrex' is not available."
+- " If the .c files are available,")
+- print("they will be built,"
+- " but modifying the .pyx files will not rebuild them.")
+- print("")
+- from distutils.command.build_ext import build_ext
+-else:
+- have_pyrex = True
+- pyrex_version_info = tuple(map(int, pyrex_version.split('.')))
+-
++have_pyrex = False
++from distutils.command.build_ext import build_ext
+
+ class build_ext_if_possible(build_ext):
+
diff --git a/dev-vcs/bzr/files/bzr-2.4.2-no-pyrex-citon.patch b/dev-vcs/bzr/files/bzr-2.4.2-no-pyrex-citon.patch
new file mode 100644
index 000000000000..a5128a03d628
--- /dev/null
+++ b/dev-vcs/bzr/files/bzr-2.4.2-no-pyrex-citon.patch
@@ -0,0 +1,33 @@
+--- setup.py.orig 2011-12-26 12:42:40.308882969 +0100
++++ setup.py 2011-12-26 12:43:38.861854988 +0100
+@@ -178,28 +178,8 @@
+ from distutils.errors import CCompilerError, DistutilsPlatformError
+ from distutils.extension import Extension
+ ext_modules = []
+-try:
+- try:
+- from Cython.Distutils import build_ext
+- from Cython.Compiler.Version import version as pyrex_version
+- except ImportError:
+- print("No Cython, trying Pyrex...")
+- from Pyrex.Distutils import build_ext
+- from Pyrex.Compiler.Version import version as pyrex_version
+-except ImportError:
+- have_pyrex = False
+- # try to build the extension from the prior generated source.
+- print("")
+- print("The python package 'Pyrex' is not available."
+- " If the .c files are available,")
+- print("they will be built,"
+- " but modifying the .pyx files will not rebuild them.")
+- print("")
+- from distutils.command.build_ext import build_ext
+-else:
+- have_pyrex = True
+- pyrex_version_info = tuple(map(int, pyrex_version.rstrip("+").split('.')))
+-
++have_pyrex = False
++from distutils.command.build_ext import build_ext
+
+ class build_ext_if_possible(build_ext):
+
diff --git a/dev-vcs/bzr/files/bzr-2.5.1-sphinx-test-failures.patch b/dev-vcs/bzr/files/bzr-2.5.1-sphinx-test-failures.patch
new file mode 100644
index 000000000000..ac1fd0212d6b
--- /dev/null
+++ b/dev-vcs/bzr/files/bzr-2.5.1-sphinx-test-failures.patch
@@ -0,0 +1,24 @@
+Upstream revno 6523 ((vila) Avoid test sphinx-related failures now
+that we don't have direct sphinx anymore. (Vincent Ladeuil))
+
+=== modified file 'bzrlib/tests/test_utextwrap.py'
+--- bzrlib/tests/test_utextwrap.py 2011-05-28 06:44:01 +0000
++++ bzrlib/tests/test_utextwrap.py 2012-04-17 12:18:27 +0000
+@@ -171,16 +171,6 @@
+
+
+ def setup_both(testcase, base_class, reused_class):
+-
+- if (features.sphinx.available()):
+- # Until https://bitbucket.org/birkenfeld/sphinx/issue/706 is fixed,
+- # we can't run these tests when sphinx <= 1.0.1 as it breaks
+- # textwrap.TextWrapper.wordsep_re
+- version = tuple(map(int,
+- features.sphinx.module.__version__.split('.')))
+- if version <= (1, 0, 7):
+- raise tests.TestSkipped(
+- 'sphinx textwrap monkeypatch breaks utextwrap')
+ super(base_class, testcase).setUp()
+ override_textwrap_symbols(testcase)
+ reused_class.setUp(testcase)
+
diff --git a/dev-vcs/bzr/metadata.xml b/dev-vcs/bzr/metadata.xml
new file mode 100644
index 000000000000..3950aca74bad
--- /dev/null
+++ b/dev-vcs/bzr/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>bazaar</herd>
+ <longdescription lang="en">
+ Bazaar (``bzr``) is a decentralized revision control system, designed to be
+ easy for developers and end users alike. Bazaar is part of the GNU project
+ to develop a complete free operating system.
+ Bazaar was formerly known as Bazaar-NG. It's the successor to ``baz``, a
+ fork of GNU arch, but shares no code. (To upgrade from Baz, use the
+ ``baz-import`` command in the bzrtools plugin.)
+ </longdescription>
+ <use>
+ <flag name="sftp">Enable sftp support</flag>
+ </use>
+ <upstream>
+ <remote-id type="launchpad">bzr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/bzrtools/Manifest b/dev-vcs/bzrtools/Manifest
new file mode 100644
index 000000000000..4b42a425307b
--- /dev/null
+++ b/dev-vcs/bzrtools/Manifest
@@ -0,0 +1,2 @@
+DIST bzrtools-2.4.1.tar.gz 77725 SHA256 f62771dd221ad820e0363386608985e282cb88b52b5a6f0ed7b7fb2e99804def SHA512 da403e8564857a8f0b2eee58d6e27d6e86ae7b2e67ec13c7ef93d8180f49164dbf274510fbea5b8426d397a3546b449b1fc950f487ff86f8b67658e2401044d5 WHIRLPOOL afb588fd98850edfd2f748f27bab51bf51d2dcc2117ec54f37da1156dae95baee41270500606595d41cb3912256c89f12bcb5ebc17ba19d5cd5934cf6905fe4d
+DIST bzrtools-2.5.tar.gz 74508 SHA256 bccff6fba6129013f92a7bf16e73efad159cabd7957f4de765068044f730f03f SHA512 5bc07715a3ed525a9bed5b789ea7a4079c9a56a8ce798b2eff56b27e6eae574fac23b8cc96529a5ea44b8d4ce02c512a7e22d21f046801461ba38a8d2050aa16 WHIRLPOOL 8e03d00f988617ce5dfb015cd6b19caf980d48023952b7329fafc157faa69657d9e40fa6d90864c1db3f707f2f3ca1579679f20faaf309b0d6aaf8833747f4bb
diff --git a/dev-vcs/bzrtools/bzrtools-2.4.1.ebuild b/dev-vcs/bzrtools/bzrtools-2.4.1.ebuild
new file mode 100644
index 000000000000..32149a69ebe2
--- /dev/null
+++ b/dev-vcs/bzrtools/bzrtools-2.4.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2014 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.*"
+
+inherit distutils eutils versionator
+
+DESCRIPTION="bzrtools is a useful collection of utilities for bzr"
+HOMEPAGE="http://bazaar-vcs.org/BzrTools"
+SRC_URI="https://launchpad.net/${PN}/stable/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~ia64 ppc ppc64 sparc x86 ~x86-interix ~amd64-linux ~x86-linux ~x86-macos"
+IUSE=""
+#IUSE="test"
+
+RDEPEND="|| ( =dev-vcs/bzr-2.4*
+ =dev-vcs/bzr-2.5* )"
+DEPEND="${RDEPEND}"
+# test? ( dev-python/testtools )"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${PN}"
+
+DOCS="AUTHORS CREDITS NEWS NEWS.Shelf README README.Shelf TODO TODO.heads TODO.Shelf"
+PYTHON_MODNAME="bzrlib/plugins/bzrtools"
+
+src_test() {
+ testing() {
+ local return_status="0"
+
+ # put a linked copy of the bzr core into the build directory to properly
+ # test the "built" version of bzrtools
+ find "$(python_get_libdir)/site-packages/bzrlib/" \
+ -mindepth 1 -maxdepth 1 \
+ \( \( -type d -and -not -name "plugins" \) -or -name "*.py" \) \
+ -exec ln -s '{}' "${S}/build-${PYTHON_ABI}/lib/bzrlib/" \;
+ touch "${S}/build-${PYTHON_ABI}/lib/bzrlib/plugins/__init__.py"
+ "${S}/test.py" "${S}/build-${PYTHON_ABI}/lib" || return_status="1"
+ # remove the "shadow" copy so it doesn't get installed
+ rm "${S}/build-${PYTHON_ABI}/lib/bzrlib/plugins/__init__.py"
+ find "${S}/build-${PYTHON_ABI}/lib/bzrlib/" -mindepth 1 -maxdepth 1 -type l -exec rm '{}' \;
+
+ return "${return_status}"
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/bzrtools/bzrtools-2.5.ebuild b/dev-vcs/bzrtools/bzrtools-2.5.ebuild
new file mode 100644
index 000000000000..f9adeef3c5ad
--- /dev/null
+++ b/dev-vcs/bzrtools/bzrtools-2.5.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils versionator
+
+DESCRIPTION="bzrtools is a useful collection of utilities for bzr"
+HOMEPAGE="http://bazaar-vcs.org/BzrTools"
+SRC_URI="https://launchpad.net/${PN}/stable/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-interix ~amd64-linux ~x86-linux ~x86-macos"
+IUSE=""
+#IUSE="test"
+
+RDEPEND=">=dev-vcs/bzr-2.4"
+DEPEND="${RDEPEND}"
+# test? ( dev-python/testtools )"
+
+RESTRICT="test"
+
+S="${WORKDIR}/${PN}"
+
+DOCS=( AUTHORS CREDITS NEWS NEWS.Shelf README README.Shelf TODO TODO.heads TODO.Shelf )
diff --git a/dev-vcs/bzrtools/metadata.xml b/dev-vcs/bzrtools/metadata.xml
new file mode 100644
index 000000000000..5277693b7c63
--- /dev/null
+++ b/dev-vcs/bzrtools/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>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">bzrtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/colorcvs/Manifest b/dev-vcs/colorcvs/Manifest
new file mode 100644
index 000000000000..18d30698a541
--- /dev/null
+++ b/dev-vcs/colorcvs/Manifest
@@ -0,0 +1 @@
+DIST colorcvs-1.4.tar.bz2 8376 SHA256 8e4b94ee1f6ee3dd4d545182da0f3b38cc52765e447975f64c70397d800ffa2f SHA512 b8c9f3241318599da40614392045a0bba3952314001f6b411207307e79e20b7dea1a9741d5a84dc91b652319ee434c2c14f03435ce4adbd22160d66181da6e44 WHIRLPOOL 83f59360652e4fccb311e47804dd4a3c5bcad07db45287c429e391a7ed00ca6ea5671114a89fe99d5be8d3c02e3a4ab840153b3048aaa635b9580d29ae30717d
diff --git a/dev-vcs/colorcvs/colorcvs-1.4-r1.ebuild b/dev-vcs/colorcvs/colorcvs-1.4-r1.ebuild
new file mode 100644
index 000000000000..65ec5d3a5d6c
--- /dev/null
+++ b/dev-vcs/colorcvs/colorcvs-1.4-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils prefix
+
+DESCRIPTION="A tool based on colorgcc to beautify cvs output"
+HOMEPAGE="http://packages.gentoo.org/package/dev-vcs/colorcvs"
+SRC_URI="http://dev.gentoo.org/~jlec/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND=""
+RDEPEND="
+ dev-lang/perl
+ dev-vcs/cvs"
+
+src_prepare() {
+ # fix typo
+ sed -i -e 's:compiler_pid:cvs_pid:' ${PN} || die "sed failed"
+ epatch "${FILESDIR}"/${P}-prefix.patch
+ eprefixify colorcvs
+}
+
+src_install() {
+ insinto /etc/profile.d
+ doins "${FILESDIR}/${PN}-profile.sh" || die "doins failed"
+
+ dobin colorcvs || die "dobin failed"
+ dodoc colorcvsrc-sample || die "dodoc failed"
+}
+
+pkg_postinst() {
+ echo
+ einfo "An alias to colorcvs was installed for the cvs command."
+ einfo "In order to immediately activate it do:"
+ einfo "\tsource /etc/profile"
+ echo
+}
diff --git a/dev-vcs/colorcvs/files/colorcvs-1.4-prefix.patch b/dev-vcs/colorcvs/files/colorcvs-1.4-prefix.patch
new file mode 100644
index 000000000000..0a93b49eba0b
--- /dev/null
+++ b/dev-vcs/colorcvs/files/colorcvs-1.4-prefix.patch
@@ -0,0 +1,20 @@
+--- colorcvs.orig 2008-01-26 20:04:54 +0100
++++ colorcvs 2008-01-26 20:05:56 +0100
+@@ -54,7 +54,7 @@
+
+ sub initDefaults
+ {
+- $cvsPath = "/usr/bin/cvs";
++ $cvsPath = "@GENTOO_PORTAGE_EPREFIX@/usr/bin/cvs";
+
+ $nocolor{"dumb"} = "true";
+
+@@ -118,7 +118,7 @@
+ initDefaults();
+
+ # Read the configuration files.
+-for my $configFile ('/etc/colorcvsrc', "$ENV{HOME}/.colorcvsrc") {
++for my $configFile ('@GENTOO_PORTAGE_EPREFIX@/etc/colorcvsrc', "$ENV{HOME}/.colorcvsrc") {
+ if (-f $configFile)
+ {
+ loadPreferences($configFile);
diff --git a/dev-vcs/colorcvs/files/colorcvs-profile.sh b/dev-vcs/colorcvs/files/colorcvs-profile.sh
new file mode 100644
index 000000000000..07ca68c9d132
--- /dev/null
+++ b/dev-vcs/colorcvs/files/colorcvs-profile.sh
@@ -0,0 +1,3 @@
+# set alias for colorcvs
+
+alias cvs='colorcvs'
diff --git a/dev-vcs/colorcvs/metadata.xml b/dev-vcs/colorcvs/metadata.xml
new file mode 100644
index 000000000000..f23b9cae1593
--- /dev/null
+++ b/dev-vcs/colorcvs/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>shell-tools</herd>
+</pkgmetadata>
diff --git a/dev-vcs/colorsvn/Manifest b/dev-vcs/colorsvn/Manifest
new file mode 100644
index 000000000000..15c497f37ef7
--- /dev/null
+++ b/dev-vcs/colorsvn/Manifest
@@ -0,0 +1 @@
+DIST colorsvn-0.3.2.tar.gz 98460 SHA256 ee3bff9b897b268a8a62cee8f6162b562127a4c2becba3f20152f6cde83cdbe4 SHA512 1918d3609a871d8fa9e43cab5d32c5314505204deb9e7e0e8321c69c2f345b577a4572574fd7da7e428b8fca9228b2a48a81c8f1dc27c0aceca7e2596e13804f WHIRLPOOL 1b88225f871eca25a5cf82fcd6ad6a518fdf02cccebbb875d44df868033c721e17bade916014d0a71a4948e86430306db811edbb62e24f9b6b28e60577bedc9a
diff --git a/dev-vcs/colorsvn/colorsvn-0.3.2-r2.ebuild b/dev-vcs/colorsvn/colorsvn-0.3.2-r2.ebuild
new file mode 100644
index 000000000000..a3506f4e0292
--- /dev/null
+++ b/dev-vcs/colorsvn/colorsvn-0.3.2-r2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+inherit eutils
+
+DESCRIPTION="Subversion output colorizer"
+HOMEPAGE="http://colorsvn.tigris.org"
+SRC_URI="http://www.console-colors.de/downloads/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x64-macos ~x86-macos"
+IUSE=""
+
+RDEPEND="dev-lang/perl
+ dev-vcs/subversion"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ # rxvt-unicode isn't listed by default :)
+ sed -i -e 's:rxvt:rxvt rxvt-unicode:' colorsvnrc-original || die
+ # Fix confdir location for Prefix, #435434
+ sed -i \
+ -e '/^confdir/d' \
+ -e 's/$(confdir)/$(sysconfdir)/g' \
+ Makefile.in || die
+
+ epatch "${FILESDIR}/0001-Don-t-colorize-svn-mkdir-bug-321451.-Use-IPC-open2-i.patch"
+}
+
+src_compile() {
+ # bug 335134
+ emake -j1 || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc CREDITS || die "dodoc failed"
+}
+
+pkg_postinst() {
+ einfo
+ einfo "The default settings are stored in /etc/colorsvnrc."
+ einfo "They can be locally overridden by ~/.colorsvnrc."
+ einfo "An alias to colorsvn was installed for the svn command."
+ einfo "In order to immediately activate it do:"
+ einfo "\tsource /etc/profile"
+ einfo "NOTE: If you don't see colors,"
+ einfo "append the output of 'echo \$TERM' to 'colortty' in your colorsvnrc."
+ einfo
+}
diff --git a/dev-vcs/colorsvn/files/0001-Don-t-colorize-svn-mkdir-bug-321451.-Use-IPC-open2-i.patch b/dev-vcs/colorsvn/files/0001-Don-t-colorize-svn-mkdir-bug-321451.-Use-IPC-open2-i.patch
new file mode 100644
index 000000000000..6fb1e4b0313b
--- /dev/null
+++ b/dev-vcs/colorsvn/files/0001-Don-t-colorize-svn-mkdir-bug-321451.-Use-IPC-open2-i.patch
@@ -0,0 +1,43 @@
+From 869595b958e80f8c05b823c0df514d3decbe6686 Mon Sep 17 00:00:00 2001
+From: Christian Ruppert <idl0r@gentoo.org>
+Date: Thu, 16 Sep 2010 13:04:25 +0200
+Subject: [PATCH] Don't colorize 'svn mkdir', bug 321451. Use IPC::open2 instead of open3 to avoid using STDERR, bug 326279.
+
+---
+ colorsvn-original | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/colorsvn-original b/colorsvn-original
+index 01d7be3..46f105b 100644
+--- a/colorsvn-original
++++ b/colorsvn-original
+@@ -56,7 +56,7 @@
+ # Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ use Term::ANSIColor;
+-use IPC::Open3;
++use IPC::Open2;
+
+ use strict;
+ use warnings;
+@@ -115,7 +115,7 @@ our %commandmap = ( "add" => ["add"],
+ );
+
+ # never colorize this commands
+-our @preventcolor = ("commit", "help", "import", "lock", "switch", "propedit", "resolved", "revert", "unlock");
++our @preventcolor = ("commit", "help", "import", "lock", "switch", "propedit", "resolved", "revert", "unlock", "mkdir");
+
+ #
+ # set default values
+@@ -331,7 +331,7 @@ if (! -t STDOUT || $commit == 1 || !$colortty{$terminal} || !$commresolved )
+
+ # Keep the pid of the svn process so we can get its return
+ # code and use that as our return code.
+-my $svn_pid = open3('<&STDIN', \*SVNOUT, \*SVNOUT, $svnPath, @ARGV);
++my $svn_pid = open2(\*SVNOUT, '<&STDIN', $svnPath, @ARGV);
+ my $svnName = $svnPath;
+ $svnName =~ s,.*/(.*)$,$1,;
+
+--
+1.7.2.2
+
diff --git a/dev-vcs/colorsvn/metadata.xml b/dev-vcs/colorsvn/metadata.xml
new file mode 100644
index 000000000000..bb5e42d12c69
--- /dev/null
+++ b/dev-vcs/colorsvn/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <longdescription lang="en">
+ colorsvn is the Subversion output colorizer. Colorsvn was extracted from
+ kde-sdk and was extended with build process and configuration.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-vcs/cssc/Manifest b/dev-vcs/cssc/Manifest
new file mode 100644
index 000000000000..d4dc69fb292e
--- /dev/null
+++ b/dev-vcs/cssc/Manifest
@@ -0,0 +1 @@
+DIST CSSC-1.4.0.tar.gz 2012122 SHA256 30146f96c26c2a4c6b742bc8a498993ec6ea9f289becaaf566866488600b2994 SHA512 7abb38ecfb5120e807d1f09d16ce81306b3eb16746e44da5029f626feba67dfb46db20bd2b89daffb2e3cdc51ffadc51cd666eef7d1b94e56b4c7dc24f93ea76 WHIRLPOOL 725702d94cf5e0d2b393e98ab3b2d552d59d562626d4778dfe6a0ff1b4211577123c3fa3689a14738499780413ab73e7e1c10897793a89190c0bcd5b36a65829
diff --git a/dev-vcs/cssc/cssc-1.4.0.ebuild b/dev-vcs/cssc/cssc-1.4.0.ebuild
new file mode 100644
index 000000000000..65aee2636fe5
--- /dev/null
+++ b/dev-vcs/cssc/cssc-1.4.0.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 autotools eutils
+
+DESCRIPTION="The GNU Project's replacement for SCCS"
+SRC_URI="mirror://gnu/${PN}/${P^^}.tar.gz"
+HOMEPAGE="http://www.gnu.org/software/cssc/"
+SLOT="0"
+LICENSE="GPL-3"
+
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="test valgrind"
+
+DEPEND="
+ test? ( valgrind? ( dev-util/valgrind ) )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+S="${WORKDIR}/${P^^}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-1.3.0-gcc47.patch \
+ "${FILESDIR}"/${P}-config.patch \
+ "${FILESDIR}"/${P}-m4.patch \
+ "${FILESDIR}"/${P}-test-large.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use test && use_with valgrind) \
+ --enable-binary
+}
+
+src_test() {
+ if [[ ${froobUID} = 0 ]]; then
+ einfo "The test suite can not be run as root"
+ else
+ emake check
+ fi
+}
diff --git a/dev-vcs/cssc/files/cssc-1.3.0-gcc47.patch b/dev-vcs/cssc/files/cssc-1.3.0-gcc47.patch
new file mode 100644
index 000000000000..4c319016eccd
--- /dev/null
+++ b/dev-vcs/cssc/files/cssc-1.3.0-gcc47.patch
@@ -0,0 +1,10 @@
+--- a/src/file.h
++++ b/src/file.h
+@@ -31,6 +31,7 @@
+ #define CSSC__FILE_H__
+
+ #include "filelock.h"
++#include <unistd.h> /* gid_t */
+
+ enum create_mode {
+ CREATE_EXCLUSIVE = 001,
diff --git a/dev-vcs/cssc/files/cssc-1.4.0-config.patch b/dev-vcs/cssc/files/cssc-1.4.0-config.patch
new file mode 100644
index 000000000000..c5790489a9a7
--- /dev/null
+++ b/dev-vcs/cssc/files/cssc-1.4.0-config.patch
@@ -0,0 +1,15 @@
+In file included from file.h:36:0,
+ from delta.cc:36:
+ ../gl/lib/unistd.h:135:3: error: #error "Please include config.h first."
+
+
+--- a/src/delta.h
++++ b/src/delta.h
+@@ -25,6 +25,7 @@
+ #ifndef CSSC_DELTA_H
+ #define CSSC_DELTA_H 1
+
++#include "config.h"
+ #include "sid.h"
+ #include "sccsdate.h"
+ #include "mystring.h"
diff --git a/dev-vcs/cssc/files/cssc-1.4.0-m4.patch b/dev-vcs/cssc/files/cssc-1.4.0-m4.patch
new file mode 100644
index 000000000000..91c163f14104
--- /dev/null
+++ b/dev-vcs/cssc/files/cssc-1.4.0-m4.patch
@@ -0,0 +1,13 @@
+libtoolize chokes on this line
+
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -33,7 +33,6 @@
+
+ # Changes to AC_CONFIG_MACRO_DIR shoulld be reflected in ACLOCAL_AMFLAGS in Makefile.am.
+ AC_CONFIG_MACRO_DIR([m4])
+-AC_CONFIG_MACRO_DIR([unit-tests/googletest/m4])
+
+ AM_INIT_AUTOMAKE([gnits readme-alpha check-news tar-ustar 1.11.6])
+ AC_CONFIG_HEADERS(config.h)
diff --git a/dev-vcs/cssc/files/cssc-1.4.0-test-large.patch b/dev-vcs/cssc/files/cssc-1.4.0-test-large.patch
new file mode 100644
index 000000000000..c7c23fb6a074
--- /dev/null
+++ b/dev-vcs/cssc/files/cssc-1.4.0-test-large.patch
@@ -0,0 +1,14 @@
+Takes a very long time.
+
+
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -136,7 +136,7 @@
+ test-rmdel \
+ test-admin test-delta test-get test-prs test-prt test-unget \
+ test-cdc test-sact test-val \
+- test-large test-sccsdiff test-binary test-bsd-sccs test-what \
++ test-sccsdiff test-binary test-bsd-sccs test-what \
+ test-year-2000
+ echo Tests passed.
+
diff --git a/dev-vcs/cssc/metadata.xml b/dev-vcs/cssc/metadata.xml
new file mode 100644
index 000000000000..ab89925c26ad
--- /dev/null
+++ b/dev-vcs/cssc/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>jer@gentoo.org</email>
+</maintainer>
+<use>
+<flag name='valgrind'>Enable usage of <pkg>dev-util/valgrind</pkg> in tests</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-vcs/cvs-fast-export/Manifest b/dev-vcs/cvs-fast-export/Manifest
new file mode 100644
index 000000000000..716ca1ee7c59
--- /dev/null
+++ b/dev-vcs/cvs-fast-export/Manifest
@@ -0,0 +1 @@
+DIST cvs-fast-export-1.26.tar.gz 668913 SHA256 ebca4b19ba9045bc1b733f729042d7a98dd6675dac3030239f718b13a99949ed SHA512 81d240ae387b4231415335b4a0d294ae81f6ecbc97077d92a1738aca17642b9a7e7ee3f7806890ceafc5c65c50d4370c39c36ee21c927a4fcd30ebfa3bbe472e WHIRLPOOL 1a59b9e5e0b30d935f463a58873c3554315d0d512b4d9482d5fc2341bdb194b16bd017a444f9e21f8ce2181a3bcf6e85aa09584467b1a9e6845ed92b8a75c4f8
diff --git a/dev-vcs/cvs-fast-export/cvs-fast-export-1.26.ebuild b/dev-vcs/cvs-fast-export/cvs-fast-export-1.26.ebuild
new file mode 100644
index 000000000000..e8943ec2b493
--- /dev/null
+++ b/dev-vcs/cvs-fast-export/cvs-fast-export-1.26.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="fast-export history from a CVS repository or RCS collection"
+HOMEPAGE="http://www.catb.org/~esr/cvs-fast-export/"
+SRC_URI="http://www.catb.org/~esr/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ app-text/asciidoc"
+
+RESTRICT=test # upstream does not ship them in tarball
+
+src_prepare() {
+ tc-export CC
+ export prefix=/usr
+
+ # respect CC, CFLAGS and LDFLAGS. don't install cvssync
+ sed \
+ -e 's/cc /$(CC) $(LDFLAGS) /' \
+ -e 's/^CFLAGS += -O/#&/' \
+ -e 's/CFLAGS=/CFLAGS+=/' \
+ -e 's/$(INSTALL).*cvssync/#&/g' \
+ -i Makefile || die
+}
+
+src_install() {
+ default
+ dodoc README
+}
diff --git a/dev-vcs/cvs-fast-export/metadata.xml b/dev-vcs/cvs-fast-export/metadata.xml
new file mode 100644
index 000000000000..d22bbde28e2d
--- /dev/null
+++ b/dev-vcs/cvs-fast-export/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <herd>cvs-utils</herd>
+ <upstream>
+ <remote-id type="freecode">cvs-fast-export</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/cvs/Manifest b/dev-vcs/cvs/Manifest
new file mode 100644
index 000000000000..bda243d8d414
--- /dev/null
+++ b/dev-vcs/cvs/Manifest
@@ -0,0 +1,13 @@
+DIST cederqvist-1.11.23.html.bz2 112336 SHA256 7b44791e77d3cc56e2ce970303f4003a8a759e432cfa97de93fa45c4d78f80d9 SHA512 671d9d0d364c7ec21c8b5ae357bf7be097447342053b6eb442d6b367ff1b79e17b8494cac21a08c7a897c039ede7e08992d4af158fb2a68847506f7841f98789 WHIRLPOOL c58dba2bf0ca96a17099f5488f34b1343385e67a22a20697a0de4c9affb30f21fbd790b5fd874487e5f40ce2978ee961e8b876910ac520da35ec7ceb07edf139
+DIST cederqvist-1.11.23.pdf 1134081 SHA256 0ef6dc37510e43be1bcae50c635dedcbb2d56f16968946ff0a304a43f87a7d59 SHA512 6b5f7603ff38eaf0747d364f74960c5bb3ba172fd93436440644396ba9e94538cc3c258c8c44d5fc3437c73eacc8727381f0caa94651227a74353bb46029d490 WHIRLPOOL 31d5e9ff2abe0bf93f9be6f8657690a24c55037d621bc54e735d078a7ac1b089d55d0ea57b8450c47611d6ea7aff54aeed7f7bfbe1ff02188b25abcea164bcd0
+DIST cederqvist-1.11.23.ps 1129600 SHA256 6b35cbeecd6fa069e59743716f2766f5bfffe3013a59cf72d833e5837b20abc0 SHA512 0a0e14bb611a210d4fbacd187a8fd2d8ce2746df1487ec0272cb4abe9027194109adfa7ffe97fada1457203eac7428605e3b3def11a6fece4140e08b66ded17e WHIRLPOOL c24b5dea728a9a317fdbdf212351bb04525daebccc94a68fee8bc717f68ce8f1a9de7446422bffc07e9a27a005bf4a8d6bffcee31a2e83cb3cac34ee993f8cbb
+DIST cederqvist-1.12.12.html.tar.bz2 137581 SHA256 6bdd66581ec363e05313a14db27cd3c201b547cdfc9ea2f8edde74e78301f0f6 SHA512 c4f6bdc294b719c1c9f6e8b7d1d4faa9e2aafccd37924e9d4772f8d802da3e7f5ae1778b295989db256b23bb1d0914023db7237adaf07833caaee499ae6b6fa3 WHIRLPOOL 41dd1e0d944a02eeca10539b87b5cfcadbf4fd5923c872aa86e5673bb6a98f774d5378e8b4f1c2e6c6a62e6dc6a4d02c69b5e51ad03da899903070effd62adc9
+DIST cederqvist-1.12.12.pdf 1252423 SHA256 211c5792d24bfd5694f23bc217a161d880bfb2447c41016fab6f657168b041ce SHA512 aa90b76664ca103cf41831a5595d5e99df9fd87633aa5a500569f43854ca6e409a26b655f02ed59cde1c37ce88c40e06f3b3376ad71fdc9487032c3f0898706a WHIRLPOOL 88d015117c05716df6d0cdc763f16dc488f0641624475e9bd33478485dd32e36a7ee5c49a1789ebdd173e665ae5963e75975342d7308e8e453adb65dd31ec6c5
+DIST cederqvist-1.12.12.ps 1262208 SHA256 0e14189614e2c5ead49bfe0ecd187239f8adc3e66371b49d52163be821e44cab SHA512 9a061ef90c664fbb4f882644f72c4f80ffbe0233b6b364511b1c7f18f0a53383980a6ddda326b6df1f2fe1899aed3225de89b55a65a1d9101ba81d1c10c067e2 WHIRLPOOL fb1616ca734e51a626713e7e78786ecbff18378966c2c131f6992df248096d38e850123449d3a5a6aa111ee209f90ef48848da7366b21cb6befeccf07ce54ab6
+DIST cederqvist-1.12.13.html.tar.bz2 140382 SHA256 1a9a34e07c00de5102224b48cbc53384992aea197c91c20b6140dd6885b5ae87 SHA512 4305b5b5d6ec75288e8be0f818815898523de465bd2dc1f55dc277a423815608e619e6fb50d47d29c378249db53f7dba2cc6b4e996f8cd2c1eecf5b9db5957c3 WHIRLPOOL 8b72d282e466b85ad2e898c52a934df55af530a458c39171e4de31a71e1d7c0dbf85674387021f0bc4d87b480a3ff32084574294425923b64c10998e0716abdc
+DIST cederqvist-1.12.13.pdf 1297631 SHA256 4f24b2ac3b81c97798cad42cba8ffe6cc65405f13e5a58a4b063aa9fffc4a7bc SHA512 56ff658265a4e08df6bcd59b1bcb046cbcb92d4107fd4fc54a35601e379af048fdab720500207a4ea6b757058bb52973c7723a02f43b5de8c9fee7f09379ba1f WHIRLPOOL 5ca68dbc70dfbf98a61700f696c4b197a8943f3122d419e2ae2a1f085c589b02c3e90bdadfa657351e51dfbf4a40781babcc47319e157aede3f67be8edf08493
+DIST cederqvist-1.12.13.ps 1280573 SHA256 a955722b89155e390635b1220fa67a096c97141d83ac53a7840323c01d13aa91 SHA512 7a6e9605c82b4d105d37663b12ce9fc89eb8e9153897ceeb6d4fd18da07947180b96167f67cd04df0ec2682d431bbb6840c8c87ccd97ddb596dd2efd31bbf1e4 WHIRLPOOL 2b6249d9cba0d08b76e9d8ae24828cfbfae71c2f109e35ca425c0122a79dc3a66a52ec9506971eab031d730743ed3bc5c01b583e3e9a538f067e22e6d78a6c0f
+DIST cvs-1.11.23.tar.bz2 2942652 SHA256 400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9 SHA512 d84360b51b966f19ac3f1728265ff25e46d3a3ce6d9e7e30b154f0975bb10ce4f82f5ca3f308d2ff169c2b5dd97b0243e910d2e8ad59a5857aef7a70b9026b19 WHIRLPOOL 0f4a14989c29ee76a911edcbcb9b946f3710d1015391e7a219c841bf3cd03678994d572f23a66975030e9ca2eb64abc7f7665a535203bc81653d754491039252
+DIST cvs-1.12.12.tar.bz2 3197171 SHA256 9fb9176d268b9019768fc57dedc2920c28fbeda5ba224c2348550d4f25043edc SHA512 31c679b77b887e02d9c8c381b0dfb42f1207ef4ca806cd92843638eb2126ed032e99bda70a3e20ea2a029670ff39c40088a43435632e381739e6c2f978e6f4bb WHIRLPOOL 74257976cdb957e86fb9fb7e54fc8c0b7210f72136ce05327203d935195e7a3bdda0c1d616dc04cb1d6495cb038ca7275e88488eddb5d936c1cfceb94583278c
+DIST cvs-1.12.13.1.tar.bz2 4075630 SHA256 de7f374d8c4ac414c04e8d44ce9a5d3da919825a6a332d747e299dc7a80c2218 SHA512 db318c0c70b47283bd469d792bdfe5335e5375e3b25beb79a7aea8435209b944cfa7ba51bdef9935f708e3a26a06b72defdb698974f2951cc9afd615f970986b WHIRLPOOL 3369e59e9f598cf6de28577302d62d3f6b00f705a0a5729c7ebf7b956d899e85afaaa160be2c4f7a4c710c1dd8860301ad1855c874229e39dbe60a5acc91a884
+DIST cvs-1.12.13.tar.bz2 3911104 SHA256 78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e SHA512 7d10f808de62190b18d4f706d2d03ab218a508bfb52047ff3e830e293ec40c5e8bf6cc743ef72a5c24be5aa867c9e4892d7d475a026a98b296a3764b4bd0f4d8 WHIRLPOOL 0662c898e05dfe9e45ee1615cfc86bdf664dfc74ddcbea8833e0f98b22e5ea65920d401d3f9a674d5e567eb10f94a29631487a2f8e43a49685888ca94f98ab62
diff --git a/dev-vcs/cvs/cvs-1.11.23.ebuild b/dev-vcs/cvs/cvs-1.11.23.ebuild
new file mode 100644
index 000000000000..b85ae1d530f7
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.11.23.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+SRC_URI="mirror://gnu/non-gnu/cvs/source/stable/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/stable/${PV}/cederqvist-${PV}.html.bz2
+ mirror://gnu/non-gnu/cvs/source/stable/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/stable/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+#KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+KEYWORDS="~arm64 ~ppc-aix ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc emacs"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-CVE-2010-3846.patch
+ epatch "${FILESDIR}"/${P}-getline64.patch
+
+ # remove a useless binary
+ einfo "Removing a compiled binary"
+ find "${S}" -type f -name getdate -exec rm \{\} \;
+}
+
+src_configure() {
+ [[ ${CHOST} == *-interix* ]] && export ac_cv_header_inttypes_h=no
+
+ econf --with-tmpdir=/tmp --without-gssapi || die
+}
+
+src_install() {
+ einstall || die
+
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ if use emacs; then
+ insinto /usr/share/emacs/site-lisp
+ doins cvs-format.el || die "doins failed"
+ fi
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ cd "${ED}"/usr/share/doc/${PF}/html/
+ ln -s cvs.html index.html
+ fi
+}
diff --git a/dev-vcs/cvs/cvs-1.12.12-r10.ebuild b/dev-vcs/cvs/cvs-1.12.12-r10.ebuild
new file mode 100644
index 000000000000..5198af42911b
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.12-r10.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-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 ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-block-requests.patch
+ epatch "${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch
+ epatch "${FILESDIR}"/${P}-install-sh.patch
+ epatch "${FILESDIR}"/${P}-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${P}-getdelim.patch # 314791
+ epatch "${FILESDIR}"/${PN}-1.12.12-rcs2log-coreutils.patch # 144114
+ epatch "${FILESDIR}"/${P}-mktime-x32.patch # 395641
+ epatch "${FILESDIR}"/${P}-fix-massive-leak.patch
+ use server || elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server)
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ insinto /etc/xinetd.d
+ if use server; then
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+ newenvd "${FILESDIR}"/01-cvs-env.d 01cvs
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
diff --git a/dev-vcs/cvs/cvs-1.12.12-r6.ebuild b/dev-vcs/cvs/cvs-1.12.12-r6.ebuild
new file mode 100644
index 000000000000..4f5a3539155b
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.12-r6.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
+
+IUSE="crypt doc kerberos nls pam server"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+ EPATCH_OPTS="-p1 -d ${S}" epatch "${FILESDIR}"/${P}-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ EPATCH_OPTS="-p1 -d ${S}" epatch "${FILESDIR}"/${P}-block-requests.patch
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch
+ epatch "${FILESDIR}"/${P}-install-sh.patch
+ epatch "${FILESDIR}"/${P}-mktime-x32.patch # 395641
+ use server || elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_compile() {
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ || die
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ cd "${D}"/usr/share/doc/${PF}/html/
+ ln -s cvs.html index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
diff --git a/dev-vcs/cvs/cvs-1.12.12-r7.ebuild b/dev-vcs/cvs/cvs-1.12.12-r7.ebuild
new file mode 100644
index 000000000000..754e0c143554
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.12-r7.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-block-requests.patch
+ epatch "${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch
+ epatch "${FILESDIR}"/${P}-install-sh.patch
+ epatch "${FILESDIR}"/${P}-hash-nameclash.patch # for AIX
+ elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server)
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
diff --git a/dev-vcs/cvs/cvs-1.12.12-r8.ebuild b/dev-vcs/cvs/cvs-1.12.12-r8.ebuild
new file mode 100644
index 000000000000..18e0e6c1f374
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.12-r8.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-block-requests.patch
+ epatch "${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch
+ epatch "${FILESDIR}"/${P}-install-sh.patch
+ epatch "${FILESDIR}"/${P}-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${P}-getdelim.patch # 314791
+ elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server)
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
diff --git a/dev-vcs/cvs/cvs-1.12.12-r9.ebuild b/dev-vcs/cvs/cvs-1.12.12-r9.ebuild
new file mode 100644
index 000000000000..4531ce4b4e77
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.12-r9.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-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 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+RESTRICT='test'
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-block-requests.patch
+ epatch "${FILESDIR}"/${P}-cvs-gnulib-vasnprintf.patch
+ epatch "${FILESDIR}"/${P}-install-sh.patch
+ epatch "${FILESDIR}"/${P}-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${P}-getdelim.patch # 314791
+ epatch "${FILESDIR}"/${PN}-1.12.12-rcs2log-coreutils.patch # 144114
+ epatch "${FILESDIR}"/${P}-mktime-x32.patch # 395641
+ use server || elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server)
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ insinto /etc/xinetd.d
+ if use server; then
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+ newenvd "${FILESDIR}"/01-cvs-env.d 01cvs
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/cvs-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
diff --git a/dev-vcs/cvs/cvs-1.12.13-r1.ebuild b/dev-vcs/cvs/cvs-1.12.13-r1.ebuild
new file mode 100644
index 000000000000..a96af961bc85
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.13-r1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc emacs kerberos nls pam server"
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-zlib.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch
+ # this testcase was not updated
+ #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \
+ # ${S}/src/sanity.sh
+ # this one fails when the testpath path contains '.'
+ sed -i.orig -e '/newfile config3/s,a-z,a-z.,g' \
+ "${S}"/src/sanity.sh
+}
+
+src_configure() {
+ local myconf
+ # the tests need the server and proxy
+ if use test; then
+ use server || \
+ ewarn "The server and proxy code are enabled as they are required for tests."
+ myconf="--enable-server --enable-proxy"
+ fi
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ $(use_enable server proxy)
+}
+
+src_install() {
+ einstall || die
+
+ if use server; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ if use emacs; then
+ insinto /usr/share/emacs/site-lisp
+ doins cvs-format.el || die "doins failed"
+ fi
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
+
+src_test() {
+ einfo "If you want to see realtime status, or check out a failure,"
+ einfo "please look at ${S}/src/check.log*"
+ if [ -n "$TEST_REMOTE_AND_PROXY" ]; then
+ einfo "local, remote, and proxy tests enabled."
+ else
+ einfo "Only testing local mode. Please see ebuild for other modes."
+ fi
+
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-local"
+ mkdir -p "$TESTDIR"
+ # we only do the local tests by default
+ make localcheck || die "Some local test failed."
+ mv -f check.log check.log-local
+
+ # if you want to test the remote and proxy modes, things get a little bit
+ # complicated. You need to set up a SSH config file at ~portage/.ssh/config
+ # that allows the portage user to login without any authentication, and also
+ # set up the ~portage/.ssh/known_hosts file for your machine.
+ # We do not do this by default, as it is unsafe from a security point of
+ # view, and requires root level ssh changes.
+ if [ -n "$TEST_REMOTE_AND_PROXY" ]; then
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-remote"
+ mkdir -p "$TESTDIR"
+ make remotecheck || die "Some remote test failed."
+ mv -f check.log check.log-remote
+
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-proxy"
+ mkdir -p "$TESTDIR"
+ make proxycheck || die "Some proxy test failed."
+ mv -f check.log check.log-proxy
+ fi
+}
diff --git a/dev-vcs/cvs/cvs-1.12.13-r2.ebuild b/dev-vcs/cvs/cvs-1.12.13-r2.ebuild
new file mode 100644
index 000000000000..de3d18dfe28c
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.13-r2.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+SRC_URI="mirror://gnu/non-gnu/cvs/source/feature/${PV}/${P}.tar.bz2
+ doc? ( mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.html.tar.bz2
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.pdf
+ mirror://gnu/non-gnu/cvs/source/feature/${PV}/cederqvist-${PV}.ps )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc emacs kerberos nls pam server"
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${P}-openat.patch
+ epatch "${FILESDIR}"/${P}-zlib.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-fix-massive-leak.patch
+ # this testcase was not updated
+ #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \
+ # ${S}/src/sanity.sh
+ # this one fails when the testpath path contains '.'
+ sed -i.orig -e '/newfile config3/s,a-z,a-z.,g' \
+ "${S}"/src/sanity.sh
+}
+
+src_configure() {
+ local myconf
+ # the tests need the server and proxy
+ if use test; then
+ use server || \
+ ewarn "The server and proxy code are enabled as they are required for tests."
+ myconf="--enable-server --enable-proxy"
+ fi
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ $(use_enable server proxy)
+}
+
+src_install() {
+ einstall || die
+
+ if use server; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ if use emacs; then
+ insinto /usr/share/emacs/site-lisp
+ doins cvs-format.el || die "doins failed"
+ fi
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${PV}.ps
+ tar xjf "${DISTDIR}"/cederqvist-${PV}.html.tar.bz2
+ dohtml -r cederqvist-${PV}.html/*
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
+
+src_test() {
+ einfo "If you want to see realtime status, or check out a failure,"
+ einfo "please look at ${S}/src/check.log*"
+ if [ -n "$TEST_REMOTE_AND_PROXY" ]; then
+ einfo "local, remote, and proxy tests enabled."
+ else
+ einfo "Only testing local mode. Please see ebuild for other modes."
+ fi
+
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-local"
+ mkdir -p "$TESTDIR"
+ # we only do the local tests by default
+ make localcheck || die "Some local test failed."
+ mv -f check.log check.log-local
+
+ # if you want to test the remote and proxy modes, things get a little bit
+ # complicated. You need to set up a SSH config file at ~portage/.ssh/config
+ # that allows the portage user to login without any authentication, and also
+ # set up the ~portage/.ssh/known_hosts file for your machine.
+ # We do not do this by default, as it is unsafe from a security point of
+ # view, and requires root level ssh changes.
+ if [ -n "$TEST_REMOTE_AND_PROXY" ]; then
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-remote"
+ mkdir -p "$TESTDIR"
+ make remotecheck || die "Some remote test failed."
+ mv -f check.log check.log-remote
+
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-proxy"
+ mkdir -p "$TESTDIR"
+ make proxycheck || die "Some proxy test failed."
+ mv -f check.log check.log-proxy
+ fi
+}
diff --git a/dev-vcs/cvs/cvs-1.12.13.1-r1.ebuild b/dev-vcs/cvs/cvs-1.12.13.1-r1.ebuild
new file mode 100644
index 000000000000..8c06d888a320
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.13.1-r1.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs versionator
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+DOC_PV="$(get_version_component_range 1-3)"
+FEAT_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${PV}/"
+DOC_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${DOC_PV}/"
+SNAP_URIBASE="mirror://gnu/non-gnu/cvs/source/nightly-snapshots/feature/"
+SRC_URI="
+ ${FEAT_URIBASE}/${P}.tar.bz2
+ ${SNAP_URIBASE}/${P}.tar.bz2
+ doc? (
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.html.tar.bz2
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.pdf
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.ps
+ )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+
+RDEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${DOC_PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-block-requests.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-gl-mempcpy.patch # for AIX
+ epatch "${FILESDIR}"/${PN}-1.12.12-fix-massive-leak.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-use-include_next.patch
+ # Applied by upstream:
+ #epatch "${FILESDIR}"/${PN}-1.12.13-openat.patch
+ #epatch "${FILESDIR}"/${PN}-1.12.13-zlib.patch
+
+ # this testcase was not updated
+ #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \
+ # ${S}/src/sanity.sh
+ # this one fails when the testpath path contains '.'
+ sed -i.orig \
+ -e '/newfile config3/s,a-z,a-z.,g' \
+ "${S}"/src/sanity.sh
+
+ elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ local myconf
+ # the tests need the server and proxy
+ if use test; then
+ use server || \
+ ewarn "The server and proxy code are enabled as they are required for tests."
+ myconf="--enable-server --enable-proxy"
+ fi
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ $(use_enable server proxy) \
+ ${myconf}
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ if use server; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/${PN}-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.ps
+ dohtml -r "${WORKDIR}"/cederqvist-${DOC_PV}.html/
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
+
+_run_one_test() {
+ mode="$1" ; shift
+ einfo "Starting ${mode} test"
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-${mode}"
+ rm -rf "$TESTDIR" # Clean up from any previous test passes
+ mkdir -p "$TESTDIR"
+ emake -j1 ${mode}check || die "Some ${mode} test failed."
+ mv -f check.log check.log-${mode}
+ einfo "${mode} test completed successfully, log is check.log-${mode}"
+}
+
+src_test() {
+ einfo "If you want to see realtime status, or check out a failure,"
+ einfo "please look at ${S}/src/check.log*"
+
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ einfo "local, remote, and proxy tests enabled."
+ else
+ einfo "Only testing local mode. Please see ebuild for other modes."
+ fi
+
+ # we only do the local tests by default
+ _run_one_test local
+
+ # if you want to test the remote and proxy modes, things get a little bit
+ # complicated. You need to set up a SSH config file at ~portage/.ssh/config
+ # that allows the portage user to login without any authentication, and also
+ # set up the ~portage/.ssh/known_hosts file for your machine.
+ # We do not do this by default, as it is unsafe from a security point of
+ # view, and requires root level ssh changes.
+ # Note that this also requires having a real shell for the portage user, so make
+ # sure that su -c 'ssh portage@mybox' portage works first!
+ # (It uses the local ip, not loopback)
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ _run_one_test remote
+ _run_one_test proxy
+ fi
+}
diff --git a/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild b/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild
new file mode 100644
index 000000000000..912f17e31f14
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs versionator
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+DOC_PV="$(get_version_component_range 1-3)"
+FEAT_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${PV}/"
+DOC_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${DOC_PV}/"
+SNAP_URIBASE="mirror://gnu/non-gnu/cvs/source/nightly-snapshots/feature/"
+SRC_URI="
+ ${FEAT_URIBASE}/${P}.tar.bz2
+ ${SNAP_URIBASE}/${P}.tar.bz2
+ doc? (
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.html.tar.bz2
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.pdf
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.ps
+ )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+
+RDEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${DOC_PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-block-requests.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-gl-mempcpy.patch # for AIX
+ epatch "${FILESDIR}"/${PN}-1.12.12-fix-massive-leak.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-use-include_next.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch
+ # Applied by upstream:
+ #epatch "${FILESDIR}"/${PN}-1.12.13-openat.patch
+ #epatch "${FILESDIR}"/${PN}-1.12.13-zlib.patch
+
+ # this testcase was not updated
+ #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \
+ # ${S}/src/sanity.sh
+ # this one fails when the testpath path contains '.'
+ sed -i.orig \
+ -e '/newfile config3/s,a-z,a-z.,g' \
+ "${S}"/src/sanity.sh
+
+ elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ local myconf
+ # the tests need the server and proxy
+ if use test; then
+ use server || \
+ ewarn "The server and proxy code are enabled as they are required for tests."
+ myconf="--enable-server --enable-proxy"
+ fi
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ $(use_enable server proxy) \
+ ${myconf}
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ if use server; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/${PN}-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.ps
+ dohtml -r "${WORKDIR}"/cederqvist-${DOC_PV}.html/
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
+
+_run_one_test() {
+ mode="$1" ; shift
+ einfo "Starting ${mode} test"
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-${mode}"
+ rm -rf "$TESTDIR" # Clean up from any previous test passes
+ mkdir -p "$TESTDIR"
+ emake -j1 ${mode}check || die "Some ${mode} test failed."
+ mv -f check.log check.log-${mode}
+ einfo "${mode} test completed successfully, log is check.log-${mode}"
+}
+
+src_test() {
+ einfo "If you want to see realtime status, or check out a failure,"
+ einfo "please look at ${S}/src/check.log*"
+
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ einfo "local, remote, and proxy tests enabled."
+ else
+ einfo "Only testing local mode. Please see ebuild for other modes."
+ fi
+
+ # we only do the local tests by default
+ _run_one_test local
+
+ # if you want to test the remote and proxy modes, things get a little bit
+ # complicated. You need to set up a SSH config file at ~portage/.ssh/config
+ # that allows the portage user to login without any authentication, and also
+ # set up the ~portage/.ssh/known_hosts file for your machine.
+ # We do not do this by default, as it is unsafe from a security point of
+ # view, and requires root level ssh changes.
+ # Note that this also requires having a real shell for the portage user, so make
+ # sure that su -c 'ssh portage@mybox' portage works first!
+ # (It uses the local ip, not loopback)
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ _run_one_test remote
+ _run_one_test proxy
+ fi
+}
diff --git a/dev-vcs/cvs/cvs-1.12.13.1.ebuild b/dev-vcs/cvs/cvs-1.12.13.1.ebuild
new file mode 100644
index 000000000000..2422d3a225d9
--- /dev/null
+++ b/dev-vcs/cvs/cvs-1.12.13.1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+inherit eutils pam toolchain-funcs versionator
+
+DESCRIPTION="Concurrent Versions System - source code revision control tools"
+HOMEPAGE="http://www.nongnu.org/cvs/"
+
+DOC_PV="$(get_version_component_range 1-3)"
+FEAT_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${PV}/"
+DOC_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${DOC_PV}/"
+SNAP_URIBASE="mirror://gnu/non-gnu/cvs/source/nightly-snapshots/feature/"
+SRC_URI="
+ ${FEAT_URIBASE}/${P}.tar.bz2
+ ${SNAP_URIBASE}/${P}.tar.bz2
+ doc? (
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.html.tar.bz2
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.pdf
+ ${DOC_URIBASE}/cederqvist-${DOC_PV}.ps
+ )"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="crypt doc kerberos nls pam server"
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ kerberos? ( virtual/krb5 )
+ pam? ( virtual/pam )"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ use doc && unpack cederqvist-${DOC_PV}.html.tar.bz2
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-block-requests.patch
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-hash-nameclash.patch # for AIX
+ epatch "${FILESDIR}"/${PN}-1.12.13.1-gl-mempcpy.patch # for AIX
+ # Applied by upstream:
+ #epatch "${FILESDIR}"/${PN}-1.12.13-openat.patch
+ #epatch "${FILESDIR}"/${PN}-1.12.13-zlib.patch
+
+ # this testcase was not updated
+ #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \
+ # ${S}/src/sanity.sh
+ # this one fails when the testpath path contains '.'
+ sed -i.orig \
+ -e '/newfile config3/s,a-z,a-z.,g' \
+ "${S}"/src/sanity.sh
+
+ elog "If you want any CVS server functionality, you MUST emerge with USE=server!"
+}
+
+src_configure() {
+ local myconf
+ # the tests need the server and proxy
+ if use test; then
+ use server || \
+ ewarn "The server and proxy code are enabled as they are required for tests."
+ myconf="--enable-server --enable-proxy"
+ fi
+ if tc-is-cross-compiler ; then
+ # Sane defaults when cross-compiling (as these tests want to
+ # try and execute code).
+ export cvs_cv_func_printf_ptr="yes"
+ fi
+ econf \
+ --with-external-zlib \
+ --with-tmpdir=/tmp \
+ $(use_enable crypt encryption) \
+ $(use_with kerberos gssapi) \
+ $(use_enable nls) \
+ $(use_enable pam) \
+ $(use_enable server) \
+ $(use_enable server proxy) \
+ ${myconf}
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ if use server; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed"
+ fi
+
+ dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \
+ MINOR* NEWS PROJECTS README* TESTS TODO
+
+ # Not installed into emacs site-lisp because it clobbers the normal C
+ # indentations.
+ dodoc cvs-format.el || die "dodoc failed"
+
+ use server && newdoc "${FILESDIR}"/${PN}-1.12.12-cvs-custom.c cvs-custom.c
+
+ if use doc; then
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.pdf
+ dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.ps
+ dohtml -r "${WORKDIR}"/cederqvist-${DOC_PV}.html/
+ dosym cvs.html /usr/share/doc/${PF}/html/index.html
+ fi
+
+ newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs
+}
+
+_run_one_test() {
+ mode="$1" ; shift
+ einfo "Starting ${mode} test"
+ cd "${S}"/src
+ export TESTDIR="${T}/tests-${mode}"
+ rm -rf "$TESTDIR" # Clean up from any previous test passes
+ mkdir -p "$TESTDIR"
+ emake -j1 ${mode}check || die "Some ${mode} test failed."
+ mv -f check.log check.log-${mode}
+ einfo "${mode} test completed successfully, log is check.log-${mode}"
+}
+
+src_test() {
+ einfo "If you want to see realtime status, or check out a failure,"
+ einfo "please look at ${S}/src/check.log*"
+
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ einfo "local, remote, and proxy tests enabled."
+ else
+ einfo "Only testing local mode. Please see ebuild for other modes."
+ fi
+
+ # we only do the local tests by default
+ _run_one_test local
+
+ # if you want to test the remote and proxy modes, things get a little bit
+ # complicated. You need to set up a SSH config file at ~portage/.ssh/config
+ # that allows the portage user to login without any authentication, and also
+ # set up the ~portage/.ssh/known_hosts file for your machine.
+ # We do not do this by default, as it is unsafe from a security point of
+ # view, and requires root level ssh changes.
+ # Note that this also requires having a real shell for the portage user, so make
+ # sure that su -c 'ssh portage@mybox' portage works first!
+ # (It uses the local ip, not loopback)
+ if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then
+ _run_one_test remote
+ _run_one_test proxy
+ fi
+}
diff --git a/dev-vcs/cvs/files/01-cvs-env.d b/dev-vcs/cvs/files/01-cvs-env.d
new file mode 100644
index 000000000000..5c89358b9554
--- /dev/null
+++ b/dev-vcs/cvs/files/01-cvs-env.d
@@ -0,0 +1 @@
+CVS_RSH="ssh"
diff --git a/dev-vcs/cvs/files/cvs-1.11.23-CVE-2010-3846.patch b/dev-vcs/cvs/files/cvs-1.11.23-CVE-2010-3846.patch
new file mode 100644
index 000000000000..e1560cef82e7
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.11.23-CVE-2010-3846.patch
@@ -0,0 +1,167 @@
+From b122edcb68ff05bb6eb22f6e50423e7f1050841b Mon Sep 17 00:00:00 2001
+From: Larry Jones <lawrence.jones@siemens.com>
+Date: Thu, 21 Oct 2010 10:08:16 +0200
+Subject: [PATCH] Fix for CVE-2010-3846
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Mallformed RCS revision (delete after the end of input file, or overlayed
+deleted regions) screws output file image size computation. This leads to
+write attempt after the allocated memory opening hiden memory corruption
+driven by CVS server.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ src/rcs.c | 52 +++++++++++++++++++++++++++++-----------------------
+ 1 files changed, 29 insertions(+), 23 deletions(-)
+
+diff --git a/src/rcs.c b/src/rcs.c
+index 7d0d078..2f88f85 100644
+--- a/src/rcs.c
++++ b/src/rcs.c
+@@ -7128,7 +7128,7 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ struct deltafrag *dfhead;
+ struct deltafrag **dftail;
+ struct deltafrag *df;
+- unsigned long numlines, lastmodline, offset;
++ unsigned long numlines, offset;
+ struct linevector lines;
+ int err;
+
+@@ -7202,12 +7202,12 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+
+ /* New temp data structure to hold new org before
+ copy back into original structure. */
+- lines.nlines = lines.lines_alloced = numlines;
++ lines.lines_alloced = numlines;
+ lines.vector = xmalloc (numlines * sizeof *lines.vector);
+
+ /* We changed the list order to first to last -- so the
+ list never gets larger than the size numlines. */
+- lastmodline = 0;
++ lines.nlines = 0;
+
+ /* offset created when adding/removing lines
+ between new and original structure */
+@@ -7216,25 +7216,24 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ for (df = dfhead; df != NULL; )
+ {
+ unsigned int ln;
+- unsigned long deltaend;
++ unsigned long newpos = df->pos - offset;
+
+- if (df->pos > orig_lines->nlines)
++ if (newpos < lines.nlines || newpos > numlines)
+ err = 1;
+
+ /* On error, just free the rest of the list. */
+ if (!err)
+ {
+- /* Here we need to get to the line where the next insert will
++ /* Here we need to get to the line where the next change will
+ begin, which is DF->pos in ORIG_LINES. We will fill up to
+ DF->pos - OFFSET in LINES with original items. */
+- for (deltaend = df->pos - offset;
+- lastmodline < deltaend;
+- lastmodline++)
++ while (lines.nlines < newpos)
+ {
+ /* we need to copy from the orig structure into new one */
+- lines.vector[lastmodline] =
+- orig_lines->vector[lastmodline + offset];
+- lines.vector[lastmodline]->refcount++;
++ lines.vector[lines.nlines] =
++ orig_lines->vector[lines.nlines + offset];
++ lines.vector[lines.nlines]->refcount++;
++ lines.nlines++;
+ }
+
+ switch (df->type)
+@@ -7246,7 +7245,12 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ struct line *q;
+ int nextline_newline;
+ size_t nextline_len;
+-
++
++ if (newpos + df->nlines > numlines)
++ {
++ err = 1;
++ break;
++ }
+ textend = df->new_lines + df->len;
+ nextline_newline = 0;
+ nextline_text = df->new_lines;
+@@ -7271,8 +7275,7 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ q->has_newline = nextline_newline;
+ q->refcount = 1;
+ memcpy (q->text, nextline_text, nextline_len);
+- lines.vector[lastmodline++] = q;
+- offset--;
++ lines.vector[lines.nlines++] = q;
+
+ nextline_text = (char *)p + 1;
+ nextline_newline = 0;
+@@ -7286,11 +7289,11 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ q->has_newline = nextline_newline;
+ q->refcount = 1;
+ memcpy (q->text, nextline_text, nextline_len);
+- lines.vector[lastmodline++] = q;
++ lines.vector[lines.nlines++] = q;
+
+ /* For each line we add the offset between the #'s
+ decreases. */
+- offset--;
++ offset -= df->nlines;
+ break;
+ }
+
+@@ -7301,7 +7304,9 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ if (df->pos + df->nlines > orig_lines->nlines)
+ err = 1;
+ else if (delvers)
++ {
+ for (ln = df->pos; ln < df->pos + df->nlines; ++ln)
++ {
+ if (orig_lines->vector[ln]->refcount > 1)
+ /* Annotate needs this but, since the original
+ * vector is disposed of before returning from
+@@ -7309,6 +7314,8 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ * there are multiple references.
+ */
+ orig_lines->vector[ln]->vers = delvers;
++ }
++ }
+ break;
+ }
+ }
+@@ -7328,21 +7335,20 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ else
+ {
+ /* add the rest of the remaining lines to the data vector */
+- for (; lastmodline < numlines; lastmodline++)
++ while (lines.nlines < numlines)
+ {
+ /* we need to copy from the orig structure into new one */
+- lines.vector[lastmodline] = orig_lines->vector[lastmodline
++ lines.vector[lines.nlines] = orig_lines->vector[lines.nlines
+ + offset];
+- lines.vector[lastmodline]->refcount++;
++ lines.vector[lines.nlines]->refcount++;
++ lines.nlines++;
+ }
+
+ /* Move the lines vector to the original structure for output,
+ * first deleting the old.
+ */
+ linevector_free (orig_lines);
+- orig_lines->vector = lines.vector;
+- orig_lines->lines_alloced = numlines;
+- orig_lines->nlines = lines.nlines;
++ *orig_lines = lines;
+ }
+
+ return !err;
+--
+1.7.2.3
+
diff --git a/dev-vcs/cvs/files/cvs-1.11.23-getline64.patch b/dev-vcs/cvs/files/cvs-1.11.23-getline64.patch
new file mode 100644
index 000000000000..f93fca465444
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.11.23-getline64.patch
@@ -0,0 +1,36 @@
+http://pkgs.fedoraproject.org/gitweb/?p=cvs.git;a=blob;f=cvs-1.11.23-getline64.patch;h=99942e0589e4ff26e87a927c1a54662954876e64;hb=HEAD
+
+--- cvs-1.11.23/lib/getline.c
++++ cvs-1.11.23/lib/getline.c
+@@ -154,7 +154,7 @@
+ return ret;
+ }
+
+-int
++ssize_t
+ getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+@@ -163,7 +163,7 @@
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+ }
+
+-int
++ssize_t
+ getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+--- cvs-1.11.23/lib/getline.h
++++ cvs-1.11.23/lib/getline.h
+@@ -11,9 +11,9 @@
+
+ #define GETLINE_NO_LIMIT -1
+
+-int
++ssize_t
+ getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+-int
++ssize_t
+ getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int limit));
+ int
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch b/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch
new file mode 100644
index 000000000000..9c9b49db8f62
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch
@@ -0,0 +1,140 @@
+Author: Robin H. Johnson <robbat2@gentoo.org>
+Date: 2006-08-09
+
+This patch allows a CVS server to deny usage of specific commands, based on
+input in the environment.
+
+Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want,
+seperated by spaces. Eg:
+CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents"
+would block ALL usage of compression.
+
+Please see the array 'struct request requests[]' in src/server.c for a full
+list of commands.
+
+Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients
+may fail! (This includes 'ci'!).
+
+See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+diff -Nuar --exclude '*~' -U 10 cvs-1.12.12.orig/src/server.c cvs-1.12.12/src/server.c
+--- cvs-1.12.12.orig/src/server.c 2005-04-14 14:13:29.000000000 +0000
++++ cvs-1.12.12/src/server.c 2006-08-09 01:40:44.000000000 +0000
+@@ -5836,43 +5836,90 @@
+ #undef REQ_LINE
+ };
+ #endif /* SERVER_SUPPORT or CLIENT_SUPPORT */
+
+
+
+ #ifdef SERVER_SUPPORT
+ /*
+ * This server request is not ignored by the secondary.
+ */
++
++/* Hack by Robin H. Johnson <robbat2@gentoo.org>.
++ * Allow the server ENV to specify what request types are to be ignored.
++ */
++
++static char blocked_requests[BUFSIZ] = " ";
++
++static void build_blocked_requests() {
++ char *tmp = getenv("CVS_BLOCK_REQUESTS");
++
++ if (tmp != NULL && strlen(tmp) > 0) {
++ // move to our custom buffer
++ strncat(blocked_requests, tmp, sizeof(blocked_requests)-strlen(blocked_requests));
++ //add a space on the end as well for searching
++ strncat(blocked_requests, " ", sizeof(blocked_requests)-strlen(blocked_requests));
++ }
++
++ // now blocked_requests contains the list of every request that we do not
++ // want to serve
++}
++
++// returns 0 if we should serve this request
++// use as if(checker(FOO)) continue;
++static int serve_valid_requests_checker(char *reqname) {
++ char needle[BUFSIZ] = " ";
++ char *tmp;
++
++ if(!blocked_requests || strlen(blocked_requests) < 2)
++ return 0;
++
++ // we want to look for ' 'reqname' '
++ snprintf(needle, sizeof(needle), " %s ", reqname);
++
++ // now do the search
++ tmp = strstr(blocked_requests, needle);
++
++ if (tmp != NULL)
++ return 1;
++
++ return 0;
++
++}
++
+ static void
+ serve_valid_requests (char *arg)
+ {
+ struct request *rq;
+
+ /* Since this is processed in the first pass, don't reprocess it in the
+ * second.
+ *
+ * We still print errors since new errors could have been generated in the
+ * second pass.
+ */
+ if (print_pending_error ()
+ #ifdef PROXY_SUPPORT
+ || reprocessing
+ #endif /* PROXY_SUPPORT */
+ )
+ return;
++
++ build_blocked_requests();
+
+ buf_output0 (buf_to_net, "Valid-requests");
+ for (rq = requests; rq->name != NULL; rq++)
+ {
+ if (rq->func != NULL)
+ {
++ if(serve_valid_requests_checker(rq->name))
++ continue;
+ buf_append_char (buf_to_net, ' ');
+ buf_output0 (buf_to_net, rq->name);
+ }
+ }
+ buf_output0 (buf_to_net, "\nok\n");
+
+ /* The client is waiting for the list of valid requests, so we
+ must send the output now. */
+ buf_flush (buf_to_net, 1);
+ }
+@@ -6353,20 +6400,24 @@
+ cmd += len;
+ else if (cmd[len] == ' ')
+ cmd += len + 1;
+ else
+ /*
+ * The first len characters match, but it's a different
+ * command. e.g. the command is "cooperate" but we matched
+ * "co".
+ */
+ continue;
++ // Ignore commands that we are supposed to ignore.
++ if(serve_valid_requests_checker(rq->name))
++ continue;
++
+
+ if (!(rq->flags & RQ_ROOTLESS)
+ && current_parsed_root == NULL)
+ {
+ /* For commands which change the way in which data
+ is sent and received, for example Gzip-stream,
+ this does the wrong thing. Since the client
+ assumes that everything is being compressed,
+ unconditionally, there is no way to give this
+ error to the client without turning on
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c b/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c
new file mode 100644
index 000000000000..597f6de8dbdb
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c
@@ -0,0 +1,58 @@
+/*
+Author: Robin H. Johnson <robbat2@gentoo.org>
+Date: 2006-08-09
+
+This patch allows a CVS server to deny usage of specific commands, based on
+input in the environment.
+
+Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want,
+seperated by spaces. Eg:
+CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents"
+would block ALL usage of compression.
+
+Please see the array 'struct request requests[]' in src/server.c for a full
+list of commands.
+
+Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients
+may fail! (This includes 'ci'!).
+
+See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <malloc.h>
+
+
+#define REAL_CVS "/bin/cvs"
+#define CVS_TMPDIR "/tmp"
+#define CMDS_BLOCKED " Gzip-stream gzip-file-contents Kerberos-encrypt Gssapi-encrypt Gssapi-authenticate add remove admin import init history watch-on watch-off watch-add watch-remove watchers editors edit version tag rtag "
+
+int main(int argc, char* argv[]) {
+ char** newargv;
+ int newargc, offset;
+ int i;
+ // 0 for argv[0] we must copy
+ offset = 0+0;
+ // +1 for trailing NULL
+ newargc = argc+offset+1;
+ newargv = (char**) malloc(newargc*sizeof(char*));
+ newargv[0] = "cvs";
+ //newargv[1] = "-T";
+ //newargv[2] = CVS_TMPDIR;
+ //newargv[3] = "-R";
+ for(i=1;i<argc;i++) {
+ newargv[i+offset] = argv[i];
+ }
+ newargv[newargc-1] = NULL;
+ setenv("CVS_BLOCK_REQUESTS",CMDS_BLOCKED ,1);
+ //for(i =0;i<newargc;i++) {
+ // printf("[%d]='%s'\n",i,newargv[i] != NULL ? newargv[i] : "NULL");
+ //}
+ execv(REAL_CVS,newargv);
+ free(newargv);
+ return 0;
+}
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch b/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch
new file mode 100644
index 000000000000..d7d6e6bb8a65
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch
@@ -0,0 +1,34 @@
+http://bugs.gentoo.org/213833
+
+commit 913c09becd9df89dbd9b9f386e7f35c240d5efe8
+Author: Bruno Haible <bruno@clisp.org>
+Date: Fri Oct 19 01:50:42 2007 +0200
+
+ Don't use %n on glibc >= 2.3 systems.
+
+diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
+index f563823..5d818aa 100644
+--- a/lib/vasnprintf.c
++++ b/lib/vasnprintf.c
+@@ -3385,9 +3385,21 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+ #endif
+ *p = dp->conversion;
+ #if USE_SNPRINTF
++# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))
+ p[1] = '%';
+ p[2] = 'n';
+ p[3] = '\0';
++# else
++ /* On glibc2 systems from glibc >= 2.3 - probably also older
++ ones - we know that snprintf's returns value conforms to
++ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
++ Therefore we can avoid using %n in this situation.
++ On glibc2 systems from 2004-10-18 or newer, the use of %n
++ in format strings in writable memory may crash the program
++ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
++ in this situation. */
++ p[1] = '\0';
++# endif
+ #else
+ p[1] = '\0';
+ #endif
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch b/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch
new file mode 100644
index 000000000000..fcd4431e8775
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch
@@ -0,0 +1,22 @@
+Index: cvs-1.12.12/src/cvsbug.in
+===================================================================
+--- cvs-1.12.12.orig/src/cvsbug.in
++++ cvs-1.12.12/src/cvsbug.in
+@@ -109,14 +109,14 @@ elif [ -f /bin/domainname ]; then
+ /usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep "^$LOGNAME:" |
+ cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
+ ORIGINATOR="`cat $TEMP`"
+- rm -f $TEMP
++ > $TEMP
+ fi
+ fi
+
+ if [ "$ORIGINATOR" = "" ]; then
+ grep "^$LOGNAME:" /etc/passwd | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
+ ORIGINATOR="`cat $TEMP`"
+- rm -f $TEMP
++ > $TEMP
+ fi
+
+ if [ -n "$ORGANIZATION" ]; then
+
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch b/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch
new file mode 100644
index 000000000000..5366f50855f1
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch
@@ -0,0 +1,52 @@
+buf_free_data must free data independently
+of send or reseived bytes over network.
+
+Moreover, when buffer is usually freed
+buffer _is_ empty, but has one clean mapped page.
+
+I've observed massive 'cvs server' leaks
+when importing large gentoo-x86 repo with 'cvsps'.
+Leak ate all my 32GBs of RAM and killed process.
+(Leaked around 3 pages per client request).
+
+valgrind found the leak easily:
+
+$ valgrind \
+ cvsps \
+ --root :local:$HOME/portage/gentoo-x86.rsync \
+ --fast-export \
+ gentoo-x86/dev-vcs/git-annex 2>l |
+ git fast-import
+
+ ==13504== 1,248 bytes in 52 blocks are still reachable in loss record 41 of 47
+ ==13504== at 0x4C2C19B: malloc (vg_replace_malloc.c:270)
+ ==13504== by 0x48A556: xnmalloc_inline (xmalloc.c:40)
+ ==13504== by 0x48A5B5: xmalloc (xmalloc.c:56)
+ ==13504== by 0x4855F5: new_memnode (pagealign_alloc.c:91)
+ ==13504== by 0x48571B: pagealign_alloc (pagealign_alloc.c:151)
+ ==13504== by 0x485739: pagealign_xalloc (pagealign_alloc.c:182)
+ ==13504== by 0x408DD7: get_buffer_data (buffer.c:98)
+ ==13504== by 0x409C0C: buf_input_data (buffer.c:738)
+ ==13504== by 0x45BB63: do_cvs_command (server.c:3847)
+ ==13504== by 0x45D39E: serve_co (server.c:4809)
+ ==13504== by 0x45F845: server (server.c:6438)
+ ==13504== by 0x438784: main (main.c:1066)
+
+And now it takes constant space (less, than 18MB)
+for 'cvs server' process to convert all gentoo-x86
+by serving more, than 5 000 000 client requests.
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+diff --git a/src/buffer.c b/src/buffer.c
+index 3f12513..9a7a559 100644
+--- a/src/buffer.c
++++ b/src/buffer.c
+@@ -526,7 +526,7 @@ buf_copy_data (struct buffer *buf, struct buffer_data *data,
+ void
+ buf_free_data (struct buffer *buffer)
+ {
+- if (buf_empty_p (buffer)) return;
++ if (! buffer->data) return;
+ buf_free_datas (buffer->data, buffer->last);
+ buffer->data = buffer->last = NULL;
+ }
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch b/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch
new file mode 100644
index 000000000000..d27bcc04a681
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch
@@ -0,0 +1,21 @@
+The function getdelim() behaves slightly different on FreeBSD,
+only appending to the *line buffer if line_size is 0.
+
+See:
+http://savannah.nongnu.org/bugs/?29466
+http://bugs.gentoo.org/314791
+
+Already comitted upstream:
+http://cvs.savannah.gnu.org/viewvc/ccvs/src/myndbm.c?root=cvs&r1=1.38&r2=1.39
+
+--- src/myndbm.c.orig
++++ src/myndbm.c
+@@ -213,7 +213,7 @@
+ mydbm_load_file (FILE *fp, List *list, char *filename)
+ {
+ char *line = NULL;
+- size_t line_size;
++ size_t line_size = 0;
+ char *value;
+ size_t value_allocated;
+ char *cp, *vp;
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch b/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch
new file mode 100644
index 000000000000..0a33eea873ff
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch
@@ -0,0 +1,42 @@
+http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/src/hash.h?r1=1.14.6.2&r2=1.14.6.3&pathrev=cvs1-11-x-branch
+fixed in cvs-1.11.23, cvs-HEAD after cvs-1.12.13a
+
+--- src/hash.h.orig 2005-02-01 22:56:48 +0100
++++ src/hash.h 2010-03-10 19:00:11 +0100
+@@ -27,26 +27,26 @@
+ };
+ typedef enum ntype Ntype;
+
+-struct node
++struct hashnode
+ {
+ Ntype type;
+- struct node *next;
+- struct node *prev;
+- struct node *hashnext;
+- struct node *hashprev;
++ struct hashnode *next;
++ struct hashnode *prev;
++ struct hashnode *hashnext;
++ struct hashnode *hashprev;
+ char *key;
+ void *data;
+- void (*delproc) (struct node *);
++ void (*delproc) (struct hashnode *);
+ };
+-typedef struct node Node;
++typedef struct hashnode Node;
+
+-struct list
++struct hashlist
+ {
+ Node *list;
+ Node *hasharray[HASHSIZE];
+- struct list *next;
++ struct hashlist *next;
+ };
+-typedef struct list List;
++typedef struct hashlist List;
+
+ List *getlist (void);
+ Node *findnode (List * list, const char *key);
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch b/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch
new file mode 100644
index 000000000000..825c0ee6f1c3
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch
@@ -0,0 +1,12 @@
+diff -ur a/build-aux/install-sh b/build-aux/install-sh
+--- a/build-aux/install-sh 2006-03-25 20:04:46 +0000
++++ b/build-aux/install-sh 2007-09-14 10:53:29 +0100
+@@ -246,7 +246,7 @@
+ fi
+
+ if test -n "$dir_arg"; then
+- $doit $mkdircmd "$dst" \
++ { test -d "$dst" || $doit $mkdircmd -p "$dst"; } \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch b/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch
new file mode 100644
index 000000000000..948fa4d7144e
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch
@@ -0,0 +1,29 @@
+back port changes from upstream gnulib to make this work on x32
+
+https://bugs.gentoo.org/395641
+
+--- cvs-1.12.12/lib/mktime.c
++++ cvs-1.12.12/lib/mktime.c
+@@ -115,6 +115,13 @@
+ #define TM_YEAR_BASE 1900
+ verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
+
++#if INT_MAX <= LONG_MAX / 2
++typedef long int long_int;
++#else
++typedef long long int long_int;
++#endif
++verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
++
+ /* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */
+ static inline int
+ leapyear (long int year)
+@@ -167,8 +174,6 @@
+ int year0, int yday0, int hour0, int min0, int sec0)
+ {
+ verify (C99_integer_division, -1 / 2 == 0);
+- verify (long_int_year_and_yday_are_wide_enough,
+- INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX);
+
+ /* Compute intervening leap days correctly even if year is negative.
+ Take care to avoid integer overflow here. */
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-openat.patch b/dev-vcs/cvs/files/cvs-1.12.12-openat.patch
new file mode 100644
index 000000000000..fdb406a45e4f
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-openat.patch
@@ -0,0 +1,21 @@
+Index: cvs-1.12.12/lib/openat.c
+===================================================================
+--- cvs-1.12.12.orig/lib/openat.c
++++ cvs-1.12.12/lib/openat.c
+@@ -55,9 +55,13 @@ rpl_openat (int fd, char const *filename
+ va_list arg;
+ va_start (arg, flags);
+
+- /* Assume that mode_t is passed compatibly with mode_t's type
+- after argument promotion. */
+- mode = va_arg (arg, mode_t);
++ /* If mode_t is narrower than int, use the promoted type (int),
++ not mode_t. Use sizeof to guess whether mode_t is nerrower;
++ we don't know of any practical counterexamples. */
++ if (sizeof (mode_t) < sizeof (int))
++ mode = va_arg (arg, int);
++ else
++ mode = va_arg (arg, mode_t);
+
+ va_end (arg);
+ }
diff --git a/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch b/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch
new file mode 100644
index 000000000000..0fb4c6c6d73d
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch
@@ -0,0 +1,14 @@
+X-Gentoo-bug: 144114
+
+diff -Nuar cvs-1.12.12.orig//contrib/rcs2log.sh cvs-1.12.12//contrib/rcs2log.sh
+--- cvs-1.12.12.orig//contrib/rcs2log.sh 2003-02-25 21:32:51.000000000 +0000
++++ cvs-1.12.12//contrib/rcs2log.sh 2010-12-06 21:14:33.831532212 +0000
+@@ -620,7 +620,7 @@
+ # Sort the log entries, first by date+time (in reverse order),
+ # then by author, then by log entry, and finally by file name and revision
+ # (just in case).
+-sort -t"$SOH" +2 -4r +4 +0 |
++sort -t"$SOH" -k 3,4r -k 5 -k 1,2 |
+
+ # Finally, reformat the sorted log entries.
+ $AWK -F"$SOH" '
diff --git a/dev-vcs/cvs/files/cvs-1.12.13-openat.patch b/dev-vcs/cvs/files/cvs-1.12.13-openat.patch
new file mode 100644
index 000000000000..762924a8c1d5
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13-openat.patch
@@ -0,0 +1,21 @@
+Index: cvs-1.12.13/lib/openat.c
+===================================================================
+--- cvs-1.12.13.orig/lib/openat.c
++++ cvs-1.12.13/lib/openat.c
+@@ -55,9 +55,13 @@ rpl_openat (int fd, char const *filename
+ va_list arg;
+ va_start (arg, flags);
+
+- /* Assume that mode_t is passed compatibly with mode_t's type
+- after argument promotion. */
+- mode = va_arg (arg, mode_t);
++ /* If mode_t is narrower than int, use the promoted type (int),
++ not mode_t. Use sizeof to guess whether mode_t is nerrower;
++ we don't know of any practical counterexamples. */
++ if (sizeof (mode_t) < sizeof (int))
++ mode = va_arg (arg, int);
++ else
++ mode = va_arg (arg, mode_t);
+
+ va_end (arg);
+ }
diff --git a/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch b/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch
new file mode 100644
index 000000000000..a4b4b1e2afeb
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch
@@ -0,0 +1,31 @@
+Index: src/zlib.c
+===================================================================
+RCS file: /sources/cvs/ccvs/src/zlib.c,v
+retrieving revision 1.31
+retrieving revision 1.32
+diff -u -r1.31 -r1.32
+--- src/zlib.c 3 Jun 2005 18:26:09 -0000 1.31
++++ src/zlib.c 28 Oct 2005 14:10:59 -0000 1.32
+@@ -221,15 +221,14 @@
+ point. */
+ assert (bd->size == 0);
+
+- /* This will work well in the server, because this call will
+- do an unblocked read and fetch all the available data. In
+- the client, this will read a single byte from the stdio
+- stream, which will cause us to call inflate once per byte.
+- It would be more efficient if we could make a call which
+- would fetch all the available bytes, and at least one byte. */
+-
++ /* On the server, this will do an unblocking read of as much data as is
++ * available. On the client, with a blocking input descriptor and the
++ * current fd_buffer implementation, this should read as much data as
++ * is currently available, and at least 1 byte (or EOF), from the
++ * underlying buffer.
++ */
+ status = (*cb->buf->input) (cb->buf->closure, bd->text,
+- need, BUFFER_DATA_SIZE, &nread);
++ need ? 1 : 0, BUFFER_DATA_SIZE, &nread);
+
+ if (status == -2)
+ /* Don't try to recover from memory allcoation errors. */
diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch
new file mode 100644
index 000000000000..216336f34941
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch
@@ -0,0 +1,101 @@
+Author: Robin H. Johnson <robbat2@gentoo.org>
+Original-Date: 2006-08-09
+Forward-Port-Date: 2007-12-06
+
+This patch allows a CVS server to deny usage of specific commands, based on
+input in the environment.
+
+Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want,
+seperated by spaces. Eg:
+CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents"
+would block ALL usage of compression.
+
+Please see the array 'struct request requests[]' in src/server.c for a full
+list of commands.
+
+Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients
+may fail! (This includes 'ci'!).
+
+See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+diff -Nuar cvs-1.12.13.1.orig/src/server.c cvs-1.12.13.1/src/server.c
+--- cvs-1.12.13.1.orig/src/server.c 2006-06-21 11:55:21.000000000 -0700
++++ cvs-1.12.13.1/src/server.c 2007-12-06 16:25:38.109309990 -0800
+@@ -6244,6 +6244,49 @@
+ /*
+ * This server request is not ignored by the secondary.
+ */
++
++/* Hack by Robin H. Johnson <robbat2@gentoo.org>.
++ * Allow the server ENV to specify what request types are to be ignored.
++ */
++
++static char blocked_requests[BUFSIZ] = " ";
++
++static void build_blocked_requests() {
++ char *tmp = getenv("CVS_BLOCK_REQUESTS");
++
++ if (tmp != NULL && strlen(tmp) > 0) {
++ // move to our custom buffer
++ strncat(blocked_requests, tmp, sizeof(blocked_requests)-strlen(blocked_requests));
++ //add a space on the end as well for searching
++ strncat(blocked_requests, " ", sizeof(blocked_requests)-strlen(blocked_requests));
++ }
++
++ // now blocked_requests contains the list of every request that we do not
++ // want to serve
++}
++
++// returns 0 if we should serve this request
++// use as if(checker(FOO)) continue;
++static int serve_valid_requests_checker(char *reqname) {
++ char needle[BUFSIZ] = " ";
++ char *tmp;
++
++ if(!blocked_requests || strlen(blocked_requests) < 2)
++ return 0;
++
++ // we want to look for ' 'reqname' '
++ snprintf(needle, sizeof(needle), " %s ", reqname);
++
++ // now do the search
++ tmp = strstr(blocked_requests, needle);
++
++ if (tmp != NULL)
++ return 1;
++
++ return 0;
++
++}
++
+ static void
+ serve_valid_requests (char *arg)
+ {
+@@ -6262,11 +6305,15 @@
+ )
+ return;
+
++ build_blocked_requests();
++
+ buf_output0 (buf_to_net, "Valid-requests");
+ for (rq = requests; rq->name != NULL; rq++)
+ {
+ if (rq->func != NULL)
+ {
++ if(serve_valid_requests_checker(rq->name))
++ continue;
+ buf_append_char (buf_to_net, ' ');
+ buf_output0 (buf_to_net, rq->name);
+ }
+@@ -6706,6 +6753,9 @@
+ * "co".
+ */
+ continue;
++ // Ignore commands that we are supposed to ignore.
++ if(serve_valid_requests_checker(rq->name))
++ continue;
+
+ if (!(rq->flags & RQ_ROOTLESS)
+ && current_parsed_root == NULL)
diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch
new file mode 100644
index 000000000000..4554b9ac912a
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch
@@ -0,0 +1,42 @@
+Attemt to use CVS leads to glibc crash:
+$ cvs up
+ *** %n in writable segment detected ***
+
+Fixes: http://savannah.nongnu.org/bugs/?35432
+Upstream gnulib commit:
+
+From 913c09becd9df89dbd9b9f386e7f35c240d5efe8 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Thu, 18 Oct 2007 23:50:42 +0000
+Subject: Don't use %n on glibc >= 2.3 systems.
+
+---
+(limited to 'lib/vasnprintf.c')
+
+diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
+index f563823..5d818aa 100644
+--- a/lib/vasnprintf.c
++++ b/lib/vasnprintf.c
+@@ -3386,8 +3386,20 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+ *fbp = dp->conversion;
+ #if USE_SNPRINTF
++# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))
+ p[1] = '%';
+ p[2] = 'n';
+ p[3] = '\0';
++# else
++ /* On glibc2 systems from glibc >= 2.3 - probably also older
++ ones - we know that snprintf's returns value conforms to
++ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
++ Therefore we can avoid using %n in this situation.
++ On glibc2 systems from 2004-10-18 or newer, the use of %n
++ in format strings in writable memory may crash the program
++ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
++ in this situation. */
++ p[1] = '\0';
++# endif
+ #else
+ p[1] = '\0';
+ #endif
+--
+cgit v0.9.0.2
diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch
new file mode 100644
index 000000000000..7ad7533b0a57
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch
@@ -0,0 +1,24 @@
+http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/lib/mempcpy.c?r1=1.2&r2=1.3&pathrev=MAIN
+fixed in cvs-HEAD after cvs-1.12.13a
+
+--- lib/mempcpy.c 2005/05/23 17:44:31 1.2
++++ lib/mempcpy.c 2007/08/22 12:48:42 1.3
+@@ -1,5 +1,5 @@
+ /* Copy memory area and return pointer after last written byte.
+- Copyright (C) 2003 Free Software Foundation, Inc.
++ Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,9 +15,9 @@
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+-/* Specification. */
+-#include "mempcpy.h"
++#include <config.h>
+
++/* Specification. */
+ #include <string.h>
+
+ /* Copy N bytes of SRC to DEST, return pointer to bytes after the
diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch
new file mode 100644
index 000000000000..d9c3358faf46
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch
@@ -0,0 +1,43 @@
+http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/src/hash.h?r1=1.14.6.2&r2=1.14.6.3&pathrev=cvs1-11-x-branch
+fixed in cvs-1.11.23, cvs-HEAD after cvs-1.12.13a
+
+--- src/hash.h.orig 2010-03-11 10:12:19 +0100
++++ src/hash.h 2010-03-11 10:12:40 +0100
+@@ -32,27 +32,27 @@
+ };
+ typedef enum ntype Ntype;
+
+-struct node
++struct hashnode
+ {
+ Ntype type;
+- struct node *next;
+- struct node *prev;
+- struct node *hashnext;
+- struct node *hashprev;
++ struct hashnode *next;
++ struct hashnode *prev;
++ struct hashnode *hashnext;
++ struct hashnode *hashprev;
+ char *key;
+ void *data;
+ size_t len; /* Length of DATA. */
+- void (*delproc) (struct node *);
++ void (*delproc) (struct hashnode *);
+ };
+-typedef struct node Node;
++typedef struct hashnode Node;
+
+-struct list
++struct hashlist
+ {
+ Node *list;
+ Node *hasharray[HASHSIZE];
+- struct list *next;
++ struct hashlist *next;
+ };
+-typedef struct list List;
++typedef struct hashlist List;
+
+ List *getlist (void);
+ Node *findnode (List *list, const char *key);
diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch
new file mode 100644
index 000000000000..adaff55ebb16
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch
@@ -0,0 +1,30 @@
+Fix build failure on gentoo's gcc:
+
+In file included from ./inttypes.h:34:0,
+ from ./stdint.h:65,
+ from /usr/include/netinet/in.h:23,
+ from /usr/include/netdb.h:27,
+ from getaddrinfo.h:30,
+ from canon-host.c:27:
+ /usr/include/inttypes.h:297:1: error: unknown type name 'intmax_t'
+ /usr/include/inttypes.h:297:26: error: unknown type name 'intmax_t'
+ /usr/include/inttypes.h:300:27: error: unknown type name 'intmax_t'
+ /usr/include/inttypes.h:300:45: error: unknown type name 'intmax_t'
+diff --git a/lib/stdint_.h b/lib/stdint_.h
+index adab4d7..3a8db19 100644
+--- a/lib/stdint_.h
++++ b/lib/stdint_.h
+@@ -43,7 +43,12 @@
+ Include it before <inttypes.h>, since any "#include <stdint.h>"
+ in <inttypes.h> would reinclude us, skipping our contents because
+ _GL_STDINT_H is defined. */
+-# include @ABSOLUTE_STDINT_H@
++# include "config.h"
++# if HAVE_INCLUDE_NEXT
++# include_next <stdint.h>
++# else
++# include @ABSOLUTE_STDINT_H@
++# endif
+ #endif
+
+ /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
diff --git a/dev-vcs/cvs/files/cvs.pam-include-1.12.12 b/dev-vcs/cvs/files/cvs.pam-include-1.12.12
new file mode 100644
index 000000000000..f401ec082a11
--- /dev/null
+++ b/dev-vcs/cvs/files/cvs.pam-include-1.12.12
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth include system-auth
+account include system-auth
+session include system-auth
diff --git a/dev-vcs/cvs/files/cvspserver.xinetd.d b/dev-vcs/cvs/files/cvspserver.xinetd.d
new file mode 100644
index 000000000000..0f2edb09cba0
--- /dev/null
+++ b/dev-vcs/cvs/files/cvspserver.xinetd.d
@@ -0,0 +1,14 @@
+service cvspserver
+{
+ disable = yes
+ socket_type = stream
+ wait = no
+ user = root
+ log_type = FILE /var/log/cvspserver
+ protocol = tcp
+ env = HOME=/var/cvsroot
+ log_on_failure += USERID
+ port = 2401
+ server = /usr/bin/cvs
+ server_args = -f --allow-root=/var/cvsroot pserver
+}
diff --git a/dev-vcs/cvs/metadata.xml b/dev-vcs/cvs/metadata.xml
new file mode 100644
index 000000000000..443275017827
--- /dev/null
+++ b/dev-vcs/cvs/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>cvs-utils</herd>
+ <use>
+ <flag name="server">Enable server support</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/cvs2cl/Manifest b/dev-vcs/cvs2cl/Manifest
new file mode 100644
index 000000000000..e2b2eae157f0
--- /dev/null
+++ b/dev-vcs/cvs2cl/Manifest
@@ -0,0 +1 @@
+DIST cvs2cl-2.71.pl.bz2 25347 SHA256 f7a86512f30b73cf2fe63e5e7e68fa3fc9607ab498dafbec704b3f02132f67d9 SHA512 de9e8465da56bec5b541a588e0d2a73f49e060fcadbde33ca63a7c4f93edf37cc50aa3271c4ad466430d3315b95c27d642325bd885ec7afdd6a75586d15d9dbe WHIRLPOOL 2deef9614c0a2061c9663762bbdc46dfc303883d92630d48d54c4dec5f6b4c3516cf34581cbe6d56344b639718f01ce868a3a62951b1509d8c3a01532b53aa7a
diff --git a/dev-vcs/cvs2cl/cvs2cl-2.71.ebuild b/dev-vcs/cvs2cl/cvs2cl-2.71.ebuild
new file mode 100644
index 000000000000..f58512d522b0
--- /dev/null
+++ b/dev-vcs/cvs2cl/cvs2cl-2.71.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="produces a GNU-style ChangeLog for CVS-controlled sources"
+HOMEPAGE="http://www.red-bean.com/cvs2cl/"
+SRC_URI="mirror://gentoo/${P}.pl.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE=""
+
+DEPEND="dev-lang/perl"
+
+S=${WORKDIR}
+
+maint_pkg_create() {
+ set -x
+ wget http://www.red-bean.com/cvs2cl/${PN}.pl
+ mv ${PN}.pl ${P}.pl
+ bzip2 ${P}.pl
+ ls -l ${PWD}/${P}.pl.bz2
+ set +x
+}
+#pkg_setup() { maint_pkg_create; }
+
+src_install() {
+ newbin ${P}.pl ${PN} || die
+}
diff --git a/dev-vcs/cvs2cl/metadata.xml b/dev-vcs/cvs2cl/metadata.xml
new file mode 100644
index 000000000000..45023270b146
--- /dev/null
+++ b/dev-vcs/cvs2cl/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>cvs-utils</herd>
+</pkgmetadata>
diff --git a/dev-vcs/cvs2svn/Manifest b/dev-vcs/cvs2svn/Manifest
new file mode 100644
index 000000000000..99a17eb32c74
--- /dev/null
+++ b/dev-vcs/cvs2svn/Manifest
@@ -0,0 +1,8 @@
+DIST cvs2svn-1.5.0.tar.gz 266057 SHA256 12c282757043b8ffc98443175cbac218119e92ccc73e942da447659efaf23274 SHA512 e6cbfcb541e8277091892e9ed26a35ce6fedfbf9d91659ba318bd10643ffae998a5a95d58056c56d4bdbd763f7de78e3592589a23c9ee04b6e43a6d617a09443 WHIRLPOOL 6f30dbdc6f084dfbe3e4c76a54a72dc073767ebc659d1815c672e0f6e84e4b3a0e0d89605da86d6d975c4d08b0c85c7ba956c623181a2a22ab7f568050b3d932
+DIST cvs2svn-1.5.1.tar.gz 266476 SHA256 75e97351af93ee9e4803b5285e7f18f280e0f258d7e9139a1a1bf84e34146179 SHA512 afe245ec913372bda27d4a5eb8fe41d8fff8b6f72dc9c57686c8d6144a10a0af9da7196136e1f3ed96fdb459f9e31cf6f226385ff47c0e3a63f7a0df9c0ea951 WHIRLPOOL 1ac7a61fcf5396257a06dbd5f70cab9778da673da9ac8281d77998c5ab6c1e38167a84e80313d548318128a3858f030500875e20531ff259f7b4eea54937be1c
+DIST cvs2svn-2.0.1.tar.gz 344924 SHA256 323c16ba865106856f82cf8d278741735e433e6a56b00207b75408fb7ef7ebdd SHA512 e754e3fc3e960643b8fb89c6d2aa97d741a1439e59d0e6e272fa5a18d099e3be9b713ec0b41c604844f6056582e917c7d11f30b2760a9d3dc2f98080757ea034 WHIRLPOOL e731f594a5ee100c86a51d9953a3b812af76038437d82c0a76ac41c5cfb8a74b123d50ecd538714956d6d48e7d44f32e742aa8c034c4512f8dd6d0eec9d1cab6
+DIST cvs2svn-2.1.0.tar.gz 389401 SHA256 b698b8aa138d3d8af07067f47068e9279871f4edbe2864ed056cf8a5a274ed54 SHA512 d78365dc194064e9f108a2d316185acfb1d61eac75c331008f81ba76b4c4b7c329789acafa8b593eddfe97dd3a503e2dbd63d9b684d91c485a89e4b4b417602c WHIRLPOOL 3e4dd3ad7eaaaa50d6d8505e817a9a44db9f44eb81b5291547ebc0c836091050297452939b59711e861e10a18e0d359f4eb2d5228a289c87984560bc777d3a28
+DIST cvs2svn-2.1.1.tar.gz 389645 SHA256 bd724fb615a5ac1ea1f7aaa62cafad3404d82b9fd1922a1028b81ad0672f9f10 SHA512 32b901ad618b42c9d58324c8c1b933a97477cad2af886bd88e1ab9742728d9986367abf9f559f7f3e7757958c32e519eb4eb08e620522d51d3961a74911efb86 WHIRLPOOL 76d04fb94b12b098a9cf5cd8466982e7cb913db9043a76bfdc593e03c984c017f1999bf49296d8b733ad3653be37738694a7c4cfb54c8f9cb5d3a6234396c436
+DIST cvs2svn-2.2.0.tar.gz 411531 SHA256 372c57cfea369637cd49fd9d685d1ebaa2e84a9cf4ad301fcc63f9cb42161bea SHA512 25a496b8ef46ecddfe94285f37fc8f0cf44a8775c6d8040c9748f21b93763416aa8831bfed7719708f4f897f455b884b59e4d1a8f766b7adf5a3195ab13b03e1 WHIRLPOOL e17fcac8d77a5a75361dba7548eed04c2079c83ea9b4066146dc8290980b5cc1d9f6a57871c492ca6add0f803090df833ab93ce1b0dec3b1cb47d1172c498acd
+DIST cvs2svn-2.3.0.tar.gz 479373 SHA256 d9d835e0c7df48966fbadf51527c25ebf1343b25179e3802f4637d4b96ba363e SHA512 709a41f407fc58c939ab9cad9a06e4abcc1161cba37353a871bc0e2621a6045600a7ba76016383df57cb7f534a433148b1ce4138d5f219ee3801c8db3780df51 WHIRLPOOL 8f8605a235e430f34eb06fd1791fdc0c04aa95d15d95fbf176da6e8ecafe492debc2fd2be3c10071fc989387d8699b0bce233bb298e31630f5f636f818232c50
+DIST cvs2svn-2.4.0.tar.gz 514891 SHA256 a6677fc3e7b4374020185c61c998209d691de0c1b01b53e59341057459f6f116 SHA512 726fb8a3b3261eeb6d8097973f2741aa7a433f847bcef6701a6c0b7dc3d8fb5da1726e40f008d1dffac71791b953ddb9ade5db5809c98731d78e94da6465506a WHIRLPOOL b1040b65c6d55ad3144e9ca8d358c7da6833f7990d766d32d7df3bec0949fd6fb66a1f4ccca6ec48bd4a39072deb9eb5f444e3efaee7ab299e086ee0edc72b02
diff --git a/dev-vcs/cvs2svn/cvs2svn-1.5.0.ebuild b/dev-vcs/cvs2svn/cvs2svn-1.5.0.ebuild
new file mode 100644
index 000000000000..830bed79bcd4
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-1.5.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="34574"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ~ppc x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options {profile-repos,show-db,verify-cvs2svn}.py
+ doman cvs2svn.1
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " ${ROOT}usr/share/${PN}/"
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" run-tests.py
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-1.5.1.ebuild b/dev-vcs/cvs2svn/cvs2svn-1.5.1.ebuild
new file mode 100644
index 000000000000..b78960dbeced
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-1.5.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="36129"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options {profile-repos,show-db,verify-cvs2svn}.py
+ doman cvs2svn.1
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " ${ROOT}usr/share/${PN}/"
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" run-tests.py
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.0.1.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.0.1.ebuild
new file mode 100644
index 000000000000..b6eabcad848b
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.0.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="39919"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options {profile-repos,show-db,verify-cvs2svn}.py
+ doman cvs2svn.1
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " ${ROOT}usr/share/${PN}/"
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" run-tests.py
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.1.0.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.1.0.ebuild
new file mode 100644
index 000000000000..81f107b6873b
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.1.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="41596"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options
+ doman cvs2svn.1
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" run-tests.py
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " /usr/share/${PN}/"
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.1.1.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.1.1.ebuild
new file mode 100644
index 000000000000..5f0268079847
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.1.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="42521"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc x86"
+IUSE=""
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options {profile-repos,show-db,verify-cvs2svn}.py
+ doman cvs2svn.1
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" run-tests.py
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " /usr/share/${PN}/"
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.2.0.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.2.0.ebuild
new file mode 100644
index 000000000000..a3c9c5b5072a
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.2.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH_OR="berkdb gdbm"
+PYTHON_USE_WITH_OPT="test"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit eutils distutils
+
+FILEVER="44372"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="bazaar git test"
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ bazaar? ( >=dev-vcs/bzr-1.13 )
+ git? ( >=dev-vcs/git-1.5.4.4 )
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ epatch "${FILESDIR}/2.2.0-deprecated-modules.patch"
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2svn-example.options
+ doman cvs2svn.1
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" -W ignore run-tests.py
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " /usr/share/${PN}/"
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.3.0.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.3.0.ebuild
new file mode 100644
index 000000000000..ffa6e7f0c52b
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.3.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH_OR="berkdb gdbm"
+PYTHON_USE_WITH_OPT="test"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="46528"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="bazaar git test"
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ bazaar? ( >=dev-vcs/bzr-1.13 )
+ git? ( >=dev-vcs/git-1.5.4.4 )
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_compile() {
+ distutils_src_compile
+ emake man
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2{svn,git,bzr}-example.options
+ doman *.1
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" -W ignore run-tests.py
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " /usr/share/${PN}/"
+}
diff --git a/dev-vcs/cvs2svn/cvs2svn-2.4.0.ebuild b/dev-vcs/cvs2svn/cvs2svn-2.4.0.ebuild
new file mode 100644
index 000000000000..d91533a82fe9
--- /dev/null
+++ b/dev-vcs/cvs2svn/cvs2svn-2.4.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH_OR="berkdb gdbm"
+PYTHON_USE_WITH_OPT="test"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+FILEVER="49237"
+
+DESCRIPTION="Convert a CVS repository to a Subversion repository"
+HOMEPAGE="http://cvs2svn.tigris.org/"
+SRC_URI="http://cvs2svn.tigris.org/files/documents/1462/${FILEVER}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="bazaar git test"
+
+DEPEND=">=dev-vcs/subversion-1.0.9"
+RDEPEND="${DEPEND}
+ bazaar? ( >=dev-vcs/bzr-1.13 )
+ git? ( >=dev-vcs/git-1.5.4.4 )
+ dev-vcs/rcs"
+
+PYTHON_MODNAME="cvs2svn_lib cvs2svn_rcsparse"
+
+src_prepare() {
+ distutils_src_prepare
+ python_convert_shebangs -r 2 .
+}
+
+src_compile() {
+ distutils_src_compile
+ emake man
+}
+
+src_install() {
+ distutils_src_install
+ insinto "/usr/share/${PN}"
+ doins -r contrib cvs2{svn,git,bzr}-example.options
+ doman *.1
+}
+
+src_test() {
+ # Need this because subversion is localized, but the tests aren't
+ export LC_ALL=C
+
+ testing() {
+ "$(PYTHON)" -W ignore run-tests.py
+ }
+ python_execute_function testing
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ elog "Additional scripts and examples have been installed to:"
+ elog " /usr/share/${PN}/"
+}
diff --git a/dev-vcs/cvs2svn/files/2.2.0-deprecated-modules.patch b/dev-vcs/cvs2svn/files/2.2.0-deprecated-modules.patch
new file mode 100644
index 000000000000..94ceaa2b2fa2
--- /dev/null
+++ b/dev-vcs/cvs2svn/files/2.2.0-deprecated-modules.patch
@@ -0,0 +1,54 @@
+Index: cvs2svn_lib/dumpfile_delegate.py
+===================================================================
+--- cvs2svn_lib/dumpfile_delegate.py (revision 4808)
++++ cvs2svn_lib/dumpfile_delegate.py (working copy)
+@@ -16,9 +16,11 @@
+
+ """This module contains database facilities used by cvs2svn."""
+
++try:
++ from hashlib import md5
++except ImportError:
++ from md5 import new as md5
+
+-import md5
+-
+ from cvs2svn_lib import config
+ from cvs2svn_lib.common import FatalError
+ from cvs2svn_lib.common import InternalError
+@@ -320,7 +322,7 @@
+ self.dumpfile.write(prop_contents)
+
+ # Insert the rev contents, calculating length and checksum as we go.
+- checksum = md5.new()
++ checksum = md5()
+ length = 0
+ if buf is None:
+ buf = stream.read(config.PIPE_READ_SIZE)
+Index: cvs2svn_lib/metadata_database.py
+===================================================================
+--- cvs2svn_lib/metadata_database.py (revision 4808)
++++ cvs2svn_lib/metadata_database.py (working copy)
+@@ -16,9 +16,11 @@
+
+ """This module contains classes to manage CVSRevision metadata."""
+
++try:
++ from hashlib import sha1
++except ImportError:
++ from sha import new as sha1
+
+-import sha
+-
+ from cvs2svn_lib.context import Ctx
+ from cvs2svn_lib.database import IndexedDatabase
+ from cvs2svn_lib.key_generator import KeyGenerator
+@@ -86,7 +88,7 @@
+ if not Ctx().cross_branch_commits:
+ key.append(branch_name or '')
+
+- digest = sha.new('\0'.join(key)).digest()
++ digest = sha1('\0'.join(key)).digest()
+ try:
+ # See if it is already known:
+ return self._digest_to_id[digest]
diff --git a/dev-vcs/cvs2svn/metadata.xml b/dev-vcs/cvs2svn/metadata.xml
new file mode 100644
index 000000000000..a5f294680254
--- /dev/null
+++ b/dev-vcs/cvs2svn/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>robbat2@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name="bazaar">Support for dev-vcs/bzr</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-vcs/cvsd/Manifest b/dev-vcs/cvsd/Manifest
new file mode 100644
index 000000000000..9da8110e311b
--- /dev/null
+++ b/dev-vcs/cvsd/Manifest
@@ -0,0 +1,2 @@
+DIST cvsd-1.0.17.tar.gz 247026 SHA256 49d6a0c95bbb2c2e87f549eea8941ca115e6eb147c9720f8fb88678c84c0802a SHA512 beea48a288ff580e6cc7fdcd1997b7af01e7ea1b1c185006c92cd7758e7e557d2b1b4fc820bd03b787ebc74b5fa9ef661584d2c523480cf6418f452f5f929c9d WHIRLPOOL 2fa9ae2e679933c3777b4e124f2a4733056120d591f61b1cb711642f76c2f3fa59e30eb9275ddf90f8caf6d49ba395e7e1d4c085ade1214493c7f0294b02492b
+DIST cvsd-1.0.7.tar.gz 193964 SHA256 0a5891f3e2bff1bd8b304d5a7ce8426df635dc73fd5f690464c17430844c89c5 SHA512 6ffc3d554e43d50c0fa4861b3f6cc6c696298d882074f017da80068f7afbca3361e5d88fbd13fcadf930afee2df8d6a0777710bc0f992dd208b7674595cc8ea1 WHIRLPOOL 4f0d3dbe7267087747d7174cce941808091f88c146e4809acec3b4b9afb1ea715d094630ceaacf6feb34752b7603413f52422e1e2d7d232784015669bbcfcd76
diff --git a/dev-vcs/cvsd/cvsd-1.0.17.ebuild b/dev-vcs/cvsd/cvsd-1.0.17.ebuild
new file mode 100644
index 000000000000..aa563dd298ee
--- /dev/null
+++ b/dev-vcs/cvsd/cvsd-1.0.17.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils user
+
+DESCRIPTION="CVS pserver daemon"
+HOMEPAGE="http://ch.tudelft.nl/~arthur/cvsd/"
+SRC_URI="http://ch.tudelft.nl/~arthur/cvsd/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="tcpd"
+
+DEPEND=">=dev-vcs/cvs-1.11.6
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )"
+RDEPEND="${DEPEND}
+ >=dev-lang/perl-5.8.0"
+
+pkg_setup() {
+ enewgroup cvsd
+ enewuser cvsd -1 -1 /var/lib/cvsd cvsd
+}
+
+src_compile() {
+ econf $(use_with tcpd libwrap) || die "econf failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+ dosed 's:^Repos:# Repos:g' /etc/cvsd/cvsd.conf
+ keepdir /var/lib/cvsd
+
+ dodoc AUTHORS ChangeLog FAQ INSTALL NEWS README TODO
+
+ newinitd "${FILESDIR}/cvsd.rc6" ${PN}
+}
+
+pkg_postinst() {
+ elog "To configure cvsd please read the README in "
+ elog "/usr/share/doc/${PF}/"
+}
diff --git a/dev-vcs/cvsd/cvsd-1.0.7.ebuild b/dev-vcs/cvsd/cvsd-1.0.7.ebuild
new file mode 100644
index 000000000000..dcf467848d75
--- /dev/null
+++ b/dev-vcs/cvsd/cvsd-1.0.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils user
+
+DESCRIPTION="CVS pserver daemon"
+HOMEPAGE="http://ch.tudelft.nl/~arthur/cvsd/"
+SRC_URI="http://ch.tudelft.nl/~arthur/cvsd/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+IUSE="tcpd"
+
+DEPEND="tcpd? ( >=sys-apps/tcp-wrappers-7.6 )"
+RDEPEND="${DEPEND}
+ >=dev-lang/perl-5.8.0
+ >=dev-vcs/cvs-1.11.6"
+
+pkg_setup() {
+ enewgroup cvsd
+ enewuser cvsd -1 -1 /var/lib/cvsd cvsd
+}
+
+src_compile() {
+ econf $(use_with tcpd libwrap) || die "econf failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+ dosed 's:^Repos:# Repos:g' /etc/cvsd/cvsd.conf
+ keepdir /var/lib/cvsd
+
+ dodoc AUTHORS ChangeLog FAQ INSTALL NEWS README TODO
+
+ newinitd "${FILESDIR}"/cvsd.rc6 ${PN}
+}
+
+pkg_postinst() {
+ elog "To configure cvsd please read the README in "
+ elog "/usr/share/doc/${PF}/"
+}
diff --git a/dev-vcs/cvsd/files/cvsd.rc6 b/dev-vcs/cvsd/files/cvsd.rc6
new file mode 100644
index 000000000000..b300b3562904
--- /dev/null
+++ b/dev-vcs/cvsd/files/cvsd.rc6
@@ -0,0 +1,20 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting cvsd"
+ start-stop-daemon --start --quiet --background --exec /usr/sbin/cvsd
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping cvsd"
+ start-stop-daemon --stop --quiet --pidfile /var/run/cvsd.pid
+ eend $?
+}
diff --git a/dev-vcs/cvsd/metadata.xml b/dev-vcs/cvsd/metadata.xml
new file mode 100644
index 000000000000..45023270b146
--- /dev/null
+++ b/dev-vcs/cvsd/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>cvs-utils</herd>
+</pkgmetadata>
diff --git a/dev-vcs/cvsgraph/Manifest b/dev-vcs/cvsgraph/Manifest
new file mode 100644
index 000000000000..decffd2b5db4
--- /dev/null
+++ b/dev-vcs/cvsgraph/Manifest
@@ -0,0 +1,2 @@
+DIST cvsgraph-1.6.1.tar.gz 114337 SHA256 05cdbed36bb2dd37aa382fc7f4410caac20dcf9176a50e922551cdc965dbc60b SHA512 6548d43784cd6e2e85777e0158371c6332f96f72fc8d1827dcece8aa54d77139021586e468155ec003d371eaa7095cd57a5004a1ed76bc55db325c3899105e6b WHIRLPOOL bd12cafe2d3fe5436adbb508b689f3e7bea1b8dfbc7aa02974ba23bc6d4dc57fe2f1e9f07325924e0ee949709091362a821948cda9b4273197eaac6650694add
+DIST cvsgraph-1.7.0.tar.gz 202678 SHA256 74438faaefd325c7a8ed289ea5d1657befe1d1859d55f8fbbcc7452f4efd435f SHA512 b2a5bec073e7fbba2a2b1975bb4583c8fa87d29a985b7bcedcaf556c744b822ea5ff65b5ca3c4bd6da6bb6697f5e023a7ce35cf5084f2d59fdd15297790e7aab WHIRLPOOL 1ca604faf530c2d3820fcc0d1c9e2c6bee4c4582f1caf93c98facb4610892a2a7160c0378daf175479af3ece76f2f35c08c7aaeabdd78a00e1f1e52e1e579c74
diff --git a/dev-vcs/cvsgraph/cvsgraph-1.6.1.ebuild b/dev-vcs/cvsgraph/cvsgraph-1.6.1.ebuild
new file mode 100644
index 000000000000..f98ae29b596d
--- /dev/null
+++ b/dev-vcs/cvsgraph/cvsgraph-1.6.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="CVS/RCS repository grapher"
+HOMEPAGE="http://www.akhphd.au.dk/~bertho/cvsgraph"
+SRC_URI="http://www.akhphd.au.dk/~bertho/cvsgraph/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-alpha amd64 -ia64 ppc sparc x86"
+IUSE="gif jpeg nls png truetype zlib"
+
+DEPEND="media-libs/gd
+ zlib? ( sys-libs/zlib )
+ gif? ( media-libs/giflib )
+ png? ( media-libs/libpng )
+ jpeg? ( virtual/jpeg )
+ truetype? ( media-libs/freetype )"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ econf \
+ $(use_enable nls) \
+ $(use_enable gif) \
+ $(use_enable png) \
+ $(use_enable jpeg) \
+ $(use_enable truetype) \
+ || die "econf failed"
+
+ emake || die "emake failed"
+}
+
+src_install () {
+ dobin cvsgraph
+ insinto /etc
+ doins cvsgraph.conf
+ doman cvsgraph.1 cvsgraph.conf.5
+ dodoc ChangeLog README contrib/*.php3
+ docinto automatic_documentation ; dodoc contrib/automatic_documentation/*
+}
diff --git a/dev-vcs/cvsgraph/cvsgraph-1.7.0.ebuild b/dev-vcs/cvsgraph/cvsgraph-1.7.0.ebuild
new file mode 100644
index 000000000000..dbaf49b05e55
--- /dev/null
+++ b/dev-vcs/cvsgraph/cvsgraph-1.7.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="CVS/RCS repository grapher"
+HOMEPAGE="http://www.akhphd.au.dk/~bertho/cvsgraph"
+SRC_URI="http://www.akhphd.au.dk/~bertho/cvsgraph/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-alpha amd64 -ia64 ~ppc ~sparc x86"
+IUSE="gif jpeg nls png truetype zlib"
+
+DEPEND="media-libs/gd
+ zlib? ( sys-libs/zlib )
+ gif? ( media-libs/giflib )
+ png? ( media-libs/libpng )
+ jpeg? ( virtual/jpeg )
+ truetype? ( media-libs/freetype )"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ econf \
+ $(use_enable nls) \
+ $(use_enable gif) \
+ $(use_enable png) \
+ $(use_enable jpeg) \
+ $(use_enable truetype) \
+ || die "econf failed"
+
+ emake || die "emake failed"
+}
+
+src_install () {
+ dobin cvsgraph
+ insinto /etc
+ doins cvsgraph.conf
+ doman cvsgraph.1 cvsgraph.conf.5
+ dodoc ChangeLog README AUTHORS contrib/*.php
+ docinto automatic_documentation ; dodoc contrib/automatic_documentation/*
+}
diff --git a/dev-vcs/cvsgraph/metadata.xml b/dev-vcs/cvsgraph/metadata.xml
new file mode 100644
index 000000000000..1f00c0c93be5
--- /dev/null
+++ b/dev-vcs/cvsgraph/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>cvs-utils</herd>
+ <longdescription lang="en">
+ CvsGraph is a utility to make a graphical representation of all
+ revisions and branches of a file in a CVS/RCS repository. It has been
+ inspired by the 'graph' option in WinCVS, but I could not find a
+ stand-alone version of this graph code. So, it was time to write one.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-vcs/cvsps/Manifest b/dev-vcs/cvsps/Manifest
new file mode 100644
index 000000000000..fc18c66818d5
--- /dev/null
+++ b/dev-vcs/cvsps/Manifest
@@ -0,0 +1,3 @@
+DIST cvsps-2.1.tar.gz 61634 SHA256 91d3198b33463861a581686d5fcf99a5c484e7c4d819384c04fda9cafec1075a SHA512 8ba703fc4dd1c7a8201f4cefec533a6e228943f53f5380d8d17107718d8cb607c861a733d7ad1d6ed9288c4dbeae9fd59ceaf52172f16885a00d000a667e0e38 WHIRLPOOL 8299c0ff5ae5701409142c02fad6c604b2aadd2038282b29b49ff8934eb0740f456b3e4d837ed966e31af7ebb73f2e8e97bd48190ed806dbb3ed76182ba85caf
+DIST cvsps-2.2b1.tar.gz 62763 SHA256 6906acb3636cdb4a4a9d608111aec22a85530037cb08a62ed5eb74ca0b218f81 SHA512 9e6f95df53cdc16566f1606a9299ee641de9b020a373c9004218b3db23fbdcce9e32d4a57dce332580bc4e6429b90977c2753facd0ad8f9a9234b79f03a7a33d WHIRLPOOL e60706d0324a28a6bcbdc6aeb73e51211295e2b6462d04d7b1bc54634ae8b558971ac0545860a7649dd230a8de823e9ec1912b97bfe584d59bc76808b49d6ec8
+DIST cvsps-3.13.tar.gz 64437 SHA256 5f078a6e02c394f663893751f128caf643fe00a30b559e87db6f45190c623799 SHA512 9fe2be4839c7a6f31a788102fd6ebb1e2e0693f09a4dad2bca5cd5d0788088eb34388d592778f04bcfec9817e3ffffb66d70db9aa47996d3bd1c45cf7cd8464f WHIRLPOOL 52694e8b2b3cb0924333d80533618f687676f0b44f782c1c4f7bbc28a4f4e6a425c966823f027db7dcee27695c27c0b136115e449e83eac43459a7da03baa57c
diff --git a/dev-vcs/cvsps/cvsps-2.1-r1.ebuild b/dev-vcs/cvsps/cvsps-2.1-r1.ebuild
new file mode 100644
index 000000000000..844e834defa7
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-2.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils toolchain-funcs
+
+MY_P="${P/_/}"
+DESCRIPTION="Generates patchset information from a CVS repository"
+HOMEPAGE="http://www.cobite.com/cvsps/"
+SRC_URI="http://www.cobite.com/cvsps/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-build.patch
+ epatch "${FILESDIR}"/${P}-solaris.patch
+ # no configure around
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e '/^LDLIBS+=/s/$/ -lsocket/' Makefile || die
+ fi
+ tc-export CC
+}
+
+src_install() {
+ dobin cvsps || die
+ doman cvsps.1
+ dodoc README CHANGELOG
+}
diff --git a/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild b/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild
new file mode 100644
index 000000000000..0713161c1613
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils toolchain-funcs
+
+MY_P="${P/_beta/b}"
+DESCRIPTION="Generates patchset information from a CVS repository"
+HOMEPAGE="http://www.cobite.com/cvsps/"
+SRC_URI="http://www.cobite.com/cvsps/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.1-build.patch
+ epatch "${FILESDIR}"/${P}-solaris.patch
+ # no configure around
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e '/^LDLIBS+=/s/$/ -lsocket/' Makefile || die
+ fi
+ tc-export CC
+}
+
+src_install() {
+ dobin cvsps || die
+ doman cvsps.1
+ dodoc README CHANGELOG
+}
diff --git a/dev-vcs/cvsps/cvsps-3.13-r1.ebuild b/dev-vcs/cvsps/cvsps-3.13-r1.ebuild
new file mode 100644
index 000000000000..60f8ea17d5d0
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-3.13-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
+
+DESCRIPTION="Generates patchset information from a CVS repository (supports fast-import)"
+HOMEPAGE="http://www.catb.org/~esr/cvsps/"
+SRC_URI="http://www.catb.org/~esr/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}
+ app-text/asciidoc"
+
+RESTRICT=test # upstream does not ship tests
+
+src_prepare() {
+ local gentoo_name=${PN}-3
+
+ epatch "${FILESDIR}"/${P}-make.patch
+ mv ${PN}.asc ${gentoo_name}.asc || die
+ sed -i "s/${PN}/${gentoo_name}/g" ${gentoo_name}.asc || die
+ sed -i "s/PROG = cvsps/PROG = ${gentoo_name}/" Makefile || die
+
+ tc-export CC
+ export prefix="${EPREFIX}"/usr
+}
+
+src_install() {
+ default
+ dodoc README
+}
diff --git a/dev-vcs/cvsps/files/cvsps-2.1-build.patch b/dev-vcs/cvsps/files/cvsps-2.1-build.patch
new file mode 100644
index 000000000000..bcb394d5dd0b
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.1-build.patch
@@ -0,0 +1,18 @@
+--- Makefile.orig 2008-03-24 07:16:47.000000000 -0400
++++ Makefile 2008-03-24 07:17:18.000000000 -0400
+@@ -3,6 +3,7 @@
+ CC?=gcc
+ CFLAGS?=-g -O2 -Wall
+ CFLAGS+=-I. -DVERSION=\"$(MAJOR).$(MINOR)\"
++LDLIBS+=-lz
+ prefix?=/usr/local
+ OBJS=\
+ cbtcommon/debug.o\
+@@ -21,7 +22,6 @@
+ all: cvsps
+
+ cvsps: $(OBJS)
+- $(CC) -o cvsps $(OBJS) -lz
+
+ install:
+ [ -d $(prefix)/bin ] || mkdir -p $(prefix)/bin
diff --git a/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch
new file mode 100644
index 000000000000..3e063fd9248b
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch
@@ -0,0 +1,131 @@
+Modified version of
+http://cvs.openpkg.org/fileview?f=openpkg-src/cvsps/cvsps.patch&v=1.13
+
+Index: cache.c
+--- cache.c.orig 2008-04-02 03:18:44 +0200
++++ cache.c 2008-04-02 09:10:25 +0200
+@@ -361,7 +361,7 @@
+
+ strcpy(buff, p_buff);
+
+- while ((s = strsep(&p, ";")))
++ while ((s = my_strsep(&p, ";")))
+ {
+ char * c = strchr(s, ':');
+
+Index: cvs_direct.c
+--- cvs_direct.c.orig 2008-04-02 03:18:44 +0200
++++ cvs_direct.c 2008-04-02 09:10:25 +0200
+@@ -92,12 +92,12 @@
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ /* if root string looks like :pserver:... then the first token will be empty */
+ if (strlen(tok) == 0)
+ {
+- char * method = strsep(&p, ":");
++ char * method = my_strsep(&p, ":");
+ if (strcmp(method, "pserver") == 0)
+ {
+ ctx = open_ctx_pserver(ctx, p);
+@@ -185,14 +185,14 @@
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+ if (strlen(tok) == 0 || !p)
+ {
+ debug(DEBUG_APPERROR, "parse error on third token");
+ goto out_free_err;
+ }
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+ if (!strlen(tok2) || (!tok || !strlen(tok)))
+ {
+ debug(DEBUG_APPERROR, "parse error on user@server in pserver");
+@@ -272,7 +272,7 @@
+ strcpy_a(root, p_root, PATH_MAX);
+
+ /* if there's a ':', it's remote */
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ if (p)
+ {
+@@ -281,7 +281,7 @@
+ if (!cvs_rsh)
+ cvs_rsh = "rsh";
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+
+ if (tok)
+ snprintf(execcmd, PATH_MAX, "%s -l %s %s %s server", cvs_rsh, tok2, tok, cvs_server);
+@@ -776,7 +776,7 @@
+ static int parse_patch_arg(char * arg, char ** str)
+ {
+ char *tok, *tok2 = "";
+- tok = strsep(str, " ");
++ tok = my_strsep(str, " ");
+ if (!tok)
+ return 0;
+
+@@ -796,7 +796,7 @@
+ /* see if command wants two args and they're separated by ' ' */
+ if (tok[2] == 0 && strchr("BdDFgiorVxYz", tok[1]))
+ {
+- tok2 = strsep(str, " ");
++ tok2 = my_strsep(str, " ");
+ if (!tok2)
+ {
+ debug(DEBUG_APPERROR, "diff_opts parse_error: argument %s requires two arguments", tok);
+Index: util.c
+--- util.c.orig 2008-04-02 03:18:44 +0200
++++ util.c 2008-04-02 09:10:25 +0200
+@@ -316,3 +316,31 @@
+ exit(1);
+ }
+ }
++
++char *my_strsep(char **stringp, const char *delim)
++{
++ char *s;
++ const char *spanp;
++ int c, sc;
++ char *tok;
++
++ if ((s = *stringp) == NULL)
++ return NULL;
++ for (tok = s;;) {
++ c = *s++;
++ spanp = delim;
++ do {
++ if ((sc = *spanp++) == c) {
++ if (c == 0)
++ s = NULL;
++ else
++ s[-1] = 0;
++ *stringp = s;
++ return tok;
++ }
++ } while (sc != 0);
++ }
++ /* NOTREACHED */
++ return NULL;
++}
++
+Index: util.h
+--- util.h.orig 2008-04-02 03:18:44 +0200
++++ util.h 2008-04-02 09:15:35 +0200
+@@ -24,5 +24,6 @@
+ void timing_stop(const char *);
+ int my_system(const char *);
+ int escape_filename(char *, int, const char *);
++char *my_strsep(char **, const char *);
+
+ #endif /* UTIL_H */
diff --git a/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch b/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch
new file mode 100644
index 000000000000..444ac1382a7b
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch
@@ -0,0 +1,135 @@
+Modified version of.
+http://cvs.openpkg.org/fileview?f=openpkg-src/cvsps/cvsps.patch&v=1.13
+
+diff --git a/cache.c b/cache.c
+index 4c51cf7..2c3918d 100644
+--- a/cache.c
++++ b/cache.c
+@@ -361,7 +361,7 @@ static void parse_cache_revision(PatchSetMember * psm, const char * p_buff)
+
+ strcpy(buff, p_buff);
+
+- while ((s = strsep(&p, ";")))
++ while ((s = my_strsep(&p, ";")))
+ {
+ char * c = strchr(s, ':');
+
+diff --git a/cvs_direct.c b/cvs_direct.c
+index e281848..5aa8f0f 100644
+--- a/cvs_direct.c
++++ b/cvs_direct.c
+@@ -92,12 +92,12 @@ CvsServerCtx * open_cvs_server(char * p_root, int compress)
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ /* if root string looks like :pserver:... then the first token will be empty */
+ if (strlen(tok) == 0)
+ {
+- char * method = strsep(&p, ":");
++ char * method = my_strsep(&p, ":");
+ if (strcmp(method, "pserver") == 0)
+ {
+ ctx = open_ctx_pserver(ctx, p);
+@@ -185,14 +185,14 @@ static CvsServerCtx * open_ctx_pserver(CvsServerCtx * ctx, const char * p_root)
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+ if (strlen(tok) == 0 || !p)
+ {
+ debug(DEBUG_APPERROR, "parse error on third token");
+ goto out_free_err;
+ }
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+ if (!strlen(tok2) || (!tok || !strlen(tok)))
+ {
+ debug(DEBUG_APPERROR, "parse error on user@server in pserver");
+@@ -272,7 +272,7 @@ static CvsServerCtx * open_ctx_forked(CvsServerCtx * ctx, const char * p_root)
+ strcpy_a(root, p_root, PATH_MAX);
+
+ /* if there's a ':', it's remote */
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ if (p)
+ {
+@@ -281,7 +281,7 @@ static CvsServerCtx * open_ctx_forked(CvsServerCtx * ctx, const char * p_root)
+ if (!cvs_rsh)
+ cvs_rsh = "rsh";
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+
+ if (tok)
+ snprintf(execcmd, PATH_MAX, "%s -l %s %s %s server", cvs_rsh, tok2, tok, cvs_server);
+@@ -776,7 +776,7 @@ void cvs_rupdate(CvsServerCtx * ctx, const char * rep, const char * file, const
+ static int parse_patch_arg(char * arg, char ** str)
+ {
+ char *tok, *tok2 = "";
+- tok = strsep(str, " ");
++ tok = my_strsep(str, " ");
+ if (!tok)
+ return 0;
+
+@@ -796,7 +796,7 @@ static int parse_patch_arg(char * arg, char ** str)
+ /* see if command wants two args and they're separated by ' ' */
+ if (tok[2] == 0 && strchr("BdDFgiorVxYz", tok[1]))
+ {
+- tok2 = strsep(str, " ");
++ tok2 = my_strsep(str, " ");
+ if (!tok2)
+ {
+ debug(DEBUG_APPERROR, "diff_opts parse_error: argument %s requires two arguments", tok);
+diff --git a/util.c b/util.c
+index 7884c84..f3ab3a3 100644
+--- a/util.c
++++ b/util.c
+@@ -316,3 +316,31 @@ void strcpy_a(char * dst, const char * src, int n)
+ exit(1);
+ }
+ }
++
++char *my_strsep(char **stringp, const char *delim)
++{
++ char *s;
++ const char *spanp;
++ int c, sc;
++ char *tok;
++
++ if ((s = *stringp) == NULL)
++ return NULL;
++ for (tok = s;;) {
++ c = *s++;
++ spanp = delim;
++ do {
++ if ((sc = *spanp++) == c) {
++ if (c == 0)
++ s = NULL;
++ else
++ s[-1] = 0;
++ *stringp = s;
++ return tok;
++ }
++ } while (sc != 0);
++ }
++ /* NOTREACHED */
++ return NULL;
++}
++
+diff --git a/util.h b/util.h
+index ff2d3a0..336fd63 100644
+--- a/util.h
++++ b/util.h
+@@ -24,5 +24,6 @@ void timing_stop(const char *);
+ int my_system(const char *);
+ int escape_filename(char *, int, const char *);
+ void strcpy_a(char * dst, const char * src, int n);
++char *my_strsep(char **, const char *);
+
+ #endif /* UTIL_H */
diff --git a/dev-vcs/cvsps/files/cvsps-3.13-make.patch b/dev-vcs/cvsps/files/cvsps-3.13-make.patch
new file mode 100644
index 000000000000..7c96d60300a1
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-3.13-make.patch
@@ -0,0 +1,52 @@
+diff --git a/Makefile b/Makefile
+index 6266c9d..4f60d2f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -8,6 +8,9 @@ INSTALL = install
+ prefix?=/usr/local
+ target=$(DESTDIR)$(prefix)
+
++PROG = cvsps
++MANPAGE = $(PROG).1
++
+ OBJS= debug.o \
+ hash.o \
+ sio.o \
+@@ -19,12 +22,12 @@ OBJS= debug.o \
+ cvsclient.o \
+ list_sort.o
+
+-all: cvsps
++all: $(PROG) $(MANPAGE)
+
+ deps:
+ makedepend -Y -I. *.c
+
+-cvsps: $(OBJS)
+- $(CC) -o cvsps $(OBJS) $(LDFLAGS) $(LDLIBS)
++$(PROG): $(OBJS)
++ $(CC) -o $(PROG) $(OBJS) $(LDFLAGS) $(LDLIBS)
+
+ check:
+@@ -50,17 +53,17 @@ pylint:
+ .txt.html:
+ a2x --doctype manpage --format xhtml $*.txt
+
+-install: cvsps.1 all
++install: all
+ $(INSTALL) -d "$(target)/bin"
+ $(INSTALL) -d "$(target)/share/man/man1"
+- $(INSTALL) cvsps "$(target)/bin"
+- $(INSTALL) -m 644 cvsps.1 "$(target)/share/man/man1"
++ $(INSTALL) $(PROG) "$(target)/bin"
++ $(INSTALL) -m 644 $(MANPAGE) "$(target)/share/man/man1"
+
+ tags: *.c *.h
+ ctags *.c *.h
+
+ clean:
+- rm -f cvsps *.o core tags cvsps.1 cvsps.html docbook-xsl.css
++ rm -f $(PROG) *.o core tags $(MANPAGE) cvsps.html docbook-xsl.css
+
+ SOURCES = Makefile *.[ch] merge_utils.sh
+ DOCS = README COPYING NEWS cvsps.asc TODO
diff --git a/dev-vcs/cvsps/metadata.xml b/dev-vcs/cvsps/metadata.xml
new file mode 100644
index 000000000000..e9a271ce1876
--- /dev/null
+++ b/dev-vcs/cvsps/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <herd>cvs-utils</herd>
+ <upstream>
+ <remote-id type="freecode">cvsps</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/cvsq/Manifest b/dev-vcs/cvsq/Manifest
new file mode 100644
index 000000000000..12d35f8942e9
--- /dev/null
+++ b/dev-vcs/cvsq/Manifest
@@ -0,0 +1 @@
+DIST cvsq-0.4.4.tar.gz 3717 SHA256 9759fa87c4f81db187989ffa6ef2d9f610a2cc8fc74b2466849ca0b069c72eae SHA512 137f09f42f5213853b327f23c3d23914116851b2d8d7f17752257f6ab0b2f62e4526f95b7d005fbf49746ea17591fbb38cfc58ccbe55a976b36339df13e44f8f WHIRLPOOL b53286475eccc0e327cd937f6aaf09ead73145585f5cb0a6dd6ba76115b60119fcfab02ef03cfb64d07e46b15e2d2b17cb66d2787a96b23d3c4e9c81844c91ad
diff --git a/dev-vcs/cvsq/cvsq-0.4.4.ebuild b/dev-vcs/cvsq/cvsq-0.4.4.ebuild
new file mode 100644
index 000000000000..f63b4e3657ce
--- /dev/null
+++ b/dev-vcs/cvsq/cvsq-0.4.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+IUSE=""
+
+DESCRIPTION="A tool that enables developers to work comfortably offline with CVS by queuing the commits"
+SRC_URI="http://metawire.org/~vslavik/sw/cvsq/download/${P}.tar.gz"
+HOMEPAGE="http://metawire.org/~vslavik/sw/cvsq/"
+
+SLOT="0"
+LICENSE="public-domain"
+KEYWORDS="~amd64 ~ppc x86"
+
+DEPEND="" # This is just a shell script.
+RDEPEND="dev-vcs/cvs
+ app-shells/bash
+ sys-apps/coreutils"
+
+src_install () {
+ dodir /usr/bin
+ dobin cvsq
+ dodoc README AUTHORS ChangeLog
+}
diff --git a/dev-vcs/cvsq/metadata.xml b/dev-vcs/cvsq/metadata.xml
new file mode 100644
index 000000000000..45023270b146
--- /dev/null
+++ b/dev-vcs/cvsq/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>cvs-utils</herd>
+</pkgmetadata>
diff --git a/dev-vcs/cvsspam/Manifest b/dev-vcs/cvsspam/Manifest
new file mode 100644
index 000000000000..fa998c728188
--- /dev/null
+++ b/dev-vcs/cvsspam/Manifest
@@ -0,0 +1 @@
+DIST cvsspam-0.2.12.tar.gz 83714 SHA256 217c53ceebcc7fcbb8949304648b48c7c0805e0c4531d0c85473e8dd685b3e16 SHA512 80786f980fe5070fff90de8e7a470cdf91ee8ddbd4c37fb1d98d0ddc042d157f2f74998962eaab1a24503b9147fae2129db35f1d505b557a8c75325d1e101bec WHIRLPOOL f59677098ab67d7b558e1de0eb6f6e361dad0505873c96701bc8ab4da3b93871dc80405764d2083ab7d346cbbf058b136dacea8081413a7ec8fb12bc1e88843f
diff --git a/dev-vcs/cvsspam/cvsspam-0.2.12.ebuild b/dev-vcs/cvsspam/cvsspam-0.2.12.ebuild
new file mode 100644
index 000000000000..fda4d9005d1d
--- /dev/null
+++ b/dev-vcs/cvsspam/cvsspam-0.2.12.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Utility to send colored HTML CVS-mails"
+HOMEPAGE="http://www.badgers-in-foil.co.uk/projects/cvsspam/"
+SRC_URI="http://www.badgers-in-foil.co.uk/projects/cvsspam/releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="subversion"
+
+RDEPEND="dev-lang/ruby
+ subversion? ( dev-vcs/subversion )
+"
+
+src_prepare() {
+ use subversion && epatch "${FILESDIR}/${P}-svn.patch"
+}
+
+src_install() {
+ dobin collect_diffs.rb
+ dobin cvsspam.rb
+ dobin record_lastdir.rb
+ insinto /etc/cvsspam
+ doins cvsspam.conf
+
+ dohtml cvsspam-doc.html
+ dodoc CREDITS TODO cvsspam-doc.pdf
+}
diff --git a/dev-vcs/cvsspam/files/cvsspam-0.2.12-svn.patch b/dev-vcs/cvsspam/files/cvsspam-0.2.12-svn.patch
new file mode 100644
index 000000000000..3278f94bc005
--- /dev/null
+++ b/dev-vcs/cvsspam/files/cvsspam-0.2.12-svn.patch
@@ -0,0 +1,30 @@
+--- cvsspam.rb.old 2006-12-02 13:36:48.000000000 -0500
++++ cvsspam.rb 2006-12-02 13:38:28.000000000 -0500
+@@ -1386,12 +1386,10 @@
+ $allTags = Hash.new
+
+ File.open("#{$logfile}.emailtmp", File::RDWR|File::CREAT|File::TRUNC) do |mail|
++ reader = LogReader.new($stdin)
+
+ $diff_output_limiter = OutputSizeLimiter.new(mail, $mail_size_limit)
+
+- File.open($logfile) do |log|
+- reader = LogReader.new(log)
+-
+ until reader.eof
+ handler = $handlers[reader.currentLineCode]
+ if handler == nil
+@@ -1399,12 +1397,11 @@
+ end
+ handler.handleLines(reader.getLines, $diff_output_limiter)
+ end
+- end
+
+ end
+
+ if $subjectPrefix == nil
+- $subjectPrefix = "[CVS #{Repository.array.join(',')}]"
++ $subjectPrefix = "[SVN #{Repository.array.join(',')}]"
+ end
+
+ if $files_in_subject
diff --git a/dev-vcs/cvsspam/metadata.xml b/dev-vcs/cvsspam/metadata.xml
new file mode 100644
index 000000000000..ff62877c67ae
--- /dev/null
+++ b/dev-vcs/cvsspam/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/dev-vcs/cvsutils/Manifest b/dev-vcs/cvsutils/Manifest
new file mode 100644
index 000000000000..d0fa89355cbb
--- /dev/null
+++ b/dev-vcs/cvsutils/Manifest
@@ -0,0 +1 @@
+DIST cvsutils-0.2.5.tar.gz 79596 RMD160 98b8af82f1ab61b8fcfe5973af703a25cb992936 SHA1 294599ce431be50ad1da7295e8b6a65a17fbf531 SHA256 ac5f6faf250fd317655d79782e6f7cecaa5ab836659d8a31c28faa51160a4681
diff --git a/dev-vcs/cvsutils/cvsutils-0.2.5.ebuild b/dev-vcs/cvsutils/cvsutils-0.2.5.ebuild
new file mode 100644
index 000000000000..aa2ef30f800c
--- /dev/null
+++ b/dev-vcs/cvsutils/cvsutils-0.2.5.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="A small bundle of utilities to work with CVS repositories"
+HOMEPAGE="http://www.red-bean.com/cvsutils/"
+SRC_URI="http://www.red-bean.com/cvsutils/releases/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-lang/perl"
+DEPEND=""
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog README THANKS NEWS
+}
diff --git a/dev-vcs/cvsutils/metadata.xml b/dev-vcs/cvsutils/metadata.xml
new file mode 100644
index 000000000000..78866efc2780
--- /dev/null
+++ b/dev-vcs/cvsutils/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>cvs-utils</herd>
+ <longdescription>
+ CVS Utilities are helpful scripts for working with CVS repositories
+ offline and online. They include the ability to check file status,
+ "fake" include files in the repo, diff new files easily, change CVS
+ server of a repository and more.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-vcs/darcs/Manifest b/dev-vcs/darcs/Manifest
new file mode 100644
index 000000000000..873e747e10d0
--- /dev/null
+++ b/dev-vcs/darcs/Manifest
@@ -0,0 +1,4 @@
+DIST darcs-2.10.0.tar.gz 1502347 SHA256 52b3db3f7b64a4306585b96af7b5887f62ba54f6e9c3bdbed9b6a18d97f16b36 SHA512 216fb69aeed03c56cc7773eb92b8de3ec60be0526826a15a05230b7a66f9804e492be230c82c6475faa46e49ffed1531a9b03ea0d9c60e8de802cb9cdd421dcb WHIRLPOOL 3c62966ee5ab933471f8c42ff8be622ed8d6d0f8c392528906288f0da8a0d8dacb512c8645b82fba4ca4a03f628fc361630079b0bd6d6d09bce640cf03fd322c
+DIST darcs-2.10.1.tar.gz 1509208 SHA256 f1ef65b43780e7593ca1afdae5ecf44ed91d62cc1be360693a52c5ff7b57ee94 SHA512 b8c3971da3d635a7d90e35226c2ffa6d6ca8e78ba18793c632b7509bc4d52c1bda2490d147cdaea5842fbe5d8826b0025de61e2fb4f58c441875c5858d910e47 WHIRLPOOL a44550b9e44125ee468b10da723742c992c215a42411c074e8c2547643694ce572db7f59b5ba4209cef5aac26bd1ddcef1c54f592e8b73fd0da941d0e9e77d93
+DIST darcs-2.8.4.tar.gz 1301464 SHA256 3fab4dbb2d5dd9f381d49f4730c12e1534b5c484b0dde9712614a7151f659f98 SHA512 c60531bacea43bdd5a18ae461dd390fe64682cac56fa4e6b5153a5da3c003b59d8fb24827bd42b4b30f0d2c61877d36b58eb98317644f9f8a200ab7c5961c48e WHIRLPOOL 128e8e58e219d427928eb8725d9566c1b6b3bb478b3cda69b30ded8798fa104eb8dec0fda8a32701f5d074babf9f11f1b3036388cd15a82118853a566c832430
+DIST darcs-2.8.5.tar.gz 1306525 SHA256 064310ed589c89500e224ad5254ab88de815c349f14f9aef9513720eb857e399 SHA512 810fd8d2df2f8703891e85dc512b0185257dc84a35590aecb2077e14a78096b4fac57dbd7f89218987d04df846992d51c5d5c4deb8cc9f441ce9195ab202223b WHIRLPOOL 78cb6d20d8bd0af5eea71e3e737c12ef7063eb71f1788c2eb173abd5813930862b2e8f078243f2f650e4a65a4405b2d1d1539aef05a193e85521f367ec3ddd80
diff --git a/dev-vcs/darcs/darcs-2.10.0-r1.ebuild b/dev-vcs/darcs/darcs-2.10.0-r1.ebuild
new file mode 100644
index 000000000000..25b457429995
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.10.0-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.5.9999
+#hackport: flags: +library,+executable,-hpc,-warn-as-error,+pkgconfig,-rts,-static,-optimize
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour test-suite"
+inherit haskell-cabal
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="+curl diff +http +terminfo +threaded"
+
+RESTRICT=test # some files are missing
+
+RDEPEND=">=dev-haskell/attoparsec-0.11:=[profile?] <dev-haskell/attoparsec-0.14:=[profile?]
+ >=dev-haskell/base16-bytestring-0.1:=[profile?] <dev-haskell/base16-bytestring-0.2:=[profile?]
+ >=dev-haskell/binary-0.5:=[profile?] <dev-haskell/binary-0.8:=[profile?]
+ >=dev-haskell/cryptohash-0.4:=[profile?] <dev-haskell/cryptohash-0.12:=[profile?]
+ >=dev-haskell/data-ordlist-0.4:=[profile?] <dev-haskell/data-ordlist-0.5:=[profile?]
+ >=dev-haskell/dataenc-0.11:=[profile?] <dev-haskell/dataenc-0.15:=[profile?]
+ >=dev-haskell/hashable-1.0:=[profile?] <dev-haskell/hashable-1.3:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?] <dev-haskell/haskeline-0.8:=[profile?]
+ >=dev-haskell/html-1.0:=[profile?] <dev-haskell/html-1.1:=[profile?]
+ >=dev-haskell/mmap-0.5:=[profile?] <dev-haskell/mmap-0.6:=[profile?]
+ >=dev-haskell/mtl-2.1:=[profile?] <dev-haskell/mtl-2.3:=[profile?]
+ >=dev-haskell/old-locale-1.0:=[profile?] <dev-haskell/old-locale-1.1:=[profile?]
+ >=dev-haskell/old-time-1.1:=[profile?] <dev-haskell/old-time-1.2:=[profile?]
+ >=dev-haskell/parsec-3.1:=[profile?] <dev-haskell/parsec-3.2:=[profile?]
+ >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?]
+ >=dev-haskell/regex-applicative-0.2:=[profile?] <dev-haskell/regex-applicative-0.4:=[profile?]
+ >=dev-haskell/regex-compat-tdfa-0.95.1:=[profile?] <dev-haskell/regex-compat-tdfa-0.96:=[profile?]
+ >=dev-haskell/tar-0.4:=[profile?] <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/text-0.11.2.0:=[profile?] <dev-haskell/text-1.3:=[profile?]
+ >=dev-haskell/transformers-compat-0.4:=[profile?] <dev-haskell/transformers-compat-0.5:=[profile?]
+ >=dev-haskell/unix-compat-0.1.2:=[profile?] <dev-haskell/unix-compat-0.5:=[profile?]
+ >=dev-haskell/utf8-string-0.3.6:=[profile?] <dev-haskell/utf8-string-1.1:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?] <dev-haskell/vector-0.11:=[profile?]
+ >=dev-haskell/zip-archive-0.2.3:=[profile?] <dev-haskell/zip-archive-0.3:=[profile?]
+ >=dev-haskell/zlib-0.5.3.0:=[profile?] <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+ virtual/libiconv
+ || ( ( >=dev-haskell/transformers-0.3:=[profile?] <dev-haskell/transformers-0.4.0.0:=[profile?] )
+ ( >dev-haskell/transformers-0.4.0.0:=[profile?] <dev-haskell/transformers-0.5:=[profile?] ) )
+ curl? ( net-misc/curl )
+ diff? ( dev-haskell/lcs:=[profile?] )
+ http? ( >=dev-haskell/http-4000.2.3:=[profile?] <dev-haskell/http-4000.3:=[profile?]
+ >=dev-haskell/network-2.6:=[profile?]
+ dev-haskell/network-uri:=[profile?]
+ )
+ terminfo? ( >=dev-haskell/terminfo-0.3:=[profile?] )
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.10
+ dev-lang/ghc
+ test? ( >=dev-haskell/cmdargs-0.10 <dev-haskell/cmdargs-0.11
+ >=dev-haskell/findbin-0.0 <dev-haskell/findbin-0.1
+ >=dev-haskell/hunit-1.0 <dev-haskell/hunit-1.3
+ >=dev-haskell/quickcheck-2.3 <dev-haskell/quickcheck-2.8
+ >=dev-haskell/shelly-1.6 <dev-haskell/shelly-1.7
+ >=dev-haskell/split-0.1.4.1 <dev-haskell/split-0.3
+ >=dev-haskell/test-framework-0.4.0 <dev-haskell/test-framework-0.9
+ >=dev-haskell/test-framework-hunit-0.2.2 <dev-haskell/test-framework-hunit-0.4
+ >=dev-haskell/test-framework-quickcheck2-0.3 <dev-haskell/test-framework-quickcheck2-0.4 )
+ curl? ( virtual/pkgconfig )
+"
+
+src_prepare() {
+ cabal_chdeps \
+ 'terminfo == 0.3.*' 'terminfo >= 0.3' \
+ 'network >= 2.3 && < 2.5' 'network >= 2.6, network-uri' \
+ 'QuickCheck >= 2.3 && < 2.8' 'QuickCheck >= 2.3' \
+ 'attoparsec >= 0.11 && < 0.13' 'attoparsec >= 0.11 && < 0.14'
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag curl curl) \
+ --flag=executable \
+ $(cabal_flag diff hashed-storage-diff) \
+ --flag=-hpc \
+ $(cabal_flag http http) \
+ --flag=library \
+ --flag=-optimize \
+ --flag=pkgconfig \
+ --flag=-rts \
+ --flag=-static \
+ $(cabal_flag terminfo terminfo) \
+ $(cabal_flag threaded threaded) \
+ --flag=-warn-as-error
+}
+
+src_install() {
+ haskell-cabal_src_install
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
diff --git a/dev-vcs/darcs/darcs-2.10.1.ebuild b/dev-vcs/darcs/darcs-2.10.1.ebuild
new file mode 100644
index 000000000000..b23bab985e36
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.10.1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.5.9999
+#hackport: flags: +library,+executable,-hpc,-warn-as-error,+pkgconfig,-rts,-static,-optimize,hashed-storage-diff:diff
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour test-suite"
+inherit haskell-cabal
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="+curl diff +http +network-uri +terminfo +threaded"
+
+RESTRICT=test # missing file 'tests/bin/renameHelper.hs'
+
+RDEPEND=">=dev-haskell/attoparsec-0.11:=[profile?] <dev-haskell/attoparsec-0.14:=[profile?]
+ >=dev-haskell/base16-bytestring-0.1:=[profile?] <dev-haskell/base16-bytestring-0.2:=[profile?]
+ >=dev-haskell/binary-0.5:=[profile?] <dev-haskell/binary-0.8:=[profile?]
+ >=dev-haskell/cryptohash-0.4:=[profile?] <dev-haskell/cryptohash-0.12:=[profile?]
+ >=dev-haskell/data-ordlist-0.4:=[profile?] <dev-haskell/data-ordlist-0.5:=[profile?]
+ >=dev-haskell/dataenc-0.11:=[profile?] <dev-haskell/dataenc-0.15:=[profile?]
+ >=dev-haskell/hashable-1.0:=[profile?] <dev-haskell/hashable-1.3:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?] <dev-haskell/haskeline-0.8:=[profile?]
+ >=dev-haskell/html-1.0:=[profile?] <dev-haskell/html-1.1:=[profile?]
+ >=dev-haskell/mmap-0.5:=[profile?] <dev-haskell/mmap-0.6:=[profile?]
+ >=dev-haskell/mtl-2.1:=[profile?] <dev-haskell/mtl-2.3:=[profile?]
+ >=dev-haskell/old-locale-1.0:=[profile?] <dev-haskell/old-locale-1.1:=[profile?]
+ >=dev-haskell/old-time-1.1:=[profile?] <dev-haskell/old-time-1.2:=[profile?]
+ >=dev-haskell/parsec-3.1:=[profile?] <dev-haskell/parsec-3.2:=[profile?]
+ >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?]
+ >=dev-haskell/regex-applicative-0.2:=[profile?] <dev-haskell/regex-applicative-0.4:=[profile?]
+ >=dev-haskell/regex-compat-tdfa-0.95.1:=[profile?] <dev-haskell/regex-compat-tdfa-0.96:=[profile?]
+ >=dev-haskell/tar-0.4:=[profile?] <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/text-0.11.2.0:=[profile?] <dev-haskell/text-1.3:=[profile?]
+ >=dev-haskell/transformers-compat-0.4:=[profile?] <dev-haskell/transformers-compat-0.5:=[profile?]
+ >=dev-haskell/unix-compat-0.1.2:=[profile?] <dev-haskell/unix-compat-0.5:=[profile?]
+ >=dev-haskell/utf8-string-0.3.6:=[profile?] <dev-haskell/utf8-string-1.1:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?] <dev-haskell/vector-0.11:=[profile?]
+ >=dev-haskell/zip-archive-0.2.3:=[profile?] <dev-haskell/zip-archive-0.3:=[profile?]
+ >=dev-haskell/zlib-0.5.3.0:=[profile?] <dev-haskell/zlib-0.7.0.0:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+ virtual/libiconv
+ || ( ( >=dev-haskell/transformers-0.3:=[profile?] <dev-haskell/transformers-0.4.0.0:=[profile?] )
+ ( >dev-haskell/transformers-0.4.0.0:=[profile?] <dev-haskell/transformers-0.5:=[profile?] ) )
+ curl? ( net-misc/curl )
+ diff? ( dev-haskell/lcs:=[profile?] )
+ http? ( >=dev-haskell/http-4000.2.3:=[profile?] <dev-haskell/http-4000.3:=[profile?]
+ network-uri? ( >=dev-haskell/network-2.6:=[profile?] <dev-haskell/network-2.7:=[profile?]
+ >=dev-haskell/network-uri-2.6:=[profile?] <dev-haskell/network-uri-2.7:=[profile?] )
+ !network-uri? ( >=dev-haskell/network-2.3:=[profile?] <dev-haskell/network-2.6:=[profile?] ) )
+ terminfo? ( >=dev-haskell/terminfo-0.3:=[profile?] <dev-haskell/terminfo-0.5:=[profile?] )
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.10
+ dev-lang/ghc
+ test? ( >=dev-haskell/cmdargs-0.10 <dev-haskell/cmdargs-0.11
+ >=dev-haskell/findbin-0.0 <dev-haskell/findbin-0.1
+ >=dev-haskell/hunit-1.0 <dev-haskell/hunit-1.3
+ >=dev-haskell/quickcheck-2.3 <dev-haskell/quickcheck-2.9
+ >=dev-haskell/shelly-1.6.2 <dev-haskell/shelly-1.7
+ >=dev-haskell/split-0.1.4.1 <dev-haskell/split-0.3
+ >=dev-haskell/test-framework-0.4.0 <dev-haskell/test-framework-0.9
+ >=dev-haskell/test-framework-hunit-0.2.2 <dev-haskell/test-framework-hunit-0.4
+ >=dev-haskell/test-framework-quickcheck2-0.3 <dev-haskell/test-framework-quickcheck2-0.4 )
+ curl? ( virtual/pkgconfig )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag curl curl) \
+ --flag=executable \
+ $(cabal_flag diff hashed-storage-diff) \
+ --flag=-hpc \
+ $(cabal_flag http http) \
+ --flag=library \
+ $(cabal_flag network-uri network-uri) \
+ --flag=-optimize \
+ --flag=pkgconfig \
+ --flag=-rts \
+ --flag=-static \
+ $(cabal_flag terminfo terminfo) \
+ $(cabal_flag threaded threaded) \
+ --flag=-warn-as-error
+}
+
+src_install() {
+ haskell-cabal_src_install
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
diff --git a/dev-vcs/darcs/darcs-2.8.4-r3.ebuild b/dev-vcs/darcs/darcs-2.8.4-r3.ebuild
new file mode 100644
index 000000000000..b21ee9339264
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.8.4-r3.ebuild
@@ -0,0 +1,128 @@
+# 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.9999
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit eutils haskell-cabal bash-completion-r1
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="=dev-haskell/extensible-exceptions-0.1*:=[profile?]
+ >=dev-haskell/hashed-storage-0.5.6:=[profile?]
+ <dev-haskell/hashed-storage-0.6:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?]
+ <dev-haskell/haskeline-0.8:=[profile?]
+ =dev-haskell/html-1.0*:=[profile?]
+ =dev-haskell/mmap-0.5*:=[profile?]
+ >=dev-haskell/mtl-1.0:=[profile?]
+ <dev-haskell/mtl-2.2:=[profile?]
+ >=dev-haskell/parsec-2.0:=[profile?]
+ <dev-haskell/parsec-3.2:=[profile?]
+ =dev-haskell/random-1.0*:=[profile?]
+ >=dev-haskell/regex-compat-0.95.1:=[profile?]
+ >=dev-haskell/tar-0.3:=[profile?]
+ <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/terminfo-0.3:=[profile?] <dev-haskell/terminfo-0.5:=[profile?]
+ >=dev-haskell/text-0.11.0.6:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?]
+ >=dev-haskell/zlib-0.5.1.0:=[profile?]
+ <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-6.10.4:=
+ net-misc/curl"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ doc? ( virtual/latex-base
+ || ( dev-tex/latex2html[png]
+ dev-tex/latex2html[gif]
+ )
+ )
+ test? ( >=dev-haskell/cmdlib-0.2.1[profile?]
+ <dev-haskell/cmdlib-0.4[profile?]
+ =dev-haskell/findbin-0.0*[profile?]
+ >=dev-haskell/quickcheck-2.3
+ >=dev-haskell/shellish-0.1.3[profile?]
+ <dev-haskell/shellish-0.2[profile?]
+ >=dev-haskell/test-framework-0.4.0[profile?]
+ >=dev-haskell/test-framework-hunit-0.2.2[profile?]
+ >=dev-haskell/test-framework-quickcheck2-0.2.8[profile?]
+ )
+ "
+
+src_prepare() {
+ rm "${S}/tests/add_permissions.sh" || die "Could not rm add_permissions.sh"
+ rm "${S}/tests/send-output-v1.sh" || die "Could not rm send-output-v1.sh"
+ rm "${S}/tests/send-output-v2.sh" || die "Could not rm send-output-v2.sh"
+ rm "${S}/tests/utf8.sh" || die "Could not rm utf8.sh"
+
+ epatch "${FILESDIR}"/${P}-ghc-7.8-part-1.patch
+
+ cabal_chdeps \
+ 'text >= 0.11.0.6 && < 0.12.0.0' 'text >= 0.11.0.6' \
+ 'terminfo == 0.3.*' 'terminfo >= 0.3 && < 0.5' \
+ 'array >= 0.1 && < 0.5' 'array >= 0.1 && <0.6' \
+ 'process >= 1.0.0.0 && < 1.2.0.0' 'process >= 1.0.0.0 && < 1.3' \
+ 'unix >= 1.0 && < 2.7' 'unix >=1.0 && <2.8' \
+ 'base >= 4.5 && < 4.7' 'base >= 4.5 && < 4.8' \
+ 'ghc >= 6.10 && < 7.8' 'ghc >= 6.10 && < 7.9'
+}
+
+src_configure() {
+ # checking whether ghc supports -threaded flag
+ # Beware: http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#options-linker
+ # contains: 'The ability to make a foreign call that does not block all other Haskell threads.'
+ # It might have interactivity impact.
+
+ threaded_flag=""
+ if $(ghc-getghc) --info | grep "Support SMP" | grep -q "YES"; then
+ threaded_flag="--flags=threaded"
+ einfo "$P will be built with threads support"
+ else
+ threaded_flag="--flags=-threaded"
+ einfo "$P will be built without threads support"
+ fi
+
+ # Use curl for net stuff to avoid strict version dep on HTTP and network
+ cabal_src_configure \
+ --flags=curl \
+ --flags=-http \
+ --flags=color \
+ --flags=terminfo \
+ --flags=mmap \
+ --flags=force-char8-encoding \
+ $threaded_flag \
+ $(cabal_flag test)
+}
+
+src_test() {
+ # run cabal test from haskell-cabal
+ haskell-cabal_src_test || die "cabal test failed"
+}
+
+src_install() {
+ cabal_src_install
+ newbashcomp "${S}/contrib/darcs_completion" "${PN}"
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
+
+pkg_postinst() {
+ ghc-package_pkg_postinst
+
+ ewarn "NOTE: in order for the darcs send command to work properly,"
+ ewarn "you must properly configure your mail transport agent to relay"
+ ewarn "outgoing mail. For example, if you are using ssmtp, please edit"
+ ewarn "${EPREFIX}/etc/ssmtp/ssmtp.conf with appropriate values for your site."
+}
diff --git a/dev-vcs/darcs/darcs-2.8.4-r6.ebuild b/dev-vcs/darcs/darcs-2.8.4-r6.ebuild
new file mode 100644
index 000000000000..7ea5b9fe71ee
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.8.4-r6.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.9999
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit eutils haskell-cabal bash-completion-r1
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="=dev-haskell/extensible-exceptions-0.1*:=[profile?]
+ >=dev-haskell/hashed-storage-0.5.6:=[profile?]
+ <dev-haskell/hashed-storage-0.6:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?]
+ <dev-haskell/haskeline-0.8:=[profile?]
+ =dev-haskell/html-1.0*:=[profile?]
+ =dev-haskell/mmap-0.5*:=[profile?]
+ >=dev-haskell/mtl-1.0:=[profile?]
+ <dev-haskell/mtl-2.3:=[profile?]
+ >=dev-haskell/parsec-2.0:=[profile?]
+ <dev-haskell/parsec-3.2:=[profile?]
+ =dev-haskell/random-1.0*:=[profile?]
+ >=dev-haskell/regex-compat-0.95.1:=[profile?]
+ >=dev-haskell/tar-0.3:=[profile?]
+ <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/terminfo-0.3:=[profile?] <dev-haskell/terminfo-0.5:=[profile?]
+ >=dev-haskell/text-0.11.0.6:=[profile?]
+ >=dev-haskell/utf8-string-0.3.6:=[profile?] <dev-haskell/utf8-string-0.4:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?]
+ >=dev-haskell/zlib-0.5.1.0:=[profile?]
+ <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-6.10.4:=
+ net-misc/curl"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ doc? ( virtual/latex-base
+ || ( dev-tex/latex2html[png]
+ dev-tex/latex2html[gif]
+ )
+ )
+ test? ( >=dev-haskell/cmdlib-0.2.1[profile?]
+ <dev-haskell/cmdlib-0.4[profile?]
+ =dev-haskell/findbin-0.0*[profile?]
+ >=dev-haskell/quickcheck-2.3
+ >=dev-haskell/shellish-0.1.3[profile?]
+ <dev-haskell/shellish-0.2[profile?]
+ >=dev-haskell/test-framework-0.4.0[profile?]
+ >=dev-haskell/test-framework-hunit-0.2.2[profile?]
+ >=dev-haskell/test-framework-quickcheck2-0.2.8[profile?]
+ )
+ "
+
+src_prepare() {
+ rm "${S}/tests/add_permissions.sh" || die "Could not rm add_permissions.sh"
+ rm "${S}/tests/send-output-v1.sh" || die "Could not rm send-output-v1.sh"
+ rm "${S}/tests/send-output-v2.sh" || die "Could not rm send-output-v2.sh"
+ rm "${S}/tests/utf8.sh" || die "Could not rm utf8.sh"
+
+ epatch "${FILESDIR}"/${P}-ghc-7.8-part-1.patch
+ epatch "${FILESDIR}"/${P}-ghc-7.8-part-2.patch
+ epatch "${FILESDIR}"/${P}-fix-nonatomic-global.patch
+ epatch "${FILESDIR}"/${P}-issue2364.patch
+ epatch "${FILESDIR}"/${P}-issue2364-part-2.patch
+
+ cabal_chdeps \
+ 'text >= 0.11.0.6 && < 0.12.0.0' 'text >= 0.11.0.6' \
+ 'terminfo == 0.3.*' 'terminfo >= 0.3 && < 0.5' \
+ 'array >= 0.1 && < 0.5' 'array >= 0.1 && <0.6' \
+ 'process >= 1.0.0.0 && < 1.2.0.0' 'process >= 1.0.0.0 && < 1.3' \
+ 'unix >= 1.0 && < 2.7' 'unix >=1.0 && <2.8' \
+ 'base >= 4.5 && < 4.7' 'base >= 4.5 && < 4.8' \
+ 'ghc >= 6.10 && < 7.8' 'ghc >= 6.10' \
+ 'mtl >= 1.0 && < 2.2' 'mtl >= 1.0 && < 2.3'
+}
+
+src_configure() {
+ # checking whether ghc supports -threaded flag
+ # Beware: http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#options-linker
+ # contains: 'The ability to make a foreign call that does not block all other Haskell threads.'
+ # It might have interactivity impact.
+
+ threaded_flag=""
+ if $(ghc-getghc) --info | grep "Support SMP" | grep -q "YES"; then
+ threaded_flag="--flags=threaded"
+ einfo "$P will be built with threads support"
+ else
+ threaded_flag="--flags=-threaded"
+ einfo "$P will be built without threads support"
+ fi
+
+ # Use curl for net stuff to avoid strict version dep on HTTP and network
+ cabal_src_configure \
+ --flags=curl \
+ --flags=-http \
+ --flags=color \
+ --flags=terminfo \
+ --flags=mmap \
+ --flags=force-char8-encoding \
+ $threaded_flag \
+ $(cabal_flag test)
+}
+
+src_test() {
+ # run cabal test from haskell-cabal
+ haskell-cabal_src_test || die "cabal test failed"
+}
+
+src_install() {
+ cabal_src_install
+ newbashcomp "${S}/contrib/darcs_completion" "${PN}"
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
+
+pkg_postinst() {
+ ghc-package_pkg_postinst
+
+ ewarn "NOTE: in order for the darcs send command to work properly,"
+ ewarn "you must properly configure your mail transport agent to relay"
+ ewarn "outgoing mail. For example, if you are using ssmtp, please edit"
+ ewarn "${EPREFIX}/etc/ssmtp/ssmtp.conf with appropriate values for your site."
+}
diff --git a/dev-vcs/darcs/darcs-2.8.4.ebuild b/dev-vcs/darcs/darcs-2.8.4.ebuild
new file mode 100644
index 000000000000..7c2fae5540d2
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.8.4.ebuild
@@ -0,0 +1,117 @@
+# 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.9999
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit haskell-cabal bash-completion-r1
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="doc test"
+
+RDEPEND="=dev-haskell/extensible-exceptions-0.1*:=[profile?]
+ >=dev-haskell/hashed-storage-0.5.6:=[profile?]
+ <dev-haskell/hashed-storage-0.6:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?]
+ <dev-haskell/haskeline-0.8:=[profile?]
+ =dev-haskell/html-1.0*:=[profile?]
+ =dev-haskell/mmap-0.5*:=[profile?]
+ >=dev-haskell/mtl-1.0:=[profile?]
+ <dev-haskell/mtl-2.2:=[profile?]
+ >=dev-haskell/parsec-2.0:=[profile?]
+ <dev-haskell/parsec-3.2:=[profile?]
+ =dev-haskell/random-1.0*:=[profile?]
+ >=dev-haskell/regex-compat-0.95.1:=[profile?]
+ >=dev-haskell/tar-0.3:=[profile?]
+ <dev-haskell/tar-0.5:=[profile?]
+ =dev-haskell/terminfo-0.3*:=[profile?]
+ >=dev-haskell/text-0.11.0.6:=[profile?]
+ <dev-haskell/text-0.12.0.0:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?]
+ >=dev-haskell/zlib-0.5.1.0:=[profile?]
+ <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-6.10.4:=
+ net-misc/curl"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ doc? ( virtual/latex-base
+ || ( dev-tex/latex2html[png]
+ dev-tex/latex2html[gif]
+ )
+ )
+ test? ( >=dev-haskell/cmdlib-0.2.1[profile?]
+ <dev-haskell/cmdlib-0.4[profile?]
+ =dev-haskell/findbin-0.0*[profile?]
+ >=dev-haskell/quickcheck-2.3
+ >=dev-haskell/shellish-0.1.3[profile?]
+ <dev-haskell/shellish-0.2[profile?]
+ >=dev-haskell/test-framework-0.4.0[profile?]
+ >=dev-haskell/test-framework-hunit-0.2.2[profile?]
+ >=dev-haskell/test-framework-quickcheck2-0.2.8[profile?]
+ )
+ "
+
+src_prepare() {
+ rm "${S}/tests/add_permissions.sh" || die "Could not rm add_permissions.sh"
+ rm "${S}/tests/send-output-v1.sh" || die "Could not rm send-output-v1.sh"
+ rm "${S}/tests/send-output-v2.sh" || die "Could not rm send-output-v2.sh"
+ rm "${S}/tests/utf8.sh" || die "Could not rm utf8.sh"
+}
+
+src_configure() {
+ # checking whether ghc supports -threaded flag
+ # Beware: http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#options-linker
+ # contains: 'The ability to make a foreign call that does not block all other Haskell threads.'
+ # It might have interactivity impact.
+
+ threaded_flag=""
+ if $(ghc-getghc) --info | grep "Support SMP" | grep -q "YES"; then
+ threaded_flag="--flags=threaded"
+ einfo "$P will be built with threads support"
+ else
+ threaded_flag="--flags=-threaded"
+ einfo "$P will be built without threads support"
+ fi
+
+ # Use curl for net stuff to avoid strict version dep on HTTP and network
+ cabal_src_configure \
+ --flags=curl \
+ --flags=-http \
+ --flags=color \
+ --flags=terminfo \
+ --flags=mmap \
+ $threaded_flag \
+ $(cabal_flag test)
+}
+
+src_test() {
+ # run cabal test from haskell-cabal
+ haskell-cabal_src_test || die "cabal test failed"
+}
+
+src_install() {
+ cabal_src_install
+ newbashcomp "${S}/contrib/darcs_completion" "${PN}"
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
+
+pkg_postinst() {
+ ghc-package_pkg_postinst
+
+ ewarn "NOTE: in order for the darcs send command to work properly,"
+ ewarn "you must properly configure your mail transport agent to relay"
+ ewarn "outgoing mail. For example, if you are using ssmtp, please edit"
+ ewarn "${EPREFIX}/etc/ssmtp/ssmtp.conf with appropriate values for your site."
+}
diff --git a/dev-vcs/darcs/darcs-2.8.5-r3.ebuild b/dev-vcs/darcs/darcs-2.8.5-r3.ebuild
new file mode 100644
index 000000000000..06cb957839ca
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.8.5-r3.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.4.9999
+#hackport: flags: +library,+executable,-hpc,-warn-as-error
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit base haskell-cabal
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="+color +curl +http +mmap +network-uri +optimize static +terminfo test +threaded"
+
+RDEPEND=">=dev-haskell/extensible-exceptions-0.1:=[profile?] <dev-haskell/extensible-exceptions-0.2:=[profile?]
+ >=dev-haskell/hashed-storage-0.5.6:=[profile?] <dev-haskell/hashed-storage-0.6:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?] <dev-haskell/haskeline-0.8:=[profile?]
+ >=dev-haskell/html-1.0:=[profile?] <dev-haskell/html-1.1:=[profile?]
+ >=dev-haskell/mtl-1.0:=[profile?] <dev-haskell/mtl-2.3:=[profile?]
+ >=dev-haskell/parsec-2.0:=[profile?] <dev-haskell/parsec-3.2:=[profile?]
+ >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?]
+ >=dev-haskell/regex-compat-0.95.1:=[profile?]
+ >=dev-haskell/tar-0.3:=[profile?] <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/text-0.11.0.6:=[profile?] <dev-haskell/text-1.3:=[profile?]
+ >=dev-haskell/utf8-string-0.3.6:=[profile?] <dev-haskell/utf8-string-0.4:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?]
+ >=dev-haskell/zlib-0.5.1.0:=[profile?] <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+ virtual/libiconv
+ curl? ( net-misc/curl )
+ http? ( >=dev-haskell/http-4000.0.8:=[profile?] <dev-haskell/http-4000.3:=[profile?]
+ network-uri? ( >=dev-haskell/network-2.6:=[profile?]
+ >=dev-haskell/network-uri-2.6:=[profile?] )
+ !network-uri? ( >=dev-haskell/network-2.2:=[profile?] <dev-haskell/network-2.6:=[profile?] ) )
+ mmap? ( >=dev-haskell/mmap-0.5:=[profile?] <dev-haskell/mmap-0.6:=[profile?] )
+ terminfo? ( >=dev-haskell/terminfo-0.3:=[profile?] <dev-haskell/terminfo-0.5:=[profile?] )
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ dev-lang/ghc
+ test? ( >=dev-haskell/cmdlib-0.2.1:=[profile?] <dev-haskell/cmdlib-0.4:=[profile?]
+ >=dev-haskell/findbin-0.0:=[profile?] <dev-haskell/findbin-0.1:=[profile?]
+ >=dev-haskell/hunit-1.0:=[profile?]
+ >=dev-haskell/quickcheck-2.3:2=[profile?]
+ >=dev-haskell/shellish-0.1.3:=[profile?] <dev-haskell/shellish-0.2:=[profile?]
+ >=dev-haskell/test-framework-0.4.0:=[profile?]
+ >=dev-haskell/test-framework-hunit-0.2.2:=[profile?]
+ >=dev-haskell/test-framework-quickcheck2-0.2.8:=[profile?] )
+"
+
+PATCHES=("${FILESDIR}/${P}-ghc-7.10.patch")
+
+src_prepare() {
+ base_src_prepare
+ cabal_chdeps \
+ 'terminfo == 0.3.*' 'terminfo >= 0.3 && < 0.5' \
+ 'text >= 0.11.0.6 && < 1.2' 'text >= 0.11.0.6 && < 1.3' \
+ 'random == 1.0.*' 'random >= 1.0 && < 1.2' \
+ 'base >= 4.5 && < 4.8' 'base >= 4.5 && < 4.9' \
+ 'ghc >= 6.10 && < 7.10' 'ghc >= 6.10 && < 7.12'
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag color color) \
+ $(cabal_flag curl curl) \
+ --flag=executable \
+ --flag=-hpc \
+ $(cabal_flag http http) \
+ --flag=library \
+ $(cabal_flag mmap mmap) \
+ $(cabal_flag network-uri network-uri) \
+ $(cabal_flag optimize optimize) \
+ $(cabal_flag static static) \
+ $(cabal_flag terminfo terminfo) \
+ $(cabal_flag test test) \
+ $(cabal_flag threaded threaded) \
+ --flag=-warn-as-error
+}
+
+src_install() {
+ haskell-cabal_src_install
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
diff --git a/dev-vcs/darcs/darcs-2.8.5-r4.ebuild b/dev-vcs/darcs/darcs-2.8.5-r4.ebuild
new file mode 100644
index 000000000000..ab45bdd2461a
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.8.5-r4.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.4.9999
+#hackport: flags: +library,+executable,-hpc,-warn-as-error
+
+CABAL_FEATURES="bin lib profile haddock hoogle hscolour"
+inherit base haskell-cabal
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="+color +curl +http +mmap +network-uri +optimize static +terminfo test +threaded"
+
+RDEPEND=">=dev-haskell/extensible-exceptions-0.1:=[profile?] <dev-haskell/extensible-exceptions-0.2:=[profile?]
+ >=dev-haskell/hashed-storage-0.5.6:=[profile?] <dev-haskell/hashed-storage-0.6:=[profile?]
+ >=dev-haskell/haskeline-0.6.3:=[profile?] <dev-haskell/haskeline-0.8:=[profile?]
+ >=dev-haskell/html-1.0:=[profile?] <dev-haskell/html-1.1:=[profile?]
+ >=dev-haskell/mtl-1.0:=[profile?] <dev-haskell/mtl-2.3:=[profile?]
+ >=dev-haskell/parsec-2.0:=[profile?] <dev-haskell/parsec-3.2:=[profile?]
+ >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?]
+ >=dev-haskell/regex-compat-0.95.1:=[profile?]
+ >=dev-haskell/tar-0.3:=[profile?] <dev-haskell/tar-0.5:=[profile?]
+ >=dev-haskell/text-0.11.0.6:=[profile?] <dev-haskell/text-1.3:=[profile?]
+ >=dev-haskell/utf8-string-0.3.6:=[profile?] <dev-haskell/utf8-string-1.1:=[profile?]
+ >=dev-haskell/vector-0.7:=[profile?]
+ >=dev-haskell/zlib-0.5.1.0:=[profile?] <dev-haskell/zlib-0.6.0.0:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+ virtual/libiconv
+ curl? ( net-misc/curl )
+ http? ( >=dev-haskell/http-4000.0.8:=[profile?] <dev-haskell/http-4000.3:=[profile?]
+ network-uri? ( >=dev-haskell/network-2.6:=[profile?]
+ >=dev-haskell/network-uri-2.6:=[profile?] )
+ !network-uri? ( >=dev-haskell/network-2.2:=[profile?] <dev-haskell/network-2.6:=[profile?] ) )
+ mmap? ( >=dev-haskell/mmap-0.5:=[profile?] <dev-haskell/mmap-0.6:=[profile?] )
+ terminfo? ( >=dev-haskell/terminfo-0.3:=[profile?] <dev-haskell/terminfo-0.5:=[profile?] )
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ dev-lang/ghc
+ test? ( >=dev-haskell/cmdlib-0.2.1:=[profile?] <dev-haskell/cmdlib-0.4:=[profile?]
+ >=dev-haskell/findbin-0.0:=[profile?] <dev-haskell/findbin-0.1:=[profile?]
+ >=dev-haskell/hunit-1.0:=[profile?]
+ >=dev-haskell/quickcheck-2.3:2=[profile?]
+ >=dev-haskell/shellish-0.1.3:=[profile?] <dev-haskell/shellish-0.2:=[profile?]
+ >=dev-haskell/test-framework-0.4.0:=[profile?]
+ >=dev-haskell/test-framework-hunit-0.2.2:=[profile?]
+ >=dev-haskell/test-framework-quickcheck2-0.2.8:=[profile?] )
+"
+
+PATCHES=("${FILESDIR}/${P}-ghc-7.10.patch")
+
+src_prepare() {
+ base_src_prepare
+ cabal_chdeps \
+ 'terminfo == 0.3.*' 'terminfo >= 0.3 && < 0.5' \
+ 'text >= 0.11.0.6 && < 1.2' 'text >= 0.11.0.6 && < 1.3' \
+ 'random == 1.0.*' 'random >= 1.0 && < 1.2' \
+ 'base >= 4.5 && < 4.8' 'base >= 4.5 && < 4.9' \
+ 'ghc >= 6.10 && < 7.10' 'ghc >= 6.10 && < 7.12' \
+ 'utf8-string >= 0.3.6 && < 0.4' 'utf8-string >= 0.3.6 && < 1.1'
+
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag color color) \
+ $(cabal_flag curl curl) \
+ --flag=executable \
+ --flag=-hpc \
+ $(cabal_flag http http) \
+ --flag=library \
+ $(cabal_flag mmap mmap) \
+ $(cabal_flag network-uri network-uri) \
+ $(cabal_flag optimize optimize) \
+ $(cabal_flag static static) \
+ $(cabal_flag terminfo terminfo) \
+ $(cabal_flag test test) \
+ $(cabal_flag threaded threaded) \
+ --flag=-warn-as-error
+}
+
+src_install() {
+ haskell-cabal_src_install
+
+ # fixup perms in such an an awkward way
+ mv "${ED}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+}
diff --git a/dev-vcs/darcs/files/darcs-2.8.4-fix-nonatomic-global.patch b/dev-vcs/darcs/files/darcs-2.8.4-fix-nonatomic-global.patch
new file mode 100644
index 000000000000..c3fce6fbc9e8
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.4-fix-nonatomic-global.patch
@@ -0,0 +1,20 @@
+There is a bug in speculateFileOrUrl.
+It puts downloaded file nonatomically.
+
+There is a window when copyFileOrUrl can (and does)
+copy partially downloaded file.
+
+Darcs-bug: http://bugs.darcs.net/issue2364
+diff --git a/src/Darcs/External.hs b/src/Darcs/External.hs
+index 2e0e791..d5a0b9f 100644
+--- a/src/Darcs/External.hs
++++ b/src/Darcs/External.hs
+@@ -184,7 +184,7 @@ copyFileOrUrl rd fou out _ | isSshUrl fou = copySSH rd (splitSshUrl fou)
+ copyFileOrUrl _ fou _ _ = fail $ "unknown transport protocol: " ++ fou
+
+ speculateFileOrUrl :: String -> FilePath -> IO ()
+-speculateFileOrUrl fou out | isHttpUrl fou = speculateRemote fou out
++speculateFileOrUrl fou out | isHttpUrl fou = speculateRemote fou out >> waitUrl fou
+ | otherwise = return ()
+
+ copyLocal :: String -> FilePath -> IO ()
diff --git a/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-1.patch b/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-1.patch
new file mode 100644
index 000000000000..3680c29b0440
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-1.patch
@@ -0,0 +1,128 @@
+diff --git a/src/Crypt/SHA256.hs b/src/Crypt/SHA256.hs
+index 69a8a4c..606f2ad 100644
+--- a/src/Crypt/SHA256.hs
++++ b/src/Crypt/SHA256.hs
+@@ -20,9 +20,10 @@ import Numeric (showHex)
+ import Foreign.C.String ( withCString )
+ import Data.ByteString.Unsafe (unsafeUseAsCStringLen)
+ import qualified Data.ByteString as B
++import qualified System.IO.Unsafe as U
+
+ sha256sum :: B.ByteString -> String
+-sha256sum p = unsafePerformIO $
++sha256sum p = U.unsafePerformIO $
+ withCString (take 64 $ repeat 'x') $ \digestCString ->
+ unsafeUseAsCStringLen p $ \(ptr,n) ->
+ do let digest = castPtr digestCString :: Ptr Word8
+diff --git a/src/Darcs/Commands/Get.hs b/src/Darcs/Commands/Get.hs
+index e450d28..6b51915 100644
+--- a/src/Darcs/Commands/Get.hs
++++ b/src/Darcs/Commands/Get.hs
+@@ -157,7 +157,8 @@ copyRepoAndGoToChosenVersion opts repodir rfsource = do
+ copyRepo
+ withRepository opts ((RepoJob $ \repository -> goToChosenVersion repository opts) :: RepoJob ())
+ putInfo opts $ text "Finished getting."
+- where copyRepo =
++ where copyRepo :: IO ()
++ copyRepo =
+ withRepository opts $ RepoJob $ \repository ->
+ if formatHas HashedInventory rfsource
+ then do
+diff --git a/src/Darcs/Global.hs b/src/Darcs/Global.hs
+index 9792bf0..e17f071 100644
+--- a/src/Darcs/Global.hs
++++ b/src/Darcs/Global.hs
+@@ -60,8 +60,9 @@ module Darcs.Global
+ import Control.Applicative ( (<$>), (<*>) )
+ import Control.Monad ( when )
+ import Control.Concurrent.MVar
+-import Control.Exception.Extensible ( bracket_, catch, catchJust, SomeException
+- , block, unblock
++import Control.Exception.Extensible as E
++ ( bracket_, catch, catchJust, SomeException
++ , mask
+ )
+ import Data.IORef ( IORef, newIORef, readIORef, writeIORef )
+ import Data.IORef ( modifyIORef )
+@@ -106,12 +107,12 @@ withAtexit prog =
+ exit
+ prog
+ where
+- exit = block $ do
++ exit = E.mask $ \restore -> do
+ Just actions <- swapMVar atexitActions Nothing
+ -- from now on atexit will not register new actions
+- mapM_ runAction actions
+- runAction action =
+- catch (unblock action) $ \(exn :: SomeException) -> do
++ mapM_ (runAction restore) actions
++ runAction restore action =
++ catch (restore action) $ \(exn :: SomeException) -> do
+ hPutStrLn stderr $ "Exception thrown by an atexit registered action:"
+ hPutStrLn stderr $ show exn
+
+diff --git a/src/Darcs/SignalHandler.hs b/src/Darcs/SignalHandler.hs
+index ac0f526..d0ef162 100644
+--- a/src/Darcs/SignalHandler.hs
++++ b/src/Darcs/SignalHandler.hs
+@@ -26,8 +26,8 @@ import Prelude hiding ( catch )
+ import System.IO.Error ( isUserError, ioeGetErrorString, ioeGetFileName )
+ import System.Exit ( exitWith, ExitCode ( ExitFailure ) )
+ import Control.Concurrent ( ThreadId, myThreadId )
+-import Control.Exception.Extensible
+- ( catch, throw, throwTo, block, unblock,
++import Control.Exception.Extensible as E
++ ( catch, throw, throwTo, mask,
+ Exception(..), SomeException(..), IOException )
+ import System.Posix.Files ( getFdStatus, isNamedPipe )
+ import System.Posix.IO ( stdOutput )
+@@ -128,8 +128,8 @@ catchUserErrors comp handler = catch comp handler'
+ | otherwise = throw ioe
+
+ withSignalsBlocked :: IO a -> IO a
+-withSignalsBlocked job = block (job >>= \r ->
+- unblock(return r) `catchSignal` couldnt_do r)
++withSignalsBlocked job = E.mask $ \restore -> (job >>= \r ->
++ restore (return r) `catchSignal` couldnt_do r)
+ where couldnt_do r s | s == sigINT = oops "interrupt" r
+ | s == sigHUP = oops "HUP" r
+ | s == sigABRT = oops "ABRT" r
+diff --git a/src/Darcs/Test/Patch/Info.hs b/src/Darcs/Test/Patch/Info.hs
+index fd27fb3..b35cfef 100644
+--- a/src/Darcs/Test/Patch/Info.hs
++++ b/src/Darcs/Test/Patch/Info.hs
+@@ -28,7 +28,6 @@ import Data.Maybe ( isNothing )
+ import Data.Text as T ( find, any )
+ import Data.Text.Encoding ( decodeUtf8With )
+ import Data.Text.Encoding.Error ( lenientDecode )
+-import Foreign ( unsafePerformIO )
+ import Test.QuickCheck ( Arbitrary(arbitrary), oneof, listOf, choose, shrink
+ , Gen )
+ import Test.Framework.Providers.QuickCheck2 ( testProperty )
+@@ -39,6 +38,8 @@ import Darcs.Patch.Info ( PatchInfo(..), patchinfo,
+ piLog, piAuthor, piName )
+ import ByteStringUtils ( decodeLocale, packStringToUTF8, unpackPSFromUTF8 )
+
++import qualified System.IO.Unsafe as U
++
+ testSuite :: Test
+ testSuite = testGroup "Darcs.Patch.Info"
+ [ metadataDecodingTest
+@@ -86,7 +87,7 @@ instance Arbitrary UTF8PatchInfo where
+ sa <- shrink (piAuthor pi)
+ sl <- shrink (filter (not . isPrefixOf "Ignore-this:") (piLog pi))
+ return (UTF8PatchInfo
+- (unsafePerformIO $ patchinfo sn
++ (U.unsafePerformIO $ patchinfo sn
+ (BC.unpack (_piDate pi)) sa sl))
+
+ instance Arbitrary UTF8OrNotPatchInfo where
+@@ -101,7 +102,7 @@ arbitraryUTF8Patch =
+ d <- arbitrary
+ a <- asString `fmap` arbitrary
+ l <- (lines . asString) `fmap` arbitrary
+- return $ unsafePerformIO $ patchinfo n d a l
++ return $ U.unsafePerformIO $ patchinfo n d a l
+
+ -- | Generate arbitrary patch metadata that has totally arbitrary byte strings
+ -- as its name, date, author and log.
diff --git a/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-2.patch b/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-2.patch
new file mode 100644
index 000000000000..33786477b3fa
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.4-ghc-7.8-part-2.patch
@@ -0,0 +1,14 @@
+diff --git a/src/Darcs/Test/Patch.hs b/src/Darcs/Test/Patch.hs
+index 0f7ed24..078fbc3 100644
+--- a/src/Darcs/Test/Patch.hs
++++ b/src/Darcs/Test/Patch.hs
+@@ -2,6 +2,9 @@
+ #if __GLASGOW_HASKELL__ >= 700
+ {-# LANGUAGE ImpredicativeTypes #-}
+ #endif
++#if __GLASGOW_HASKELL__ >= 708
++{-# LANGUAGE AllowAmbiguousTypes #-}
++#endif
+ -- Copyright (C) 2002-2005,2007 David Roundy
+ --
+ -- This program is free software; you can redistribute it and/or modify
diff --git a/dev-vcs/darcs/files/darcs-2.8.4-issue2364-part-2.patch b/dev-vcs/darcs/files/darcs-2.8.4-issue2364-part-2.patch
new file mode 100644
index 000000000000..6164a4a00074
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.4-issue2364-part-2.patch
@@ -0,0 +1,52 @@
+Tue May 13 22:07:19 FET 2014 Sergei Trofimovich <slyfox@community.haskell.org>
+ * resolve issue2364: don't break list of 'bad sources'
+
+ This time the bug manifested on a simple operation:
+ $ darcs record -a -m "something"
+
+ Attempt to write a patch resulted in something like:
+ Failed to record patch 'hello'
+
+ HINT: I could not reach the following repositories:
+ http://repetae.net/repos/jhc
+ /home/st/.darcs/cache
+ /home/st/.cache/darcs
+ /home/st/dev/darcs/jhc
+ If you're not using them, you should probably delete
+
+ The sequence should be the following:
+ 1. store patch to inventory/foo
+ 2. try to store to a writable cache (say, ~/.darcs/cache/patches)
+ 3. fail to write
+ 4. filter out bad caches
+ 5. try again
+ 6. copy from cache to patches/
+
+ Due to missing NOINLINE step 4. led to
+ all caches treated as writable, thus step 5
+ failed without a chance for patch to
+ go to 'patches/'.
+
+ As a side-effect building darcs with -O0 produced seemingly working darcs.
+ Reported-by: Ivan Miljenovic
+diff -rN -u old-darcs.net/src/Darcs/Util/Global.hs new-darcs.net/src/Darcs/Util/Global.hs
+--- old-darcs.net/src/Darcs/Global.hs 2014-05-13 22:23:29.897329750 +0300
++++ new-darcs.net/src/Darcs/Global.hs 2014-05-13 22:23:29.979329754 +0300
+@@ -135,7 +135,7 @@
+
+ _badSourcesList :: IORef [String]
+ _badSourcesList = unsafePerformIO $ newIORef []
+-{- NOINLINE _badSourcesList -}
++{-# NOINLINE _badSourcesList #-}
+
+
+ addBadSource :: String -> IO ()
+@@ -154,7 +154,7 @@
+
+ _reachableSourcesList :: IORef [String]
+ _reachableSourcesList = unsafePerformIO $ newIORef []
+-{- NOINLINE _reachableSourcesList -}
++{-# NOINLINE _reachableSourcesList #-}
+
+
+ addReachableSource :: String -> IO ()
diff --git a/dev-vcs/darcs/files/darcs-2.8.4-issue2364.patch b/dev-vcs/darcs/files/darcs-2.8.4-issue2364.patch
new file mode 100644
index 000000000000..97c4e0f1ad2b
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.4-issue2364.patch
@@ -0,0 +1,70 @@
+* resolve issue2364: fix file corruption on double fetch
+
+The bug is the result of attempt to fetch the same file
+(say F) by the same URL (U) multiple times concurrently.
+
+First time U gets fetched by speculative prefetch logic.
+Second time as an ordinary file (while first fetch is not finished).
+
+The function 'copyUrlWithPriority' sends download request
+to 'urlChan' both times (it's already not a nice situation,
+fixed by this patch).
+
+Later urlThread satisfies first request, notifies receiver,
+and starts downloading exactly the same U again.
+
+I don't know exact data corruption mechanics yet, but it has
+to do with non-random intermediate file names of downloaded
+files and 'truncate' call when temp file is opened for a new
+downlaod job.
+
+All temp names are completely non-random for a single darcs run:
+
+ urlThread :: Chan UrlRequest -> IO ()
+ urlThread ch = do
+ junk <- flip showHex "" `fmap` randomRIO rrange
+ evalStateT urlThread' (UrlState Map.empty emptyQ 0 junk)
+
+ createDownloadFileName :: FilePath -> UrlState -> FilePath
+ createDownloadFileName f st = f ++ "-new_" ++ randomJunk st
+
+My theory is next download manages to step on toes of previous job.
+
+I'll try to make file names truly random in other patch.
+That way such errors should manifest as read erros instead of data
+corruption.
+
+Thanks!
+diff --git a/src/URL.hs b/src/URL.hs
+index 4cb85ee..26de278 100644
+--- a/src/URL.hs
++++ b/src/URL.hs
+@@ -18,11 +18,12 @@ module URL ( copyUrl, copyUrlFirst, setDebugHTTP,
+ import Data.IORef ( newIORef, readIORef, writeIORef, IORef )
+ import Data.Map ( Map )
+ import qualified Data.Map as Map
++import Data.Tuple ( swap )
+ import System.Directory ( copyFile )
+ import System.IO.Unsafe ( unsafePerformIO )
+ import Control.Concurrent ( forkIO )
+ import Control.Concurrent.Chan ( isEmptyChan, newChan, readChan, writeChan, Chan )
+-import Control.Concurrent.MVar ( isEmptyMVar, modifyMVar_, newEmptyMVar, newMVar, putMVar, readMVar, withMVar, MVar )
++import Control.Concurrent.MVar ( isEmptyMVar, modifyMVar, modifyMVar_, newEmptyMVar, newMVar, putMVar, readMVar, withMVar, MVar )
+ import Control.Monad ( unless, when )
+ import Control.Monad.Trans ( liftIO )
+ import Control.Monad.State ( evalStateT, get, modify, put, StateT )
+@@ -196,10 +197,10 @@ copyUrlWithPriority p u f c = do
+ debugMessage ("URL.copyUrlWithPriority ("++u++"\n"++
+ " -> "++f++")")
+ v <- newEmptyMVar
+- let fn _ old_val = old_val
+- modifyMVar_ urlNotifications (return . (Map.insertWith fn u v))
+- let r = UrlRequest u f c p
+- writeChan urlChan r
++ old_mv <- modifyMVar urlNotifications (return . swap . Map.insertLookupWithKey (\_k _n old -> old) u v)
++ case old_mv of
++ Nothing -> writeChan urlChan $ UrlRequest u f c p -- ok, new URL
++ Just _ -> debugMessage $ "URL.copyUrlWithPriority already in progress, skip (" ++ u ++ "\n" ++ "-> " ++ f ++ ")"
+
+ waitNextUrl :: StateT UrlState IO ()
+ waitNextUrl = do
diff --git a/dev-vcs/darcs/files/darcs-2.8.5-ghc-7.10.patch b/dev-vcs/darcs/files/darcs-2.8.5-ghc-7.10.patch
new file mode 100644
index 000000000000..138c0848b9b8
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.8.5-ghc-7.10.patch
@@ -0,0 +1,142 @@
+--- darcs-2.8.5-orig/src/Darcs/Repository/Internal.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/Repository/Internal.hs 2015-01-03 12:18:03.576529408 +1100
+@@ -71,8 +71,8 @@
+ writeProblem, readProblem, readfromAndWritetoProblem )
+ import System.Directory ( doesDirectoryExist, setCurrentDirectory,
+ createDirectoryIfMissing, doesFileExist )
+-import Control.Monad ( when, unless, filterM )
+-import Control.Applicative ( (<$>) )
++import Control.Monad ( when, unless, filterM, ap )
++import Control.Applicative ( Applicative(..), (<$>) )
+ import Control.Exception ( catch, IOException )
+
+ import Workaround ( getCurrentDirectory, renameFile, setExecutable )
+@@ -184,6 +184,10 @@
+ instance Functor (RIO p C(r u t t)) where
+ fmap f m = RIO $ \r -> fmap f (unsafeUnRIO m r)
+
++instance Applicative (RIO p C(r u t t)) where
++ pure = return
++ (<*>) = ap
++
+ -- | We have an instance of Monad so that IO actions that do not
+ -- change the tentative recorded state are convenient in the IO monad.
+ instance Monad (RIO p C(r u t t)) where
+--- darcs-2.8.5-orig/src/Darcs/Patch/Prim/V1/Commute.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/Patch/Prim/V1/Commute.hs 2015-01-03 12:11:31.281425244 +1100
+@@ -6,7 +6,8 @@
+ where
+
+ import Prelude hiding ( pi )
+-import Control.Monad ( MonadPlus, msum, mzero, mplus )
++import Control.Applicative ( Applicative(..), Alternative(..) )
++import Control.Monad ( MonadPlus, msum, mzero, mplus, liftM, ap )
+
+ import qualified Data.ByteString as B (ByteString, concat)
+ import qualified Data.ByteString.Char8 as BC (pack)
+@@ -35,6 +36,17 @@
+
+ data Perhaps a = Unknown | Failed | Succeeded a
+
++instance Functor Perhaps where
++ fmap = liftM
++
++instance Applicative Perhaps where
++ pure = return
++ (<*>) = ap
++
++instance Alternative Perhaps where
++ (<|>) = mplus
++ empty = mzero
++
+ instance Monad Perhaps where
+ (Succeeded x) >>= k = k x
+ Failed >>= _ = Failed
+--- darcs-2.8.5-orig/src/Darcs/IO.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/IO.hs 2015-01-03 12:06:40.423103022 +1100
+@@ -23,6 +23,7 @@
+ import Data.Char ( toLower )
+ import Data.List ( isSuffixOf )
+ import System.IO.Error ( isDoesNotExistError, isPermissionError )
++import Control.Applicative ( Applicative(..) )
+ import Control.Exception.Extensible ( catch, SomeException, IOException )
+ import Control.Monad.Error
+ import System.Directory ( createDirectory,
+@@ -97,6 +98,10 @@
+ instance Functor TolerantIO where
+ fmap f m = m >>= return . f
+
++instance Applicative TolerantIO where
++ pure = return
++ (<*>) = ap
++
+ instance Monad TolerantIO where
+ f >>= g = runTM $ runIO f >>= runIO . g
+ f >> g = runTM $ runIO f >> runIO g
+@@ -106,6 +111,10 @@
+ instance Functor SilentIO where
+ fmap f m = m >>= return . f
+
++instance Applicative SilentIO where
++ pure = return
++ (<*>) = ap
++
+ instance Monad SilentIO where
+ f >>= g = runTM $ runIO f >>= runIO . g
+ f >> g = runTM $ runIO f >> runIO g
+--- darcs-2.8.5-orig/src/Darcs/Patch/V2/Real.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/Patch/V2/Real.hs 2015-01-03 11:14:40.109221505 +1100
+@@ -29,6 +29,9 @@
+ , mergeUnravelled
+ ) where
+
++#if MIN_VERSION_base(4,8,0)
++import Prelude hiding ( (*>) )
++#endif
+ import Control.Monad ( mplus, liftM )
+ import qualified Data.ByteString.Char8 as BC ( ByteString, pack )
+ import Data.Maybe ( fromMaybe )
+--- darcs-2.8.5-orig/src/Darcs/Patch/V2/Non.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/Patch/V2/Non.hs 2015-01-03 11:14:08.073788136 +1100
+@@ -40,7 +40,11 @@
+ , (>>*)
+ ) where
+
++#if MIN_VERSION_base(4,8,0)
++import Prelude hiding ( rem, (*>) )
++#else
+ import Prelude hiding ( rem )
++#endif
+ import Data.List ( delete )
+ import Control.Monad ( liftM, mzero )
+ import Darcs.Patch.Commute ( commuteFL )
+--- darcs-2.8.5-orig/src/Darcs/Patch/V1/Commute.hs 2014-08-26 06:27:34.000000000 +1000
++++ darcs-2.8.5/src/Darcs/Patch/V1/Commute.hs 2015-01-03 12:11:47.084707544 +1100
+@@ -28,7 +28,8 @@
+ )
+ where
+
+-import Control.Monad ( MonadPlus, mplus, msum, mzero, guard )
++import Control.Applicative ( Applicative(..), Alternative(..) )
++import Control.Monad ( MonadPlus, mplus, msum, mzero, guard, liftM, ap )
+
+ import Darcs.Patch.Commute ( toFwdCommute )
+ import Darcs.Patch.ConflictMarking ( mangleUnravelled )
+@@ -69,6 +70,17 @@
+
+ data Perhaps a = Unknown | Failed | Succeeded a
+
++instance Functor Perhaps where
++ fmap = liftM
++
++instance Applicative Perhaps where
++ pure = return
++ (<*>) = ap
++
++instance Alternative Perhaps where
++ (<|>) = mplus
++ empty = mzero
++
+ instance Monad Perhaps where
+ (Succeeded x) >>= k = k x
+ Failed >>= _ = Failed
diff --git a/dev-vcs/darcs/metadata.xml b/dev-vcs/darcs/metadata.xml
new file mode 100644
index 000000000000..91743df1aec2
--- /dev/null
+++ b/dev-vcs/darcs/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>haskell</herd>
+<maintainer>
+ <email>haskell@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name="color">Use ansi color escapes.</flag>
+ <flag name="diff">Use 'lcs' for diff building.</flag>
+ <flag name="http">Use the pure Haskell HTTP package for HTTP support.</flag>
+ <flag name="optimize">Build with optimizations (-O2).</flag>
+ <flag name="network-uri">Get Network.URI from the network-uri package.</flag>
+ <flag name="terminfo">Use the terminfo package for enhanced console support.</flag>
+ <flag name="threaded">Use threading and SMP support.</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-vcs/easygit/Manifest b/dev-vcs/easygit/Manifest
new file mode 100644
index 000000000000..8acfcbc03474
--- /dev/null
+++ b/dev-vcs/easygit/Manifest
@@ -0,0 +1 @@
+DIST easygit-1.6.5.5 283019 SHA256 ef6a96825d6f9606c23957cd8e1cb5a5d46b226392c8101d3883094a4a2b54ad SHA512 2e639ffa40ac6ea8619abf5d8aced57a9fb203aaf96e259b2d3905b1d6d040d3d64adf14dad0552bd710808e3c23b63e859f1b5b02bd13aca1ad232fe05c2bbd WHIRLPOOL d170f10a13ec20f6c26d92a7f45331b2955cd9f0251c3486ab2da619385dca826c86f2d1faac00a1660a5d406a7f3ee3beaede68ff73f3bed58878c700b715b5
diff --git a/dev-vcs/easygit/easygit-1.6.5.5.ebuild b/dev-vcs/easygit/easygit-1.6.5.5.ebuild
new file mode 100644
index 000000000000..0b0916f7fb21
--- /dev/null
+++ b/dev-vcs/easygit/easygit-1.6.5.5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+MY_PN="eg"
+
+DESCRIPTION="Easy GIT is a wrapper for git, designed to make git easy to learn and use"
+HOMEPAGE="http://www.gnome.org/~newren/eg/"
+SRC_URI="http://www.gnome.org/~newren/${MY_PN}/download/${PV}/${MY_PN} -> ${PF}"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=dev-vcs/git-${PV}
+ dev-lang/perl"
+
+src_install() {
+ newbin "${DISTDIR}/${PF}" "${MY_PN}" || die
+}
diff --git a/dev-vcs/easygit/metadata.xml b/dev-vcs/easygit/metadata.xml
new file mode 100644
index 000000000000..ff62877c67ae
--- /dev/null
+++ b/dev-vcs/easygit/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/dev-vcs/fossil/Manifest b/dev-vcs/fossil/Manifest
new file mode 100644
index 000000000000..6c1db4998cef
--- /dev/null
+++ b/dev-vcs/fossil/Manifest
@@ -0,0 +1 @@
+DIST fossil-src-20150119112900.tar.gz 3973184 SHA256 37969e5a09c1611199921e3518a4ed736fd637a02f2d5810cd45897a4ceb92dc SHA512 9bee82916d98b5d7d81e200ec6616c1e463540de254464a559254ee117a99492a0080003645a99ef93cc551395e38b93dfb12728abbbdbf468f5c2743f67718e WHIRLPOOL 19175692472913bc94bf993956c1e0b8510ff33d6df2c168acf700e64b6f4e62eed34a4888c38e093eabfe582224edf5b7e03dc652b5f1e8824b9e8e5608d492
diff --git a/dev-vcs/fossil/fossil-20150119112900.ebuild b/dev-vcs/fossil/fossil-20150119112900.ebuild
new file mode 100644
index 000000000000..1bb7ba485d5d
--- /dev/null
+++ b/dev-vcs/fossil/fossil-20150119112900.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P=${PN}-src-${PV}
+
+inherit toolchain-funcs
+
+DESCRIPTION="Simple, high-reliability, source control management, and more"
+HOMEPAGE="http://www.fossil-scm.org/"
+SRC_URI="http://www.fossil-scm.org/download/${MY_P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="json +lineedit sqlite +ssl tcl"
+
+DEPEND="
+ sys-libs/zlib
+ lineedit? ( || ( sys-libs/readline:0 dev-libs/libedit ) )
+ ssl? ( dev-libs/openssl:0 )
+ sqlite? ( dev-db/sqlite:3 )
+ tcl? ( dev-lang/tcl:0= )
+"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_configure() {
+ # this is not an autotools situation so don't make it seem like one
+ # --with-tcl: works
+ # --without-tcl: dies
+ local myconf='--with-zlib'
+
+ myconf+=" --lineedit=$(usex lineedit 1 0)"
+ myconf+=" --with-openssl=$(usex ssl auto none)"
+ use json && myconf+=' --json'
+ use sqlite && myconf+=' --disable-internal-sqlite'
+ use tcl && myconf+=' --with-tcl --with-tcl-stubs'
+ tc-export CC
+ ./configure ${myconf} || die
+}
+
+src_install() {
+ dobin fossil
+}
diff --git a/dev-vcs/fossil/metadata.xml b/dev-vcs/fossil/metadata.xml
new file mode 100644
index 000000000000..af4a9e3be69d
--- /dev/null
+++ b/dev-vcs/fossil/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>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <maintainer>
+ <email>titanofold@gentoo.org</email>
+ <name>Aaron W. Swenson</name>
+ <description>Co-Maintainer</description>
+ </maintainer>
+ <use>
+ <flag name="json">Enable the JSON API of Fossil's wiki</flag>
+ <flag name="lineedit">Enable line-editing with libedit or readline</flag>
+ <flag name="sqlite">
+ Use the system SQLite instead of the bundled one
+ </flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/giggle/Manifest b/dev-vcs/giggle/Manifest
new file mode 100644
index 000000000000..9ebfaf0745fd
--- /dev/null
+++ b/dev-vcs/giggle/Manifest
@@ -0,0 +1 @@
+DIST giggle-0.7.tar.xz 2042304 SHA256 ae2e2237fa0d0999d99d0a0ee9b7ec147e80bd2472d59a045b2b01eb02261f59 SHA512 01d3cc0adc610706a97b89487624fe3d09c1347c0b07920e71d2e33761fab4894ebb304113ac7df6cdd03ed6116d09dcce85b35d6169df5a3f3973faaa151cfb WHIRLPOOL 54f721249b1e2bdaafcfd42c800ce4eb80e9b9e1ed312e853a2c30b650db25b98a14af2088849930a7be4ca36628c45021f276f04af13f7e76276a965cfc4c7b
diff --git a/dev-vcs/giggle/files/giggle-0.6.2-gtksourceview-3.8.0.patch b/dev-vcs/giggle/files/giggle-0.6.2-gtksourceview-3.8.0.patch
new file mode 100644
index 000000000000..37648e171232
--- /dev/null
+++ b/dev-vcs/giggle/files/giggle-0.6.2-gtksourceview-3.8.0.patch
@@ -0,0 +1,24 @@
+diff --git a/src/giggle-diff-view.h b/src/giggle-diff-view.h
+index de5fe02..9ef33b5 100644
+--- a/src/giggle-diff-view.h
++++ b/src/giggle-diff-view.h
+@@ -23,6 +23,7 @@
+
+ #include <glib-object.h>
+ #include <gtk/gtk.h>
++#include <gtksourceview/gtksourcebuffer.h>
+ #include <gtksourceview/gtksourceview.h>
+ #include <gtksourceview/gtksourcelanguagemanager.h>
+
+diff --git a/src/giggle-view-file.c b/src/giggle-view-file.c
+index 7746225..7b74c0a 100644
+--- a/src/giggle-view-file.c
++++ b/src/giggle-view-file.c
+@@ -42,6 +42,7 @@
+
+ #include <gtksourceview/gtksourcelanguagemanager.h>
+ #include <gtksourceview/gtksourceview.h>
++#include <gtksourceview/gtksourcebuffer.h>
+
+ #define GIGGLE_TYPE_VIEW_FILE_SNAPSHOT (giggle_view_file_snapshot_get_type ())
+ #define GIGGLE_VIEW_FILE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIGGLE_TYPE_VIEW_FILE_SNAPSHOT, GiggleViewFileSnapshot))
diff --git a/dev-vcs/giggle/giggle-0.7-r1.ebuild b/dev-vcs/giggle/giggle-0.7-r1.ebuild
new file mode 100644
index 000000000000..1b5cd5bc37c0
--- /dev/null
+++ b/dev-vcs/giggle/giggle-0.7-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2 eutils
+
+DESCRIPTION="GTK+ Frontend for GIT"
+HOMEPAGE="https://wiki.gnome.org/Apps/giggle"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-interix ~amd64-linux ~x86-linux"
+IUSE="eds"
+
+RDEPEND="
+ >=dev-vcs/git-1.5
+ >=dev-libs/glib-2.30:2
+ >=x11-libs/gtk+-3.3.12:3
+ >=x11-libs/gtksourceview-3.0:3.0
+ >=x11-libs/gdk-pixbuf-2.22.0
+ eds? ( gnome-extra/evolution-data-server )
+ >=x11-libs/vte-0.28:2.90
+"
+DEPEND="${RDEPEND}
+ gnome-base/gnome-common
+ sys-devel/gettext
+ app-text/yelp-tools
+ virtual/pkgconfig
+ >=dev-util/intltool-0.35
+ >=sys-devel/autoconf-2.64
+ >=sys-devel/libtool-2
+"
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-0.6.2-gtksourceview-3.8.0.patch"
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable eds evolution-data-server)
+}
diff --git a/dev-vcs/giggle/metadata.xml b/dev-vcs/giggle/metadata.xml
new file mode 100644
index 000000000000..ff688617b208
--- /dev/null
+++ b/dev-vcs/giggle/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ikelos@gentoo.org</email>
+ <name>Mike Auty</name>
+ </maintainer>
+ <longdescription lang="en">
+ GTK+ based frontend for GIT
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-vcs/git-annex/Manifest b/dev-vcs/git-annex/Manifest
new file mode 100644
index 000000000000..b2a8cb7edc31
--- /dev/null
+++ b/dev-vcs/git-annex/Manifest
@@ -0,0 +1,8 @@
+DIST git-annex-5.20140927.tar.gz 4547006 SHA256 532b36a4a33909b9835a19888b1678251a0b99b1a1f82e94755bb5cc2e7af50b SHA512 7851b773a296efc3c4d3ae36ce240ca466b42d87d32f8635ae1dc8457064c20b2521c0fe3c123554e0d2e2e35346f03a3c25ae94f47f2a2d902a73629f0c6535 WHIRLPOOL bc30b2b7833f46a5633012f072a901142c2a6bc5fbca198c3d391fe336c2c88d3ae2491a439692fe32eb1b217d8a9c6b8baad931f462660b0c4a3cccb1ba44b0
+DIST git-annex-5.20141125.tar.gz 4580886 SHA256 ba26d0459d74d818b7ecc8153856ffccfcd7068dbea344334438a698dd689a66 SHA512 44feb1ecfe6c0f08c8c69b11efa9b81b5e420019321f27b825ae831c04e0e8ad307cea73e6c52ab1f73f2bebdd6476012e5eab1e823a9ded7d6c865e7fd24350 WHIRLPOOL 57ed46a1a8bd43fd12c05c2eee9da2bad529cde7ba424e7607858637e9394b280789edba5ae5c9e0547ad6d6a4ee48fd920c29cab87aacfebf4cf3b527aa58ce
+DIST git-annex-5.20141203.tar.gz 4611768 SHA256 d36d07fe592b27e7e4e363de3ddccb5cc4a8f189c30c58cfdb4524837473f105 SHA512 a16cc0d000cde3cc7ebad1a8eac17ba2d3efed2ac11090c1d8247a30c341fcb38bc32dccf6a8f6fe05c31fd22dc50ea2a292711a2edb43ab96275fd157030481 WHIRLPOOL a4c393e29d441b36ca56c88f1690235fc1939af0ad1834239d2a80896ae8e8cb0dc1586d87b4493803d0984dc5666550a69f1d03f44488cadcb1430f7e003225
+DIST git-annex-5.20141231.tar.gz 4635173 SHA256 ce7f8e1a6f9049e9864a125a10672d577605ecbb45bb83401af6d6c128533c67 SHA512 d9b0db8084f08a8a2408ea1af1bc95c20591e573cddef866a9eed84319a7fff774d482d464a390c10468436dabb69fdd2cf177afb4600ef2300ae0f08b284e6e WHIRLPOOL 053b76ee765cc5b01900a7c3c115a736dff67e50b4847e552e6e1adae10344219698f59969509f2248e589ea7a6eb32991d2e4646c02b2b1a703c8269fdc1352
+DIST git-annex-5.20150219.tar.gz 4688334 SHA256 46c1d2a338a4f54774060b39fe5e864551d047b0d04eee158b3c2cb947085d5f SHA512 006ef74ba687bd97f93fb91f3ee675551abecfe019e45696bdc783523e8559ffeb9a8e521b488b695518b2fb001b2db2826ad53c5af2199d487cd664f2a9ee13 WHIRLPOOL 1e2f16af86915ec433c38eedad994538b13f56d7f0e3b35d648bc2872abef78acdac4b19b4983101f697dd138a3deaa60451196ad13a8b083dd0c6dc1c712de1
+DIST git-annex-5.20150327.tar.gz 4764485 SHA256 1e309466627eb634816805004391c5407dd9eee280e2f21a48de9617a35918fa SHA512 638ed0c97d0f67cd26699826c9ff5192fd2d089932e06fe8305c536fcbad06239f8d745c350938089827ae4b7058f1e2c3156ab7f5f133e7b4a38a2e6cd69544 WHIRLPOOL a03f2d28b36eff595ba2780ed70fee8204dceb8aef087871f650dd3482865e30d2644e29b9c7d5763cc79ffe8357e81b5b1b7fb1091fa3cb1d171634af37ac77
+DIST git-annex-5.20150617.tar.gz 5047577 SHA256 2d37c49866880803886fe77be17ac154c84acc0c344e4fefea577a59e55f8d54 SHA512 25f42ab403d3fd39a689af74cd8a26dc5de761d5a8a79c8d7050194c2094f65de9681b4189076c484fb5c644408918140cf1fcb0109a6a2195f1d547e307abfc WHIRLPOOL 89410f048f5773256cac6525f1a42e3845a5106a1d0b82e031d1f70136375479efc180b21907036e191243f55aee7d94b041cc1d994dea403a1640e7310f6f4d
+DIST git-annex-5.20150710.tar.gz 5080419 SHA256 970f953a278401863fb1006679d216891ae556f80434b587deb08dfd6644f860 SHA512 35240f1d78561dab02ae014e4d00b8645c33c526b0d36a28253b9129198ea53b784949c7b47fd3b97f056842430a5e8b0d312b8ba6985bbb3228c73a4dfa21ea WHIRLPOOL 06b824031aeef38468e17ef239aa1501a2236a084a9c54e4c81001247c62b8621cdc6bc090f2b1a516df000823951acee784000aa6dc5b4de5dc4bcd5a2bda59
diff --git a/dev-vcs/git-annex/files/git-annex.xpm b/dev-vcs/git-annex/files/git-annex.xpm
new file mode 100644
index 000000000000..781f21c5e9dc
--- /dev/null
+++ b/dev-vcs/git-annex/files/git-annex.xpm
@@ -0,0 +1,47 @@
+/* XPM */
+static char * git_annex_42x42_xpm[] = {
+"42 40 4 1",
+" c None",
+". c #40BF4C",
+"+ c #D8382D",
+"@ c #666666",
+" . . ",
+" ... ... ",
+" ... ... ",
+" ..... ..... ",
+"....... .......",
+" ... ... ",
+" . . ",
+" . . ",
+" .. .. ",
+" . .... . ",
+" .. .... .. ",
+" .... .... .... ",
+" ..... .... ..... ",
+" .... . ................ . .... ",
+" .. . ................ . .. ",
+" .. ................ .. ",
+" .... ",
+" .... ",
+" .... ",
+" .... ",
+" ",
+" ++++++++++++++++ ",
+" ++++++++++++++++ ",
+" ++++++++++++++++ ",
+" ++++++++++++++++ ",
+" ",
+" @@ @@@@@@@@ ",
+" @@@@ @@@@@@@@ ",
+" @@@@ @@@@@@ ",
+" @@@@@ @@@@@@@ ",
+" @@@ @@ @@@ ",
+" @@@@ @@ @@@@ ",
+" @@@ @@ @@@ ",
+" @@@@ @@@ ",
+" @@@ @@@@ ",
+" @@@@ @@@ ",
+" @@@@@@ @@@@@@ ",
+" @@@@@@@@@@@@ ",
+" @@@@@@@@@@ ",
+" @@@@@@ "};
diff --git a/dev-vcs/git-annex/git-annex-5.20140927.ebuild b/dev-vcs/git-annex/git-annex-5.20140927.ebuild
new file mode 100644
index 000000000000..b5e0a877353c
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20140927.ebuild
@@ -0,0 +1,162 @@
+# 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.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +cryptohash +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ cryptohash? ( >=dev-haskell/cryptohash-0.10.0 )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( dev-haskell/feed )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( dev-haskell/hs3 )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag cryptohash cryptohash) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20141125.ebuild b/dev-vcs/git-annex/git-annex-5.20141125.ebuild
new file mode 100644
index 000000000000..b5e0a877353c
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20141125.ebuild
@@ -0,0 +1,162 @@
+# 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.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +cryptohash +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ cryptohash? ( >=dev-haskell/cryptohash-0.10.0 )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( dev-haskell/feed )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( dev-haskell/hs3 )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag cryptohash cryptohash) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20141203.ebuild b/dev-vcs/git-annex/git-annex-5.20141203.ebuild
new file mode 100644
index 000000000000..8fc0419ce801
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20141203.ebuild
@@ -0,0 +1,165 @@
+# 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.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +cryptohash +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ cryptohash? ( >=dev-haskell/cryptohash-0.10.0 )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( dev-haskell/feed )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/resourcet )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag cryptohash cryptohash) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20141231.ebuild b/dev-vcs/git-annex/git-annex-5.20141231.ebuild
new file mode 100644
index 000000000000..914cf061ba30
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20141231.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +cryptohash +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite torrentparser +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ dev-haskell/network-uri
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ cryptohash? ( >=dev-haskell/cryptohash-0.10.0 )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( dev-haskell/feed )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/http-client
+ dev-haskell/resourcet )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ torrentparser? ( >=dev-haskell/torrent-10000.0.0 )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag cryptohash cryptohash) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_prepare() {
+ cabal_chdeps \
+ ', aws (>= 0.9.2)' ', aws (>= 0.9.2), http-client'
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20150219.ebuild b/dev-vcs/git-annex/git-annex-5.20150219.ebuild
new file mode 100644
index 000000000000..54c050fdb27e
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20150219.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite torrentparser +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ >=dev-haskell/cryptohash-0.10.0
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ dev-haskell/network-uri
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( dev-haskell/feed )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/http-client
+ dev-haskell/resourcet )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ torrentparser? ( >=dev-haskell/torrent-10000.0.0 )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_prepare() {
+ cabal_chdeps \
+ ', aws (>= 0.9.2)' ', aws (>= 0.9.2), http-client'
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20150327.ebuild b/dev-vcs/git-annex/git-annex-5.20150327.ebuild
new file mode 100644
index 000000000000..8a8fe431782c
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20150327.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice +assistant +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite torrentparser +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ >=dev-haskell/cryptohash-0.10.0
+ dev-haskell/dataenc
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ dev-haskell/esqueleto
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ dev-haskell/monad-logger
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ dev-haskell/network-uri
+ dev-haskell/persistent
+ dev-haskell/persistent-sqlite
+ dev-haskell/persistent-template
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/resourcet
+ dev-haskell/safesemaphore
+ dev-haskell/sha
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( >=dev-haskell/feed-0.3.4 )
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/http-client )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ torrentparser? ( >=dev-haskell/torrent-10000.0.0 )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/hamlet
+ dev-haskell/http-types
+ dev-haskell/path-pieces
+ dev-haskell/transformers
+ dev-haskell/shakespeare
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ dev-haskell/warp
+ dev-haskell/warp-tls
+ dev-haskell/yesod
+ dev-haskell/yesod-core
+ dev-haskell/yesod-default
+ dev-haskell/yesod-form
+ dev-haskell/yesod-static
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client
+ dev-haskell/xml-conduit )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20150617.ebuild b/dev-vcs/git-annex/git-annex-5.20150617.ebuild
new file mode 100644
index 000000000000..f98fc6ee72ae
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20150617.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice asciiprogress +assistant +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite torrentparser +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ >=dev-haskell/cryptohash-0.11.0
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ dev-haskell/esqueleto
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ dev-haskell/monad-logger
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ dev-haskell/network-uri
+ dev-haskell/persistent
+ dev-haskell/persistent-sqlite
+ dev-haskell/persistent-template
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/resourcet
+ dev-haskell/safesemaphore
+ dev-haskell/sandi
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ asciiprogress? ( dev-haskell/ascii-progress
+ dev-haskell/terminal-size )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( >=dev-haskell/feed-0.3.4 )
+ dev-haskell/old-locale
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/http-client )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.9.1
+ )
+ torrentparser? ( >=dev-haskell/torrent-10000.0.0 )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/http-types
+ >=dev-haskell/path-pieces-0.1.4
+ dev-haskell/transformers
+ >=dev-haskell/shakespeare-2
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ >=dev-haskell/warp-3.0.0.5
+ dev-haskell/warp-tls
+ >=dev-haskell/yesod-1.2.6
+ >=dev-haskell/yesod-core-1.2.19
+ >=dev-haskell/yesod-default-1.2.0
+ >=dev-haskell/yesod-form-1.3.15
+ >=dev-haskell/yesod-static-1.2.4
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_prepare() {
+ cabal_chdeps \
+ 'ascii-progress (<= 0.2.1.2)' 'ascii-progress'
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag asciiprogress asciiprogress) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/git-annex-5.20150710.ebuild b/dev-vcs/git-annex/git-annex-5.20150710.ebuild
new file mode 100644
index 000000000000..3f9f33f30372
--- /dev/null
+++ b/dev-vcs/git-annex/git-annex-5.20150710.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.5
+
+CABAL_FEATURES="bin"
+inherit haskell-cabal
+
+DESCRIPTION="manage files with git, without checking their contents into git"
+HOMEPAGE="http://git-annex.branchable.com/"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+RESTRICT="test"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="android androidsplice asciiprogress +assistant +dbus +dns doc +desktop-notify ekg +feed +inotify +pairing +production +quvi +s3 +tahoe +tdfa +testsuite torrentparser +webapp +webapp-secure +webdav +xmpp"
+
+RDEPEND="dev-vcs/git
+"
+DEPEND="${RDEPEND}
+ dev-haskell/async
+ dev-haskell/bloomfilter
+ >=dev-haskell/cabal-1.8
+ dev-haskell/case-insensitive
+ >=dev-haskell/cryptohash-0.11.0
+ dev-haskell/data-default
+ dev-haskell/dlist
+ dev-haskell/edit-distance
+ dev-haskell/esqueleto
+ >=dev-haskell/exceptions-0.6
+ dev-haskell/hslogger
+ dev-haskell/http-conduit
+ dev-haskell/http-types
+ dev-haskell/ifelse
+ dev-haskell/json[generic]
+ dev-haskell/missingh
+ dev-haskell/monad-control
+ dev-haskell/monad-logger
+ >=dev-haskell/mtl-2
+ >=dev-haskell/network-2.0
+ dev-haskell/network-uri
+ dev-haskell/persistent
+ dev-haskell/persistent-sqlite
+ dev-haskell/persistent-template
+ >=dev-haskell/quickcheck-2.1:2
+ dev-haskell/random
+ dev-haskell/resourcet
+ dev-haskell/safesemaphore
+ dev-haskell/sandi
+ >=dev-haskell/stm-2.3
+ dev-haskell/text
+ dev-haskell/transformers
+ dev-haskell/unix-compat
+ dev-haskell/utf8-string
+ dev-haskell/uuid
+ >=dev-lang/ghc-7.4.1
+ android? ( dev-haskell/data-endian )
+ asciiprogress? ( dev-haskell/ascii-progress
+ dev-haskell/terminal-size )
+ assistant? ( >=dev-haskell/stm-2.3
+ inotify? ( dev-haskell/hinotify ) )
+ dbus? ( >=dev-haskell/dbus-0.10.3 )
+ dns? ( dev-haskell/dns )
+ ekg? ( dev-haskell/aeson
+ dev-haskell/ekg
+ dev-haskell/http-types )
+ feed? ( >=dev-haskell/feed-0.3.4 )
+ dev-haskell/old-locale
+ pairing? ( dev-haskell/network-info
+ dev-haskell/network-multicast )
+ quvi? ( dev-haskell/aeson )
+ s3? ( >=dev-haskell/aws-0.9.2
+ dev-haskell/conduit
+ dev-haskell/conduit-extra
+ dev-haskell/http-client )
+ tdfa? ( dev-haskell/regex-tdfa )
+ tahoe? ( dev-haskell/aeson )
+ testsuite? (
+ dev-haskell/crypto-api
+ >=dev-haskell/tasty-0.7
+ dev-haskell/tasty-hunit
+ dev-haskell/tasty-quickcheck
+ dev-haskell/tasty-rerun
+ >=dev-haskell/optparse-applicative-0.10
+ )
+ torrentparser? ( >=dev-haskell/torrent-10000.0.0 )
+ webapp? ( dev-haskell/blaze-builder
+ dev-haskell/aeson
+ dev-haskell/clientsession
+ dev-haskell/crypto-api
+ dev-haskell/http-types
+ >=dev-haskell/path-pieces-0.1.4
+ dev-haskell/transformers
+ >=dev-haskell/shakespeare-2
+ dev-haskell/wai
+ dev-haskell/wai-extra
+ >=dev-haskell/warp-3.0.0.5
+ dev-haskell/warp-tls
+ >=dev-haskell/yesod-1.2.6
+ >=dev-haskell/yesod-core-1.2.19
+ >=dev-haskell/yesod-default-1.2.0
+ >=dev-haskell/yesod-form-1.3.15
+ >=dev-haskell/yesod-static-1.2.4
+ webapp-secure? ( dev-haskell/warp-tls
+ dev-haskell/securemem
+ dev-haskell/byteable ) )
+ webdav? ( >=dev-haskell/dav-1.0
+ dev-haskell/http-client )
+ xmpp? ( >=dev-haskell/gnutls-0.1.4
+ dev-haskell/network-protocol-xmpp
+ dev-haskell/xml-types )
+ dev-lang/perl
+ doc? ( www-apps/ikiwiki net-misc/rsync )
+"
+
+src_prepare() {
+ cabal_chdeps \
+ 'ascii-progress (<= 0.2.1.2)' 'ascii-progress'
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag android android) \
+ $(cabal_flag androidsplice androidsplice) \
+ $(cabal_flag asciiprogress asciiprogress) \
+ $(cabal_flag assistant assistant) \
+ $(cabal_flag dbus dbus) \
+ $(cabal_flag desktop-notify desktop-notify) \
+ $(cabal_flag dns dns) \
+ $(cabal_flag ekg ekg) \
+ $(cabal_flag feed feed) \
+ $(cabal_flag inotify inotify) \
+ $(cabal_flag pairing pairing) \
+ $(cabal_flag production production) \
+ $(cabal_flag quvi quvi) \
+ $(cabal_flag s3 s3) \
+ $(cabal_flag tahoe tahoe) \
+ $(cabal_flag tdfa tdfa) \
+ $(cabal_flag testsuite testsuite) \
+ $(cabal_flag webapp webapp) \
+ $(cabal_flag webapp-secure webapp-secure) \
+ $(cabal_flag webdav webdav) \
+ $(cabal_flag xmpp xmpp)
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+ use doc && emake docs
+}
+
+src_test() {
+ if use webapp; then
+ export GIT_CONFIG=${T}/temp-git-config
+ git config user.email "git@src_test"
+ git config user.name "Mr. ${P} The Test"
+
+ emake test
+ fi
+}
+
+src_install() {
+ haskell-cabal_src_install
+ dosym git-annex /usr/bin/git-annex-shell # standard make install does more, than needed
+
+ # install-mans wants ikiwiki. It returns 0 and builds the man pages without ikiwiki.
+ emake install-mans DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ use doc && emake install-docs DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ mv "${ED}"/usr/share/doc/{${PN},${PF}}
+ dodoc CHANGELOG README
+ if use webapp ; then
+ doicon "${FILESDIR}"/${PN}.xpm
+ make_desktop_entry "${PN} webapp" "git-annex" ${PN}.xpm "Office"
+ fi
+}
diff --git a/dev-vcs/git-annex/metadata.xml b/dev-vcs/git-annex/metadata.xml
new file mode 100644
index 000000000000..b36e0eee5dd1
--- /dev/null
+++ b/dev-vcs/git-annex/metadata.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <longdescription>
+ git-annex allows managing files with git, without checking the file
+ contents into git. While that may seem paradoxical, it is useful when
+ dealing with files larger than git can currently easily handle, whether due
+ to limitations in memory, checksumming time, or disk space.
+
+ Even without file content tracking, being able to manage files with git,
+ move files around and delete files with versioned directory trees, and use
+ branches and distributed clones, are all very handy reasons to use git. And
+ annexed files can co-exist in the same git repository with regularly
+ versioned files, which is convenient for maintaining documents, Makefiles,
+ etc that are associated with annexed files but that benefit from full
+ revision control.
+ </longdescription>
+ <use>
+ <flag name="assistant">Enable git-annex assistant and watch command</flag>
+ <flag name="android">Building for Android</flag>
+ <flag name="androidsplice">Get TH splices for Android.</flag>
+ <flag name="asciiprogress">Use ascii-progress library (experimental)</flag>
+ <flag name="cryptohash">Enable use of cryptohash for checksumming</flag>
+ <flag name="dns">Enable the haskell DNS library for DNS lookup</flag>
+ <flag name="desktop-notify">Enable desktop environment notifications</flag>
+ <flag name="ekg">Enable use of EKG to monitor git-annex as it runs.</flag>
+ <flag name="feed">Enable podcast feed support</flag>
+ <flag name="production">Enable production build (slower build; faster binary)</flag>
+ <flag name="pairing">Enable pairing of git annex repositories</flag>
+ <flag name="quvi">Enable use of quvi to download videos</flag>
+ <flag name="s3">Enable Amazon S3 remote</flag>
+ <flag name="tahoe">Enable the tahoe special remote</flag>
+ <flag name="tdfa">Use regex-tdfa for wildcards</flag>
+ <flag name="testsuite">Embed the test suite into git-annex</flag>
+ <flag name="torrentparser">Use haskell torrent library to parse torrent files</flag>
+ <flag name="webapp">Enable git-annex webapp</flag>
+ <flag name="webapp-secure">Secure webapp</flag>
+ <flag name="webdav">Enable webdav remote</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/git-bz/Manifest b/dev-vcs/git-bz/Manifest
new file mode 100644
index 000000000000..50a890a5361b
--- /dev/null
+++ b/dev-vcs/git-bz/Manifest
@@ -0,0 +1,2 @@
+DIST git-bz-0.12.04.26.tar.bz2 35224 SHA256 5b78df3972aace9de508329121861641517058a10f58d08f6ae6820cf32d0918 SHA512 1e216e8c583599c8c9633b6a02a205368aeab8746bc8eeb9a0347025cce689fccd8c157e66e0fafb33536fa52b1a97ed82467ce6ec9cb494bca2ad9ad18a7ed8 WHIRLPOOL df50ea90781b2a39618f40323efda44d259305cfc951bd1c8a133dd19584d869df8ad8e07eae3d97c5b16c36c4ec22041ea0ebba48b3ba6de8d6febdada0ca36
+DIST git-bz-0.12.12.15.tar.bz2 42590 SHA256 cb56dd495528c355f85a889506e98508ede4f41f20c431e4af36746b0b2a6b4f SHA512 b008a35a7d8e3902ade12aed3c8474fdde790cc1881c5e8133142cc438a4335c08a14b082e41d6dd2ac179425a576144d88212ff1ebe3322c27f98ebbac506d1 WHIRLPOOL 32f221dc33d39b054e885c30e721a110a4dfe1995df61982f2204a88cac003a44c8691a3c20d51953267f2f1896051777958607e05128372f7c0da4011738429
diff --git a/dev-vcs/git-bz/git-bz-0.12.04.26.ebuild b/dev-vcs/git-bz/git-bz-0.12.04.26.ebuild
new file mode 100644
index 000000000000..a1d432fb13ec
--- /dev/null
+++ b/dev-vcs/git-bz/git-bz-0.12.04.26.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+PYTHON_DEPEND=2
+
+inherit python
+
+DESCRIPTION="Bugzilla subcommand for git"
+HOMEPAGE="http://www.fishsoup.net/software/git-bz/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+
+src_compile() {
+ :
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc TODO
+}
diff --git a/dev-vcs/git-bz/git-bz-0.12.12.15.ebuild b/dev-vcs/git-bz/git-bz-0.12.12.15.ebuild
new file mode 100644
index 000000000000..3721162ed8fe
--- /dev/null
+++ b/dev-vcs/git-bz/git-bz-0.12.12.15.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit python-r1
+
+DESCRIPTION="Bugzilla subcommand for git"
+HOMEPAGE="http://www.fishsoup.net/software/git-bz/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+
+src_install() {
+ python_foreach_impl python_doscript ${PN}
+ doman ${PN}.1
+ dodoc TODO
+}
diff --git a/dev-vcs/git-bz/git-bz-9999.ebuild b/dev-vcs/git-bz/git-bz-9999.ebuild
new file mode 100644
index 000000000000..77259c0c3146
--- /dev/null
+++ b/dev-vcs/git-bz/git-bz-9999.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=( python2_7 pypy )
+
+inherit python-single-r1
+
+#if LIVE
+EGIT_REPO_URI="git://git.fishsoup.net/${PN}
+ http://git.fishsoup.net/cgit/${PN}"
+inherit git-r3
+#endif
+
+DESCRIPTION="Bugzilla subcommand for git"
+HOMEPAGE="http://www.fishsoup.net/software/git-bz/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+
+#if LIVE
+DEPEND="app-text/asciidoc
+ app-text/xmlto"
+
+KEYWORDS=
+SRC_URI=
+#endif
+
+src_configure() {
+ # custom script
+ ./configure --prefix="${EPREFIX}/usr" || die
+}
+
+#ifdef LIVE
+src_compile() {
+ emake ${PN}.1
+}
+#endif
+
+src_install() {
+ default
+ python_fix_shebang "${ED%/}"/usr/bin/${PN}
+}
diff --git a/dev-vcs/git-bz/metadata.xml b/dev-vcs/git-bz/metadata.xml
new file mode 100644
index 000000000000..5cb9324943ab
--- /dev/null
+++ b/dev-vcs/git-bz/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>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/git-bzr-ng/Manifest b/dev-vcs/git-bzr-ng/Manifest
new file mode 100644
index 000000000000..fe1975188cbc
--- /dev/null
+++ b/dev-vcs/git-bzr-ng/Manifest
@@ -0,0 +1,2 @@
+DIST git-bzr-ng-0_pre20120130.tar.xz 11596 SHA256 cdfee5b8a9d6bb5980123a00933f71de8e38fe36d3a3ce57a2a92eae1b4ba5fc SHA512 2621d60889fdae75d2fd291e4ef628f888524d6c5cd48b3fae8ac793984d3d58b47da2ca38477e1154714de7316992a879cae21103636e68f4ae0cd03de7bcc8 WHIRLPOOL e06dcf9caaa8cc455447d3956b311d7a69f5dc898e526b68abf0589ce371c956c8633935caa5554f1e9b2ec41c449e394b6815bff24452e13913c70456deff79
+DIST git-bzr-ng-0_pre20120822.tar.xz 11592 SHA256 315d7d567ef173d7a8e2f17304bd73a1f6779cd754e6d4ea67f48bd5d75a55ec SHA512 2652b76a1fbdfac7f7387b53167d0c76a0579e232f66be05c28a156eef638e40bd7548154e6c1853872cf6978b474b948396db176976f2ac15e7311fc731ba9b WHIRLPOOL 783da6136a4a4f1fb95ca39b285b58bac2499c23ddec82f11468fba7d4303700ac388c5decb023e61964cda8a06d77420518ffdbef0d6871081ba8be0dd8bf80
diff --git a/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120130.ebuild b/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120130.ebuild
new file mode 100644
index 000000000000..1891c6aca569
--- /dev/null
+++ b/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120130.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="2"
+
+inherit python
+
+DESCRIPTION="Git subcommand providing a bidirectional bridge to Bazaar repositories"
+HOMEPAGE="https://github.com/termie/git-bzr-ng"
+SRC_URI="http://dev.gentoo.org/~tetromino/distfiles/${PN}/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-vcs/bzr-2.2
+ dev-vcs/git
+ >=dev-vcs/bzr-fastimport-0.10
+ dev-python/python-fastimport"
+DEPEND="app-arch/xz-utils"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ python_convert_shebangs 2 git-bzr
+}
+
+src_install() {
+ exeinto /usr/libexec/git-core
+ doexe git-bzr
+ dodoc README.rst
+}
diff --git a/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120822.ebuild b/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120822.ebuild
new file mode 100644
index 000000000000..1891c6aca569
--- /dev/null
+++ b/dev-vcs/git-bzr-ng/git-bzr-ng-0_pre20120822.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="2"
+
+inherit python
+
+DESCRIPTION="Git subcommand providing a bidirectional bridge to Bazaar repositories"
+HOMEPAGE="https://github.com/termie/git-bzr-ng"
+SRC_URI="http://dev.gentoo.org/~tetromino/distfiles/${PN}/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=dev-vcs/bzr-2.2
+ dev-vcs/git
+ >=dev-vcs/bzr-fastimport-0.10
+ dev-python/python-fastimport"
+DEPEND="app-arch/xz-utils"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ python_convert_shebangs 2 git-bzr
+}
+
+src_install() {
+ exeinto /usr/libexec/git-core
+ doexe git-bzr
+ dodoc README.rst
+}
diff --git a/dev-vcs/git-bzr-ng/metadata.xml b/dev-vcs/git-bzr-ng/metadata.xml
new file mode 100644
index 000000000000..42972bdb6b29
--- /dev/null
+++ b/dev-vcs/git-bzr-ng/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+ <herd>bazaar</herd>
+ <upstream>
+ <remote-id type="github">termie/git-bzr-ng</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-cola/Manifest b/dev-vcs/git-cola/Manifest
new file mode 100644
index 000000000000..25d590c0a2d5
--- /dev/null
+++ b/dev-vcs/git-cola/Manifest
@@ -0,0 +1,2 @@
+DIST git-cola-2.1.2.tar.gz 960514 SHA256 f0465f74858fc78b1b30e06856cdd6b5fa5f0cb9587b5c7e9b489f4d0e4d8f8d SHA512 79eae7937db148cde22b3d5dc1564180c3919965c35c11853270525be4eb19c7f223ddc215ba8122ed8bcb70e0e6ec57948f1e02aeeae1a9c3e7c98efef1e42d WHIRLPOOL 8797f0f0d02eaea1c7e1ef5544fc7e5e2bf6ca738cff721ce56db194de8cd94a3e825bf557f478237d75c5cf782ed43cdafc7a7afdaf1417fa4f3d8b65bcb756
+DIST git-cola-2.2.1.tar.gz 996484 SHA256 df0a3e1d3c49629926f2e30f55d635eca3c8da12e96232196b307613fa4b3aec SHA512 a91fe706ea150d9bd9a05a9d494c63d373cae0154deca8e40e30fc20e70be32d4fd1f021a971c067d46ab24f472965a12c115eeb4bd94e4f62c21e546d89c109 WHIRLPOOL ac68a558775bc5fdf3a168416132dedbeffe554f6f60f50b7e33f0d17d67aa829318b7a0df2607b47e41b8823d60e206e0544e03382eae7651b9ca1c3b9dfc09
diff --git a/dev-vcs/git-cola/files/README.gentoo b/dev-vcs/git-cola/files/README.gentoo
new file mode 100644
index 000000000000..0f4af85d5ccc
--- /dev/null
+++ b/dev-vcs/git-cola/files/README.gentoo
@@ -0,0 +1,3 @@
+Please make sure you have either a SSH key management installed and activated or
+installed a SSH askpass app like net-misc/x11-ssh-askpass.
+Otherwise git-cola may hang when pushing/pulling from remote git repositories via SSH.
diff --git a/dev-vcs/git-cola/files/git-cola-1.9.1-system-ssh-askpass.patch b/dev-vcs/git-cola/files/git-cola-1.9.1-system-ssh-askpass.patch
new file mode 100644
index 000000000000..0aa476fe83ea
--- /dev/null
+++ b/dev-vcs/git-cola/files/git-cola-1.9.1-system-ssh-askpass.patch
@@ -0,0 +1,16 @@
+diff --git a/cola/app.py b/cola/app.py
+index f9236de..4636c81 100644
+--- a/cola/app.py
++++ b/cola/app.py
+@@ -66,9 +66,9 @@ def setup_environment():
+ elif ssh_askpass:
+ askpass = ssh_askpass
+ elif sys.platform == 'darwin':
+- askpass = resources.share('bin', 'ssh-askpass-darwin')
++ askpass = resources.prefix('bin', 'ssh-askpass-darwin')
+ else:
+- askpass = resources.share('bin', 'ssh-askpass')
++ askpass = resources.prefix('bin', 'ssh-askpass')
+
+ compat.setenv('GIT_ASKPASS', askpass)
+ compat.setenv('SSH_ASKPASS', askpass)
diff --git a/dev-vcs/git-cola/files/git-cola-1.9.3-disable-tests.patch b/dev-vcs/git-cola/files/git-cola-1.9.3-disable-tests.patch
new file mode 100644
index 000000000000..79f1ec2ff8bc
--- /dev/null
+++ b/dev-vcs/git-cola/files/git-cola-1.9.3-disable-tests.patch
@@ -0,0 +1,21 @@
+diff -Naur cola-1.3.7.21.orig/test/git_test.py cola-1.3.7.21/test/git_test.py
+--- cola-1.3.7.21.orig/test/git_test.py 2009-04-30 13:56:22.352319047 +0200
++++ cola-1.3.7.21/test/git_test.py 2009-04-30 13:56:53.123149963 +0200
+@@ -24,17 +24,6 @@
+ version = self.git.version()[STDOUT]
+ self.failUnless(version.startswith('git version'))
+
+- def test_tag(self):
+- """Test running 'git tag'"""
+- tags = self.git.tag()[STDOUT].splitlines()
+- self.failUnless( 'v1.0.0' in tags )
+-
+- def test_show(self):
+- """Test running 'git show'"""
+- sha = '1b9742bda5d26a4f250fa64657f66ed20624a084'
+- contents = self.git.show(sha)[STDOUT].splitlines()
+- self.failUnless(contents[0] == '/build')
+-
+ def test_stdout(self):
+ """Test overflowing the stdout buffer"""
+ # Write to stdout only
diff --git a/dev-vcs/git-cola/files/git-cola-2.2.1-disable-live-tests.patch b/dev-vcs/git-cola/files/git-cola-2.2.1-disable-live-tests.patch
new file mode 100644
index 000000000000..2ebdc9880d1e
--- /dev/null
+++ b/dev-vcs/git-cola/files/git-cola-2.2.1-disable-live-tests.patch
@@ -0,0 +1,22 @@
+diff --git a/test/git_test.py b/test/git_test.py
+index 9f812b2..ff7da24 100644
+--- a/test/git_test.py
++++ b/test/git_test.py
+@@ -53,17 +53,6 @@ class GitCommandTest(unittest.TestCase):
+ version = self.git.version()[STDOUT]
+ self.failUnless(version.startswith('git version'))
+
+- def test_tag(self):
+- """Test running 'git tag'"""
+- tags = self.git.tag()[STDOUT].splitlines()
+- self.failUnless( 'v1.0.0' in tags )
+-
+- def test_show(self):
+- """Test running 'git show'"""
+- sha = '1b9742bda5d26a4f250fa64657f66ed20624a084'
+- contents = self.git.show(sha)[STDOUT].splitlines()
+- self.failUnless(contents[0] == '/build')
+-
+ def test_stdout(self):
+ """Test overflowing the stdout buffer"""
+ # Write to stdout only
diff --git a/dev-vcs/git-cola/files/git-cola-2.2.1-update-git-config-in-tests.patch b/dev-vcs/git-cola/files/git-cola-2.2.1-update-git-config-in-tests.patch
new file mode 100644
index 000000000000..96271d05548c
--- /dev/null
+++ b/dev-vcs/git-cola/files/git-cola-2.2.1-update-git-config-in-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/test/helper.py b/test/helper.py
+index 006a5b1..64d0dfc 100644
+--- a/test/helper.py
++++ b/test/helper.py
+@@ -87,6 +87,8 @@ class GitRepositoryTestCase(TmpPathTestCase):
+
+ def initialize_repo(self):
+ self.git('init')
++ self.git('config', '--local', 'user.name', 'Your Name')
++ self.git('config', '--local', 'user.email', 'you@example.com')
+ self.touch('A', 'B')
+ self.git('add', 'A', 'B')
+
diff --git a/dev-vcs/git-cola/files/index.html b/dev-vcs/git-cola/files/index.html
new file mode 100644
index 000000000000..7f1e814a0b51
--- /dev/null
+++ b/dev-vcs/git-cola/files/index.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+ <title>Missing documentation</title>
+</head>
+<body>
+<div style="border: 4px double red; padding: 2em; margin: 4em; top: 4em; width: 20em;">
+ This documentation is missing. Please reinstall dev-util/cola with the 'doc' useflag enabled.
+
+ <p style="text-align: right;">
+ Sincerely,<br/>
+ your package maintainer.
+ </p>
+</div>
+</body>
+</html>
diff --git a/dev-vcs/git-cola/git-cola-2.1.2.ebuild b/dev-vcs/git-cola/git-cola-2.1.2.ebuild
new file mode 100644
index 000000000000..2de6715817e4
--- /dev/null
+++ b/dev-vcs/git-cola/git-cola-2.1.2.ebuild
@@ -0,0 +1,111 @@
+# 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} )
+DISTUTILS_SINGLE_IMPL=true
+
+inherit distutils-r1 readme.gentoo virtualx
+
+DESCRIPTION="The highly caffeinated git GUI"
+HOMEPAGE="http://git-cola.github.com/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+REQUIRED_USE="doc? ( python_targets_python2_7 )"
+
+RDEPEND="
+ dev-python/jsonpickle[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-vcs/git"
+DEPEND="${RDEPEND}
+ app-text/asciidoc
+ app-text/xmlto
+ sys-devel/gettext
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinxtogithub[$(python_gen_usedep 'python2*')]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ sys-apps/net-tools
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.3-disable-tests.patch
+ "${FILESDIR}"/${PN}-1.9.1-system-ssh-askpass.patch
+ )
+
+pkg_pretend() {
+ if use test && [[ -z "$(hostname -d)" ]] ; then
+ die "Test will fail if no domain is set"
+ fi
+}
+
+python_prepare_all() {
+ rm share/git-cola/bin/*askpass* || die
+
+ # unfinished translate framework
+ rm test/i18n_test.py || die
+
+ # don't install docs into wrong location
+ sed -i \
+ -e '/doc/d' \
+ setup.py || die "sed failed"
+
+ sed -i \
+ -e "s|'doc', 'git-cola'|'doc', '${PF}'|" \
+ cola/resources.py || die "sed failed"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ cd share/doc/${PN}/
+ if use doc ; then
+ emake all
+ else
+ sed \
+ -e '/^install:/s:install-html::g' \
+ -e '/^install:/s:install-man::g' \
+ -i Makefile || die
+ fi
+}
+
+python_test() {
+ PYTHONPATH="${S}:${S}/build/lib:${PYTHONPATH}" LC_ALL="C" \
+ VIRTUALX_COMMAND="nosetests --verbose \
+ --with-id --with-doctest --exclude=sphinxtogithub" \
+ virtualmake
+}
+
+src_install() {
+ distutils-r1_src_install
+}
+
+python_install_all() {
+ cd share/doc/${PN}/ || die
+ emake \
+ DESTDIR="${D}" \
+ docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ prefix="${EPREFIX}/usr" \
+ install
+
+ python_fix_shebang "${ED}/usr/share/git-cola/bin/git-xbase"
+ python_optimize "${ED}/usr/share/git-cola/lib/cola"
+
+ if ! use doc ; then
+ HTML_DOCS=( "${FILESDIR}"/index.html )
+ fi
+
+ distutils-r1_python_install_all
+ readme.gentoo_create_doc
+ docompress /usr/share/doc/${PF}/git-cola.txt
+}
diff --git a/dev-vcs/git-cola/git-cola-2.2.1.ebuild b/dev-vcs/git-cola/git-cola-2.2.1.ebuild
new file mode 100644
index 000000000000..0990e9db29c9
--- /dev/null
+++ b/dev-vcs/git-cola/git-cola-2.2.1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 python3_{3,4} )
+DISTUTILS_SINGLE_IMPL=true
+
+inherit distutils-r1 readme.gentoo virtualx
+
+DESCRIPTION="The highly caffeinated git GUI"
+HOMEPAGE="https://git-cola.github.io/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/send2trash[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ dev-vcs/git"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ python_targets_python2_7? ( dev-python/sphinxtogithub[$(python_gen_usedep 'python2*')] )
+ )
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-disable-live-tests.patch
+ "${FILESDIR}"/${P}-update-git-config-in-tests.patch
+)
+
+python_prepare_all() {
+ rm share/git-cola/bin/*askpass* || die
+
+ # remove broken tests
+ rm test/i18n_test.py || die
+
+ # don't install docs into wrong location
+ sed -i -e '/doc/d' setup.py || die
+
+ # fix doc directory reference
+ sed -i \
+ -e "s/'doc', 'git-cola'/'doc', '${PF}'/" \
+ cola/resources.py || die
+
+ # fix ssh-askpass directory reference
+ sed -i -e 's/resources\.share/resources\.prefix/' cola/app.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ cd share/doc/${PN}/ || die
+ if use doc; then
+ emake all
+ else
+ sed \
+ -e '/^install:/s:install-html::g' \
+ -e '/^install:/s:install-man::g' \
+ -i Makefile || die
+ fi
+}
+
+python_test() {
+ PYTHONPATH="${S}:${S}/build/lib:${PYTHONPATH}" LC_ALL="C" \
+ VIRTUALX_COMMAND="nosetests --verbose --with-id --with-doctest \
+ --exclude=sphinxtogithub" \
+ virtualmake
+}
+
+src_install() {
+ distutils-r1_src_install
+}
+
+python_install_all() {
+ cd share/doc/${PN}/ || die
+ emake \
+ DESTDIR="${D}" \
+ docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ prefix="${EPREFIX}/usr" \
+ install
+
+ python_fix_shebang "${ED}/usr/share/git-cola/bin/git-xbase"
+ python_optimize "${ED}/usr/share/git-cola/lib/cola"
+
+ use doc || HTML_DOCS=( "${FILESDIR}"/index.html )
+
+ distutils-r1_python_install_all
+ readme.gentoo_create_doc
+}
diff --git a/dev-vcs/git-cola/metadata.xml b/dev-vcs/git-cola/metadata.xml
new file mode 100644
index 000000000000..7ee28e37558e
--- /dev/null
+++ b/dev-vcs/git-cola/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>dev-zero@gentoo.org</email>
+ <name>Tiziano Müller</name>
+ </maintainer>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">git-cola/git-cola</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-crypt/Manifest b/dev-vcs/git-crypt/Manifest
new file mode 100644
index 000000000000..81dded219cd1
--- /dev/null
+++ b/dev-vcs/git-crypt/Manifest
@@ -0,0 +1,3 @@
+DIST git-crypt-0.3.tar.gz 20660 SHA256 6b2a03d28240c06ce4c06c3fc73ecd88f61b638e42f8534a9f2d1dbd17132755 SHA512 526630e58a2e74bffe954bc2f489311fb2261337092a1c4462788d9412b7fa7b1aa744402558bba39fe776cfa6333700c4e0ad651d262a7ca14d920485192adc WHIRLPOOL 80a2c9129a0c6bba05418469163a6c32242e84fff1bef4179cf8b60b2bea3f01c6921fa97459e23c3bd08223cfe18f6cf1363f01b5244f0f94689d55954cfa90
+DIST git-crypt-0.4.tar.gz 44146 SHA256 8825200a353ba9fe5f972c67e2ca4f1e7194cd3ad369ba14fddb1ba840dc2140 SHA512 aa146d922258c4a68ad1a211b58e3b1e1b1135661ebecf3ede1b344fc93401eb9d0aa51cfa068f76fab3ab7c936ad6cf46e61e0e9505aaf4f338e54826ae88f6 WHIRLPOOL 8bd32cc735416a2eb3df1f144ccf7e86b09bcdd475f766df4d83885f47ead097614641df95d52e8afbb8c5935bffa7716eeab67b4ee73134c790745bc45d1027
+DIST git-crypt-0.5.0.tar.gz 56694 SHA256 5150144a528bc74eeb47a2884cf2fefe978a1d1dc0223bbfcac395fa6a73a410 SHA512 0ed75e6962d8e8260811e048c22d724bdd63d461615e8f99c1d65a07f931f9630c1b853112f202b612dc69746a9ad03995f2947ad6fa39af56a878d993d65d77 WHIRLPOOL 0fc57344d3a0996572db5b0184611d27f8e6574733d0b7d39f52db17c06f1a2403358ac3da2f0e46cbf0c004446f82c5bedf9082f627f6ce18f5e99462e8b559
diff --git a/dev-vcs/git-crypt/git-crypt-0.3.ebuild b/dev-vcs/git-crypt/git-crypt-0.3.ebuild
new file mode 100644
index 000000000000..2f454f18ff74
--- /dev/null
+++ b/dev-vcs/git-crypt/git-crypt-0.3.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="transparent file encryption in git"
+HOMEPAGE="https://www.agwa.name/projects/git-crypt/"
+SRC_URI="https://github.com/AGWA/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-vcs/git"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ mkdir -p "${D}"/usr/bin
+ emake PREFIX="${D}"/usr install
+}
diff --git a/dev-vcs/git-crypt/git-crypt-0.4.ebuild b/dev-vcs/git-crypt/git-crypt-0.4.ebuild
new file mode 100644
index 000000000000..2f454f18ff74
--- /dev/null
+++ b/dev-vcs/git-crypt/git-crypt-0.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="transparent file encryption in git"
+HOMEPAGE="https://www.agwa.name/projects/git-crypt/"
+SRC_URI="https://github.com/AGWA/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-vcs/git"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ mkdir -p "${D}"/usr/bin
+ emake PREFIX="${D}"/usr install
+}
diff --git a/dev-vcs/git-crypt/git-crypt-0.5.0.ebuild b/dev-vcs/git-crypt/git-crypt-0.5.0.ebuild
new file mode 100644
index 000000000000..7413d6813ac4
--- /dev/null
+++ b/dev-vcs/git-crypt/git-crypt-0.5.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="transparent file encryption in git"
+HOMEPAGE="https://www.agwa.name/projects/git-crypt/"
+SRC_URI="https://github.com/AGWA/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-vcs/git"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ mkdir -p "${D}"/usr/bin
+ emake PREFIX="${D}"/usr install
+}
diff --git a/dev-vcs/git-crypt/metadata.xml b/dev-vcs/git-crypt/metadata.xml
new file mode 100644
index 000000000000..6536a3256f44
--- /dev/null
+++ b/dev-vcs/git-crypt/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>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">AGWA/git-crypt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-deploy/Manifest b/dev-vcs/git-deploy/Manifest
new file mode 100644
index 000000000000..b503b904800a
--- /dev/null
+++ b/dev-vcs/git-deploy/Manifest
@@ -0,0 +1 @@
+DIST git-deploy-6.0.1_p20131024.tar.gz 55394 SHA256 fe5b810ed3a9595f1d2c733d1fd42f83ff8a1f1995f3d4a11f1f9b006d0a94a1 SHA512 cf3504b8f40d86cd8322ed93f2fe43593bcbf2db37685d3337b89501f39b38298dfb6d6cd51dd3f518f6048b680446a1660b85887ef73647829608e77b497634 WHIRLPOOL 0a6a1e8178d771f6d32967ce748fde883c5604da75a9c37fed06291e183dfe5a90321be0d23a593a72e68882ed44b0d7abba3a85264642f057f962b476115c0c
diff --git a/dev-vcs/git-deploy/git-deploy-6.0.1_p20131024.ebuild b/dev-vcs/git-deploy/git-deploy-6.0.1_p20131024.ebuild
new file mode 100644
index 000000000000..8e714ea8e17b
--- /dev/null
+++ b/dev-vcs/git-deploy/git-deploy-6.0.1_p20131024.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-app
+
+COMMIT="e9ef93debd12d85e70676dd79b4bd78ac2b05271"
+
+DESCRIPTION="make deployments so easy that you'll let new hires do them on their
+first day"
+HOMEPAGE="https://github.com/git-deploy/git-deploy"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( Artistic GPL-1 GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+COMMON_DEPEND="dev-vcs/git
+ virtual/perl-File-Spec
+ virtual/perl-Getopt-Long
+ virtual/perl-Term-ANSIColor
+ virtual/perl-Time-HiRes
+ virtual/perl-Memoize
+ virtual/perl-Data-Dumper"
+DEPEND="dev-lang/perl
+ test? (
+ ${COMMON_DEPEND}
+ virtual/perl-File-Temp
+ )"
+RDEPEND="dev-lang/perl
+${COMMON_DEPEND}"
+
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+src_prepare() {
+ pod2man -n git-deploy README.pod > git-deploy.1 || die
+}
+
+src_test() {
+ local testdir=${TMPDIR}/git-deploy-test
+
+ # Prepare for tests
+ cp -a "${S}/" $testdir || die
+ cd $testdir || die
+
+ git config --global user.name "git-deploy" || die
+ git config --global user.email "git-deploy@localhost" || die
+
+ git init . || die
+ git add . || die
+ git commit -a -m 'git-deploy testing' || die
+
+ USER="git-deploy" perl t/run.t || die
+}
+
+src_install() {
+ dobin git-deploy
+
+ insinto $VENDOR_LIB
+ doins -r lib/Git
+
+ doman git-deploy.1
+
+ newdoc Changes ChangeLog
+}
diff --git a/dev-vcs/git-deploy/metadata.xml b/dev-vcs/git-deploy/metadata.xml
new file mode 100644
index 000000000000..e63c222cb509
--- /dev/null
+++ b/dev-vcs/git-deploy/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>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">git-deploy/git-deploy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-flow/Manifest b/dev-vcs/git-flow/Manifest
new file mode 100644
index 000000000000..8e83d604b8bd
--- /dev/null
+++ b/dev-vcs/git-flow/Manifest
@@ -0,0 +1,4 @@
+DIST git-flow-0.4.1.tar.gz 16732 SHA256 c1271b0ba2c6655e4ad4d79562f6a910c3b884f3d4e16985e227e67f8d95c180 SHA512 f86edb2867ed55127a34c711f5e6b11daeb6a738e92005fe27879c9ede40cb4130ff1de35e9f69560c4c845e063a8d2c1a76ad52eb5eacb7312a087f77d2698b WHIRLPOOL 9ad859237cab91209acfa87ddcc70f975af1b5816e202f8b867de903e05a755174803e286a5e8d595edb1612b7b321f7fe21b405fb388b8bef155ece82cb4ccf
+DIST git-flow-1.8.0.tar.gz 56304 SHA256 8239131b8dac160d7e929eab376fa14de44a55cbd5c5545e0ad4464d3a57adef SHA512 677bfb0c379eb91bfaf8ef676593d39a8306ff063251e1e638166c7101c24ce2eac59490bab85d0c76b712c1905f15d3a14a3ecc020df376848d3b1ea5ee7b0a WHIRLPOOL 6bf654329b941989a8b646ab8218c072b7bf455b0ec6a8441d43de10b9b480a5619bca931606acdd743b0f3f86e9b67f119ff07957eaa106fd17f5cddc96a328
+DIST git-flow-completion-0.4.2.2.tar.gz 5421 SHA256 1e82d039596c0e73bfc8c59d945ded34e4fce777d9b9bb45c3586ee539048ab9 SHA512 609653b6eaedabc4f31bb19d93b50bc48746876a2c351f139b79b48599104d49ba281400e8708a83411610cf57ce08a9ae941b0611216c11d80f8c01e0fa8409 WHIRLPOOL 9d2f4ec100932c2e349924620a4dbe3a98e9b6d93fcfbeb0ee065e13873da74af8e059dae5acf158088c541bfdb3aa49446ee789576aab5532e8322ab9530c15
+DIST git-flow-completion-0.5.1.tar.gz 6916 SHA256 5c8547a549dc623a8d57cfc22c3fa88588f5630da9dc6de9638e5b69da9d47d0 SHA512 c1fc0000889faff8189cd985b077cb64b81ae13e17f02c9df27675f428c6edf8f00627effdf6ebdae7a7f0641ec4ac621a9ecd0a53f14be7d95ec7e124ab8c1b WHIRLPOOL fd59f799d944752eab06b35f05c1f1309ef589014a0378f292e4dde206578f0c0aeb3685e16ea8d2f810e93b77abb7a2bc42c3c335ef9057b9c3ee1dd6df9982
diff --git a/dev-vcs/git-flow/files/git-flow-0.4.1-unbundle-shflags.patch b/dev-vcs/git-flow/files/git-flow-0.4.1-unbundle-shflags.patch
new file mode 100644
index 000000000000..93ecb7248c21
--- /dev/null
+++ b/dev-vcs/git-flow/files/git-flow-0.4.1-unbundle-shflags.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile b/Makefile
+index fbbfd2c..b0e2490 100644
+--- a/Makefile
++++ b/Makefile
+@@ -40,14 +40,12 @@ SCRIPT_FILES+=git-flow-release
+ SCRIPT_FILES+=git-flow-support
+ SCRIPT_FILES+=git-flow-version
+ SCRIPT_FILES+=gitflow-common
+-SCRIPT_FILES+=gitflow-shFlags
+
+ all:
+ @echo "usage: make install"
+ @echo " make uninstall"
+
+ install:
+- @test -f gitflow-shFlags || (echo "Run 'git submodule init && git submodule update' first." ; exit 1 )
+ install -d -m 0755 $(prefix)/bin
+ install -m 0755 $(EXEC_FILES) $(prefix)/bin
+ install -m 0644 $(SCRIPT_FILES) $(prefix)/bin
+diff --git a/git-flow b/git-flow
+index 93e9f0f..7b643d3 100755
+--- a/git-flow
++++ b/git-flow
+@@ -78,7 +78,7 @@ main() {
+ export POSIXLY_CORRECT=1
+
+ # use the shFlags project to parse the command line arguments
+- . "$GITFLOW_DIR/gitflow-shFlags"
++ . /usr/share/misc/shflags
+ FLAGS_PARENT="git flow"
+ FLAGS "$@" || exit $?
+ eval set -- "${FLAGS_ARGV}"
diff --git a/dev-vcs/git-flow/files/git-flow-1.8.0-unbundle-shflags.patch b/dev-vcs/git-flow/files/git-flow-1.8.0-unbundle-shflags.patch
new file mode 100644
index 000000000000..6e96d541d411
--- /dev/null
+++ b/dev-vcs/git-flow/files/git-flow-1.8.0-unbundle-shflags.patch
@@ -0,0 +1,25 @@
+diff --git a/Makefile b/Makefile
+index 0718bbb..f488922 100644
+--- a/Makefile
++++ b/Makefile
+@@ -43,7 +43,6 @@ SCRIPT_FILES+=git-flow-version
+ SCRIPT_FILES+=git-flow-log
+ SCRIPT_FILES+=git-flow-config
+ SCRIPT_FILES+=gitflow-common
+-SCRIPT_FILES+=gitflow-shFlags
+
+ # Hook files
+ HOOK_FILES=$(wildcard hooks/*)
+diff --git a/git-flow b/git-flow
+index 7a962d2..2ba70ba 100755
+--- a/git-flow
++++ b/git-flow
+@@ -111,7 +111,7 @@ main() {
+ fi
+
+ # Use the shFlags project to parse the command line arguments
+- . "$GITFLOW_DIR/gitflow-shFlags"
++ . /usr/share/misc/shflags
+ FLAGS_PARENT="git flow"
+
+ # Load common functionality
diff --git a/dev-vcs/git-flow/git-flow-0.4.1.ebuild b/dev-vcs/git-flow/git-flow-0.4.1.ebuild
new file mode 100644
index 000000000000..e03b7e5b0523
--- /dev/null
+++ b/dev-vcs/git-flow/git-flow-0.4.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_PN="${PN/-/}"
+COMP_PN="${PN}-completion"
+COMP_PV="0.4.2.2"
+COMP_P="${COMP_PN}-${COMP_PV}"
+inherit eutils bash-completion-r1
+
+DESCRIPTION="Git extensions to provide high-level repository operations for Vincent Driessen's branching model"
+HOMEPAGE="https://github.com/nvie/gitflow"
+SRC_URI="https://github.com/nvie/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+https://github.com/bobthecow/${COMP_PN}/archive/${COMP_PV}.tar.gz -> ${COMP_P}.tar.gz"
+
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-util/shflags
+ dev-vcs/git
+"
+
+DOCS=( AUTHORS Changes.mdown README.mdown )
+
+PATCHES=( "${FILESDIR}/${P}-unbundle-shflags.patch" )
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_prepare() {
+ [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
+ debug-print "$FUNCNAME: applying user patches"
+ epatch_user
+}
+
+src_compile() {
+ true
+}
+
+src_install() {
+ emake prefix="${D}/usr" install
+
+ [[ ${DOCS[@]} ]] && dodoc "${DOCS[@]}"
+
+ newbashcomp "${WORKDIR}/${COMP_P}/${COMP_PN}.bash" ${PN}
+}
diff --git a/dev-vcs/git-flow/git-flow-1.8.0.ebuild b/dev-vcs/git-flow/git-flow-1.8.0.ebuild
new file mode 100644
index 000000000000..c852e1ad4ea8
--- /dev/null
+++ b/dev-vcs/git-flow/git-flow-1.8.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_PN="${PN/-/}"
+COMP_PN="${PN}-completion"
+COMP_PV="0.5.1"
+COMP_P="${COMP_PN}-${COMP_PV}"
+inherit eutils bash-completion-r1
+
+DESCRIPTION="Git extensions to provide high-level repository operations for Vincent Driessen's branching model"
+HOMEPAGE="https://github.com/petervanderdoes/gitflow"
+SRC_URI="https://github.com/petervanderdoes/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+https://github.com/petervanderdoes/${COMP_PN}/archive/${COMP_PV}.tar.gz -> ${COMP_P}.tar.gz"
+
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ dev-util/shflags
+ dev-vcs/git
+"
+
+DOCS=( AUTHORS Changes.mdown README.mdown )
+
+PATCHES=( "${FILESDIR}/${P}-unbundle-shflags.patch" )
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_prepare() {
+ [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
+ debug-print "$FUNCNAME: applying user patches"
+ epatch_user
+}
+
+src_compile() {
+ true
+}
+
+src_install() {
+ emake prefix="${D}/usr" install
+
+ [[ ${DOCS[@]} ]] && dodoc "${DOCS[@]}"
+
+ newbashcomp "${WORKDIR}/${COMP_P}/${COMP_PN}.bash" ${PN}
+}
diff --git a/dev-vcs/git-flow/metadata.xml b/dev-vcs/git-flow/metadata.xml
new file mode 100644
index 000000000000..b0bdac33b655
--- /dev/null
+++ b/dev-vcs/git-flow/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>johu@gentoo.org</email>
+ <name>Johannes Huber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">petervanderdoes/gitflow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-mailz/Manifest b/dev-vcs/git-mailz/Manifest
new file mode 100644
index 000000000000..e6c4fd00ef52
--- /dev/null
+++ b/dev-vcs/git-mailz/Manifest
@@ -0,0 +1,2 @@
+DIST git-mailz-0.12.tar.gz 7957 SHA256 15608ae026a31f6fc0e89b386edeee5c7b1d2de210d796264eb735f17de3b20c SHA512 811f646e5d89fa3e870fbd59e79e350329097f5533b42e7830409f97bfc35248cf1965591df40300bd6ef5a44c71928504dc0b8aba1037126df3b5bd7a427b51 WHIRLPOOL d6e90451c49a4f81e9422e5e1e09b127f84ee3b905e5678025a410dc0ae2a7de6e96f40ae769be628dabdc23aa8a843ee289282133f3f943db7f7f89ec82e195
+DIST git-mailz-0.14.tar.gz 8204 SHA256 422cd5828d285d595e9ae8657d09b20298cb30561b288a5c8e343b89c8107f31 SHA512 fd6c518de135113482f2f3a4e9d89b41b1797c8219e1ed9f424a5c4ae575400e7ccd9f835b40be5d74a5eb4e1bc7d3dfedd2412a317baea7e20494169399b70c WHIRLPOOL 361c4fa0f6c0ae7e9a9aa3b7fa40904387bf9cee49e095660bd4258d62bfb061573a2272f3b097c2fc87ec2a2970b3dc060fd3d7ce4cafebb976bcf4b257daf1
diff --git a/dev-vcs/git-mailz/git-mailz-0.12.ebuild b/dev-vcs/git-mailz/git-mailz-0.12.ebuild
new file mode 100644
index 000000000000..8e2e6b433760
--- /dev/null
+++ b/dev-vcs/git-mailz/git-mailz-0.12.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Send a collection of patches as emails"
+HOMEPAGE="https://github.com/roman-neuhauser/git-mailz/"
+
+SRC_URI="http://codex.sigpipe.cz/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~x86 ~amd64"
+
+DEPEND=""
+
+RDEPEND="
+ virtual/mta
+ dev-vcs/git
+ app-shells/zsh
+"
+
+src_install(){
+ emake PREFIX="${ED}/usr" install
+}
diff --git a/dev-vcs/git-mailz/git-mailz-0.14.ebuild b/dev-vcs/git-mailz/git-mailz-0.14.ebuild
new file mode 100644
index 000000000000..8e2e6b433760
--- /dev/null
+++ b/dev-vcs/git-mailz/git-mailz-0.14.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Send a collection of patches as emails"
+HOMEPAGE="https://github.com/roman-neuhauser/git-mailz/"
+
+SRC_URI="http://codex.sigpipe.cz/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~x86 ~amd64"
+
+DEPEND=""
+
+RDEPEND="
+ virtual/mta
+ dev-vcs/git
+ app-shells/zsh
+"
+
+src_install(){
+ emake PREFIX="${ED}/usr" install
+}
diff --git a/dev-vcs/git-mailz/metadata.xml b/dev-vcs/git-mailz/metadata.xml
new file mode 100644
index 000000000000..2edcc4239e88
--- /dev/null
+++ b/dev-vcs/git-mailz/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>yac@gentoo.org</email>
+ <name>Jan Matejka</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">roman-neuhauser/git-mailz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-mantle/Manifest b/dev-vcs/git-mantle/Manifest
new file mode 100644
index 000000000000..fb7d7ac3160b
--- /dev/null
+++ b/dev-vcs/git-mantle/Manifest
@@ -0,0 +1 @@
+DIST git-mantle-0.6.tar.gz 9896 SHA256 c812a0bb2dbd3a3c14b118fda1e71d8aee803cfe3136bf020137e4ecba516c11 SHA512 2498ed29884a8ac48bfb413c39e5bc9f232d47736ea4c0045404bd5f7268c7009a770c5c58c5449f843d8962bea9f288248a61308c4a71eed1b39d0c4b3375c0 WHIRLPOOL 99aff52c7ff505131e6bbd0478f2fdec1a6994e45229a717f276a2ce0fc233b91312ef7daf68cbea6cafa7e626526a5ccfbe02abb678115ddb2e635c574c7719
diff --git a/dev-vcs/git-mantle/git-mantle-0.6.ebuild b/dev-vcs/git-mantle/git-mantle-0.6.ebuild
new file mode 100644
index 000000000000..b085ee6f7e01
--- /dev/null
+++ b/dev-vcs/git-mantle/git-mantle-0.6.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Generate an overview of changes on a branch"
+HOMEPAGE="https://github.com/roman-neuhauser/git-mantle"
+
+SRC_URI="http://codex.sigpipe.cz/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~x86 ~amd64"
+
+DEPEND=""
+RDEPEND="
+ dev-vcs/git
+ app-shells/zsh
+"
+
+src_install(){
+ emake PREFIX="${ED}/usr" install
+}
diff --git a/dev-vcs/git-mantle/metadata.xml b/dev-vcs/git-mantle/metadata.xml
new file mode 100644
index 000000000000..bc827ed4ac76
--- /dev/null
+++ b/dev-vcs/git-mantle/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>yac@gentoo.org</email>
+ <name>Jan Matejka</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">roman-neuhauser/git-mantle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-merge-changelog/Manifest b/dev-vcs/git-merge-changelog/Manifest
new file mode 100644
index 000000000000..0c0b8e722927
--- /dev/null
+++ b/dev-vcs/git-merge-changelog/Manifest
@@ -0,0 +1,2 @@
+DIST git-merge-changelog-20140103.tar.xz 299628 SHA256 d3f0694ca65c765a39b5d2381a2c9d735d16d29bef1737fdf38e9d44bcd3ef29 SHA512 cc3287424313f3c3590bbc67ac2615c69154001019915163b59d4600b320abeaf1e72baac7fd53dd2906be16149ce9a325db0b8966bb024db18f4d11b86fd405 WHIRLPOOL 1689456ebc076bbc3e97beb6f63f91bf857a5493ce29b2fd3dea5667891cd6db01f5b30dbdbea510701c153949f1f0287e966af419846be1df06f493523d8fe5
+DIST git-merge-changelog-20140223.tar.xz 298332 SHA256 75a584cee054cafcb1ab7b71dc3beee33b39ea30b50dace48f044ee788560482 SHA512 ea5fcb0a0839e37976e333dc773d0bca43a1fce4821af08c5baba8e5783e129f8b4de4efd4b1b3399a7c1d3796e4094916843ac2d360d81396d67f571e020638 WHIRLPOOL 41182891e268e0ade060cac261d230fda2534fa53aebb40ea2b44e62cef1d5bef69ba9d7a7f6839c4b24135b1012d29f43886b9729fdd801173c2a8c240b3809
diff --git a/dev-vcs/git-merge-changelog/git-merge-changelog-20140103.ebuild b/dev-vcs/git-merge-changelog/git-merge-changelog-20140103.ebuild
new file mode 100644
index 000000000000..042ff976d50f
--- /dev/null
+++ b/dev-vcs/git-merge-changelog/git-merge-changelog-20140103.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Git merge driver for GNU style ChangeLog files"
+HOMEPAGE="http://www.gnu.org/software/gnulib/"
+# snapshot extracted from git://git.savannah.gnu.org/gnulib.git using
+# ./gnulib-tool --create-testdir --without-tests --dir=${PN} ${PN};
+# cd ${PN}; ./configure; make maintainer-clean
+SRC_URI="http://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ sed -n '/README/{h;:x;n;/^#/!{H;bx};g;s/\n*$//;s:/usr/local:/usr:g;p;q}' \
+ gllib/git-merge-changelog.c >README || die
+}
diff --git a/dev-vcs/git-merge-changelog/git-merge-changelog-20140223.ebuild b/dev-vcs/git-merge-changelog/git-merge-changelog-20140223.ebuild
new file mode 100644
index 000000000000..af48bbd91497
--- /dev/null
+++ b/dev-vcs/git-merge-changelog/git-merge-changelog-20140223.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# snapshot extracted from git://git.savannah.gnu.org/gnulib.git using
+# ./gnulib-tool --create-testdir --without-tests --dir=${PN} ${PN};
+# cd ${PN}; ./configure; make maintainer-clean
+
+EAPI=5
+
+DESCRIPTION="Git merge driver for GNU style ChangeLog files"
+HOMEPAGE="http://www.gnu.org/software/gnulib/"
+SRC_URI="http://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ sed -n "/README/{h;:x;n;/^#/!{H;bx};g;s/\n*$//;s:/usr/local:${EPREFIX}/usr:g;p;q}" \
+ gllib/git-merge-changelog.c >README || die
+}
diff --git a/dev-vcs/git-merge-changelog/metadata.xml b/dev-vcs/git-merge-changelog/metadata.xml
new file mode 100644
index 000000000000..e153d85b2356
--- /dev/null
+++ b/dev-vcs/git-merge-changelog/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>ulm@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/git-pimp/Manifest b/dev-vcs/git-pimp/Manifest
new file mode 100644
index 000000000000..23b203495822
--- /dev/null
+++ b/dev-vcs/git-pimp/Manifest
@@ -0,0 +1 @@
+DIST git-pimp-0.8.tar.gz 10555 SHA256 fa3778fc3c67906814a31421d5bb7c2889dca6ebaaaaf669ab9e56e744391c08 SHA512 124b61001c088685d5d9d6f848d37ca170413fda08074a273a4c1bccd233fe606028d8de82c66ae7847f42008b82a6030fa47a493ddc47b65d02b69a1acbd7df WHIRLPOOL a880d9e73ef950ec3c76ed25efbf566b5ce2468bded1ae59d3709dc9b2efeef266d7285e9cb0fd0d4db02c8a62fa4d62d3184b740e325e20eeab67f1151c5526
diff --git a/dev-vcs/git-pimp/git-pimp-0.8.ebuild b/dev-vcs/git-pimp/git-pimp-0.8.ebuild
new file mode 100644
index 000000000000..189d2f1c897c
--- /dev/null
+++ b/dev-vcs/git-pimp/git-pimp-0.8.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="Code review or pull requests as patch email series"
+HOMEPAGE="https://github.com/roman-neuhauser/git-mailz/"
+
+SRC_URI="http://codex.sigpipe.cz/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~x86 ~amd64"
+
+DEPEND=""
+
+RDEPEND="
+ dev-vcs/git
+ app-shells/zsh
+ dev-vcs/git-mailz
+ dev-vcs/git-mantle
+"
+
+src_install(){
+ emake PREFIX="${ED}/usr" install
+}
diff --git a/dev-vcs/git-pimp/metadata.xml b/dev-vcs/git-pimp/metadata.xml
new file mode 100644
index 000000000000..2edcc4239e88
--- /dev/null
+++ b/dev-vcs/git-pimp/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>yac@gentoo.org</email>
+ <name>Jan Matejka</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">roman-neuhauser/git-mailz</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git-sh/Manifest b/dev-vcs/git-sh/Manifest
new file mode 100644
index 000000000000..14811dbd282e
--- /dev/null
+++ b/dev-vcs/git-sh/Manifest
@@ -0,0 +1,2 @@
+DIST git-sh-1.1.tar.gz 26616 SHA256 2947304d328c9db77268840e29eb19abba7252f84b98f1d5ea957c8b906638ab SHA512 c6704b7340b2da5ca1a0484461cbf6f51c2428254f036254aa6bd2577b8e492ab65dbf7b2c7b2e6c944e3f9df9f3fb8bdca768ed7ce7a26554c821bc3f231882 WHIRLPOOL 22b578c631130bf3f951daf20258b356dfed48a69595383dbf0cbe6ecd6861940a721c03763511b45cf3f25d6334df9f4b85f63b989990343f8618c715bbfcb0
+DIST git-sh-1.3.tar.gz 26757 SHA256 461848dfa52ea6dd6cd0a374c52404b632204dc637cde17c0532529107d52358 SHA512 8ab742d0ff86e8387d03e2e190eec8ffd4725b1bfa58940f6673f5eac8c749931e3b3f8f20b898d933db36f56b323f800dba47a35294f865f456512f19a7846c WHIRLPOOL 01cd40187e0fe5930c1f53fba9708bc56ed14db20a5ecda897bdef1fe8a36bcfddda317a6cddef9297deb8956592c5003f15516afe22b9175354d4f0ac9b4aa4
diff --git a/dev-vcs/git-sh/git-sh-1.1.ebuild b/dev-vcs/git-sh/git-sh-1.1.ebuild
new file mode 100644
index 000000000000..8c8bc46bc2f5
--- /dev/null
+++ b/dev-vcs/git-sh/git-sh-1.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit vcs-snapshot
+
+DESCRIPTION="A customized bash environment suitable for git work"
+HOMEPAGE="http://github.com/rtomayko/git-sh"
+SRC_URI="http://github.com/rtomayko/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/git"
+
+src_prepare() {
+ sed \
+ -e 's/git-completion\.bash //' \
+ -e 's:/local::' -i Makefile || die "sed failed"
+}
+
+pkg_postinst() {
+ echo
+ einfo "For bash completion in git commands emerge dev-vcs/git"
+ einfo "with bash-completion USE flag."
+ echo
+}
diff --git a/dev-vcs/git-sh/git-sh-1.3.ebuild b/dev-vcs/git-sh/git-sh-1.3.ebuild
new file mode 100644
index 000000000000..aa5998fb69ab
--- /dev/null
+++ b/dev-vcs/git-sh/git-sh-1.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit vcs-snapshot
+
+DESCRIPTION="A customized bash environment suitable for git work"
+HOMEPAGE="http://github.com/rtomayko/git-sh"
+SRC_URI="https://github.com/rtomayko/git-sh/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/git"
+
+src_prepare() {
+ sed \
+ -e 's/git-completion\.bash //' \
+ -e 's:/local::' -i Makefile || die "sed failed"
+}
+
+pkg_postinst() {
+ echo
+ einfo "For bash completion in git commands emerge dev-vcs/git"
+ einfo "with bash-completion USE flag."
+ echo
+}
diff --git a/dev-vcs/git-sh/metadata.xml b/dev-vcs/git-sh/metadata.xml
new file mode 100644
index 000000000000..cca713b1b431
--- /dev/null
+++ b/dev-vcs/git-sh/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rtomayko/git-sh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
new file mode 100644
index 000000000000..2fa775dd0dc3
--- /dev/null
+++ b/dev-vcs/git/Manifest
@@ -0,0 +1,33 @@
+DIST git-1.8.5.6.tar.gz 4765390 SHA256 6a68455cc0cb96aa9cae44ac7afcb5b63a47e9da7c0ff6012bb78d184be41af5 SHA512 fd004a5a99e8ff80556e669ef6e297a4eea9c9f9c58ef9162eef1c66580c4156165c81371ff5832e56ad729d6ed3fb1459a14d682cfd2b8c37c9ceb298be2ef3 WHIRLPOOL 665c9380314abc85cb1e3a114fd60a4f535d7a8aa25437c8c3ff8bc0a3ebedaeef4aa7a6259108ab2f79c3344810b5c2f86f85546fc9015d031c89762bfc4f33
+DIST git-1.9.5.tar.gz 4851532 SHA256 44efbc76edb50103e0d1b549dac006ee6f275fbd62491d7473e21127601f55c1 SHA512 0fa0a1fd636ed29ef54885ecbacc239c2b6edd4820a633fd88a8f62dd7e50ead1676aa0c3cf0df88a49dd5e1364f6b8da3ec9c115d1bc55bba4bf413539bedb0 WHIRLPOOL a860d6b194e27d9a5ba086d665c0b31870d4fc71380a44ec55f0b7f19c6bf973ab0d628e531c175138fce54dfa7d799ed9ab276dffaf9bec66c45cd885e324f2
+DIST git-2.0.5.tar.xz 3437996 SHA256 f5a63f5073c7f10d0676d0dabb46df48f2af77624fe24e1c6047b0e047af8ca1 SHA512 a2de101462cb7cf79ae596a5c7a77746fca430d6ae819731eb025a784b38b48b98964aca3db251e1a598ff17ff26b3711b044bd9c579d01346a8e1e77f7aa6de WHIRLPOOL b317f7b57a8a568b8a63ddbb44d6734dce01034c1b50491e3aedbb8a4ad2dc0f781b9edfad07e73ff050684f05734ee5f8b5483646967cbcd0a3cf7c600394eb
+DIST git-2.1.4.tar.xz 3544804 SHA256 a04968b9b10cbcb31a7054aa3a0d11ac47c83556ecd270ddef1987df5d3d053e SHA512 17333eda9600287be1f366271f314619354f6bc9b7f867d59a9493441e71a963340cedf728b5954ac6311f5426a928a2beacfa7775e1a4d439b58e0dcf310a0b WHIRLPOOL fc20c64e0d494a13834c71ffa5c727018fc3940f4dc65ae4eda6ba14af2faf2864d779e706b503c69a16858ca051878e27bcfe1883c3c206dda6129a1bc5aceb
+DIST git-2.2.2.tar.xz 3592264 SHA256 aa6d2efcc0c7bb9b9edc6d56d90921706b833972f1d2abe70f71be7838f22d05 SHA512 e3ca6f40de04ed940f521fff4c7e92446e40ad1627acc5b4c090ebf114dcf279d4b1f3efe1189ffa43192fce412165621fc12ea90e2f7d02a6a9ccda655dc69b WHIRLPOOL 9e20def83bbb9b11cb5982fc5f19b09767657ff80f02a237dff6ddaddd3209b4cfb9288bec1b6dc80c6a6db1869cfcaa90e2374279012fc8215771c1a58a1fc2
+DIST git-2.3.6.tar.xz 3621716 SHA256 3ce01c54e92b47366756f57742280e052412efde65344e31f51ad8a48a7c60fc SHA512 53ad21db0fa6bb48ee24302c35ee929b1bd1fae3b646845523e7105b8539700cef23e2425170dec0311c7e746c41b743cfd78f192613b586291e44b49c3c284d WHIRLPOOL 12cf33fc19efea4f885a9b5c6d7099893b92742ffaad8e407016abfc5232ddd4763db95fc657a185830e2f904cdb2b04e8ad1c4305f09d77ff8f7db07c139799
+DIST git-2.3.8.tar.xz 3622512 SHA256 cb4d9228f63b7a9500d55383878bb4bbb60b80deb7ae1a5858c7103ba14de5a6 SHA512 bf693fbe7fc16a240470501af2a7736ebfdbf027c0cc8adbd601d2b1c98ec7d968959e06dd8a3d0e206dc351e83a161475191d59d76f9e2da3e13b4de8716fb4 WHIRLPOOL 93aa2d832e57181de25035952a566c9d3330105e277930f088eb10e2073120c296b6dd87375437c9e9b7880c9b56e2c0de0fda5f77f0da9d2f96840c2fe8eda8
+DIST git-2.4.6.tar.xz 3690432 SHA256 bdd944571c03474517b6c9941d6f1fd735eccbb164e59fd133d38644b69453b6 SHA512 2c95a00af81d6fbd8f4984e89d7cb23396caacadd684466aeb5a11f1b3acfbc625f832060cbef5aee0748e36c1fddcd88b3b9c26c4d7aec1d185e5f7311346ef WHIRLPOOL 1ae191666bf27a7e18686b910cbe610f85b5b7a43266232359615fa2a22b80bc659277b71b21394eab53df0c912d9ad911c7793c2a041cd6c7d768a5f0416f5b
+DIST git-2.4.7.tar.xz 3691752 SHA256 6763f5ad1dfe29770aa0c523e08d53a0c7b9d32989bfbf2f39f368c7f61094de SHA512 7772d6e6466b6f835f506def455399fdfc81153975d9b259b1572cd332444187d61a19216f88476300c2030ff7a8baef794b6fe06203776e25f3f702bd31e5de WHIRLPOOL 75e630a448f6a94b179841e072900a68b57d6d9025535ff7a9e31db1591fd3290c4dda3a1a65a4ec91ad8f48fd9ad40b669a67d2d2ce0aff78831e6b41eda93d
+DIST git-2.4.8.tar.xz 3692460 SHA256 c7d2019d3c3b742862b252dcabb3d870b649e1af3fc8a132a0c0149f9e91dfcb SHA512 b1af6bf03dec006ed99601e66dda5b70e576c47d755d8fe5ca3cd974acc33cf2a6b76901549b56f6b4d3d3697f43c84dca35fc21c2cf5e8daad026f1bcc5b263 WHIRLPOOL e00d8e04c86ba611457547c71fb22ebef04b3a7e4316145b29cf073e4e58849bb62963b41660176f6d4e78b492c3b2ac513e80e8db42a91a4dcc31207718f012
+DIST git-2.5.0.tar.xz 3740620 SHA256 cc59b1bac6c1c67a9159872863f6c5bbe0d9404cac2a85c3e9d9fa49923ce45c SHA512 ef7538c9f5ba5b2ac08962401c30e5fd51323b54b9fb5315d259adccec346e8fae9362815832dc2b5ce63a259b315c40e419bb2385dde04d84b992e62f6789b6 WHIRLPOOL 653e7aeb966dec44631bbd257a41935b2e957be9324311a4fd91f3a0ba6f1f674e2e59b4c564d70c4eeaea3788f0af9273a1d0a753b3bc820e687f0d63bddf5d
+DIST git-htmldocs-1.8.5.6.tar.gz 2242475 SHA256 7c8e955d0798686fa030ba7b7b384a2eab2b74d5bd695d82faecac2e247bd211 SHA512 c9b2752bcdd7f8f817b14e99ab2743d153e3e7549bffb2aa98999e46d1e965d045850ec6a3e9f6bc83e6e4820ce20f281c33f946ebd2be16d275b85a5ddaee36 WHIRLPOOL 7db3fb74e6b51618890acfef8fb89ab09adf653d3196e82624671194bdb2b564b903429ffecf68b28faf96ce3ebb83b534459738d48ace048d873c158621d31c
+DIST git-htmldocs-1.9.5.tar.gz 2262251 SHA256 4fa289e259d6b922a51d11a687203612aa1aad5696eb83b4e67c0de8a785700f SHA512 2df975c33d3411a97ab5a684b03998b7cd188d05bae6813c753fe2092b0acf463dec49a7a546d315f520fd9c71281da41998d0f36f64f48d4f95507a034a083b WHIRLPOOL edc252ce58b31f001c0d225f0b40b3689028bd34b1cbbdd889d645d37a2931e9039f76f12e5a0f918579a0b9c5dd1f3171af2bb58ee42972411ca33ec0ebe8f2
+DIST git-htmldocs-2.0.5.tar.xz 944792 SHA256 90eaf745d6ee197718fdde9c98919918ad1e4e3576608e4522b84c612cd9ef2a SHA512 e9b3d92d466762c9c7e164e9c30ff0046b262bf4707ea057e3a682f7b15a4f8149a9aaf2630f117dc3b508744cd688c6c0087cc94ff3477e7f3b85513160d7f3 WHIRLPOOL 35970d099304a5ab174fc93f8496a0c651a259dcaa3d23a2dd0233f8db214ae94a26e28044a87460d4654e61440427d331ceeac290335d6ae3fcf0423175bba9
+DIST git-htmldocs-2.1.4.tar.xz 959144 SHA256 7665daecd77c2f9be8b316eb69a1fda3f383f759e71d346a137c8cf39501d886 SHA512 7734d671ab6ca8374f54546b0987821d0c66d136d50f9cbb1ff7c06da25330e46a10ede41d10a60c80847afa68999298c2f90dfe99d51bd862590f02344e1cbd WHIRLPOOL 97326a00a1f613cf95dbeaf8938842855299d21e6963e2040b3bf9ee02a745c8156ea552e2b87248a98d5f0ecd6560a546a4a49b6635ca034ff2e92504bbb00a
+DIST git-htmldocs-2.2.2.tar.xz 976312 SHA256 41179ff0816189d583f290a227a73788002a319c7ff8c5cada970878c50b901d SHA512 b51b7d619e82d83b4f0b90d31bfccc30291a5beb48b2f5e5e59e75e91e5d772e89b560534a683648cd5480f4bf241f733efc87b30062ef5bb003bf0b5dbeed7f WHIRLPOOL c9dc7ac1a40559e4306d7d97a1619a272faf83d8b05c5a11f5f7b010566cd02fe853fee7eb550c6ccf744db446966a9696f9eb6feeee7ce4f976c6aa88b097d2
+DIST git-htmldocs-2.3.6.tar.xz 987292 SHA256 b37439087ae465534588a65380e3acb66d3e6949904ede720febeed1dc5d8b49 SHA512 ccb836c3df4bfb96174500295c630aa1ac3bea475460434e4d097c3e178bec5a0b5037ff17281fe6a6bc7bb3ae6bcac03ee4009611bb222eccaebc3ae6aac81f WHIRLPOOL 8c58f108d1ea95bf552604b956e727dcf7a8f0eed8979239b0b6ab931aceffc76434137b5f76054563a09985bcaad0a03359da8791469adae71a3a8821084d58
+DIST git-htmldocs-2.3.8.tar.xz 987840 SHA256 54b8d98e34bceeac906ffa8b7c93e8a2cd2cf3c7f4d0c0334e9d5e0c704ca23f SHA512 7aa72d55a6a2687a3ecb26f9db76f69e4003c87864b8239068b029a9d63f99a023bf76ec3ea60952ecf11608d2d684f4ad1b2ac76942cd44ec67bdf8f497330f WHIRLPOOL 60145b5a48a6780b0edb3a7ef50b3649193818e3aa8199de94dd9bf1cca110d7411902c8e7e3df881eec77aa59208780b60b946aeb5f13960de954af6fd88fbe
+DIST git-htmldocs-2.4.6.tar.xz 994712 SHA256 5213e8b882293ec3cda247dabbc75c6ee5243b9d330a8fafec004952fae91a88 SHA512 782fbc38a611380c0af2631bd6123d568b02159fb46159c763d97d75bd84debe43105d83ac3f321cd8383e1334806857bce1a48563fd0c19b43f527fe18615a8 WHIRLPOOL 170e4ecc8255e6d5d562274e6e3fb75c2fc62e415586d61498b680a076c74248664fca35bb7c532009f7f22be4ad14d1fe047e14791991fa32373bd7053e0396
+DIST git-htmldocs-2.4.7.tar.xz 995972 SHA256 ce0d1603f097b89c895613c864a7ac1ed8be36283b98298fff4fcafc2133dbc1 SHA512 1ea356f57299f41cfcb54baac17faf4f12ebb0b992769b0bf36dece800cb07d0b15b5b059d29a7e2469e885da1fa53f899e31e3c9cf58fd7fde4b2168ae19c41 WHIRLPOOL 3ffa7fc366e3a0855ecd6cc3af4577635072082236affc2079caaae2273d0965b0ea2e7fe2fb0d2bbc6b1c44b295325ca19065a4b9ba811bfc95bae94323245d
+DIST git-htmldocs-2.4.8.tar.xz 996004 SHA256 73c9ac3b42da1d3427bfa91c3266c6b7df332137d6ce92217c43db8f479a74ea SHA512 fcd93a76b19bd559ccb28829fa78ae0a2840a70e0c59a2709b2f089f1127b8452ee2f4e8e74128766f50eeeb560d924248d73336f2b5746305823834a9311db2 WHIRLPOOL 249390556106b13e4c02112085bd527720edcb67c85c61e429bea67bc252e7be3b6f4f641534bc342e534d154a9531379e3717d32e5109e48f886174022dce02
+DIST git-htmldocs-2.5.0.tar.xz 1008428 SHA256 0924b290834e2a361a489cbc845a9bf04e56117597dc9c1a40e879cce655e4e2 SHA512 921ae8dd482719912f79f5affb6fa239290a954fb40625ac9fae2edf902989e5126ae7ca5c367b2b55c5387fb3cc3035ddf4e8b360743dbdee0f1b55ec33653c WHIRLPOOL e355781b06fba48d9ada859fe6fb515ddbfbac5a1d5c0918e8570e4566f68d644456606b5b0eb8e3e4cdc7c8b27a96b72cc1907008dff567cae71f0953968843
+DIST git-manpages-1.8.5.6.tar.gz 569061 SHA256 58ef7cb3121639b8d78e2e4c4f7f886bab57af9e9e137b10f372dfad573872c1 SHA512 a524a1c7e8bdc73ffe04bebb5c7050a18c8649b98714bf255c8e3c32a2443d8d5abf33e3ca2eb108d601f01e0bda50fed1e134ffdae87bcf6f551cbbd250c4ba WHIRLPOOL 2db62b96e972dbcbec1ac59d7244bf2c2ff7140c941d1d3c6b9062bd79b80541d7fa3982c5a3bc55a18fc9112ab3fa648966be5c3e1135ab7b5c89080bee82b6
+DIST git-manpages-1.9.5.tar.gz 571625 SHA256 37cc735c4ced6574e8e93349d52d30372fc6f9fe3de3d6b9934a14857d6aade8 SHA512 e3df3e933fed6ff2845989a0146b28789452e9583bc19dd4a9ad335f64b15feffbdc4dd7cdb9d6b5216f7f85837318cf9b10df033f8022777f91c2b0894fb231 WHIRLPOOL e25d77fd8d9cacb92d45fd50640bc65189d02d7e23b276ccaf3b35ba1fe64ab0c49045d1fb8983b7b2b5bd996e767508446ac76506b074ded10feef1f9256918
+DIST git-manpages-2.0.5.tar.xz 359000 SHA256 3cf1581da2a19c0651df445ee5f801e108619befe8965e01d61faa46ca57b642 SHA512 b3981565a34a203283801b86717386971ef53c2f5c47bdde290aa0df4d62045ecbcab1ff1b4d1d8ddf7d489e74d65b0208d87ace7ca8c8be9525be548e445425 WHIRLPOOL e8c78eb38cb3192455ccb991a4ce5cd3988d06f1f06cdf0722e4ce6fb1d4e57f618058cf07d312bcab4f5821a1b1dfc016c03626d4f3429d3e5ef089607a2801
+DIST git-manpages-2.1.4.tar.xz 361252 SHA256 01070bc96e88231f6f279b031fed2919efea8b442fe724f37349ad951d010b04 SHA512 35fe0dd9e0fe9547362abc0e9c5b066abc13a4137b4ea62569fa5b1ae93831da0686e8783be946a9b87274fbc2322ef93425b9d3fc1257023176c772b21b79b2 WHIRLPOOL 9f199eb94657149b51cb20fb55878cb1cf83fa3741906ce37a66b0157df9ca4dae66754fe264019e6bd8e7d286040fec718b89ca4b40b803c059c46521a5cc61
+DIST git-manpages-2.2.2.tar.xz 369876 SHA256 d30688bb62763bf1b87f5eaf4c0a66c68999e479ccd2963108a5f6f82138147c SHA512 5c2220bb09f199ad4fe5c1bc20a813a6c62daab5e6e7fa87bf24861d25b7f7e0fdde215c4f59d8895badd7c361ed202e7837de48d2d54a155d24759db39dd4e1 WHIRLPOOL 45acc45663f13faf5b8197516bb934723bf84cd6db929443e2bd9fc3a915baf258ee93e782741e088a5f799115ea4ee6043225fc9ea9ec954feed21ba54c9be4
+DIST git-manpages-2.3.6.tar.xz 371620 SHA256 b1356f5cb3e7bf53445b08f24ea6950ef1f80031aedd6cd90e3ec60ff1f06b02 SHA512 c7ff2e6aea8c0c12009f29724c899e606b6620e7d408ee3c536fb5239ebcaa0b790a6ee1287dccd88df8776fbc2e72e799124426dbacd82e12f05e3f9f3c909a WHIRLPOOL 7117ba84d888ea448807f3bf51f958b86de011afed1bbad78abf4390c1a77f799f77781f4d9bf1e9287ab903b912b7ca270433c1f4a1f112a4cb4840dde3d400
+DIST git-manpages-2.3.8.tar.xz 371528 SHA256 4d38de9decf80864480fcd5cc58783e3bff4e22383b281193acd82ffa3751fe2 SHA512 8c6aaf60e4b6505ae6789fa658ff15534cf5dfa51c03fdf47a624723b75a8448d71faa9f4ee61c5c243b775c4047dd2ffffc664b37e7f38b60c90fc56252ed93 WHIRLPOOL c6068de21f53e20ec17cd724059d91781e81abf617c2169c1099997afdeac371a59927d9db0b98c1f64c66b3de016b351b08a2f37a43038a924137f6f139a72e
+DIST git-manpages-2.4.6.tar.xz 373408 SHA256 f32d267bdaab75812dbd116d2b329d6dc7287a974e929e380e8cbf96e3822b8e SHA512 fa0562b8cc3e0421f7b45940f8cd4b58a5e58a1eb8571e2de85babf8ffd932fd210baa82aefe3c6090cb7dc51f64f299143be51beaacb37be97832b4a8e2a869 WHIRLPOOL 595beed93c621ffd9b7e0b507fc2941156975190eca8b638826ac32b6ea761bbb08f05e152dc88a7a3dbd168ab083a0128d61e72fae51cd0e94a8c91a1adb3ee
+DIST git-manpages-2.4.7.tar.xz 373568 SHA256 cbf3171d93edea466325809c26c6946716402f7f9ae32e31e97384b2a96377f9 SHA512 e3c59ef02824d553257d5cc78e727ceca75cf1c6ba68375fe6482812ec5ff8684319ada2c38c00574509958bff0f3af732c509726f02e48517c6a8f84ea4f154 WHIRLPOOL 1be4ef465d3446ec8ae4c5ddb25f2fe66ec4b9d116a5789176e83513606cbcd70ecf07038d86903acc93a52a187d99a7c62d3593bc0d7b43a4a7af4ccac6c7ac
+DIST git-manpages-2.4.8.tar.xz 373596 SHA256 47558ec88776e66e6f3e3625b7efdaf2e8ad447cb7af199d60d0788d7f4438c4 SHA512 bb5dc6d7a9af05f2f5a3665f0bac29e5a08919412d69cc756981c88eaa6cf5b8cbe93e04e1aa10d2a48706178eb33a547f416ee191bdb8d25483212aa7e30e5e WHIRLPOOL 0b4ab3099b6604f17a6ff741a9d752c76772ca4f7a02e55db4cbff1e14878c3bdcb25d5e4a71dd2f7a81525475aea35d9ef09d203d949984d95ef02f9865f33c
+DIST git-manpages-2.5.0.tar.xz 377856 SHA256 1a6ea7220b1693eb384af0978a990ea8c0c634a7869d1ef63a2c8e427fc7f6ea SHA512 b3a5f2e8107c529ce81c1570a82472195e205ff1a8ddc75f4f0cbbf25f37a916700156df4418888c8a8a153ab58d5507a31027fb31faadeb5d4ba242847ab28d WHIRLPOOL 09f13622fff6a2b04a8ad584dab54c0b17cbfc6e803ca9e2deadab18071e50b50b37e395bb4746aff2e013f5b0025f8cdb1d439d8e6f3a659fad32646b30f4c7
diff --git a/dev-vcs/git/files/50git-gentoo.el b/dev-vcs/git/files/50git-gentoo.el
new file mode 100644
index 000000000000..1646a391c53c
--- /dev/null
+++ b/dev-vcs/git/files/50git-gentoo.el
@@ -0,0 +1,13 @@
+
+;;; dev-vcs/git site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'git-status "git" "Entry point into git-status mode." t)
+;;(autoload 'git-blame-mode "git-blame"
+;; "Minor mode for incremental blame for Git." t)
+
+;; GNU Emacs >=22.2 already includes vc-git.el.
+;; Enable the following only if Emacs has no GIT support.
+(unless (fboundp 'vc-git-registered)
+ (add-to-list 'load-path "@SITELISP@/compat")
+ (add-to-list 'vc-handled-backends 'GIT))
diff --git a/dev-vcs/git/files/git-1.8.5-mw-destdir.patch b/dev-vcs/git/files/git-1.8.5-mw-destdir.patch
new file mode 100644
index 000000000000..ea4f1758059f
--- /dev/null
+++ b/dev-vcs/git/files/git-1.8.5-mw-destdir.patch
@@ -0,0 +1,37 @@
+diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile
+index f206f96..a4b6f7a 100644
+--- a/contrib/mw-to-git/Makefile
++++ b/contrib/mw-to-git/Makefile
+@@ -18,9 +18,13 @@ SCRIPT_PERL+=git-mw.perl
+ GIT_ROOT_DIR=../..
+ HERE=contrib/mw-to-git/
+
++INSTALL = install
++
+ SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL))
+ INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \
+ -s --no-print-directory instlibdir)
++DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
++INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR))
+
+ all: build
+
+@@ -30,7 +34,9 @@ test: all
+ check: perlcritic test
+
+ install_pm:
+- install $(GIT_MEDIAWIKI_PM) $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
++ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(INSTLIBDIR_SQ)/Git'
++ $(INSTALL) -m 644 $(GIT_MEDIAWIKI_PM) \
++ '$(DESTDIR_SQ)$(INSTLIBDIR_SQ)/$(GIT_MEDIAWIKI_PM)'
+
+ build:
+ $(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
+@@ -43,7 +49,6 @@ install: install_pm
+ clean:
+ $(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
+ clean-perl-script
+- rm $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
+
+ perlcritic:
+ perlcritic -5 $(SCRIPT_PERL)
diff --git a/dev-vcs/git/files/git-1.8.5-mw-vendor.patch b/dev-vcs/git/files/git-1.8.5-mw-vendor.patch
new file mode 100644
index 000000000000..54302ef26c91
--- /dev/null
+++ b/dev-vcs/git/files/git-1.8.5-mw-vendor.patch
@@ -0,0 +1,39 @@
+diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile
+index a4b6f7a..d83df2c 100644
+--- a/contrib/mw-to-git/Makefile
++++ b/contrib/mw-to-git/Makefile
+@@ -22,7 +22,7 @@ INSTALL = install
+
+ SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL))
+ INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \
+- -s --no-print-directory instlibdir)
++ -s --no-print-directory instvendorlibdir)
+ DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
+ INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR))
+
+diff --git a/perl/Makefile b/perl/Makefile
+index 15d96fc..91348c6 100644
+--- a/perl/Makefile
++++ b/perl/Makefile
+@@ -12,7 +12,7 @@ ifndef V
+ QUIET = @
+ endif
+
+-all install instlibdir: $(makfile)
++all install instlibdir instvendorlibdir: $(makfile)
+ $(QUIET)$(MAKE) -f $(makfile) $@
+
+ clean:
+diff --git a/perl/Makefile.PL b/perl/Makefile.PL
+index 3f29ba9..c0b3508 100644
+--- a/perl/Makefile.PL
++++ b/perl/Makefile.PL
+@@ -17,6 +17,8 @@ sub MY::postamble {
+ return <<'MAKE_FRAG';
+ instlibdir:
+ @echo '$(INSTALLSITELIB)'
++instvendorlibdir:
++ @echo '$(INSTALLVENDORLIB)'
+
+ ifneq (,$(DESTDIR))
+ ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10))
diff --git a/dev-vcs/git/files/git-1.8.5-optional-cvs.patch b/dev-vcs/git/files/git-1.8.5-optional-cvs.patch
new file mode 100644
index 000000000000..aef03d842183
--- /dev/null
+++ b/dev-vcs/git/files/git-1.8.5-optional-cvs.patch
@@ -0,0 +1,362 @@
+From eadb20b065c33d46b49c8c95d8cde0c9fe7c62a4 Mon Sep 17 00:00:00 2001
+From: Robin Johnson <robbat2@gentoo.org>
+Date: Wed, 22 Aug 2012 04:25:06 +0000
+Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
+ utilities
+
+Forward-ported from 1.7.12 to current git.git v1.8.4
+Forward-ported from v1.8.4 to v1.8.5.1
+
+--- git-1.8.5.1/Makefile
++++ git-1.8.5.1/Makefile
+@@ -263,6 +263,8 @@
+ #
+ # Define NO_TCLTK if you do not want Tcl/Tk GUI.
+ #
++# Define NO_CVS if you do not want any CVS interface utilities.
++#
+ # The TCL_PATH variable governs the location of the Tcl interpreter
+ # used to optimize git-gui for your system. Only used if NO_TCLTK
+ # is not set. Defaults to the bare 'tclsh'.
+@@ -437,6 +439,7 @@
+ PROGRAM_OBJS =
+ PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -477,20 +480,21 @@
+ SCRIPT_PERL += git-add--interactive.perl
+ SCRIPT_PERL += git-difftool.perl
+ SCRIPT_PERL += git-archimport.perl
+-SCRIPT_PERL += git-cvsexportcommit.perl
+-SCRIPT_PERL += git-cvsimport.perl
+-SCRIPT_PERL += git-cvsserver.perl
+ SCRIPT_PERL += git-relink.perl
+ SCRIPT_PERL += git-send-email.perl
+ SCRIPT_PERL += git-svn.perl
+
++SCRIPT_PERL_CVS += git-cvsexportcommit.perl
++SCRIPT_PERL_CVS += git-cvsimport.perl
++SCRIPT_PERL_CVS += git-cvsserver.perl
++
+ SCRIPT_PYTHON += git-p4.py
+
+ NO_INSTALL += git-remote-testgit
+
+ # Generated files for scripts
+ SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
+-SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
++SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL) $(SCRIPT_PERL_CVS))
+ SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
+
+ SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN))
+@@ -1779,8 +1783,18 @@
+ $(join -DMAJOR= -DMINOR= -DPATCH=, $(wordlist 1,3,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
+ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
+
++_SCRIPT_PERL_BUILD =
++_SCRIPT_PERL_NOBUILD =
++
+ ifndef NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
++
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL)
++
++ifndef NO_CVS
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL_CVS)
++else # NO_CVS
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL_CVS)
++endif # NO_CVS
+
+ perl/perl.mak: perl/PM.stamp
+
+@@ -1792,7 +1806,7 @@
+ perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL
+ $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
+
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl GIT-VERSION-FILE
++$(patsubst %.perl,%,$(_SCRIPT_PERL_BUILD)): % : %.perl GIT-VERSION-FILE
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ sed -e '1{' \
+@@ -1817,14 +1831,17 @@
+ chmod +x $@+ && \
+ mv $@+ $@
+ else # NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL) $(SCRIPT_PERL_CVS) git-instaweb
++endif # NO_PERL
++
++# This is any perl scripts that were disabled it might be empty...
++$(patsubst %.perl,%,$(_SCRIPT_PERL_NOBUILD)): % : unimplemented.sh
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+ -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
+ unimplemented.sh >$@+ && \
+ chmod +x $@+ && \
+ mv $@+ $@
+-endif # NO_PERL
+
+ ifndef NO_PYTHON
+ $(SCRIPT_PYTHON_GEN): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
+--- git-1.8.5.1/t/t9200-git-cvsexportcommit.sh
++++ git-1.8.5.1/t/t9200-git-cvsexportcommit.sh
+@@ -12,6 +12,11 @@
+ test_done
+ fi
+
++if ! test_have_prereq CVS; then
++ skip_all='skipping git cvsexportcommit tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+--- git-1.8.5.1/t/t9400-git-cvsserver-server.sh
++++ git-1.8.5.1/t/t9400-git-cvsserver-server.sh
+@@ -11,9 +11,15 @@
+ . ./test-lib.sh
+
+ if ! test_have_prereq PERL; then
+- skip_all='skipping git cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
++
++if ! test_have_prereq CVS; then
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+--- git-1.8.5.1/t/t9401-git-cvsserver-crlf.sh
++++ git-1.8.5.1/t/t9401-git-cvsserver-crlf.sh
+@@ -57,15 +57,20 @@
+ return $stat
+ }
+
+-cvs >/dev/null 2>&1
+-if test $? -ne 1
++if ! test_have_prereq PERL
+ then
+- skip_all='skipping git-cvsserver tests, cvs not found'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
+-if ! test_have_prereq PERL
++if ! test_have_prereq CVS
+ then
+- skip_all='skipping git-cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++cvs >/dev/null 2>&1
++if test $? -ne 1
++then
++ skip_all='skipping git-cvsserver tests, cvs not found'
+ test_done
+ fi
+ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
+--- git-1.8.5.1/t/t9600-cvsimport.sh
++++ git-1.8.5.1/t/t9600-cvsimport.sh
+@@ -3,14 +3,25 @@
+ test_description='git cvsimport basic tests'
+ . ./lib-cvs.sh
+
+-test_expect_success PERL 'setup cvsroot environment' '
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
++test_expect_success 'setup cvsroot environment' '
+ CVSROOT=$(pwd)/cvsroot &&
+ export CVSROOT
+ '
+
+-test_expect_success PERL 'setup cvsroot' '$CVS init'
++test_expect_success 'setup cvsroot' '$CVS init'
+
+-test_expect_success PERL 'setup a cvs module' '
++test_expect_success 'setup a cvs module' '
+
+ mkdir "$CVSROOT/module" &&
+ $CVS co -d module-cvs module &&
+@@ -42,23 +53,23 @@
+ )
+ '
+
+-test_expect_success PERL 'import a trivial module' '
++test_expect_success 'import a trivial module' '
+
+ git cvsimport -a -R -z 0 -C module-git module &&
+ test_cmp module-cvs/o_fortuna module-git/o_fortuna
+
+ '
+
+-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
++test_expect_success 'pack refs' '(cd module-git && git gc)'
+
+-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
++test_expect_success 'initial import has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+ (cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+ O Fortune,
+@@ -86,7 +97,7 @@
+ )
+ '
+
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+
+ (cd module-git &&
+ git config cvsimport.trackRevisions true &&
+@@ -97,7 +108,7 @@
+
+ '
+
+-test_expect_success PERL 'update has correct .git/cvs-revisions' '
++test_expect_success 'update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+@@ -105,7 +116,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+
+ (cd module-cvs &&
+ echo 1 >tick &&
+@@ -114,7 +125,7 @@
+ )
+ '
+
+-test_expect_success PERL 'cvsimport.module config works' '
++test_expect_success 'cvsimport.module config works' '
+
+ (cd module-git &&
+ git config cvsimport.module module &&
+@@ -126,7 +137,7 @@
+
+ '
+
+-test_expect_success PERL 'second update has correct .git/cvs-revisions' '
++test_expect_success 'second update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+@@ -135,7 +146,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'import from a CVS working tree' '
++test_expect_success 'import from a CVS working tree' '
+
+ $CVS co -d import-from-wt module &&
+ (cd import-from-wt &&
+@@ -148,12 +159,12 @@
+
+ '
+
+-test_expect_success PERL 'no .git/cvs-revisions created by default' '
++test_expect_success 'no .git/cvs-revisions created by default' '
+
+ ! test -e import-from-wt/.git/cvs-revisions
+
+ '
+
+-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+
+ test_done
+--- git-1.8.5.1/t/t9601-cvsimport-vendor-branch.sh
++++ git-1.8.5.1/t/t9601-cvsimport-vendor-branch.sh
+@@ -34,6 +34,17 @@
+ test_description='git cvsimport handling of vendor branches'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9601
+
+ test_expect_success PERL 'import a module with a vendor branch' '
+--- git-1.8.5.1/t/t9602-cvsimport-branches-tags.sh
++++ git-1.8.5.1/t/t9602-cvsimport-branches-tags.sh
+@@ -6,6 +6,17 @@
+ test_description='git cvsimport handling of branches and tags'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9602
+
+ test_expect_success PERL 'import module' '
+--- git-1.8.5.1/t/t9603-cvsimport-patchsets.sh
++++ git-1.8.5.1/t/t9603-cvsimport-patchsets.sh
+@@ -14,6 +14,17 @@
+ test_description='git cvsimport testing for correct patchset estimation'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9603
+
+ test_expect_failure 'import with criss cross times on revisions' '
+--- git-1.8.5.1/t/test-lib.sh
++++ git-1.8.5.1/t/test-lib.sh
+@@ -772,6 +772,7 @@
+ esac
+
+ ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
++test -z "$NO_CVS" && test_set_prereq CVS
+ test -z "$NO_PERL" && test_set_prereq PERL
+ test -z "$NO_PYTHON" && test_set_prereq PYTHON
+ test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE
diff --git a/dev-vcs/git/files/git-1.9.0_rc3-optional-cvs.patch b/dev-vcs/git/files/git-1.9.0_rc3-optional-cvs.patch
new file mode 100644
index 000000000000..1f0796083230
--- /dev/null
+++ b/dev-vcs/git/files/git-1.9.0_rc3-optional-cvs.patch
@@ -0,0 +1,372 @@
+From eadb20b065c33d46b49c8c95d8cde0c9fe7c62a4 Mon Sep 17 00:00:00 2001
+From: Robin Johnson <robbat2@gentoo.org>
+Date: Wed, 22 Aug 2012 04:25:06 +0000
+Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
+ utilities
+
+Forward-ported from 1.7.12 to current git.git v1.8.4
+Forward-ported from v1.8.4 to v1.8.5.1
+Forward-ported from v1.8.5.3 to v1.9.0_rc3
+
+diff -Nuar git-1.9.0.rc3.orig/Makefile git-1.9.0.rc3/Makefile
+--- git-1.9.0.rc3.orig/Makefile 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/Makefile 2014-02-08 11:50:21.219488765 -0800
+@@ -263,6 +263,8 @@
+ #
+ # Define NO_TCLTK if you do not want Tcl/Tk GUI.
+ #
++# Define NO_CVS if you do not want any CVS interface utilities.
++#
+ # The TCL_PATH variable governs the location of the Tcl interpreter
+ # used to optimize git-gui for your system. Only used if NO_TCLTK
+ # is not set. Defaults to the bare 'tclsh'.
+@@ -437,6 +439,7 @@
+ PROGRAM_OBJS =
+ PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -476,20 +479,21 @@
+ SCRIPT_PERL += git-add--interactive.perl
+ SCRIPT_PERL += git-difftool.perl
+ SCRIPT_PERL += git-archimport.perl
+-SCRIPT_PERL += git-cvsexportcommit.perl
+-SCRIPT_PERL += git-cvsimport.perl
+-SCRIPT_PERL += git-cvsserver.perl
+ SCRIPT_PERL += git-relink.perl
+ SCRIPT_PERL += git-send-email.perl
+ SCRIPT_PERL += git-svn.perl
+
++SCRIPT_PERL_CVS += git-cvsexportcommit.perl
++SCRIPT_PERL_CVS += git-cvsimport.perl
++SCRIPT_PERL_CVS += git-cvsserver.perl
++
+ SCRIPT_PYTHON += git-p4.py
+
+ NO_INSTALL += git-remote-testgit
+
+ # Generated files for scripts
+ SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
+-SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
++SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL) $(SCRIPT_PERL_CVS))
+ SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
+
+ SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN))
+@@ -1776,8 +1780,18 @@
+ $(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
+ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
+
++_SCRIPT_PERL_BUILD =
++_SCRIPT_PERL_NOBUILD =
++
+ ifndef NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
++
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL)
++
++ifndef NO_CVS
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL_CVS)
++else # NO_CVS
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL_CVS)
++endif # NO_CVS
+
+ perl/perl.mak: perl/PM.stamp
+
+@@ -1790,7 +1804,7 @@
+ $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
+
+ PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ)
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
++$(patsubst %.perl,%,$(_SCRIPT_PERL_BUILD)): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
+@@ -1824,14 +1838,17 @@
+ chmod +x $@+ && \
+ mv $@+ $@
+ else # NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL) $(SCRIPT_PERL_CVS) git-instaweb
++endif # NO_PERL
++
++# This is any perl scripts that were disabled it might be empty...
++$(patsubst %.perl,%,$(_SCRIPT_PERL_NOBUILD)): % : unimplemented.sh
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+ -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
+ unimplemented.sh >$@+ && \
+ chmod +x $@+ && \
+ mv $@+ $@
+-endif # NO_PERL
+
+ ifndef NO_PYTHON
+ $(SCRIPT_PYTHON_GEN): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
+diff -Nuar git-1.9.0.rc3.orig/t/t9200-git-cvsexportcommit.sh git-1.9.0.rc3/t/t9200-git-cvsexportcommit.sh
+--- git-1.9.0.rc3.orig/t/t9200-git-cvsexportcommit.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9200-git-cvsexportcommit.sh 2014-02-08 11:49:12.243179483 -0800
+@@ -11,6 +11,11 @@
+ test_done
+ fi
+
++if ! test_have_prereq CVS; then
++ skip_all='skipping git cvsexportcommit tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff -Nuar git-1.9.0.rc3.orig/t/t9400-git-cvsserver-server.sh git-1.9.0.rc3/t/t9400-git-cvsserver-server.sh
+--- git-1.9.0.rc3.orig/t/t9400-git-cvsserver-server.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9400-git-cvsserver-server.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -11,9 +11,15 @@
+ . ./test-lib.sh
+
+ if ! test_have_prereq PERL; then
+- skip_all='skipping git cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
++
++if ! test_have_prereq CVS; then
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff -Nuar git-1.9.0.rc3.orig/t/t9401-git-cvsserver-crlf.sh git-1.9.0.rc3/t/t9401-git-cvsserver-crlf.sh
+--- git-1.9.0.rc3.orig/t/t9401-git-cvsserver-crlf.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9401-git-cvsserver-crlf.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -57,15 +57,20 @@
+ return $stat
+ }
+
+-cvs >/dev/null 2>&1
+-if test $? -ne 1
++if ! test_have_prereq PERL
+ then
+- skip_all='skipping git-cvsserver tests, cvs not found'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
+-if ! test_have_prereq PERL
++if ! test_have_prereq CVS
+ then
+- skip_all='skipping git-cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++cvs >/dev/null 2>&1
++if test $? -ne 1
++then
++ skip_all='skipping git-cvsserver tests, cvs not found'
+ test_done
+ fi
+ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
+diff -Nuar git-1.9.0.rc3.orig/t/t9600-cvsimport.sh git-1.9.0.rc3/t/t9600-cvsimport.sh
+--- git-1.9.0.rc3.orig/t/t9600-cvsimport.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9600-cvsimport.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -3,14 +3,25 @@
+ test_description='git cvsimport basic tests'
+ . ./lib-cvs.sh
+
+-test_expect_success PERL 'setup cvsroot environment' '
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
++test_expect_success 'setup cvsroot environment' '
+ CVSROOT=$(pwd)/cvsroot &&
+ export CVSROOT
+ '
+
+-test_expect_success PERL 'setup cvsroot' '$CVS init'
++test_expect_success 'setup cvsroot' '$CVS init'
+
+-test_expect_success PERL 'setup a cvs module' '
++test_expect_success 'setup a cvs module' '
+
+ mkdir "$CVSROOT/module" &&
+ $CVS co -d module-cvs module &&
+@@ -42,23 +53,23 @@
+ )
+ '
+
+-test_expect_success PERL 'import a trivial module' '
++test_expect_success 'import a trivial module' '
+
+ git cvsimport -a -R -z 0 -C module-git module &&
+ test_cmp module-cvs/o_fortuna module-git/o_fortuna
+
+ '
+
+-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
++test_expect_success 'pack refs' '(cd module-git && git gc)'
+
+-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
++test_expect_success 'initial import has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+ (cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+ O Fortune,
+@@ -86,7 +97,7 @@
+ )
+ '
+
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+
+ (cd module-git &&
+ git config cvsimport.trackRevisions true &&
+@@ -97,7 +108,7 @@
+
+ '
+
+-test_expect_success PERL 'update has correct .git/cvs-revisions' '
++test_expect_success 'update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+@@ -105,7 +116,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+
+ (cd module-cvs &&
+ echo 1 >tick &&
+@@ -114,7 +125,7 @@
+ )
+ '
+
+-test_expect_success PERL 'cvsimport.module config works' '
++test_expect_success 'cvsimport.module config works' '
+
+ (cd module-git &&
+ git config cvsimport.module module &&
+@@ -126,7 +137,7 @@
+
+ '
+
+-test_expect_success PERL 'second update has correct .git/cvs-revisions' '
++test_expect_success 'second update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+@@ -135,7 +146,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'import from a CVS working tree' '
++test_expect_success 'import from a CVS working tree' '
+
+ $CVS co -d import-from-wt module &&
+ (cd import-from-wt &&
+@@ -148,12 +159,12 @@
+
+ '
+
+-test_expect_success PERL 'no .git/cvs-revisions created by default' '
++test_expect_success 'no .git/cvs-revisions created by default' '
+
+ ! test -e import-from-wt/.git/cvs-revisions
+
+ '
+
+-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+
+ test_done
+diff -Nuar git-1.9.0.rc3.orig/t/t9601-cvsimport-vendor-branch.sh git-1.9.0.rc3/t/t9601-cvsimport-vendor-branch.sh
+--- git-1.9.0.rc3.orig/t/t9601-cvsimport-vendor-branch.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9601-cvsimport-vendor-branch.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -34,6 +34,17 @@
+ test_description='git cvsimport handling of vendor branches'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9601
+
+ test_expect_success PERL 'import a module with a vendor branch' '
+diff -Nuar git-1.9.0.rc3.orig/t/t9602-cvsimport-branches-tags.sh git-1.9.0.rc3/t/t9602-cvsimport-branches-tags.sh
+--- git-1.9.0.rc3.orig/t/t9602-cvsimport-branches-tags.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9602-cvsimport-branches-tags.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -6,6 +6,17 @@
+ test_description='git cvsimport handling of branches and tags'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9602
+
+ test_expect_success PERL 'import module' '
+diff -Nuar git-1.9.0.rc3.orig/t/t9603-cvsimport-patchsets.sh git-1.9.0.rc3/t/t9603-cvsimport-patchsets.sh
+--- git-1.9.0.rc3.orig/t/t9603-cvsimport-patchsets.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/t9603-cvsimport-patchsets.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -14,6 +14,17 @@
+ test_description='git cvsimport testing for correct patchset estimation'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9603
+
+ test_expect_failure 'import with criss cross times on revisions' '
+diff -Nuar git-1.9.0.rc3.orig/t/test-lib.sh git-1.9.0.rc3/t/test-lib.sh
+--- git-1.9.0.rc3.orig/t/test-lib.sh 2014-02-07 12:45:45.000000000 -0800
++++ git-1.9.0.rc3/t/test-lib.sh 2014-02-08 11:49:12.244179502 -0800
+@@ -772,6 +772,7 @@
+ esac
+
+ ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
++test -z "$NO_CVS" && test_set_prereq CVS
+ test -z "$NO_PERL" && test_set_prereq PERL
+ test -z "$NO_PYTHON" && test_set_prereq PYTHON
+ test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE
diff --git a/dev-vcs/git/files/git-2.0.0-r2-optional-cvs.patch b/dev-vcs/git/files/git-2.0.0-r2-optional-cvs.patch
new file mode 100644
index 000000000000..b2d8e5c01c85
--- /dev/null
+++ b/dev-vcs/git/files/git-2.0.0-r2-optional-cvs.patch
@@ -0,0 +1,375 @@
+From e19ad5a8492d83db79a09b459cb17ccee78e0001 Mon Sep 17 00:00:00 2001
+From: Robin Johnson <robbat2@gentoo.org>
+Date: Fri, 25 Apr 2014 12:30:42 +0200
+Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
+ utilities
+
+Forward-ported from 1.7.12 to current git.git v1.8.4
+Forward-ported from v1.8.4 to v1.8.5.1
+Forward-ported from v1.8.5.3 to v1.9.0_rc3
+Forward-ported from 1.9.0_rc3 to current git.git v2.0.0_rc0
+Forward-ported from v2.0.0_rc0 to v2.0.0
+
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/Makefile git-2.0.0/Makefile
+--- git-2.0.0.orig/Makefile 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/Makefile 2014-05-28 16:50:10.148376954 -0700
+@@ -255,6 +255,8 @@
+ #
+ # Define NO_TCLTK if you do not want Tcl/Tk GUI.
+ #
++# Define NO_CVS if you do not want any CVS interface utilities.
++#
+ # The TCL_PATH variable governs the location of the Tcl interpreter
+ # used to optimize git-gui for your system. Only used if NO_TCLTK
+ # is not set. Defaults to the bare 'tclsh'.
+@@ -436,6 +438,7 @@
+ PROGRAM_OBJS =
+ PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -475,20 +478,21 @@
+ SCRIPT_PERL += git-add--interactive.perl
+ SCRIPT_PERL += git-difftool.perl
+ SCRIPT_PERL += git-archimport.perl
+-SCRIPT_PERL += git-cvsexportcommit.perl
+-SCRIPT_PERL += git-cvsimport.perl
+-SCRIPT_PERL += git-cvsserver.perl
+ SCRIPT_PERL += git-relink.perl
+ SCRIPT_PERL += git-send-email.perl
+ SCRIPT_PERL += git-svn.perl
+
++SCRIPT_PERL_CVS += git-cvsexportcommit.perl
++SCRIPT_PERL_CVS += git-cvsimport.perl
++SCRIPT_PERL_CVS += git-cvsserver.perl
++
+ SCRIPT_PYTHON += git-p4.py
+
+ NO_INSTALL += git-remote-testgit
+
+ # Generated files for scripts
+ SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
+-SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
++SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL) $(SCRIPT_PERL_CVS))
+ SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
+
+ SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN))
+@@ -1779,8 +1783,18 @@
+ $(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
+ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
+
++_SCRIPT_PERL_BUILD =
++_SCRIPT_PERL_NOBUILD =
++
+ ifndef NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
++
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL)
++
++ifndef NO_CVS
++_SCRIPT_PERL_BUILD += $(SCRIPT_PERL_CVS)
++else # NO_CVS
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL_CVS)
++endif # NO_CVS
+
+ perl/perl.mak: perl/PM.stamp
+
+@@ -1793,7 +1807,7 @@
+ $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
+
+ PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ)
+-$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
++$(patsubst %.perl,%,$(_SCRIPT_PERL_BUILD)): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
+@@ -1826,15 +1840,18 @@
+ $(QUIET_GEN)$(cmd_munge_script) && \
+ chmod +x $@+ && \
+ mv $@+ $@
+ else # NO_PERL
+-$(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
++_SCRIPT_PERL_NOBUILD += $(SCRIPT_PERL) $(SCRIPT_PERL_CVS) git-instaweb
++endif # NO_PERL
++
++# This is any perl scripts that were disabled it might be empty...
++$(patsubst %.perl,%,$(_SCRIPT_PERL_NOBUILD)): % : unimplemented.sh
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+ -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
+ unimplemented.sh >$@+ && \
+ chmod +x $@+ && \
+ mv $@+ $@
+-endif # NO_PERL
+
+ ifndef NO_PYTHON
+ $(SCRIPT_PYTHON_GEN): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9200-git-cvsexportcommit.sh git-2.0.0/t/t9200-git-cvsexportcommit.sh
+--- git-2.0.0.orig/t/t9200-git-cvsexportcommit.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9200-git-cvsexportcommit.sh 2014-05-28 16:47:41.812727825 -0700
+@@ -11,6 +11,11 @@
+ test_done
+ fi
+
++if ! test_have_prereq CVS; then
++ skip_all='skipping git cvsexportcommit tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9400-git-cvsserver-server.sh git-2.0.0/t/t9400-git-cvsserver-server.sh
+--- git-2.0.0.orig/t/t9400-git-cvsserver-server.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9400-git-cvsserver-server.sh 2014-05-28 16:47:41.812727825 -0700
+@@ -11,9 +11,15 @@
+ . ./test-lib.sh
+
+ if ! test_have_prereq PERL; then
+- skip_all='skipping git cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
++
++if ! test_have_prereq CVS; then
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9401-git-cvsserver-crlf.sh git-2.0.0/t/t9401-git-cvsserver-crlf.sh
+--- git-2.0.0.orig/t/t9401-git-cvsserver-crlf.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9401-git-cvsserver-crlf.sh 2014-05-28 16:47:41.812727825 -0700
+@@ -57,15 +57,20 @@
+ return $stat
+ }
+
+-cvs >/dev/null 2>&1
+-if test $? -ne 1
++if ! test_have_prereq PERL
+ then
+- skip_all='skipping git-cvsserver tests, cvs not found'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
+-if ! test_have_prereq PERL
++if ! test_have_prereq CVS
+ then
+- skip_all='skipping git-cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++cvs >/dev/null 2>&1
++if test $? -ne 1
++then
++ skip_all='skipping git-cvsserver tests, cvs not found'
+ test_done
+ fi
+ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9600-cvsimport.sh git-2.0.0/t/t9600-cvsimport.sh
+--- git-2.0.0.orig/t/t9600-cvsimport.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9600-cvsimport.sh 2014-05-28 16:47:41.813727843 -0700
+@@ -3,14 +3,25 @@
+ test_description='git cvsimport basic tests'
+ . ./lib-cvs.sh
+
+-test_expect_success PERL 'setup cvsroot environment' '
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
++test_expect_success 'setup cvsroot environment' '
+ CVSROOT=$(pwd)/cvsroot &&
+ export CVSROOT
+ '
+
+-test_expect_success PERL 'setup cvsroot' '$CVS init'
++test_expect_success 'setup cvsroot' '$CVS init'
+
+-test_expect_success PERL 'setup a cvs module' '
++test_expect_success 'setup a cvs module' '
+
+ mkdir "$CVSROOT/module" &&
+ $CVS co -d module-cvs module &&
+@@ -42,23 +53,23 @@
+ )
+ '
+
+-test_expect_success PERL 'import a trivial module' '
++test_expect_success 'import a trivial module' '
+
+ git cvsimport -a -R -z 0 -C module-git module &&
+ test_cmp module-cvs/o_fortuna module-git/o_fortuna
+
+ '
+
+-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
++test_expect_success 'pack refs' '(cd module-git && git gc)'
+
+-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
++test_expect_success 'initial import has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+ (cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+ O Fortune,
+@@ -86,7 +97,7 @@
+ )
+ '
+
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+
+ (cd module-git &&
+ git config cvsimport.trackRevisions true &&
+@@ -97,7 +108,7 @@
+
+ '
+
+-test_expect_success PERL 'update has correct .git/cvs-revisions' '
++test_expect_success 'update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+@@ -105,7 +116,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+
+ (cd module-cvs &&
+ echo 1 >tick &&
+@@ -114,7 +125,7 @@
+ )
+ '
+
+-test_expect_success PERL 'cvsimport.module config works' '
++test_expect_success 'cvsimport.module config works' '
+
+ (cd module-git &&
+ git config cvsimport.module module &&
+@@ -126,7 +137,7 @@
+
+ '
+
+-test_expect_success PERL 'second update has correct .git/cvs-revisions' '
++test_expect_success 'second update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+@@ -135,7 +146,7 @@
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'import from a CVS working tree' '
++test_expect_success 'import from a CVS working tree' '
+
+ $CVS co -d import-from-wt module &&
+ (cd import-from-wt &&
+@@ -148,12 +159,12 @@
+
+ '
+
+-test_expect_success PERL 'no .git/cvs-revisions created by default' '
++test_expect_success 'no .git/cvs-revisions created by default' '
+
+ ! test -e import-from-wt/.git/cvs-revisions
+
+ '
+
+-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+
+ test_done
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9601-cvsimport-vendor-branch.sh git-2.0.0/t/t9601-cvsimport-vendor-branch.sh
+--- git-2.0.0.orig/t/t9601-cvsimport-vendor-branch.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9601-cvsimport-vendor-branch.sh 2014-05-28 16:47:41.813727843 -0700
+@@ -34,6 +34,17 @@
+ test_description='git cvsimport handling of vendor branches'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9601
+
+ test_expect_success PERL 'import a module with a vendor branch' '
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9602-cvsimport-branches-tags.sh git-2.0.0/t/t9602-cvsimport-branches-tags.sh
+--- git-2.0.0.orig/t/t9602-cvsimport-branches-tags.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9602-cvsimport-branches-tags.sh 2014-05-28 16:47:41.813727843 -0700
+@@ -6,6 +6,17 @@
+ test_description='git cvsimport handling of branches and tags'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9602
+
+ test_expect_success PERL 'import module' '
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/t9603-cvsimport-patchsets.sh git-2.0.0/t/t9603-cvsimport-patchsets.sh
+--- git-2.0.0.orig/t/t9603-cvsimport-patchsets.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/t9603-cvsimport-patchsets.sh 2014-05-28 16:47:41.813727843 -0700
+@@ -14,6 +14,17 @@
+ test_description='git cvsimport testing for correct patchset estimation'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9603
+
+ test_expect_failure 'import with criss cross times on revisions' '
+diff -Nuar --exclude '*.orig' --exclude '*.rej' git-2.0.0.orig/t/test-lib.sh git-2.0.0/t/test-lib.sh
+--- git-2.0.0.orig/t/test-lib.sh 2014-05-28 12:10:36.000000000 -0700
++++ git-2.0.0/t/test-lib.sh 2014-05-28 16:47:41.813727843 -0700
+@@ -777,6 +777,7 @@
+ esac
+
+ ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
++test -z "$NO_CVS" && test_set_prereq CVS
+ test -z "$NO_PERL" && test_set_prereq PERL
+ test -z "$NO_PYTHON" && test_set_prereq PYTHON
+ test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE
diff --git a/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch b/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch
new file mode 100644
index 000000000000..b20b889110eb
--- /dev/null
+++ b/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch
@@ -0,0 +1,11 @@
+--- git-2.2.0/contrib/svn-fe/Makefile
++++ git-2.2.0/contrib/svn-fe/Makefile
+@@ -74,7 +74,7 @@
+ endif
+
+ svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(XDIFF_LIB) $(GIT_LIB)
+- $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(EXTLIBS) -o $@ svn-fe.o $(LIBS)
++ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ svn-fe.o $(LIBS) $(EXTLIBS)
+
+ svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h
+ $(QUIET_CC)$(CC) $(CFLAGS) -I../../vcs-svn -o $*.o -c $<
diff --git a/dev-vcs/git/files/git-2.2.2-optional-cvs.patch b/dev-vcs/git/files/git-2.2.2-optional-cvs.patch
new file mode 100644
index 000000000000..af815e239480
--- /dev/null
+++ b/dev-vcs/git/files/git-2.2.2-optional-cvs.patch
@@ -0,0 +1,454 @@
+From 12b82e03b971da618f19d0194dcf19a77b273766 Mon Sep 17 00:00:00 2001
+From: Robin Johnson <robbat2@gentoo.org>
+Date: Wed, 21 Jan 2015 20:48:03 +0100
+Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
+ utilities
+
+Forward-ported from 1.7.12 to current git.git v1.8.4
+Forward-ported from v1.8.4 to v1.8.5.1
+Forward-ported from v1.8.5.3 to v1.9.0_rc3
+Forward-ported from 1.9.0_rc3 to current git.git v2.0.0_rc0
+Forward-ported from v2.0.0_rc0 to v2.0.0
+Forward-ported from v2.0.0 to v2.2.2
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ Makefile | 51 ++++++++++++++++++++++++++++----------
+ t/t9200-git-cvsexportcommit.sh | 5 ++++
+ t/t9400-git-cvsserver-server.sh | 8 +++++-
+ t/t9401-git-cvsserver-crlf.sh | 15 +++++++----
+ t/t9600-cvsimport.sh | 41 +++++++++++++++++++-----------
+ t/t9601-cvsimport-vendor-branch.sh | 11 ++++++++
+ t/t9602-cvsimport-branches-tags.sh | 11 ++++++++
+ t/t9603-cvsimport-patchsets.sh | 11 ++++++++
+ t/test-lib.sh | 1 +
+ 9 files changed, 120 insertions(+), 34 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 7482a4d..a644c8d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -254,6 +254,8 @@ all::
+ #
+ # Define NO_TCLTK if you do not want Tcl/Tk GUI.
+ #
++# Define NO_CVS if you do not want any CVS interface utilities.
++#
+ # The TCL_PATH variable governs the location of the Tcl interpreter
+ # used to optimize git-gui for your system. Only used if NO_TCLTK
+ # is not set. Defaults to the bare 'tclsh'.
+@@ -433,6 +435,7 @@ LIB_OBJS =
+ PROGRAM_OBJS =
+ PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -472,13 +475,14 @@ SCRIPT_LIB += git-sh-i18n
+ SCRIPT_PERL += git-add--interactive.perl
+ SCRIPT_PERL += git-difftool.perl
+ SCRIPT_PERL += git-archimport.perl
+-SCRIPT_PERL += git-cvsexportcommit.perl
+-SCRIPT_PERL += git-cvsimport.perl
+-SCRIPT_PERL += git-cvsserver.perl
+ SCRIPT_PERL += git-relink.perl
+ SCRIPT_PERL += git-send-email.perl
+ SCRIPT_PERL += git-svn.perl
+
++SCRIPT_PERL_CVS += git-cvsexportcommit.perl
++SCRIPT_PERL_CVS += git-cvsimport.perl
++SCRIPT_PERL_CVS += git-cvsserver.perl
++
+ SCRIPT_PYTHON += git-p4.py
+
+ NO_INSTALL += git-remote-testgit
+@@ -486,24 +490,26 @@ NO_INSTALL += git-remote-testgit
+ # Generated files for scripts
+ SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
+ SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
++SCRIPT_PERL_CVS_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL_CVS))
+ SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
+
+ SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN))
+ SCRIPT_PERL_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_GEN))
++SCRIPT_PERL_CVS_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_CVS_GEN))
+ SCRIPT_PYTHON_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PYTHON_GEN))
+
+ # Individual rules to allow e.g.
+ # "make -C ../.. SCRIPT_PERL=contrib/foo/bar.perl build-perl-script"
+ # from subdirectories like contrib/*/
+ .PHONY: build-perl-script build-sh-script build-python-script
+-build-perl-script: $(SCRIPT_PERL_GEN)
++build-perl-script: $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
+ build-sh-script: $(SCRIPT_SH_GEN)
+ build-python-script: $(SCRIPT_PYTHON_GEN)
+
+ .PHONY: install-perl-script install-sh-script install-python-script
+ install-sh-script: $(SCRIPT_SH_INS)
+ $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+-install-perl-script: $(SCRIPT_PERL_INS)
++install-perl-script: $(SCRIPT_PERL_INS) $(SCRIPT_PERL_CVS_INS)
+ $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+ install-python-script: $(SCRIPT_PYTHON_INS)
+ $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+@@ -512,12 +518,13 @@ install-python-script: $(SCRIPT_PYTHON_INS)
+ clean-sh-script:
+ $(RM) $(SCRIPT_SH_GEN)
+ clean-perl-script:
+- $(RM) $(SCRIPT_PERL_GEN)
++ $(RM) $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
+ clean-python-script:
+ $(RM) $(SCRIPT_PYTHON_GEN)
+
+ SCRIPTS = $(SCRIPT_SH_INS) \
+ $(SCRIPT_PERL_INS) \
++ $(SCRIPT_PERL_CVS_INS) \
+ $(SCRIPT_PYTHON_INS) \
+ git-instaweb
+
+@@ -1677,10 +1684,24 @@ git.res: git.rc GIT-VERSION-FILE
+ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
+
+ # This makes sure we depend on the NO_PERL setting itself.
+-$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS
++$(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN): GIT-BUILD-OPTIONS
++
++_SCRIPT_PERL_GEN =
++_SCRIPT_PERL_NOGEN =
+
+ ifndef NO_PERL
+-$(SCRIPT_PERL_GEN): perl/perl.mak
++
++_SCRIPT_PERL_GEN = $(SCRIPT_PERL_GEN)
++
++ifndef NO_CVS
++_SCRIPT_PERL_GEN += $(SCRIPT_PERL_CVS_GEN)
++else
++_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_CVS_GEN)
++_REASON = NO_CVS
++_REASON_CONTENT = $(NO_CVS)
++endif # NO_CVS
++
++$(_SCRIPT_PERL_GEN): perl/perl.mak
+
+ perl/perl.mak: perl/PM.stamp
+
+@@ -1693,7 +1714,7 @@ perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL
+ $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
+
+ PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ)
+-$(SCRIPT_PERL_GEN): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
++$(_SCRIPT_PERL_GEN): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
+@@ -1727,14 +1748,18 @@ git-instaweb: git-instaweb.sh gitweb GIT-SCRIPT-DEFINES
+ chmod +x $@+ && \
+ mv $@+ $@
+ else # NO_PERL
+-$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh
++_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN) git-instaweb
++_REASON = NO_PERL
++_REASON_CONTENT = $(NO_PERL)
++endif # NO_PERL
++
++$(_SCRIPT_PERL_NOGEN): % : unimplemented.sh
+ $(QUIET_GEN)$(RM) $@ $@+ && \
+ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+- -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
++ -e 's|@@REASON@@|$(_REASON)=$(_REASON_CONTENT)|g' \
+ unimplemented.sh >$@+ && \
+ chmod +x $@+ && \
+ mv $@+ $@
+-endif # NO_PERL
+
+ # This makes sure we depend on the NO_PYTHON setting itself.
+ $(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS
+@@ -1964,7 +1989,7 @@ XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
+ XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl
+ LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H)
+ LOCALIZED_SH = $(SCRIPT_SH)
+-LOCALIZED_PERL = $(SCRIPT_PERL)
++LOCALIZED_PERL = $(SCRIPT_PERL) $(SCRIPT_PERL_CVS)
+
+ ifdef XGETTEXT_INCLUDE_TESTS
+ LOCALIZED_C += t/t0200/test.c
+diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
+index 812c9cd..906532a 100755
+--- a/t/t9200-git-cvsexportcommit.sh
++++ b/t/t9200-git-cvsexportcommit.sh
+@@ -11,6 +11,11 @@ if ! test_have_prereq PERL; then
+ test_done
+ fi
+
++if ! test_have_prereq CVS; then
++ skip_all='skipping git cvsexportcommit tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
+index 6146c3f..2a675e3 100755
+--- a/t/t9400-git-cvsserver-server.sh
++++ b/t/t9400-git-cvsserver-server.sh
+@@ -11,9 +11,15 @@ cvs CLI client via git-cvsserver server'
+ . ./test-lib.sh
+
+ if ! test_have_prereq PERL; then
+- skip_all='skipping git cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
++
++if ! test_have_prereq CVS; then
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh
+index 5a4ed28..04814cb 100755
+--- a/t/t9401-git-cvsserver-crlf.sh
++++ b/t/t9401-git-cvsserver-crlf.sh
+@@ -57,15 +57,20 @@ check_status_options() {
+ return $stat
+ }
+
+-cvs >/dev/null 2>&1
+-if test $? -ne 1
++if ! test_have_prereq PERL
+ then
+- skip_all='skipping git-cvsserver tests, cvs not found'
++ skip_all='skipping git-cvsserver tests, perl not available'
+ test_done
+ fi
+-if ! test_have_prereq PERL
++if ! test_have_prereq CVS
+ then
+- skip_all='skipping git-cvsserver tests, perl not available'
++ skip_all='skipping git-cvsserver tests, cvs not available'
++ test_done
++fi
++cvs >/dev/null 2>&1
++if test $? -ne 1
++then
++ skip_all='skipping git-cvsserver tests, cvs not found'
+ test_done
+ fi
+ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
+diff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh
+index 4c384ff..d601f32 100755
+--- a/t/t9600-cvsimport.sh
++++ b/t/t9600-cvsimport.sh
+@@ -3,14 +3,25 @@
+ test_description='git cvsimport basic tests'
+ . ./lib-cvs.sh
+
+-test_expect_success PERL 'setup cvsroot environment' '
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
++test_expect_success 'setup cvsroot environment' '
+ CVSROOT=$(pwd)/cvsroot &&
+ export CVSROOT
+ '
+
+-test_expect_success PERL 'setup cvsroot' '$CVS init'
++test_expect_success 'setup cvsroot' '$CVS init'
+
+-test_expect_success PERL 'setup a cvs module' '
++test_expect_success 'setup a cvs module' '
+
+ mkdir "$CVSROOT/module" &&
+ $CVS co -d module-cvs module &&
+@@ -42,23 +53,23 @@ EOF
+ )
+ '
+
+-test_expect_success PERL 'import a trivial module' '
++test_expect_success 'import a trivial module' '
+
+ git cvsimport -a -R -z 0 -C module-git module &&
+ test_cmp module-cvs/o_fortuna module-git/o_fortuna
+
+ '
+
+-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
++test_expect_success 'pack refs' '(cd module-git && git gc)'
+
+-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
++test_expect_success 'initial import has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+ (cd module-cvs &&
+ cat <<EOF >o_fortuna &&
+ O Fortune,
+@@ -86,7 +97,7 @@ EOF
+ )
+ '
+
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+
+ (cd module-git &&
+ git config cvsimport.trackRevisions true &&
+@@ -97,7 +108,7 @@ test_expect_success PERL 'update git module' '
+
+ '
+
+-test_expect_success PERL 'update has correct .git/cvs-revisions' '
++test_expect_success 'update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+@@ -105,7 +116,7 @@ test_expect_success PERL 'update has correct .git/cvs-revisions' '
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+
+ (cd module-cvs &&
+ echo 1 >tick &&
+@@ -114,7 +125,7 @@ test_expect_success PERL 'update cvs module' '
+ )
+ '
+
+-test_expect_success PERL 'cvsimport.module config works' '
++test_expect_success 'cvsimport.module config works' '
+
+ (cd module-git &&
+ git config cvsimport.module module &&
+@@ -126,7 +137,7 @@ test_expect_success PERL 'cvsimport.module config works' '
+
+ '
+
+-test_expect_success PERL 'second update has correct .git/cvs-revisions' '
++test_expect_success 'second update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+@@ -135,7 +146,7 @@ test_expect_success PERL 'second update has correct .git/cvs-revisions' '
+ test_cmp expected module-git/.git/cvs-revisions
+ '
+
+-test_expect_success PERL 'import from a CVS working tree' '
++test_expect_success 'import from a CVS working tree' '
+
+ $CVS co -d import-from-wt module &&
+ (cd import-from-wt &&
+@@ -148,12 +159,12 @@ test_expect_success PERL 'import from a CVS working tree' '
+
+ '
+
+-test_expect_success PERL 'no .git/cvs-revisions created by default' '
++test_expect_success 'no .git/cvs-revisions created by default' '
+
+ ! test -e import-from-wt/.git/cvs-revisions
+
+ '
+
+-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+
+ test_done
+diff --git a/t/t9601-cvsimport-vendor-branch.sh b/t/t9601-cvsimport-vendor-branch.sh
+index 827d39f..d730a41 100755
+--- a/t/t9601-cvsimport-vendor-branch.sh
++++ b/t/t9601-cvsimport-vendor-branch.sh
+@@ -34,6 +34,17 @@
+ test_description='git cvsimport handling of vendor branches'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9601
+
+ test_expect_success PERL 'import a module with a vendor branch' '
+diff --git a/t/t9602-cvsimport-branches-tags.sh b/t/t9602-cvsimport-branches-tags.sh
+index e1db323..68f0974 100755
+--- a/t/t9602-cvsimport-branches-tags.sh
++++ b/t/t9602-cvsimport-branches-tags.sh
+@@ -6,6 +6,17 @@
+ test_description='git cvsimport handling of branches and tags'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9602
+
+ test_expect_success PERL 'import module' '
+diff --git a/t/t9603-cvsimport-patchsets.sh b/t/t9603-cvsimport-patchsets.sh
+index c4c3c49..9b2957d 100755
+--- a/t/t9603-cvsimport-patchsets.sh
++++ b/t/t9603-cvsimport-patchsets.sh
+@@ -14,6 +14,17 @@
+ test_description='git cvsimport testing for correct patchset estimation'
+ . ./lib-cvs.sh
+
++if ! test_have_prereq PERL
++then
++ skip_all='skipping git cvsimport tests, perl not available'
++ test_done
++fi
++if ! test_have_prereq CVS
++then
++ skip_all='skipping git cvsimport tests, cvs not available'
++ test_done
++fi
++
+ setup_cvs_test_repository t9603
+
+ test_expect_failure PERL 'import with criss cross times on revisions' '
+diff --git a/t/test-lib.sh b/t/test-lib.sh
+index 79e8a33..c7c4b48 100644
+--- a/t/test-lib.sh
++++ b/t/test-lib.sh
+@@ -929,6 +929,7 @@ case $(uname -s) in
+ esac
+
+ ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
++test -z "$NO_CVS" && test_set_prereq CVS
+ test -z "$NO_PERL" && test_set_prereq PERL
+ test -z "$NO_PYTHON" && test_set_prereq PYTHON
+ test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE
+--
+2.2.1
+
diff --git a/dev-vcs/git/files/git-daemon-r1.initd b/dev-vcs/git/files/git-daemon-r1.initd
new file mode 100644
index 000000000000..b6ecfd9c508c
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon-r1.initd
@@ -0,0 +1,13 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+pidfile="/var/run/git-daemon.pid"
+command="/usr/bin/git"
+command_args="daemon ${GITDAEMON_OPTS}"
+start_stop_daemon_args="-e HOME= -e XDG_CONFIG_HOME= -b -m -p ${pidfile} -u ${GIT_USER:-nobody}:${GIT_GROUP:-nobody}"
+
+depend() {
+ use logger
+}
diff --git a/dev-vcs/git/files/git-daemon.confd b/dev-vcs/git/files/git-daemon.confd
new file mode 100644
index 000000000000..69b209ff18cc
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.confd
@@ -0,0 +1,19 @@
+# conf.d file for git-daemon
+#
+# Please check man 1 git-daemon for more information about the options
+# git-daemon accepts. You MUST edit this to include your repositories you wish
+# to serve.
+#
+# Some of the meaningful options are:
+# --syslog --- Enables syslog logging
+# --verbose --- Enables verbose logging
+# --export-all --- Exports all repositories
+# --port=XXXX --- Starts in port XXXX instead of 9418
+#
+GITDAEMON_OPTS="--syslog --base-path=/var/git"
+
+# To run an anonymous git safely, the following user should be able to only
+# read your Git repositories. It should not be able to write to anywhere on
+# your system, esp. not the repositories.
+GIT_USER="nobody"
+GIT_GROUP="nobody"
diff --git a/dev-vcs/git/files/git-daemon.socket b/dev-vcs/git/files/git-daemon.socket
new file mode 100644
index 000000000000..3dec01d21653
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Git Activation Socket
+
+[Socket]
+ListenStream=9418
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/dev-vcs/git/files/git-daemon.xinetd b/dev-vcs/git/files/git-daemon.xinetd
new file mode 100644
index 000000000000..02c938d4bd6c
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.xinetd
@@ -0,0 +1,13 @@
+service git-daemon
+{
+ disable = yes
+ socket_type = stream
+ wait = no
+ user = nobody
+ type = UNLISTED
+ protocol = tcp
+ log_on_failure += USERID
+ port = 9418
+ server = /usr/bin/git
+ server_args = daemon --inetd --syslog --export-all --base-path=/var/git
+}
diff --git a/dev-vcs/git/files/git-daemon_at.service b/dev-vcs/git/files/git-daemon_at.service
new file mode 100644
index 000000000000..2a080d4e7d8f
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon_at.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Git Repositories Server Daemon
+Documentation=man:git-daemon(1)
+
+[Service]
+User=nobody
+Group=nobody
+EnvironmentFile=/etc/conf.d/git-daemon
+# Ignore non-zero exit status, access error makes git-daemon return them
+ExecStart=-/usr/libexec/git-core/git-daemon --inetd --base-path=/var/git --verbose $GITDAEMON_OPTS
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal
diff --git a/dev-vcs/git/git-1.8.5.6.ebuild b/dev-vcs/git/git-1.8.5.6.ebuild
new file mode 100644
index 000000000000..35cb3cba4fb3
--- /dev/null
+++ b/dev-vcs/git/git-1.8.5.6.ebuild
@@ -0,0 +1,641 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="gz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-1.8.5-optional-cvs.patch
+
+ # honor and correctly quote DISTDIR (from upstream git master)
+ epatch "${FILESDIR}"/git-1.8.5-mw-destdir.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ git_emake EXTLIBS="${EXTLIBS}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ # Not really a bash-completion file (bug #477920)
+ dodoc contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # git-diffall
+ dobin contrib/diffall/git-diffall
+ newdoc contrib/diffall/README git-diffall.txt
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ # remote-helpers
+ if use python ; then
+ python_scriptinto /usr/libexec/git-core/
+ python_doscript "${S}"/contrib/remote-helpers/git-remote-{bzr,hg}
+ python_optimize
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # diffall - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats vim workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/bash-completion/git-prompt for Git bash prompt"
+ einfo "Note that the prompt bash code is now in the seperate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-1.9.5.ebuild b/dev-vcs/git/git-1.9.5.ebuild
new file mode 100644
index 000000000000..a6dbd35c558c
--- /dev/null
+++ b/dev-vcs/git/git-1.9.5.ebuild
@@ -0,0 +1,640 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="gz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-1.9.0_rc3-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ git_emake EXTLIBS="${EXTLIBS}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # git-diffall
+ dobin contrib/diffall/git-diffall
+ newdoc contrib/diffall/README git-diffall.txt
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ # remote-helpers
+ if use python ; then
+ python_scriptinto /usr/libexec/git-core/
+ python_doscript "${S}"/contrib/remote-helpers/git-remote-{bzr,hg}
+ python_optimize
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # diffall - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats vim workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.0.5.ebuild b/dev-vcs/git/git-2.0.5.ebuild
new file mode 100644
index 000000000000..5f98b89b2706
--- /dev/null
+++ b/dev-vcs/git/git-2.0.5.ebuild
@@ -0,0 +1,639 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.0.0-r2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # git-diffall
+ dobin contrib/diffall/git-diffall
+ newdoc contrib/diffall/README git-diffall.txt
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # diffall - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats vim workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.1.4.ebuild b/dev-vcs/git/git-2.1.4.ebuild
new file mode 100644
index 000000000000..99af16d8ff14
--- /dev/null
+++ b/dev-vcs/git/git-2.1.4.ebuild
@@ -0,0 +1,635 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.0.0-r2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.2.2.ebuild b/dev-vcs/git/git-2.2.2.ebuild
new file mode 100644
index 000000000000..e08073637cb2
--- /dev/null
+++ b/dev-vcs/git/git-2.2.2.ebuild
@@ -0,0 +1,637 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.3.6.ebuild b/dev-vcs/git/git-2.3.6.ebuild
new file mode 100644
index 000000000000..a9e214a5586b
--- /dev/null
+++ b/dev-vcs/git/git-2.3.6.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.3.8.ebuild b/dev-vcs/git/git-2.3.8.ebuild
new file mode 100644
index 000000000000..57119c41ba27
--- /dev/null
+++ b/dev-vcs/git/git-2.3.8.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.4.6.ebuild b/dev-vcs/git/git-2.4.6.ebuild
new file mode 100644
index 000000000000..353af845b602
--- /dev/null
+++ b/dev-vcs/git/git-2.4.6.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb \
+ || die "emake gitweb (cgi) failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.4.7.ebuild b/dev-vcs/git/git-2.4.7.ebuild
new file mode 100644
index 000000000000..51d72b78d133
--- /dev/null
+++ b/dev-vcs/git/git-2.4.7.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb \
+ || die "emake gitweb (cgi) failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.4.8.ebuild b/dev-vcs/git/git-2.4.8.ebuild
new file mode 100644
index 000000000000..51d72b78d133
--- /dev/null
+++ b/dev-vcs/git/git-2.4.8.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb \
+ || die "emake gitweb (cgi) failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-2.5.0.ebuild b/dev-vcs/git/git-2.5.0.ebuild
new file mode 100644
index 000000000000..51d72b78d133
--- /dev/null
+++ b/dev-vcs/git/git-2.5.0.ebuild
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk:= )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts+=" BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts+=" PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts+=" NO_EXPAT=YesPlease"
+ else
+ myopts+=" NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts+=" INSTALL=install TAR=tar"
+ myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts+=" SANE_TOOL_PATH="
+ myopts+=" OLD_ICONV="
+ myopts+=" NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts+=" NO_ICONV=YesPlease"
+ use nls \
+ || myopts+=" NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts+=" NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts+=" USE_LIBPCRE=yes" \
+ && extlibs+=" -lpcre"
+ use perl \
+ && myopts+=" INSTALLDIRS=vendor" \
+ || myopts+=" NO_PERL=YesPlease"
+ use python \
+ || myopts+=" NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts+=" NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts+=" NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts+=" NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts+=" NO_MMAP=YesPlease"
+# myopts+=" NO_IPV6=YesPlease"
+# myopts+=" NO_STRLCPY=YesPlease"
+# myopts+=" NO_MEMMEM=YesPlease"
+# myopts+=" NO_MKDTEMP=YesPlease"
+# myopts+=" NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts+=" NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts+=" NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts+=" ASCIIDOC8=YesPlease"
+ myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts+=" NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb \
+ || die "emake gitweb (cgi) failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled="" #t7004-tag.sh" #520270
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-9999-r1.ebuild b/dev-vcs/git/git-9999-r1.ebuild
new file mode 100644
index 000000000000..33e56c7af66d
--- /dev/null
+++ b/dev-vcs/git/git-9999-r1.ebuild
@@ -0,0 +1,637 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=maint
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-9999-r2.ebuild b/dev-vcs/git/git-9999-r2.ebuild
new file mode 100644
index 000000000000..1de365110da5
--- /dev/null
+++ b/dev-vcs/git/git-9999-r2.ebuild
@@ -0,0 +1,637 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=next
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-9999-r3.ebuild b/dev-vcs/git/git-9999-r3.ebuild
new file mode 100644
index 000000000000..ce40cc021598
--- /dev/null
+++ b/dev-vcs/git/git-9999-r3.ebuild
@@ -0,0 +1,637 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/git-9999.ebuild b/dev-vcs/git/git-9999.ebuild
new file mode 100644
index 000000000000..af5415ec077e
--- /dev/null
+++ b/dev-vcs/git/git-9999.ebuild
@@ -0,0 +1,637 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=master
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER=${MY_PV}
+
+DESCRIPTION="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI_SUFFIX="xz"
+ SRC_URI_GOOG="http://git-core.googlecode.com/files"
+ SRC_URI_KORG="mirror://kernel/software/scm/git"
+ SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ doc? (
+ ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ pcre? ( dev-libs/libpcre )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )
+ gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+ gpg? ( app-crypt/gnupg )
+ mediawiki? (
+ dev-perl/HTML-Tree
+ dev-perl/MediaWiki-API
+ )
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
+ cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ python? ( gtk?
+ (
+ >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+ >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+ )
+ ${PYTHON_DEPS} )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ app-text/xmlto
+ )
+ nls? ( sys-devel/gettext )
+ test? ( app-crypt/gnupg )"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+ DEPEND="${DEPEND}
+ app-text/asciidoc"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ cgi? ( perl )
+ cvs? ( perl )
+ mediawiki? ( perl )
+ subversion? ( perl )
+ webdav? ( curl )
+ gtk? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+pkg_setup() {
+ if use subversion && has_version "dev-vcs/subversion[dso]"; then
+ ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
+ ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+ ewarn "have been warned."
+ fi
+ if use python ; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+ local myopts
+
+ if use blksha1 ; then
+ myopts="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/sh"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # For svn-fe
+ extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+
+ use iconv \
+ || myopts="${myopts} NO_ICONV=YesPlease"
+ use nls \
+ || myopts="${myopts} NO_GETTEXT=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use pcre \
+ && myopts="${myopts} USE_LIBPCRE=yes" \
+ && extlibs="${extlibs} -lpcre"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use python \
+ || myopts="${myopts} NO_PYTHON=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease" \
+ || myopts="${myopts} NO_PTHREADS=YesPlease"
+ use cvs \
+ || myopts="${myopts} NO_CVS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+ if [[ ${CHOST} == *-*-aix* ]]; then
+ myopts="${myopts} NO_FNMATCH_CASEFOLD=YesPlease"
+ fi
+ if [[ ${CHOST} == *-solaris* ]]; then
+ myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+ export EXTLIBS="${extlibs}"
+}
+
+src_unpack() {
+ if [[ ${PV} != *9999 ]]; then
+ unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+ cd "${S}"
+ else
+ git-2_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # bug #350330 - automagic CVS when we don't want it is bad.
+ epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+ # install mediawiki perl modules also in vendor_dir
+ # hack, needs better upstream solution
+ epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+ epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch
+
+ epatch_user
+
+ sed -i \
+ -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+ Makefile contrib/svn-fe/Makefile || die "sed failed"
+
+ # Never install the private copy of Error.pm (bug #296310)
+ sed -i \
+ -e '/private-Error.pm/s,^,#,' \
+ perl/Makefile.PL
+
+ # Fix docbook2texi command
+ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # Fix git-subtree missing DESTDIR
+ sed -i \
+ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
+ contrib/subtree/Makefile
+}
+
+git_emake() {
+ # bug #326625: PERL_PATH, PERL_MM_OPT
+ # bug #320647: PYTHON_PATH
+ PYTHON_PATH=""
+ use python && PYTHON_PATH="${PYTHON}"
+ emake ${MY_MAKEOPTS} \
+ DESTDIR="${D}" \
+ OPTCFLAGS="${CFLAGS}" \
+ OPTLDFLAGS="${LDFLAGS}" \
+ OPTCC="$(tc-getCC)" \
+ OPTAR="$(tc-getAR)" \
+ prefix="${EPREFIX}"/usr \
+ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+ sysconfdir="${EPREFIX}"/etc \
+ PYTHON_PATH="${PYTHON_PATH}" \
+ PERL_MM_OPT="" \
+ GIT_TEST_OPTS="--no-color" \
+ V=1 \
+ "$@"
+ # This is the fix for bug #326625, but it also causes breakage, see bug
+ # #352693.
+ # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ if use perl ; then
+ git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
+ git_emake perl/perl.mak || die "emake perl/perl.mak failed"
+ fi
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+ git_emake || die "emake credential-osxkeychain"
+ fi
+
+ cd "${S}"/Documentation
+ if [[ ${PV} == *9999 ]] ; then
+ git_emake man \
+ || die "emake man failed"
+ if use doc ; then
+ git_emake info html \
+ || die "emake info html failed"
+ fi
+ else
+ if use doc ; then
+ git_emake info \
+ || die "emake info html failed"
+ fi
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ # by defining EXTLIBS we override the detection for libintl and
+ # libiconv, bug #516168
+ local nlsiconv=
+ use nls && use !elibc_glibc && nlsiconv+=" -lintl"
+ use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
+ git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
+ if use doc ; then
+ git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
+ fi
+ cd "${S}"
+ fi
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ git_emake || die "emake git-credential-gnome-keyring failed"
+ fi
+
+ cd "${S}"/contrib/subtree
+ git_emake
+ use doc && git_emake doc
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake
+ fi
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+ fi
+
+ # Depending on the tarball and manual rebuild of the documentation, the
+ # manpages may exist in either OR both of these directories.
+ find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+ find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
+
+ dodoc README Documentation/{SubmittingPatches,CodingGuidelines}
+ use doc && dodir /usr/share/doc/${PF}/html
+ for d in / /howto/ /technical/ ; do
+ docinto ${d}
+ dodoc Documentation${d}*.txt
+ use doc && dohtml -p ${d} Documentation${d}*.html
+ done
+ docinto /
+ # Upstream does not ship this pre-built :-(
+ use doc && doinfo Documentation/{git,gitman}.info
+
+ newbashcomp contrib/completion/git-completion.bash ${PN}
+ bashcomp_alias git gitk
+ # Not really a bash-completion file (bug #477920)
+ # but still needed uncompressed (bug #507480)
+ insinto /usr/share/${PN}
+ doins contrib/completion/git-prompt.sh
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc}
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
+ # don't add automatically to the load-path, so the sitefile
+ # can do a conditional loading
+ touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ if use python && use gtk ; then
+ python_doscript "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ #dobin contrib/fast-import/git-p4 # Moved upstream
+ #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+ newbin contrib/fast-import/import-tars.perl import-tars
+ exeinto /usr/libexec/git-core/
+ newexe contrib/git-resurrect.sh git-resurrect
+
+ # git-subtree
+ cd "${S}"/contrib/subtree
+ git_emake install || die "Failed to emake install git-subtree"
+ if use doc ; then
+ git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
+ fi
+ newdoc README README.git-subtree
+ dodoc git-subtree.txt
+ cd "${S}"
+
+ if use mediawiki ; then
+ cd "${S}"/contrib/mw-to-git
+ git_emake install
+ cd "${S}"
+ fi
+
+ # diff-highlight
+ dobin contrib/diff-highlight/diff-highlight
+ newdoc contrib/diff-highlight/README README.diff-highlight
+
+ # git-jump
+ exeinto /usr/libexec/git-core/
+ doexe contrib/git-jump/git-jump
+ newdoc contrib/git-jump/README git-jump.txt
+
+ # git-contacts
+ exeinto /usr/libexec/git-core/
+ doexe contrib/contacts/git-contacts
+ dodoc contrib/contacts/git-contacts.txt
+
+ if use gnome-keyring ; then
+ cd "${S}"/contrib/credential/gnome-keyring
+ dobin git-credential-gnome-keyring
+ fi
+
+ if use subversion ; then
+ cd "${S}"/contrib/svn-fe
+ dobin svn-fe
+ dodoc svn-fe.txt
+ use doc && doman svn-fe.1 && dohtml svn-fe.html
+ cd "${S}"
+ fi
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # completion - installed above
+ # credential/gnome-keyring TODO
+ # diff-highlight - done above
+ # emacs - installed above
+ # examples - these are stuff that is not used in Git anymore actually
+ # git-jump - done above
+ # gitview - installed above
+ # p4import - excluded because fast-import has a better one
+ # patches - stuff the Git guys made to go upstream to other places
+ # persistent-https - TODO
+ # mw-to-git - TODO
+ # subtree - build seperately
+ # svnimport - use git-svn
+ # thunderbird-patch-inline - fixes thunderbird
+ for i in \
+ buildsystems convert-objects fast-import \
+ hg-to-git hooks remotes2config.sh rerere-train.sh \
+ stats workdir \
+ ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ # We used to install in /usr/share/${PN}/gitweb
+ # but upstream installs in /usr/share/gitweb
+ # so we will install a symlink and use their location for compat with other
+ # distros
+ dosym /usr/share/gitweb /usr/share/${PN}/gitweb
+
+ # INSTALL discusses configuration issues, not just installation
+ docinto /
+ newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
+ newdoc "${S}"/gitweb/README README.gitweb
+
+ find "${ED}"/usr/lib64/perl5/ \
+ -name .packlist \
+ -exec rm \{\} \;
+ else
+ rm -rf "${ED}"/usr/share/gitweb
+ fi
+
+ if ! use subversion ; then
+ rm -f "${ED}"/usr/libexec/git-core/git-svn \
+ "${ED}"/usr/share/man/man1/git-svn.1*
+ fi
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+ fi
+
+ if use !prefix ; then
+ newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+ systemd_newunit "${FILESDIR}/git-daemon_at.service" "git-daemon@.service"
+ systemd_dounit "${FILESDIR}/git-daemon.socket"
+ fi
+
+ perl_delete_localpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9402-git-cvsserver-refs.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh \
+ t9604-cvsimport-timestamps.sh"
+ local tests_perl="t3701-add-interactive.sh \
+ t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.sh \
+ t7106-reset-unborn-branch.sh \
+ t7501-commit.sh"
+ # Bug #225601 - t0004 is not suitable for root perm
+ # Bug #219839 - t1004 is not suitable for root perm
+ # t0001-init.sh - check for init notices EPERM* fails
+ local tests_nonroot="t0001-init.sh \
+ t0004-unwritable.sh \
+ t0070-fundamental.sh \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.sh"
+ # t9100 still fails with symlinks in SVN 1.7
+ local test_svn="t9100-git-svn-basic.sh"
+
+ # Unzip is used only for the testcase code, not by any normal parts of Git.
+ if ! has_version app-arch/unzip ; then
+ einfo "Disabling tar-tree tests"
+ disabled="${disabled} t5000-tar-tree.sh"
+ fi
+
+ cvs=0
+ use cvs && let cvs=$cvs+1
+ if [[ ${EUID} -eq 0 ]]; then
+ if [[ $cvs -eq 1 ]]; then
+ ewarn "Skipping CVS tests because CVS does not work as root!"
+ ewarn "You should retest with FEATURES=userpriv!"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ einfo "Skipping other tests that require being non-root"
+ disabled="${disabled} ${tests_nonroot}"
+ else
+ [[ $cvs -gt 0 ]] && \
+ has_version dev-vcs/cvs && \
+ let cvs=$cvs+1
+ [[ $cvs -gt 1 ]] && \
+ has_version "dev-vcs/cvs[server]" && \
+ let cvs=$cvs+1
+ if [[ $cvs -lt 3 ]]; then
+ einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
+ disabled="${disabled} ${tests_cvs}"
+ fi
+ fi
+
+ if ! use perl ; then
+ einfo "Disabling tests that need Perl"
+ disabled="${disabled} ${tests_perl}"
+ fi
+
+ einfo "Disabling tests that fail with SVN 1.7"
+ disabled="${disabled} ${test_svn}"
+
+ # Reset all previously disabled tests
+ cd "${S}/t"
+ for i in *.sh.DISABLED ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+ done
+ einfo "Disabled tests:"
+ for i in ${disabled} ; do
+ [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
+ done
+
+ # Avoid the test system removing the results because we want them ourselves
+ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
+ -i "${S}"/t/Makefile
+
+ # Clean old results first, must always run
+ cd "${S}/t"
+ nonfatal git_emake clean
+
+ # Now run the tests, keep going if we hit an error, and don't terminate on
+ # failure
+ cd "${S}"
+ einfo "Start test run"
+ #MAKEOPTS=-j1
+ nonfatal git_emake --keep-going test
+ rc=$?
+
+ # Display nice results, now print the results
+ cd "${S}/t"
+ nonfatal git_emake aggregate-results
+
+ # And bail if there was a problem
+ [ $rc -eq 0 ] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
+ einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+ einfo "Note that the prompt bash code is now in that separate script"
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/git/metadata.xml b/dev-vcs/git/metadata.xml
new file mode 100644
index 000000000000..8eca331017fa
--- /dev/null
+++ b/dev-vcs/git/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <maintainer>
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <longdescription lang="en">
+ Git - Fast Version Control System. Official titled
+ "GIT - the stupid content tracker".
+
+ Git is a popular version control system designed to handle very large
+ projects with speed and efficiency; it is used mainly for various open
+ source projects, most notably the Linux kernel.
+
+ Git falls in the category of distributed source code management tools,
+ similar to e.g. GNU Arch or Monotone (or BitKeeper in the proprietary
+ world). Every Git working directory is a full-fledged repository with full
+ revision tracking capabilities, not dependent on network access or a central
+ server.
+ </longdescription>
+ <use>
+ <flag name="blksha1">Use the new optimized SHA1 implementation</flag>
+ <flag name="cgi">Install gitweb too</flag>
+ <flag name="curl">Support fetching and pushing (requires webdav too) over http:// and https:// protocols</flag>
+ <flag name="gpg">Pull in gnupg for signing -- without gnupg, attempts at signing will fail at runtime!</flag>
+ <flag name="gtk">Include the gitview contrib tool</flag>
+ <flag name="highlight">GitWeb support for app-text/highlight</flag>
+ <flag name="mediawiki">Support pulling and pushing from MediaWiki</flag>
+ <flag name="ppcsha1">Make use of a bundled routine that is optimized for the PPC arch</flag>
+ <flag name="subversion">Include git-svn for <pkg>dev-vcs/subversion</pkg> support</flag>
+ <flag name="webdav">Adds support for push'ing to HTTP/HTTPS repositories via DAV</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/gitg/Manifest b/dev-vcs/gitg/Manifest
new file mode 100644
index 000000000000..620d64e6511f
--- /dev/null
+++ b/dev-vcs/gitg/Manifest
@@ -0,0 +1,5 @@
+DIST gitg-0.2.7.tar.xz 528904 SHA256 c07fc4fc6cef31a06f0b9daa2ed23a5d0f6cb0a10a728324970675fc7001d095 SHA512 8d07e3410691a9ea4772e8db546d3da87f4517ac35111156c6cba3b9317e02fc7dd63a79c05aa0700ce59d2739d0c680d33825e3a8c8c7c242db7ac8ae6962c4 WHIRLPOOL 743a07f6478b0d2526aa1b1f2197353029caacd32d9fbfe75d32a287d4e55caf9441de69b5dfbf40c11597101016bdc843c2f1f0fe893370ee24ba2a06e43b9f
+DIST gitg-0.3.2.tar.xz 1080536 SHA256 77a30eb46ccd1882dca5a2bc4b43850c1066b1c406de86e335628c1c5a2a6c0f SHA512 cd8a24a5dfa833b4380e0b8da647bb6bfe97a28e9ba57fc26c9806939b06416f7728006fe247cf07264931d420416f25ac307051b672184b06809d750d3ed928 WHIRLPOOL 24230a3926f98c9f115cb1367091558aa68dc773c8b1c5c64992ef605d5b89862cbd1d9c898ebc9a4ab7c1ce837ccda7a7a08c8c680a9da3bf9dfad668a01869
+DIST gitg-3.14.0.tar.xz 1194904 SHA256 8e45a7198896eedd829a20ff8de437a08869d30005638114ca87abd42ffea11b SHA512 cf52ae6e892dcca40894a921810ab7cc1df4923c00f040d658db88e4ccbba2605181addbd64aa61eb35bc8a6e44172a35601371664d87b5b35439f3547877c30 WHIRLPOOL 658829d4bf999b86f8ead87a69579c72f02ed5373d5aaeda973ce31b93ace67596c13b8450f6b2aa76e98dfe0e7047d41864b008042040913b5a44e8f2b8ee21
+DIST gitg-3.14.1.tar.xz 1197524 SHA256 8e485b35d918fddc255c3bf5d5c139d0a8b684bd922a8913153b1b7781357057 SHA512 65748b8efa664528853d7f9fedcb84ed7c676492ffaedf404767eb99d1fbaf03db8752df957686ec474f540e393f98ad860ffb35af59b9024da63404d62b5a40 WHIRLPOOL 08f99d7ecf25055f22a2a994d74f033bdcfe31e74e26447f95ae56dfe98d97d097d04ca97f87babd085e125626b114fbf8663c16f1fd735cd2b743aef0e19126
+DIST gitg-3.16.1.tar.xz 1322412 SHA256 914e964402dadda152c7e034906d84e266c474603f58bc1a300f2a1659615569 SHA512 30ea13cfbd14d82db4d0db5ff5ffd456a8ceaa2364e8f3b9eff224c268de46b5dab070a068b3dc9497c7acd90023f60618a4bd5041dab35516ca336421454419 WHIRLPOOL 2774a264e00e28a27728ce4c7791a0340702893c52f32dd141f1ffc682516c4643a94d62b21ddc959b6fbb35c7cff73942cd62a77bcf3ac22991853bfe4f6ec9
diff --git a/dev-vcs/gitg/files/gitg-0.1.2-fix-disable-debug.patch b/dev-vcs/gitg/files/gitg-0.1.2-fix-disable-debug.patch
new file mode 100644
index 000000000000..3c0b88133485
--- /dev/null
+++ b/dev-vcs/gitg/files/gitg-0.1.2-fix-disable-debug.patch
@@ -0,0 +1,58 @@
+From eeec06ef06073b28f011a2be5417f4398d187c2e Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 27 Mar 2011 22:42:29 +0200
+Subject: [PATCH] Fix --disable-debug
+
+---
+ gitg-debug.c | 7 +++++++
+ gitg-debug.h | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/libgitg/gitg-debug.c b/libgitg/gitg-debug.c
+index 6530e7a..781101e 100644
+--- a/libgitg/gitg-debug.c
++++ b/libgitg/gitg-debug.c
+@@ -21,6 +21,7 @@
+ */
+
+ #include "gitg-debug.h"
++#if ENABLE_DEBUG
+ #include <glib.h>
+ #include <stdio.h>
+
+@@ -72,3 +73,9 @@ gitg_debug_message (guint level,
+ g_free (msg);
+ }
+ }
++
++#else
++
++void gitg_debug_init (void) { }
++
++#endif /* ENABLE_DEBUG */
+diff --git a/libgitg/gitg-debug.h b/libgitg/gitg-debug.h
+index 55d4428..ab81b4e 100644
+--- a/libgitg/gitg-debug.h
++++ b/libgitg/gitg-debug.h
+@@ -35,8 +35,9 @@ enum
+ GITG_DEBUG_CONFIG = 1 << 3
+ };
+
+-#if ENABLE_DEBUG
+ void gitg_debug_init (void);
++
++#if ENABLE_DEBUG
+ gboolean gitg_debug_enabled (guint debug);
+
+ void gitg_debug_message (guint level,
+@@ -49,7 +50,6 @@ void gitg_debug_message (guint level,
+ #define gitg_debug(level,args...) gitg_debug_message (level, __FILE__, __LINE__, G_STRFUNC, args)
+ #else
+
+-#define gitg_debug_init ;
+ #define gitg_debug_enabled(x) FALSE
+ #define gitg_debug(level,args...) ;
+
+--
+1.7.4.1
+
diff --git a/dev-vcs/gitg/files/gitg-0.2.6-fix-libreoffice.patch b/dev-vcs/gitg/files/gitg-0.2.6-fix-libreoffice.patch
new file mode 100644
index 000000000000..48f875a612c2
--- /dev/null
+++ b/dev-vcs/gitg/files/gitg-0.2.6-fix-libreoffice.patch
@@ -0,0 +1,371 @@
+From 9fda4e3c22475059f4910d3072e01c4436bfeca9 Mon Sep 17 00:00:00 2001
+From: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+Date: Thu, 28 Mar 2013 00:08:17 +0100
+Subject: [PATCH] lp#1056378: make end to nonsensical premature 8-bit
+ optimization
+
+- 128 lanes are _not_ enough for everyone
+---
+ gitg/gitg-cell-renderer-path.c | 8 ++++----
+ libgitg/gitg-color.c | 6 +++---
+ libgitg/gitg-color.h | 2 +-
+ libgitg/gitg-lane.h | 2 +-
+ libgitg/gitg-lanes.c | 40 ++++++++++++++++++++--------------------
+ libgitg/gitg-lanes.h | 2 +-
+ libgitg/gitg-repository.c | 4 ++--
+ libgitg/gitg-revision.c | 8 ++++----
+ libgitg/gitg-revision.h | 6 +++---
+ 9 files changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/gitg/gitg-cell-renderer-path.c b/gitg/gitg-cell-renderer-path.c
+index 97902ee..e2ae957 100644
+--- a/gitg/gitg-cell-renderer-path.c
++++ b/gitg/gitg-cell-renderer-path.c
+@@ -151,7 +151,7 @@ static void
+ draw_arrow (GitgCellRendererPath *self,
+ cairo_t *cr,
+ const GdkRectangle *area,
+- gint8 laneidx,
++ gint32 laneidx,
+ gboolean top)
+ {
+ gdouble cw = self->priv->lane_width;
+@@ -187,7 +187,7 @@ draw_paths_real (GitgCellRendererPath *self,
+ }
+
+ GSList *lanes = gitg_revision_get_lanes (revision);
+- gint8 to = 0;
++ gint32 to = 0;
+ gdouble cw = self->priv->lane_width;
+ gdouble ch = area->height / 2.0;
+ GitgLane *lane;
+@@ -201,7 +201,7 @@ draw_paths_real (GitgCellRendererPath *self,
+
+ for (item = lane->from; item; item = item->next)
+ {
+- gint8 from = (gint8)GPOINTER_TO_INT (item->data);
++ gint32 from = (gint32)GPOINTER_TO_INT (item->data);
+
+ cairo_move_to (cr, area->x + from * cw + cw / 2.0,
+ area->y + yoffset * ch);
+@@ -241,7 +241,7 @@ draw_arrows (GitgCellRendererPath *self,
+ const GdkRectangle *area)
+ {
+ GSList *item;
+- gint8 to = 0;
++ gint32 to = 0;
+
+ for (item = gitg_revision_get_lanes (self->priv->revision); item; item = item->next)
+ {
+diff --git a/libgitg/gitg-color.c b/libgitg/gitg-color.c
+index d5eeb85..f13dd77 100644
+--- a/libgitg/gitg-color.c
++++ b/libgitg/gitg-color.c
+@@ -23,7 +23,7 @@
+ #include "gitg-color.h"
+ #include <gdk/gdk.h>
+
+-static gint8 current_index = 0;
++static gint32 current_index = 0;
+
+ static gchar const *palette[] = {
+ "#c4a000",
+@@ -72,10 +72,10 @@ gitg_color_set_cairo_source (GitgColor *color, cairo_t *cr)
+ cairo_set_source_rgb(cr, r, g, b);
+ }
+
+-static gint8
++static gint32
+ next_index ()
+ {
+- gint8 next = current_index++;
++ gint32 next = current_index++;
+
+ if (current_index == sizeof(palette) / sizeof(gchar const *))
+ current_index = 0;
+diff --git a/libgitg/gitg-color.h b/libgitg/gitg-color.h
+index c3c9bd3..1968597 100644
+--- a/libgitg/gitg-color.h
++++ b/libgitg/gitg-color.h
+@@ -33,7 +33,7 @@ typedef struct _GitgColor GitgColor;
+ struct _GitgColor
+ {
+ gulong ref_count;
+- gint8 index;
++ gint32 index;
+ };
+
+ void gitg_color_reset (void);
+diff --git a/libgitg/gitg-lane.h b/libgitg/gitg-lane.h
+index 61664db..4ce0737 100644
+--- a/libgitg/gitg-lane.h
++++ b/libgitg/gitg-lane.h
+@@ -47,7 +47,7 @@ typedef struct
+ {
+ GitgColor *color; /** Pointer to color */
+ GSList *from; /** List of lanes merging on this lane */
+- gint8 type;
++ gint32 type;
+ } GitgLane;
+
+ typedef struct
+diff --git a/libgitg/gitg-lanes.c b/libgitg/gitg-lanes.c
+index 41b8650..f3aaa61 100644
+--- a/libgitg/gitg-lanes.c
++++ b/libgitg/gitg-lanes.c
+@@ -46,7 +46,7 @@ typedef struct
+ typedef struct
+ {
+ GitgColor *color;
+- gint8 index;
++ gint32 index;
+ gchar const *from;
+ gchar const *to;
+ } CollapsedLane;
+@@ -109,10 +109,10 @@ free_lanes (GitgLanes *lanes)
+ static LaneContainer *
+ find_lane_by_hash (GitgLanes *lanes,
+ gchar const *hash,
+- gint8 *pos)
++ gint32 *pos)
+ {
+ GSList *item;
+- gint8 p = 0;
++ gint32 p = 0;
+
+ if (!hash)
+ {
+@@ -344,14 +344,14 @@ lane_container_next (LaneContainer *container,
+
+ static void
+ update_lane_merge_indices (GSList *from,
+- gint8 index,
++ gint32 index,
+ gint direction)
+ {
+ GSList *item;
+
+ for (item = from; item; item = g_slist_next (item))
+ {
+- gint8 idx = GPOINTER_TO_INT (item->data);
++ gint32 idx = GPOINTER_TO_INT (item->data);
+
+ if ((direction < 0 && idx > index) || (direction > 0 && idx >= index))
+ {
+@@ -362,7 +362,7 @@ update_lane_merge_indices (GSList *from,
+
+ static void
+ update_merge_indices (GSList *lanes,
+- gint8 index,
++ gint32 index,
+ gint direction)
+ {
+ GSList *item;
+@@ -378,7 +378,7 @@ update_merge_indices (GSList *lanes,
+ static void
+ add_collapsed (GitgLanes *lanes,
+ LaneContainer *container,
+- gint8 index)
++ gint32 index)
+ {
+ CollapsedLane *collapsed = collapsed_lane_new (container);
+ collapsed->index = index;
+@@ -389,7 +389,7 @@ add_collapsed (GitgLanes *lanes,
+ static void
+ collapse_lane (GitgLanes *lanes,
+ LaneContainer *container,
+- gint8 index)
++ gint32 index)
+ {
+ /* backtrack for inactive-collapse revisions and remove this container from
+ those revisions, appropriately updating merge indices etc */
+@@ -409,7 +409,7 @@ collapse_lane (GitgLanes *lanes,
+ GSList *collapsed = g_slist_nth(lns, index);
+ GitgLane *lane = (GitgLane *)collapsed->data;
+
+- gint8 newindex = GPOINTER_TO_INT(lane->from->data);
++ gint32 newindex = GPOINTER_TO_INT(lane->from->data);
+
+ lns = gitg_revision_remove_lane(revision, lane);
+
+@@ -445,8 +445,8 @@ collapse_lane (GitgLanes *lanes,
+
+ static void
+ update_current_lanes_merge_indices (GitgLanes *lanes,
+- gint8 index,
+- gint8 direction)
++ gint32 index,
++ gint32 direction)
+ {
+ GSList *item;
+
+@@ -462,7 +462,7 @@ static void
+ collapse_lanes (GitgLanes *lanes)
+ {
+ GSList *item = lanes->priv->lanes;
+- gint8 index = 0;
++ gint32 index = 0;
+
+ while (item)
+ {
+@@ -490,9 +490,9 @@ collapse_lanes (GitgLanes *lanes)
+ }
+ }
+
+-static gint8
++static gint32
+ ensure_correct_index (GitgRevision *revision,
+- gint8 index)
++ gint32 index)
+ {
+ guint len = g_slist_length (gitg_revision_get_lanes (revision));
+
+@@ -509,11 +509,11 @@ expand_lane (GitgLanes *lanes,
+ CollapsedLane *lane)
+ {
+ GSList *item;
+- gint8 index = lane->index;
++ gint32 index = lane->index;
+
+ GitgLane *ln = gitg_lane_new_with_color (lane->color);
+ guint len = g_slist_length (lanes->priv->lanes);
+- gint8 next;
++ gint32 next;
+
+ if (index > len)
+ {
+@@ -614,7 +614,7 @@ static void
+ init_next_layer (GitgLanes *lanes)
+ {
+ GSList *item = lanes->priv->lanes;
+- gint8 index = 0;
++ gint32 index = 0;
+
+ /* Initialize new set of lanes based on 'lanes'. It copies the lane (refs
+ the color) and adds the lane index as a merge (so it basicly represents
+@@ -628,7 +628,7 @@ init_next_layer (GitgLanes *lanes)
+ }
+
+ static void
+-prepare_lanes (GitgLanes *lanes, GitgRevision *next, gint8 *pos)
++prepare_lanes (GitgLanes *lanes, GitgRevision *next, gint32 *pos)
+ {
+ LaneContainer *mylane;
+ guint num;
+@@ -647,7 +647,7 @@ prepare_lanes (GitgLanes *lanes, GitgRevision *next, gint8 *pos)
+ /* Iterate over all parents and find them a lane */
+ for (i = 0; i < num; ++i)
+ {
+- gint8 lnpos;
++ gint32 lnpos;
+ LaneContainer *container = find_lane_by_hash (lanes, parents[i], &lnpos);
+
+ if (container)
+@@ -710,7 +710,7 @@ prepare_lanes (GitgLanes *lanes, GitgRevision *next, gint8 *pos)
+ }
+
+ GSList *
+-gitg_lanes_next (GitgLanes *lanes, GitgRevision *next, gint8 *nextpos)
++gitg_lanes_next (GitgLanes *lanes, GitgRevision *next, gint32 *nextpos)
+ {
+ LaneContainer *mylane;
+ GSList *res;
+diff --git a/libgitg/gitg-lanes.h b/libgitg/gitg-lanes.h
+index ae71757..8e02bbb 100644
+--- a/libgitg/gitg-lanes.h
++++ b/libgitg/gitg-lanes.h
+@@ -55,7 +55,7 @@ GType gitg_lanes_get_type (void) G_GNUC_CONST;
+
+ GitgLanes *gitg_lanes_new(void);
+ void gitg_lanes_reset(GitgLanes *lanes);
+-GSList *gitg_lanes_next(GitgLanes *lanes, GitgRevision *next, gint8 *mylane);
++GSList *gitg_lanes_next(GitgLanes *lanes, GitgRevision *next, gint32 *mylane);
+
+ G_END_DECLS
+
+diff --git a/libgitg/gitg-repository.c b/libgitg/gitg-repository.c
+index f1d1b18..2751800 100644
+--- a/libgitg/gitg-repository.c
++++ b/libgitg/gitg-repository.c
+@@ -865,7 +865,7 @@ append_revision (GitgRepository *repository,
+ GitgRevision *rv)
+ {
+ GSList *lanes;
+- gint8 mylane = 0;
++ gint32 mylane = 0;
+
+ if (repository->priv->size == 0)
+ {
+@@ -1158,7 +1158,7 @@ repository_relane (GitgRepository *repository)
+
+ for (i = 0; i < repository->priv->size; ++i)
+ {
+- gint8 mylane;
++ gint32 mylane;
+ GitgRevision *revision = repository->priv->storage[i];
+
+ GSList *lanes = gitg_lanes_next (repository->priv->lanes,
+diff --git a/libgitg/gitg-revision.c b/libgitg/gitg-revision.c
+index 579c878..37ca641 100644
+--- a/libgitg/gitg-revision.c
++++ b/libgitg/gitg-revision.c
+@@ -45,7 +45,7 @@ struct _GitgRevision
+ char sign;
+
+ GSList *lanes;
+- gint8 mylane;
++ gint32 mylane;
+ };
+
+ G_DEFINE_BOXED_TYPE (GitgRevision, gitg_revision, gitg_revision_ref, gitg_revision_unref)
+@@ -303,7 +303,7 @@ update_lane_type (GitgRevision *revision)
+ void
+ gitg_revision_set_lanes (GitgRevision *revision,
+ GSList *lanes,
+- gint8 mylane)
++ gint32 mylane)
+ {
+ free_lanes (revision);
+ revision->lanes = lanes;
+@@ -316,7 +316,7 @@ gitg_revision_set_lanes (GitgRevision *revision,
+ update_lane_type (revision);
+ }
+
+-gint8
++gint32
+ gitg_revision_get_mylane (GitgRevision *revision)
+ {
+ return revision->mylane;
+@@ -324,7 +324,7 @@ gitg_revision_get_mylane (GitgRevision *revision)
+
+ void
+ gitg_revision_set_mylane (GitgRevision *revision,
+- gint8 mylane)
++ gint32 mylane)
+ {
+ g_return_if_fail (mylane >= 0);
+
+diff --git a/libgitg/gitg-revision.h b/libgitg/gitg-revision.h
+index e01a141..72051d7 100644
+--- a/libgitg/gitg-revision.h
++++ b/libgitg/gitg-revision.h
+@@ -64,13 +64,13 @@ gchar **gitg_revision_get_parents (GitgRevision *revision);
+
+ GSList *gitg_revision_get_lanes (GitgRevision *revision);
+ GitgLane *gitg_revision_get_lane (GitgRevision *revision);
+-void gitg_revision_set_lanes (GitgRevision *revision, GSList *lanes, gint8 mylane);
++void gitg_revision_set_lanes (GitgRevision *revision, GSList *lanes, gint32 mylane);
+
+ GSList *gitg_revision_remove_lane (GitgRevision *revision, GitgLane *lane);
+ GSList *gitg_revision_insert_lane (GitgRevision *revision, GitgLane *lane, gint index);
+
+-gint8 gitg_revision_get_mylane (GitgRevision *revision);
+-void gitg_revision_set_mylane (GitgRevision *revision, gint8 mylane);
++gint32 gitg_revision_get_mylane (GitgRevision *revision);
++void gitg_revision_set_mylane (GitgRevision *revision, gint32 mylane);
+
+ void gitg_revision_set_sign(GitgRevision *revision, char sign);
+ char gitg_revision_get_sign(GitgRevision *revision);
+--
+1.8.1.5
+
diff --git a/dev-vcs/gitg/files/gitg-3.14.1-libgit2-glib-0.22.0.patch b/dev-vcs/gitg/files/gitg-3.14.1-libgit2-glib-0.22.0.patch
new file mode 100644
index 000000000000..d8a8b0bd9007
--- /dev/null
+++ b/dev-vcs/gitg/files/gitg-3.14.1-libgit2-glib-0.22.0.patch
@@ -0,0 +1,123 @@
+ gitg/gitg-author-details-dialog.vala | 1 -
+ gitg/gitg-clone-dialog.vala | 5 +----
+ libgitg/gitg-commit.vala | 4 ++--
+ libgitg/gitg-lanes.vala | 4 ++--
+ tests/libgitg/test-commit.vala | 2 +-
+ 5 files changed, 6 insertions(+), 10 deletions(-)
+
+diff --git a/gitg/gitg-author-details-dialog.vala b/gitg/gitg-author-details-dialog.vala
+index 64cdb65..59f66dd 100644
+--- a/gitg/gitg-author-details-dialog.vala
++++ b/gitg/gitg-author-details-dialog.vala
+@@ -81,7 +81,6 @@ namespace Gitg
+
+ try
+ {
+- d_config.refresh();
+ author_name = d_config.get_string("user.name");
+ }
+ catch {}
+diff --git a/gitg/gitg-clone-dialog.vala b/gitg/gitg-clone-dialog.vala
+index 94eb610..60390f9 100644
+--- a/gitg/gitg-clone-dialog.vala
++++ b/gitg/gitg-clone-dialog.vala
+@@ -80,9 +80,8 @@ public class CloneDialog : Gtk.Dialog
+ d_entry_url.changed.connect((e) => {
+ string ?tooltip_text = null;
+ string ?icon_name = null;
+- bool url_supported = Ggit.Remote.is_supported_url(d_entry_url.get_text());
+
+- if (!url_supported && (d_entry_url.text != ""))
++ if (d_entry_url.text != "")
+ {
+ icon_name = "dialog-warning-symbolic";
+ tooltip_text = _("The URL introduced is not supported");
+@@ -90,8 +89,6 @@ public class CloneDialog : Gtk.Dialog
+
+ d_entry_url.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, icon_name);
+ d_entry_url.set_icon_tooltip_text(Gtk.EntryIconPosition.SECONDARY, tooltip_text);
+-
+- set_response_sensitive(Gtk.ResponseType.OK, url_supported);
+ });
+ }
+ }
+diff --git a/libgitg/gitg-commit.vala b/libgitg/gitg-commit.vala
+index 2aba60d..2ec5a4c 100644
+--- a/libgitg/gitg-commit.vala
++++ b/libgitg/gitg-commit.vala
+@@ -122,7 +122,7 @@ public class Commit : Ggit.Commit
+ var parents = get_parents();
+
+ // Create a new diff from the parents to the commit tree
+- if (parents.size() == 0)
++ if (parents.size == 0)
+ {
+ diff = new Ggit.Diff.tree_to_tree(repo,
+ null,
+@@ -131,7 +131,7 @@ public class Commit : Ggit.Commit
+ }
+ else
+ {
+- for (var i = 0; i < parents.size(); ++i)
++ for (var i = 0; i < parents.size; ++i)
+ {
+ var parent = parents.get(0);
+
+diff --git a/libgitg/gitg-lanes.vala b/libgitg/gitg-lanes.vala
+index 06886dc..f2d99f5 100644
+--- a/libgitg/gitg-lanes.vala
++++ b/libgitg/gitg-lanes.vala
+@@ -158,7 +158,7 @@ public class Lanes : Object
+ init_next_layer();
+ var mylane = d_lanes[pos];
+
+- for (uint i = 0; i < parents.size(); ++i)
++ for (uint i = 0; i < parents.size; ++i)
+ {
+ int lnpos;
+ var poid = parents.get_id(i);
+@@ -439,7 +439,7 @@ public class Lanes : Object
+
+ var parents = commit.get_parents();
+
+- for (uint i = 0; i < parents.size(); ++i)
++ for (uint i = 0; i < parents.size; ++i)
+ {
+ expand_lane_from_oid(parents.get_id(i));
+ }
+diff --git a/tests/libgitg/test-commit.vala b/tests/libgitg/test-commit.vala
+index fd0c137..65c0473 100644
+--- a/tests/libgitg/test-commit.vala
++++ b/tests/libgitg/test-commit.vala
+@@ -252,7 +252,7 @@ class Gitg.Test.Commit : Gitg.Test.Repository
+ assert_streq(d_repository.get_head().get_target().to_string(),
+ oid.to_string());
+
+- assert_uinteq(commit.get_parents().size(), 0);
++ assert_uinteq(commit.get_parents().size, 0);
+
+ var reflog = d_repository.lookup_reference("HEAD").get_log();
+ var entry = reflog.get_entry_from_index(0);
+ libgitg/gitg-repository-list-box.vala | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/libgitg/gitg-repository-list-box.vala b/libgitg/gitg-repository-list-box.vala
+index 8dd5b33..393b29e 100644
+--- a/libgitg/gitg-repository-list-box.vala
++++ b/libgitg/gitg-repository-list-box.vala
+@@ -494,14 +494,13 @@ namespace Gitg
+ d_row = row;
+ }
+
+- protected override bool transfer_progress(Ggit.TransferProgress stats) throws Error
++ protected override void transfer_progress(Ggit.TransferProgress stats)
+ {
+ var recvobj = stats.get_received_objects();
+ var indxobj = stats.get_indexed_objects();
+ var totaobj = stats.get_total_objects();
+
+ d_row.fraction = (recvobj + indxobj) / (double)(2 * totaobj);
+- return true;
+ }
+ }
+
diff --git a/dev-vcs/gitg/gitg-0.2.7.ebuild b/dev-vcs/gitg/gitg-0.2.7.ebuild
new file mode 100644
index 000000000000..6ea02acccc60
--- /dev/null
+++ b/dev-vcs/gitg/gitg-0.2.7.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GCONF_DEBUG="no"
+inherit base eutils gnome2
+
+DESCRIPTION="git repository viewer for GNOME"
+HOMEPAGE="http://git.gnome.org/browse/gitg/"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+# FIXME: debug changes CFLAGS
+IUSE="debug glade"
+
+RDEPEND=">=dev-libs/glib-2.26:2
+ >=x11-libs/gtk+-3.0.0:3
+ >=x11-libs/gtksourceview-3.1.3:3.0
+ >=gnome-base/gconf-2.10:2
+ >=gnome-base/gsettings-desktop-schemas-0.1.1
+ dev-vcs/git
+ glade? ( >=dev-util/glade-3.2:3.10 )
+"
+DEPEND="${RDEPEND}
+ gnome-base/gnome-common
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.2.6-fix-libreoffice.patch"
+)
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_prepare() {
+ base_src_prepare
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # Disable maintainer to get rid of -Werror (bug #363009)
+ G2CONF="${G2CONF}
+ --disable-static
+ --disable-deprecations
+ --disable-dependency-tracking
+ --disable-maintainer-mode
+ $(use_enable debug)
+ $(use_enable glade glade-catalog)"
+
+ gnome2_src_configure
+}
+
+src_test() {
+ default
+}
diff --git a/dev-vcs/gitg/gitg-0.3.2.ebuild b/dev-vcs/gitg/gitg-0.3.2.ebuild
new file mode 100644
index 000000000000..719f3a291d27
--- /dev/null
+++ b/dev-vcs/gitg/gitg-0.3.2.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+VALA_MIN_API_VERSION="0.20"
+PYTHON_COMPAT=( python3_3 )
+
+inherit autotools gnome2 python-r1 vala
+
+DESCRIPTION="git repository viewer for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Gitg"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug glade +python"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# test if unbundling of libgd is possible
+# Currently it seems not to be (unstable API/ABI)
+RDEPEND="
+ dev-libs/libgee:0.8[introspection]
+ >=dev-libs/json-glib-0.16
+ >=app-text/gtkspell-3.0.3:3
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-0.10.1
+ dev-libs/libgit2[threads]
+ >=dev-libs/libgit2-glib-0.0.10
+ <dev-libs/libgit2-glib-0.0.16
+ >=dev-libs/libpeas-1.5.0[gtk]
+ >=gnome-base/gsettings-desktop-schemas-0.1.1
+ >=net-libs/webkit-gtk-2.2:3[introspection]
+ >=x11-libs/gtk+-3.10.0:3
+ >=x11-libs/gtksourceview-3.10:3.0
+ >=x11-themes/gnome-icon-theme-symbolic-3.10
+ glade? ( >=dev-util/glade-3.2:3.10 )
+ python? (
+ ${PYTHON_DEPS}
+ dev-libs/libpeas[python,${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ gnome-base/gnome-common
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ $(vala_depend)"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_prepare() {
+ sed \
+ -e '/CFLAGS/s:-g::g' \
+ -e '/CFLAGS/s:-O0::g' \
+ -i configure.ac || die
+ eautoreconf
+ gnome2_src_prepare
+ vala_src_prepare
+}
+
+src_configure() {
+ # Disable maintainer to get rid of -Werror (bug #363009)
+ G2CONF="${G2CONF}
+ --disable-static
+ --disable-deprecations
+ --disable-dependency-tracking
+ $(use_enable debug)
+ $(use_enable glade glade-catalog)
+ $(use_enable python)"
+
+ gnome2_src_configure
+}
+
+src_install() {
+ gnome2_src_install -j1
+}
diff --git a/dev-vcs/gitg/gitg-3.14.0.ebuild b/dev-vcs/gitg/gitg-3.14.0.ebuild
new file mode 100644
index 000000000000..5c33504d6056
--- /dev/null
+++ b/dev-vcs/gitg/gitg-3.14.0.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+VALA_MIN_API_VERSION="0.20"
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit autotools gnome2 python-r1 vala
+
+DESCRIPTION="git repository viewer for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Gitg"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="debug glade +python"
+
+REQUIRED_USE="python? ( ^^ ( $(python_gen_useflags '*') ) )"
+
+# test if unbundling of libgd is possible
+# Currently it seems not to be (unstable API/ABI)
+RDEPEND="
+ dev-libs/libgee:0.8[introspection]
+ >=dev-libs/json-glib-0.16
+ >=app-text/gtkspell-3.0.3:3
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-0.10.1
+ dev-libs/libgit2[threads]
+ >=dev-libs/libgit2-glib-0.0.20
+ >=dev-libs/libpeas-1.5.0[gtk]
+ >=gnome-base/gsettings-desktop-schemas-0.1.1
+ >=net-libs/webkit-gtk-2.2:3[introspection]
+ >=x11-libs/gtk+-3.12.0:3
+ >=x11-libs/gtksourceview-3.10:3.0
+ >=x11-themes/gnome-icon-theme-symbolic-3.10
+ glade? ( >=dev-util/glade-3.2:3.10 )
+ python? (
+ ${PYTHON_DEPS}
+ dev-libs/libpeas[python,${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ dev-libs/libgit2-glib[vala]
+ gnome-base/gnome-common
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ $(vala_depend)"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+pkg_setup() {
+ use python && [[ ${MERGE_TYPE} != binary ]] && python_setup
+}
+
+src_prepare() {
+ sed \
+ -e '/CFLAGS/s:-g::g' \
+ -e '/CFLAGS/s:-O0::g' \
+ -i configure.ac || die
+ eautoreconf
+ gnome2_src_prepare
+ vala_src_prepare
+}
+
+src_configure() {
+ # Disable maintainer to get rid of -Werror (bug #363009)
+ G2CONF="${G2CONF}
+ --disable-static
+ --disable-deprecations
+ --disable-dependency-tracking
+ $(use_enable debug)
+ $(use_enable glade glade-catalog)
+ $(use_enable python)"
+
+ gnome2_src_configure
+}
+
+src_install() {
+ gnome2_src_install -j1
+}
diff --git a/dev-vcs/gitg/gitg-3.14.1.ebuild b/dev-vcs/gitg/gitg-3.14.1.ebuild
new file mode 100644
index 000000000000..813ddf6ba3bd
--- /dev/null
+++ b/dev-vcs/gitg/gitg-3.14.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+VALA_MIN_API_VERSION="0.20"
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit autotools gnome2 python-r1 vala
+
+DESCRIPTION="git repository viewer for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Gitg"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug glade +python"
+
+REQUIRED_USE="python? ( ^^ ( $(python_gen_useflags '*') ) )"
+
+# test if unbundling of libgd is possible
+# Currently it seems not to be (unstable API/ABI)
+RDEPEND="
+ dev-libs/libgee:0.8[introspection]
+ >=dev-libs/json-glib-0.16
+ >=app-text/gtkspell-3.0.3:3
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-0.10.1
+ dev-libs/libgit2[threads]
+ >=dev-libs/libgit2-glib-0.22.0
+ >=dev-libs/libpeas-1.5.0[gtk]
+ >=gnome-base/gsettings-desktop-schemas-0.1.1
+ >=net-libs/webkit-gtk-2.2:4[introspection]
+ >=x11-libs/gtk+-3.12.0:3
+ >=x11-libs/gtksourceview-3.10:3.0
+ >=x11-themes/gnome-icon-theme-symbolic-3.10
+ glade? ( >=dev-util/glade-3.2:3.10 )
+ python? (
+ ${PYTHON_DEPS}
+ dev-libs/libpeas[python,${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ >=dev-libs/libgit2-glib-0.22.0[vala]
+ gnome-base/gnome-common
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ $(vala_depend)"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-libgit2-glib-0.22.0.patch
+)
+
+pkg_setup() {
+ use python && [[ ${MERGE_TYPE} != binary ]] && python_setup
+}
+
+src_prepare() {
+ sed \
+ -e '/CFLAGS/s:-g::g' \
+ -e '/CFLAGS/s:-O0::g' \
+ -i configure.ac || die
+
+ epatch "${PATCHES[@]}"
+
+ eautoreconf
+ gnome2_src_prepare
+ vala_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-static \
+ --disable-deprecations \
+ --disable-dependency-tracking \
+ $(use_enable debug) \
+ $(use_enable glade glade-catalog) \
+ $(use_enable python)
+}
+
+src_install() {
+ gnome2_src_install -j1
+}
diff --git a/dev-vcs/gitg/gitg-3.16.1.ebuild b/dev-vcs/gitg/gitg-3.16.1.ebuild
new file mode 100644
index 000000000000..5ed60027f2b5
--- /dev/null
+++ b/dev-vcs/gitg/gitg-3.16.1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+VALA_MIN_API_VERSION="0.20"
+PYTHON_COMPAT=( python{3_3,3_4} )
+
+inherit gnome2 python-r1 vala
+
+DESCRIPTION="git repository viewer for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Gitg"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug glade +python"
+
+REQUIRED_USE="python? ( ^^ ( $(python_gen_useflags '*') ) )"
+
+# test if unbundling of libgd is possible
+# Currently it seems not to be (unstable API/ABI)
+RDEPEND="
+ app-crypt/libsecret
+ dev-libs/libgee:0.8[introspection]
+ >=dev-libs/json-glib-0.16
+ >=app-text/gtkspell-3.0.3:3
+ >=dev-libs/glib-2.38:2
+ >=dev-libs/gobject-introspection-0.10.1
+ dev-libs/libgit2[threads]
+ >=dev-libs/libgit2-glib-0.22.0[ssh]
+ >=dev-libs/libpeas-1.5.0[gtk]
+ >=gnome-base/gsettings-desktop-schemas-0.1.1
+ >=net-libs/webkit-gtk-2.2:4[introspection]
+ >=x11-libs/gtk+-3.12.0:3
+ >=x11-libs/gtksourceview-3.10:3.0
+ >=x11-themes/gnome-icon-theme-symbolic-3.10
+ glade? ( >=dev-util/glade-3.2:3.10 )
+ python? (
+ ${PYTHON_DEPS}
+ dev-libs/libpeas[python,${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ >=dev-libs/libgit2-glib-0.22.0[vala]
+ gnome-base/gnome-common
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ $(vala_depend)"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+pkg_setup() {
+ use python && [[ ${MERGE_TYPE} != binary ]] && python_setup
+}
+
+src_prepare() {
+ sed \
+ -e '/CFLAGS/s:-g::g' \
+ -e '/CFLAGS/s:-O0::g' \
+ -i configure.ac || die
+
+ gnome2_src_prepare
+ vala_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-static \
+ --disable-deprecations \
+ --disable-dependency-tracking \
+ $(use_enable debug) \
+ $(use_enable glade glade-catalog) \
+ $(use_enable python)
+}
+
+src_install() {
+ gnome2_src_install -j1
+}
diff --git a/dev-vcs/gitg/metadata.xml b/dev-vcs/gitg/metadata.xml
new file mode 100644
index 000000000000..6c5d64e1a9a5
--- /dev/null
+++ b/dev-vcs/gitg/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>ikelos@gentoo.org</email>
+ <name>Mike Auty</name>
+ </maintainer>
+ <longdescription lang="en">
+ GTK+ based frontend for GIT
+ </longdescription>
+ <use>
+ <flag name="glade">Install a glade catalog file</flag>
+ <flag name="python">Install Python bindings for those plugins requiring it.</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/github-pages-publish/Manifest b/dev-vcs/github-pages-publish/Manifest
new file mode 100644
index 000000000000..3bf0e3c74d2a
--- /dev/null
+++ b/dev-vcs/github-pages-publish/Manifest
@@ -0,0 +1 @@
+DIST github-pages-publish-0.1.2.tar.gz 3295 SHA256 83cf09861e064704cc3f2cd080ff0512f4df91e9b4890927741918d2e06e7be6 SHA512 3011a070c0798bc3f2853c32c6d97e20eb4711a23b4e2c2b188b4158d46d1434d89f8400bebed0806b9781cd8e13800f3e10d9e99ff2fc4e02059329fbee2658 WHIRLPOOL 0e6f72c16e0c5fe422bbd4f55fd137c406edb45ac3b3d092692958a324ccd1016d97da414fff4bfc43fb20a22a08164b818ff544e73bb5ed27b40ae44e28c853
diff --git a/dev-vcs/github-pages-publish/github-pages-publish-0.1.2.ebuild b/dev-vcs/github-pages-publish/github-pages-publish-0.1.2.ebuild
new file mode 100644
index 000000000000..45d510ed44a5
--- /dev/null
+++ b/dev-vcs/github-pages-publish/github-pages-publish-0.1.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+GIT_ECLASS=
+if [[ ${PV} = *9999* ]]; then
+ GIT_ECLASS="git-r3"
+ EGIT_REPO_URI="git://github.com/rafaelmartins/github-pages-publish.git
+ https://github.com/rafaelmartins/github-pages-publish.git"
+fi
+
+inherit distutils-r1 ${GIT_ECLASS}
+
+DESCRIPTION="A script that commits files from a directory to Github Pages"
+HOMEPAGE="https://pypi.python.org/pypi/github-pages-publish
+ https://github.com/rafaelmartins/github-pages-publish"
+
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+KEYWORDS="~amd64 ~x86"
+if [[ ${PV} = *9999* ]]; then
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/setuptools
+ >=dev-python/pygit2-0.20.0"
+RDEPEND="${DEPEND}"
diff --git a/dev-vcs/github-pages-publish/metadata.xml b/dev-vcs/github-pages-publish/metadata.xml
new file mode 100644
index 000000000000..883cf58eefe0
--- /dev/null
+++ b/dev-vcs/github-pages-publish/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>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <longdescription lang="en">
+ A script that commits files from a directory to the gh-pages branch
+ of the current Git repository.
+ </longdescription>
+ <upstream>
+ <maintainer status="active">
+ <email>rafaelmartins@gentoo.org</email>
+ <name>Rafael G. Martins</name>
+ </maintainer>
+ <remote-id type="pypi">github-pages-publish</remote-id>
+ <remote-id type="github">rafaelmartins/github-pages-publish</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/gitinspector/Manifest b/dev-vcs/gitinspector/Manifest
new file mode 100644
index 000000000000..44d4ed0eea3b
--- /dev/null
+++ b/dev-vcs/gitinspector/Manifest
@@ -0,0 +1,2 @@
+DIST gitinspector_0.3.1.zip 235252 SHA256 0081f142e507ff49cb4f5ca1119eb11f66655af1bfb327aa4670c31245e608d0 SHA512 f7ba3b4ebededc8ff80e440de26c3e858c4e413dd02c516aa442c05ef27875e0eb78e6430018717890aa390ef5a1011a33da28e0748a07c59830df6ffeb35c63 WHIRLPOOL 95d80614a5f2c38c9c01e5958f778eb72935f81e3aa44bd831332047f633625587f75f598112c005b0709c7b209a732286c1da578c07c74c22066c65d31d2964
+DIST gitinspector_0.3.2.zip 254971 SHA256 3778e60514f5067f8f2628da5cacbce12db99af6517fcf448afb2964bce963a7 SHA512 2a6a48f2b1b7f7add11be034addca727845aa50860286ea50a4fff0a84b14f840c2776dd679b8c2f11d528b93712c7384aa318ffb08bb01f69faf436b6bcaa5a WHIRLPOOL df6f808ea3bd1b04bcf99416d2f5abb3b6241c6212d22676058ed73e9406c39a517881c01c3f73f26e880b648de131422134a1112f7dfd81ebc30837eb0166b7
diff --git a/dev-vcs/gitinspector/gitinspector-0.3.1.ebuild b/dev-vcs/gitinspector/gitinspector-0.3.1.ebuild
new file mode 100644
index 000000000000..9b206727d139
--- /dev/null
+++ b/dev-vcs/gitinspector/gitinspector-0.3.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
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Statistical analysis tool for git repositories"
+HOMEPAGE="https://code.google.com/p/gitinspector/"
+SRC_URI="https://${PN}.googlecode.com/files/${PN}_${PV}.zip"
+
+SLOT="0"
+LICENSE="GPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-vcs/git"
+DEPEND="
+ test? ( ${RDEPEND} )"
diff --git a/dev-vcs/gitinspector/gitinspector-0.3.2.ebuild b/dev-vcs/gitinspector/gitinspector-0.3.2.ebuild
new file mode 100644
index 000000000000..b9c7d97dee95
--- /dev/null
+++ b/dev-vcs/gitinspector/gitinspector-0.3.2.ebuild
@@ -0,0 +1,27 @@
+# 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="Statistical analysis tool for git repositories"
+HOMEPAGE="https://code.google.com/p/gitinspector/"
+SRC_URI="https://${PN}.googlecode.com/files/${PN}_${PV}.zip"
+
+SLOT="0"
+LICENSE="GPL-3"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+
+RDEPEND="dev-vcs/git"
+DEPEND="
+ test? ( ${RDEPEND} )"
+
+python_prepare_all() {
+ [[ ${LC_ALL} == "C" ]] && export LC_ALL="en_US.utf8"
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-vcs/gitinspector/metadata.xml b/dev-vcs/gitinspector/metadata.xml
new file mode 100644
index 000000000000..4a00a64b40ae
--- /dev/null
+++ b/dev-vcs/gitinspector/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>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/gitolite-gentoo/Manifest b/dev-vcs/gitolite-gentoo/Manifest
new file mode 100644
index 000000000000..0418691ddada
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/Manifest
@@ -0,0 +1,10 @@
+DIST gitolite-gentoo-2.3.1.tar.bz2 198849 SHA256 65c4646b5609f987b3004dbc44ebf9a76d3f1791414fbe13eacea25460b966ae SHA512 994ee759d87659eb4f4bfbe6618d1bd74e83df2e6c8d710ca1c929d86e05b1152639bf5c99b906f7d20f9585163f872f04d9710e29b1d73ada998595553d294e WHIRLPOOL 9d4effd46f5953bb330f799962a79fb999ada0c6ba8cf0b536275f3c56f1178f76730b6ab659e8adf3378c2fbe8ba6ff602eec15e32822192cd0d07f8637aa8d
+DIST gitolite-gentoo-2.3.3.tar.bz2 199370 SHA256 41680cd9ff0999a945498749022360101dd33d4195161912418e8002bbabc9a8 SHA512 f9720effa816400544bf5526d896b9db734828c46356d0188e2ddb8fa8f175efb0f60b30c9e9c80a0624f6cb6dc5c5a301d8dfa35f13ad08fcd0538a0b8f77c3 WHIRLPOOL 1e3edc9bc7a66d51c205b1bca516620248cb31e78ab1cd5bf455a07096948a208825858ce11eb21b82ed825bfff043d59215a1257641557fd6ffe869924b4896
+DIST gitolite-gentoo-3.5.3.1.tar.bz2 127391 SHA256 0a7025e597f9e50b15bf181c34e7851b68e449400ebfbcc96be7d307760cb726 SHA512 f36a270f651b2b8d4ae02fd7b3841a599b7c66d36a6f92df8974897fdec863b4c09064c384ede9309150a4a487186ba3c3079cd0037d5fd39852b452115933bb WHIRLPOOL 0cb2b06a13f6a57e335556c68861bb1cf7ea907901cf3cb9479757775b1e8636856b889f12cecb5dff10200afbd66ad810e450a81739f6ce7b399e6fe6685afe
+DIST gitolite-gentoo-3.6.1.tar.bz2 140554 SHA256 db138b8f616322f0b9c5fb466c579f64e30eb5c1a5029750b64c3846eb2a8db4 SHA512 563f2753f4d04d8a2c5d323fbf3d15f9f12975d4aa3ae3781011b521be7ca2b2ac755f9c4247f86ee303aa7f8c9795f3fdff4504a347b9b9cd08525666bb0187 WHIRLPOOL e8d30287a7420b42b3aa5b96a69bc79cb6b0dd2c9cf61ac3764ac9abcb54a10d19a91dc3509f32d14ed7efc6ede9aa7b9f3c8b01606d549bd38b8393712aae2b
+DIST gitolite-gentoo-3.6.2.1.tar.bz2 143357 SHA256 5304b50e5b2b89990503c59bf1b1e9c8de25f1e8ae6bef24ef8bd2190d5b0007 SHA512 53ae6549a819437d2481249707156eb0f68cccd289bbb40affedd1f7cdda620b974f8e7ee6853c196728cdccf0eb9f8f340a132538dcbf0b653fb69e08d40b9d WHIRLPOOL 7cc1fbe2441a3bd5cfcb092e32f5c2a50d0e85b489853aff3979b0586b2da111a60285516ae3f7d46d68bbe2aa4b82ddcb6d43440d73f8c84494f074f4b2eadf
+DIST gitolite-gentoo-3.6.2.2.tar.bz2 143601 SHA256 bc5841306567a43c63b542cceab7661cfd9b46f4f8b3651fbf14e13ad8a1f0f1 SHA512 431df7002d146d321199ff5ae324177f5b14b1a0ae8e87288ff15a8670eec9e55637d8a6d28d4eac2ff2a54f3f38e3aa700257c5321c73133fcb09037fb384f8 WHIRLPOOL 35abdcfe6b493e808e77f3b7e4c8ab7dc932365db6db73a90788cf9fce6cc130f9c90a4d9d5cbeb79d6f9a35f69141695ac8303dd83da8688852c33e2df7db1d
+DIST gitolite-gentoo-3.6.2.3.tar.bz2 143658 SHA256 cfc0329d930513d99dc6c52bb4ecb1b0486e73ae7f02a81bfd5d57b79ff19966 SHA512 9b8ddaad043d9c7cdbcb027fcbfd36cd09ce2cfaf0b102deee037977461d54942fd7ac019373876f9f4ab04250f78c8565c73494b7b9fc0e42e140d878cc303f WHIRLPOOL 25bc3ab404b00dc1f804777be3609a4db6ac47ad6b27a0fdbb33cca8e35d8ccfc52b44e29d5a0670f9fad3006264bf8056de16d0f67a1586c16abc7eb0fc457b
+DIST gitolite-gentoo-3.6.2.4.tar.bz2 143564 SHA256 37153036346a7efded1eacfbc11740319dc8b398c27479a2c2cef3a8327a81f7 SHA512 ec5e62822687b1293348107df003e3c3c4a3aad9b4f461e09410aef993bb464a176daee81223ae952159572db7158267fd90b90cbc877c4be2a9fdc2ecc87fb7 WHIRLPOOL 6f7be9a57dfe30c452abe3f084adef61123e409a48ba110fb726ae91cb02a1cadb8e36f23d0d84be6c8d3392baba3af81215d8e9436ed0e130e618d85d52938d
+DIST gitolite-gentoo-3.6.3.2.tar.bz2 148655 SHA256 b43c0c781053656a65d25fd7f47e1a9827079e95e8c7274a287288f62e229a36 SHA512 deed5379316e5fc3d33b7131eb64f7850004b34e034dd37417796dafbc9c038d92f4002f8d9c2066a0859bb1052669a378e8a66387f27eed10c6ca5a73e04623 WHIRLPOOL aa97eca62c77f8b42652c8c53a95068048b4f75f4778fecb4279a7e8648c78479c80aa5475c3cb84d939c6a951ed732cdf11b9dfba910d2af61c38ddad4fa314
+DIST gitolite-gentoo-3.6.3.tar.bz2 147531 SHA256 6689cfedb258f61206777eaa83d388eacb670d66384f9294474440d4669f08eb SHA512 4c4f40cf608ea78f76c39701880e53e2f6486fc37478818f5b4f0946fcd9ffe30ef122463b7b6b48a0a9931271fe7ef7aecf6bf23bbce45f36cd1e217e5ec45a WHIRLPOOL 7d7d1a060c9f8d7124df59cdcca9f1cf0a1bc37c2ca3a32c278f122b0b3c9f17c8d7ea2fb58151bc19c2f44f3745d4a82a3ff19ba2ff8e44675b0ba2b39187c8
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.1-r1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.1-r1.ebuild
new file mode 100644
index 000000000000..557674ee94b5
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.1-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils perl-module user
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="contrib vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ vim-syntax? ( app-vim/gitolite-syntax )"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/bash /var/lib/gitolite git
+}
+
+src_prepare() {
+ rm Makefile doc/COPYING || die
+ rm -rf contrib/{gitweb,vim} || die
+
+ echo "${PF}-gentoo" > conf/VERSION
+}
+
+src_install() {
+ local gl_bin="${D}/usr/bin"
+ gl_bin=${gl_bin/\/\//\/}
+
+ dodir /usr/share/gitolite/{conf,hooks} /usr/bin || die
+
+ export PATH="${gl_bin}:${PATH}"
+ ./src/gl-system-install ${gl_bin} \
+ "${D}"/usr/share/gitolite/conf "${D}"/usr/share/gitolite/hooks || die
+ sed -i -e "s:${D}::g" "${D}/usr/bin/gl-setup" \
+ "${D}/usr/share/gitolite/conf/example.gitolite.rc" || die
+
+ rm "${D}"/usr/bin/*.pm
+ insinto "${VENDOR_LIB}"
+ doins src/*.pm || die
+
+ dodoc README.mkd doc/*
+
+ if use contrib; then
+ insinto /usr/share/doc/${PF}
+ doins -r contrib/ || die
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+}
+
+pkg_postinst() {
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ ewarn
+ elog "If you use the umask feature and upgrade from <=gitolite-gentoo-1.5.9.1"
+ elog "then please check the permissions of all repositories using the umask feature"
+ ewarn
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.3-r1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.3-r1.ebuild
new file mode 100644
index 000000000000..f89dc8f39b81
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-2.3.3-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils perl-module user
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="contrib vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ vim-syntax? ( app-vim/gitolite-syntax )"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/bash /var/lib/gitolite git
+}
+
+src_prepare() {
+ rm Makefile doc/COPYING || die
+ rm -rf contrib/{gitweb,vim} || die
+
+ echo "${PF}-gentoo" > conf/VERSION
+}
+
+src_install() {
+ local gl_bin="${D}/usr/bin"
+ gl_bin=${gl_bin/\/\//\/}
+
+ dodir /usr/share/gitolite/{conf,hooks} /usr/bin || die
+
+ export PATH="${gl_bin}:${PATH}"
+ ./src/gl-system-install ${gl_bin} \
+ "${D}"/usr/share/gitolite/conf "${D}"/usr/share/gitolite/hooks || die
+ sed -i -e "s:${D}::g" "${D}/usr/bin/gl-setup" \
+ "${D}/usr/share/gitolite/conf/example.gitolite.rc" || die
+
+ rm "${D}"/usr/bin/*.pm
+ insinto "${VENDOR_LIB}"
+ doins src/*.pm || die
+
+ dodoc README.mkd doc/*
+
+ if use contrib; then
+ insinto /usr/share/doc/${PF}
+ doins -r contrib/ || die
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+}
+
+pkg_postinst() {
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ ewarn
+ elog "If you use the umask feature and upgrade from <=gitolite-gentoo-1.5.9.1"
+ elog "then please check the permissions of all repositories using the umask feature"
+ ewarn
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.5.3.1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.5.3.1.ebuild
new file mode 100644
index 000000000000..cfbe0431e402
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.5.3.1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user versionator
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ vim-syntax? ( app-vim/gitolite-syntax )"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.txt CHANGELOG
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [ "$(get_major_version $REPLACING_VERSIONS)" = "2" ]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1-r1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1-r1.ebuild
new file mode 100644
index 000000000000..f546d0100303
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1.ebuild
new file mode 100644
index 000000000000..cfbe0431e402
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user versionator
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ vim-syntax? ( app-vim/gitolite-syntax )"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.txt CHANGELOG
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [ "$(get_major_version $REPLACING_VERSIONS)" = "2" ]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.1.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.1.ebuild
new file mode 100644
index 000000000000..f546d0100303
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.2.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.2.ebuild
new file mode 100644
index 000000000000..f546d0100303
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.2.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.3.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.3.ebuild
new file mode 100644
index 000000000000..afa214748346
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.3.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ >=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.4.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.4.ebuild
new file mode 100644
index 000000000000..afa214748346
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.2.4.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ >=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.2.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.2.ebuild
new file mode 100644
index 000000000000..e793a22b362c
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.2.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ selinux? ( sec-policy/selinux-gitosis )
+ >=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.ebuild
new file mode 100644
index 000000000000..afa214748346
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.3.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ >=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
new file mode 100644
index 000000000000..f546d0100303
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="http://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/Net-SSH-AuthorizedKeysFile
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo "${PF}-gentoo" > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ ewarn
+ elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+ elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+ elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+ ewarn
+ fi
+
+ # bug 352291
+ gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
+ if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+ fi
+}
diff --git a/dev-vcs/gitolite-gentoo/metadata.xml b/dev-vcs/gitolite-gentoo/metadata.xml
new file mode 100644
index 000000000000..7e8ef57c8013
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/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>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <use>
+ <flag name="contrib">Install user-contributed files</flag>
+ <flag name="tools">Install tools to e.g. convert a Gitosis config to
+ gitolite or one to check if your setup is gitolite >= 3.x compatible</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/dev-vcs/gitolite/Manifest b/dev-vcs/gitolite/Manifest
new file mode 100644
index 000000000000..28abe50a2925
--- /dev/null
+++ b/dev-vcs/gitolite/Manifest
@@ -0,0 +1,5 @@
+DIST gitolite-2.3.1.tar.gz 255807 SHA256 53303fea0154914356830202d3de23f94682bab26197ead8ca05d58818c56e82 SHA512 a658104b54ff6668022a6010b961fbe13b8e7a66242d547e0e4cf685574d8a1fd60065112095b0d73b826f6346973cb3a5db307d84fd5aceba852f2ddd0c86ee WHIRLPOOL 5d08b9c22e6a07478836cca3b7190b61729ef89e181e4746286a4cf48f253fe07647b165f22483d983bae1767d83b39f231414dc96b4e803140f64eb244fc241
+DIST gitolite-3.6.1.tar.gz 165506 SHA256 7ee03d715cc4d87c0b6dbca5d79daf6f50f657ab33b99da256d7ab02cefe3f6a SHA512 b568f9e96ddfa4cd482197a89cb0142fcb2717028227a0a2e9caa9864bb95379042ec464352a1d99dfd8ccff780b1211e8f926ad8de284245fc280038eda481a WHIRLPOOL 9101ba55ba1a94b53ba3e9421d170d5b650e3e72c390abb3aea186630638b4fa6b8a5d69d9553ed574444be00f263dabcfe11e63f89f2eb3787ab8765e67c4ce
+DIST gitolite-3.6.2.tar.gz 167670 SHA256 012c372b53d765558131ae0df23a590d41b042c8b88e38e952992caf52fc4fbf SHA512 f8f041fde1b7c533fcb9cc32beec99dd83bc0a81795115e7205585bbe2f25135e2347df437e123349525a0186fe702f265330b259d336389b437cecf0e894629 WHIRLPOOL 319a4d91950ad123fd9cd76c1bb0a2afc44843b42a8ff0309aef9eee0f15ae9b830286cd1040219ff7cd1c93e0818f9e0191e34b3f41037ea165a4e0d850601c
+DIST gitolite-3.6.3.tar.gz 174689 SHA256 9b20eb6ae84358c5f063b02da64e49bef4605c9bfc7fb3700a2766dba58b9d99 SHA512 afb8bcf27052d46725c4b3a6dd483e98ac3e574651bfe2ee35b442f044791acae8a17cbbab4237992a9755367e37f5160514d67cd2d863d623d32ed5fdf39362 WHIRLPOOL 8f2495b9cc462760632e58cdfeec3759070fcaad9f7c31faab13bb72de5e680967cba10ed5a79841f81fd257b056d520a36415619107f15919787711628ce9c8
+DIST gitolite-3.6.tar.gz 156481 SHA256 ae9180a180a05cad344788eadc8340d6ebcb4cc60d96a1f5ab5fc355d395ba4b SHA512 91606a5fed202f0da2194310bc7da8e5d35cdfa2924b009ed3447ba41e2fd856b9043f1b57d16600ec44f17d640e9ee988b4086bea032827bf5fca83e5ff024f WHIRLPOOL 79b3a553dd25db9a3e99d7725c0932bb0b126f30bd013b9cc53d69f60d0c906eac4134b25f6759d9635e50df3324d731f16c30fb44c25e89df7e35560a3e00b1
diff --git a/dev-vcs/gitolite/gitolite-2.3.1-r1.ebuild b/dev-vcs/gitolite/gitolite-2.3.1-r1.ebuild
new file mode 100644
index 000000000000..70443ce82e2c
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-2.3.1-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+SRC_URI="http://milki.github.com/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="contrib vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ rm Makefile doc/COPYING || die
+ rm -rf contrib/{gitweb,vim} || die
+
+ echo "${PF}" > conf/VERSION
+}
+
+src_install() {
+ local gl_bin="${D}/usr/bin"
+ gl_bin=${gl_bin/\/\//\/}
+
+ dodir /usr/share/gitolite/{conf,hooks} /usr/bin || die
+
+ # install using upstream method
+ export PATH="${gl_bin}:${PATH}"
+ ./src/gl-system-install ${gl_bin} \
+ "${D}"/usr/share/gitolite/conf "${D}"/usr/share/gitolite/hooks || die
+ sed -i -e "s:${D}::g" "${D}/usr/bin/gl-setup" \
+ "${D}/usr/share/gitolite/conf/example.gitolite.rc" || die
+
+ rm "${D}"/usr/bin/*.pm
+ insinto "${VENDOR_LIB}"
+ doins src/*.pm || die
+
+ dodoc README.mkd doc/*
+
+ if use contrib; then
+ insinto /usr/share/doc/${PF}
+ doins -r contrib/ || die
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+}
+
+pkg_postinst() {
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-3.6.1.ebuild b/dev-vcs/gitolite/gitolite-3.6.1.ebuild
new file mode 100644
index 000000000000..5d309190d616
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user versionator
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.txt CHANGELOG
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-3.6.2-r1.ebuild b/dev-vcs/gitolite/gitolite-3.6.2-r1.ebuild
new file mode 100644
index 000000000000..71c7f88232bf
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.2-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://github.com/sitaramc/gitolite.git"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-3.6.2.ebuild b/dev-vcs/gitolite/gitolite-3.6.2.ebuild
new file mode 100644
index 000000000000..98e22a713749
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.2.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user versionator
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-3.6.3.ebuild b/dev-vcs/gitolite/gitolite-3.6.3.ebuild
new file mode 100644
index 000000000000..6f0c69593da9
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.3.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://github.com/sitaramc/gitolite.git"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ selinux? ( sec-policy/selinux-gitosis )
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-3.6.ebuild b/dev-vcs/gitolite/gitolite-3.6.ebuild
new file mode 100644
index 000000000000..26bfd8840a75
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module user versionator
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.txt CHANGELOG
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/gitolite-9999.ebuild b/dev-vcs/gitolite/gitolite-9999.ebuild
new file mode 100644
index 000000000000..71c7f88232bf
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-9999.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://github.com/sitaramc/gitolite.git"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="http://github.com/sitaramc/gitolite"
+if [[ ${PV} != *9999 ]]; then
+ SRC_URI="https://github.com/sitaramc/gitolite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+else
+ SRC_URI=""
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="tools vim-syntax"
+
+DEPEND="dev-lang/perl
+ virtual/perl-File-Path
+ virtual/perl-File-Temp
+ >=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+ !dev-vcs/gitolite-gentoo
+ vim-syntax? ( app-vim/gitolite-syntax )
+ dev-perl/JSON"
+
+pkg_setup() {
+ enewgroup git
+ enewuser git -1 /bin/sh /var/lib/gitolite git
+}
+
+src_prepare() {
+ echo $PF > src/VERSION
+}
+
+src_install() {
+ local uexec=/usr/libexec/${PN}
+
+ rm -rf src/lib/Gitolite/Test{,.pm}
+ insinto $VENDOR_LIB
+ doins -r src/lib/Gitolite
+
+ dodoc README.markdown CHANGELOG
+ # These are meant by upstream as examples, you are strongly recommended to
+ # customize them for your needs.
+ dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+ insopts -m0755
+ insinto $uexec
+ doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+ doins -r contrib/{commands,triggers}
+
+ insopts -m0644
+ doins src/VERSION
+
+ exeinto $uexec
+ doexe src/gitolite{,-shell}
+
+ dodir /usr/bin
+ for bin in gitolite{,-shell}; do
+ dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+ done
+
+ if use tools; then
+ dobin check-g2-compat convert-gitosis-conf
+ dobin contrib/utils/rc-format-v3.4
+ fi
+
+ keepdir /var/lib/gitolite
+ fowners git:git /var/lib/gitolite
+ fperms 750 /var/lib/gitolite
+
+ fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+ if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+ ewarn
+ elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+ elog "Please read http://gitolite.com/gitolite/migr.html first!"
+ fi
+
+ # bug 352291
+ ewarn
+ elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
+ elog "Especially if you're migrating from gitosis."
+ ewarn
+}
diff --git a/dev-vcs/gitolite/metadata.xml b/dev-vcs/gitolite/metadata.xml
new file mode 100644
index 000000000000..bc43d2c4f5ee
--- /dev/null
+++ b/dev-vcs/gitolite/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <longdescription lang="en">
+ Gitolite is an access control layer on top of git, which allows access
+ control down to the branch level, including specifying who can and cannot
+ rewind a given branch.
+ </longdescription>
+ <use>
+ <flag name="contrib">Install user-contributed files</flag>
+ <flag name="tools">Install tools to e.g. convert a Gitosis config to
+ gitolite or one to check if your setup is gitolite &gt;= 3.x compatible</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">sitaramc/gitolite</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/gitsh/Manifest b/dev-vcs/gitsh/Manifest
new file mode 100644
index 000000000000..8fc5c7da426e
--- /dev/null
+++ b/dev-vcs/gitsh/Manifest
@@ -0,0 +1 @@
+DIST gitsh-0.8.tar.gz 48393 SHA256 61125105819f8b10005ed41ed334ab2ad6104a8dba799090b0827b72075b1665 SHA512 9ec115f0e71e3708245b11cef0c853446b2e774c30372b5516a239e9db03937d9cde1d1525ca1812759b5c3d59101179490691756a84478ebd8667268beeb8ae WHIRLPOOL 9b0368091ffe59191eff481073b9fa06172d39f2a14076ff03866767349daf0fb3e1de62d7d176bd88efefaceecf68eec607b0ec72a86b1709c8ae9f71f3a96e
diff --git a/dev-vcs/gitsh/gitsh-0.8.ebuild b/dev-vcs/gitsh/gitsh-0.8.ebuild
new file mode 100644
index 000000000000..4e18b0440029
--- /dev/null
+++ b/dev-vcs/gitsh/gitsh-0.8.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+USE_RUBY="ruby19 ruby20 ruby21"
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+inherit autotools ruby-fakegem
+
+DESCRIPTION="An interactive shell for git"
+HOMEPAGE="https://github.com/thoughtbot/gitsh"
+SRC_URI="https://github.com/thoughtbot/gitsh/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~amd64-linux"
+IUSE=""
+
+ruby_add_rdepend "
+ dev-ruby/bundler
+ dev-ruby/blankslate:2
+ dev-ruby/metaclass
+ dev-ruby/bourne
+ dev-ruby/coderay
+ dev-ruby/diff-lcs
+ dev-ruby/method_source
+ dev-ruby/mocha:0.14
+ dev-ruby/parslet
+ dev-ruby/pry
+ dev-ruby/slop:3
+ dev-ruby/rspec:2
+ "
+
+DOCS="README.md"
+
+each_ruby_prepare() {
+ rm Gemfile.lock || die
+ eautoreconf
+}
+
+each_ruby_configure() {
+ default
+}
+
+each_ruby_compile() {
+ default
+}
diff --git a/dev-vcs/gitsh/metadata.xml b/dev-vcs/gitsh/metadata.xml
new file mode 100644
index 000000000000..f89100e407ee
--- /dev/null
+++ b/dev-vcs/gitsh/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>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">thoughtbot/gitsh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/gitstats/Manifest b/dev-vcs/gitstats/Manifest
new file mode 100644
index 000000000000..ee38df2d2dba
--- /dev/null
+++ b/dev-vcs/gitstats/Manifest
@@ -0,0 +1 @@
+DIST gitstats-0_pre131024.tar.xz 32104 SHA256 67ec923e2cdfb260b945fa9ff9d12ba4e3398d89b89d50e49dcf55a338a6ab5d SHA512 a42c6ca37d39c24782c19a1157cc5aaf3a16e34c603c5fa3f91fcd5165e6f4788d5d75786b78f962ab81b3db66dd94f051dd929f02f4ffef845ec5b793feba53 WHIRLPOOL 13c20e208bf41da378091905c23c6cc3481bcb4a83db0c7524eee4017ececc7c0c81d583a03d80f7ecb23d8a0f691115475c805eeffdd40dd2f486d0bf7a59e6
diff --git a/dev-vcs/gitstats/gitstats-0_pre131024.ebuild b/dev-vcs/gitstats/gitstats-0_pre131024.ebuild
new file mode 100644
index 000000000000..19f8181564bb
--- /dev/null
+++ b/dev-vcs/gitstats/gitstats-0_pre131024.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="Statistics generator for git"
+HOMEPAGE="http://gitstats.sourceforge.net/"
+SRC_URI="http://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ sci-visualization/gnuplot[gd]
+ dev-vcs/git"
+DEPEND=""
+
+src_prepare() {
+ sed \
+ -e "s:basedir = os.path.dirname(os.path.abspath(__file__)):basedir = '${EPREFIX}/usr/share/gitstats':g" \
+ -i gitstats || die "failed to fix static files path"
+}
+
+src_compile() {
+ :;
+}
+
+src_install() {
+ emake PREFIX="${D}"/usr VERSION="${PV}" install
+ dodoc doc/{README,*.txt}
+ python_replicate_script "${ED}"/usr/bin/${PN}
+}
diff --git a/dev-vcs/gitstats/gitstats-9999.ebuild b/dev-vcs/gitstats/gitstats-9999.ebuild
new file mode 100644
index 000000000000..06a43c4884dc
--- /dev/null
+++ b/dev-vcs/gitstats/gitstats-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=( python2_7 )
+
+inherit python-r1 git-2
+
+DESCRIPTION="Statistics generator for git"
+HOMEPAGE="http://gitstats.sourceforge.net/"
+SRC_URI=""
+EGIT_REPO_URI="
+ git://repo.or.cz/${PN}.git
+ http://repo.or.cz/r/${PN}.git"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND="
+ sci-visualization/gnuplot[gd]
+ dev-vcs/git"
+DEPEND=""
+
+src_prepare() {
+ sed \
+ -e "s:basedir = os.path.dirname(os.path.abspath(__file__)):basedir = '${EPREFIX}/usr/share/gitstats':g" \
+ -i gitstats || die "failed to fix static files path"
+}
+
+src_compile() {
+ :;
+}
+
+src_install() {
+ emake PREFIX="${D}"/usr VERSION="${PV}" install
+ dodoc doc/{README,*.txt}
+ python_replicate_script "${ED}"/usr/bin/${PN}
+}
diff --git a/dev-vcs/gitstats/metadata.xml b/dev-vcs/gitstats/metadata.xml
new file mode 100644
index 000000000000..4a00a64b40ae
--- /dev/null
+++ b/dev-vcs/gitstats/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>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/gti/gti-9999.ebuild b/dev-vcs/gti/gti-9999.ebuild
new file mode 100644
index 000000000000..91dbf3453ab5
--- /dev/null
+++ b/dev-vcs/gti/gti-9999.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+EGIT_REPO_URI="git://github.com/rwos/${PN}.git"
+inherit git-2
+
+DESCRIPTION="A silly git launcher, basically. Inspired by sl"
+HOMEPAGE="http://r-wos.org/hacks/gti"
+SRC_URI=""
+
+LICENSE="MIT"
+SLOT="0"
+[[ ${PV} == 9999 ]] || \
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE=""
+
+DEPEND="dev-vcs/git"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # fix the makefile
+ sed -i \
+ -e "s:CC=:CC?=:g" \
+ -e "s:CFLAGS=:CFLAGS?=:g" \
+ -e "/-strip/d" \
+ -e 's:$(CC):$(CC) $(LDFLAGS):' \
+ Makefile
+}
+
+src_install() {
+ dobin gti
+}
diff --git a/dev-vcs/gti/metadata.xml b/dev-vcs/gti/metadata.xml
new file mode 100644
index 000000000000..ee9a60770d9e
--- /dev/null
+++ b/dev-vcs/gti/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>scarabeus@gentoo.org</email>
+ <name>Tomáš Chvátal</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/guilt/Manifest b/dev-vcs/guilt/Manifest
new file mode 100644
index 000000000000..ebda16759f87
--- /dev/null
+++ b/dev-vcs/guilt/Manifest
@@ -0,0 +1,4 @@
+DIST guilt-0.32.tar.bz2 42248 SHA256 813ca10e4c803b6d387a8458dbbad2b1046fe0e2f77c60bc050bc0dc272e5162 SHA512 d2e59d8a04e072de36229b2ff5e6c944e87bd0dc18f83804f529807aa0b97aba1c37644ab6d8859abb58a9fe04d2f6562c77a25c7cd8fe4ad7631a1b77a112f9 WHIRLPOOL 91c270eb4bc2902dce1f75b9b551ba96ba56ff616e6a6ddbd2ebc86f02d5dedc990eddce817560f59465fb30fd868817ce1f5b42da99a52c30aa95f95fab39d5
+DIST guilt-0.34.tar.bz2 43563 SHA256 be379dced950d512df0f33dfd385384aba2db8f1eb5a55c11fe2ba28317c8e33 SHA512 9c46dddad3e879939d2b31720660c4b6d62d46114cf4731aa7c826554b1e97eeff044e5373f5bf2f7539d49d969fc451a8a4392f05880ed444a2b0d76a7d22d4 WHIRLPOOL 41568c9dcc547944032aee824d11983f81530c643825755e34efe01a1395168fe1ad7072af7f5018d01c53c23ca379ddf2797749f37a66468a10c9bd035ab6bd
+DIST guilt-manpages-0.32.tar.bz2 9503 SHA256 8b74f34072d17894eabf1c14abcaf681a5658beee13c99fed082ac95e4b4009e SHA512 6174cdd6e7262efb06a2c212de309e1268c8b05e4aeeaace7f8e5874700f9b62dcc82ca9c596987f81dc7a64e525232816b516f47abcfe26aece438fe571f788 WHIRLPOOL 7ca734852eee65fa85a5a2e009d3eb0e694f6b00952c0c8785745befd0d92b1374dd5531d1d784e4f90d96c34c51c7a5bffa1f321d45042d4a69f4ed9514d583
+DIST guilt-manpages-0.34.tar.bz2 7566 SHA256 0e505de837f3039f96d4d393434034e23e9c8a8e5db48bea75d197cdd2d92b4e SHA512 e5056038d2f646c8fc78f9bc6e2afa81de8767a071f55735125eff34f7d8bb15509613a21545f868f931ee5bc24c41cffacaca047180adb1485ab76ab191be76 WHIRLPOOL ab928d575a29de8383c998dfd3ddb5667c133474ab8f79655036ebe67f7079d9f3b77cfa08dbe739e2db7bbbb430cc47bc5f24973dfe2f27e8ade4e0b9e9c428
diff --git a/dev-vcs/guilt/guilt-0.32.ebuild b/dev-vcs/guilt/guilt-0.32.ebuild
new file mode 100644
index 000000000000..84273330809a
--- /dev/null
+++ b/dev-vcs/guilt/guilt-0.32.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="A series of bash scripts which add a quilt-like interface to git"
+HOMEPAGE="http://www.kernel.org/pub/linux/kernel/people/jsipek/guilt/"
+SRC_URI="mirror://kernel/linux/kernel/people/jsipek/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-manpages-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ppc ~sparc x86"
+IUSE="doc"
+
+RDEPEND="dev-vcs/git"
+DEPEND="${RDEPEND}
+ doc? ( app-text/asciidoc app-text/xmlto )"
+
+RESTRICT="test"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ sed -i \
+ -e '/^PREFIX/s:=.*:=/usr:' \
+ -e "/^htmldir/s:=.*:=/usr/share/doc/${PF}/html:" \
+ -e "/^VERSION/s:=.*:=${PV}:" \
+ Makefile */Makefile || die
+}
+
+src_compile() {
+ if use doc ; then
+ emake -C Documentation html || die
+ fi
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ dodoc Documentation/{Contributing,Features,HOWTO,Requirements}
+ doman Documentation/*.[0-9] || die
+
+ if use doc ; then
+ dodir "/usr/share/doc/${PF}/html"
+ emake -C Documentation install-html DESTDIR="${D}" || die
+ fi
+}
diff --git a/dev-vcs/guilt/guilt-0.34.ebuild b/dev-vcs/guilt/guilt-0.34.ebuild
new file mode 100644
index 000000000000..78387ba939f3
--- /dev/null
+++ b/dev-vcs/guilt/guilt-0.34.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="A series of bash scripts which add a quilt-like interface to git"
+HOMEPAGE="http://www.kernel.org/pub/linux/kernel/people/jsipek/guilt/"
+# create manpages with "make -C Documentation man"
+SRC_URI="mirror://kernel/linux/kernel/people/jsipek/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-manpages-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="doc"
+
+RDEPEND="dev-vcs/git"
+DEPEND="${RDEPEND}
+ doc? ( app-text/asciidoc app-text/xmlto )"
+
+RESTRICT="test"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ sed -i \
+ -e '/^PREFIX/s:=.*:=/usr:' \
+ -e "/^htmldir/s:=.*:=/usr/share/doc/${PF}/html:" \
+ -e "/^VERSION/s:=.*:=${PV}:" \
+ Makefile */Makefile || die
+}
+
+src_compile() {
+ if use doc ; then
+ emake -C Documentation html || die
+ fi
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ dodoc Documentation/{Contributing,Features,HOWTO,Requirements}
+ doman Documentation/*.[0-9] || die
+
+ if use doc ; then
+ dodir "/usr/share/doc/${PF}/html"
+ emake -C Documentation install-html DESTDIR="${D}" || die
+ fi
+}
diff --git a/dev-vcs/guilt/metadata.xml b/dev-vcs/guilt/metadata.xml
new file mode 100644
index 000000000000..ff62877c67ae
--- /dev/null
+++ b/dev-vcs/guilt/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/dev-vcs/hg-fast-export/Manifest b/dev-vcs/hg-fast-export/Manifest
new file mode 100644
index 000000000000..515f9b636973
--- /dev/null
+++ b/dev-vcs/hg-fast-export/Manifest
@@ -0,0 +1,2 @@
+DIST hg-fast-export-20140328.tar.gz 14436 SHA256 a580dcd0ab2205de8e59cd3c46a23661799e433293b5a8d52179632eead0a690 SHA512 9eb7613634a176a5f273f5f86d0cdc544b360e98743866e47cf36859e1a84e95bb88b646e7c36d8671b7c7e61a0601684c38372c95aa173d324b897d6db7a39c WHIRLPOOL 1dd863a7685713fe244d71af1d7ffcbcb45a0904fad0cd31be64b524c7e5d37bd51ad13c11205eb587e606b57148f86041f334423d808335bf3137c46be9ce31
+DIST hg-fast-export-20140706.tar.gz 14671 SHA256 cab19797e7903fc7c6aeee00317d27608d1724837554c2dea47ac531b348cd73 SHA512 1c7421f6944af822dd0a6b8ac23c31f198b15da77a16773c5fd80371c3e059e1f45c1e67e5d88cfcf130e648252a76d923badf7fa2e0e3bd1a32e561c1c8f150 WHIRLPOOL 43d96daf9a77b18c7e7e2fe5375107a00e2b92f4ee1ed303534dfff42077b0a27c52ab65b89f308e3f5bda23f58a4f073537c60c69e94fed7f191e22bb04a49c
diff --git a/dev-vcs/hg-fast-export/hg-fast-export-20140328.ebuild b/dev-vcs/hg-fast-export/hg-fast-export-20140328.ebuild
new file mode 100644
index 000000000000..d773433d5955
--- /dev/null
+++ b/dev-vcs/hg-fast-export/hg-fast-export-20140328.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 )
+
+inherit python-r1 vcs-snapshot
+
+COMMIT="779e2f6da887729fc513f5efceaa3a3083858c9b"
+DESCRIPTION="mercurial to git converter using git-fast-import"
+HOMEPAGE="https://github.com/frej/fast-export"
+SRC_URI="${HOMEPAGE}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/git
+ dev-vcs/mercurial
+ ${PYTHON_DEPS}"
+
+src_prepare() {
+ sed -e '/^PYTHON/s/python/&2/' \
+ -e 's/PYTHON/E&/g' \
+ -i "${PN}".sh || die
+ rm Makefile || die #don't compile old svn2git code
+}
+
+src_install() {
+ newbin "${PN}".sh "${PN}"
+ python_foreach_impl python_doexe "${PN}".py
+ python_foreach_impl python_domodule hg2git.py
+}
diff --git a/dev-vcs/hg-fast-export/hg-fast-export-20140706.ebuild b/dev-vcs/hg-fast-export/hg-fast-export-20140706.ebuild
new file mode 100644
index 000000000000..7763dc633ba1
--- /dev/null
+++ b/dev-vcs/hg-fast-export/hg-fast-export-20140706.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1 vcs-snapshot
+
+COMMIT="2c21922ad1795e1d305dac6bdb977f2e50eb809e"
+DESCRIPTION="mercurial to git converter using git-fast-import"
+HOMEPAGE="https://github.com/frej/fast-export"
+SRC_URI="${HOMEPAGE}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-vcs/git
+ dev-vcs/mercurial
+ ${PYTHON_DEPS}"
+
+src_prepare() {
+ sed -e '/^PYTHON/s/python/&2.7/' \
+ -e '/^PYTHON/s/PYTHON:/E&/g' \
+ -e "/^ROOT/s:=.*:='${EPREFIX}/usr/bin':" \
+ -i "${PN}".sh || die
+ rm Makefile || die #don't compile old svn2git code
+}
+
+src_install() {
+ newbin "${PN}".sh "${PN}"
+ dodoc README
+ python_foreach_impl python_doexe "${PN}".py
+ python_foreach_impl python_domodule hg2git.py
+}
diff --git a/dev-vcs/hg-fast-export/metadata.xml b/dev-vcs/hg-fast-export/metadata.xml
new file mode 100644
index 000000000000..60462d91cb20
--- /dev/null
+++ b/dev-vcs/hg-fast-export/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>ottxor@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">frej/fast-export</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/hg-git/Manifest b/dev-vcs/hg-git/Manifest
new file mode 100644
index 000000000000..7538c5a3ae31
--- /dev/null
+++ b/dev-vcs/hg-git/Manifest
@@ -0,0 +1,3 @@
+DIST hg-git-0.7.0.tar.gz 42956 SHA256 9db9cd87b9b173c192b29336b4029122a4fe2858c369dc8c5a59228515bc61a9 SHA512 732dbd12184a5346310b6d14bb0b24c2255ff607ef54d064387b7cadd64aa84dd2d6909e6dde36f9fa8ac8131c1adc315c2bae2e068066864c086b239524d5d4 WHIRLPOOL 0c8216da9fdaebc2fcb56d7bec12e9a087570cf032d253e77833cbf8f31a2d581d85b820c51e37cd519ce720bd49fec5be27211b58b64fb9c18b1fff1c24d26e
+DIST hg-git-0.8.0.tar.gz 46004 SHA256 91a16e34612595eca8c4e23d847c6ab697267b68008594926123c6c0064298dc SHA512 6281ef070b110d0449f5667888f9f97c3c310a840890283d14f7b0d35a397bdc995af0726acc28737aa35ff99631406b575dad141a1bd16dab88eac7fb855199 WHIRLPOOL 99dac4e75cb322b68a3b7990f0130acb0ef8245583e612432f0f4af06d8ce411d7f211291683bb1adcd1866d2125796c64b37d690738bb5f4a3efd2e114934fe
+DIST hg-git-0.8.1.tar.gz 46817 SHA256 ceeddfb48dc160e4c6be8c15a722a44b8554b7f68e1838f6af1018ed78b9451d SHA512 58ed927bf843f2d9ce25b17b43866bc1cfeba0361ebba3a276967a82b7f1a0fbc9e5eed673248f1812f97c8924176a54b5df5e4a349d6f58faaaf4d28df61f57 WHIRLPOOL 8082755ad1889059071b821019bd695be920f3b3361cdde02f74e2d099fa4e5f6b36ee410956b205b7ffd1b971c366c9374e810a984f91cc6d8bb56f60b5c897
diff --git a/dev-vcs/hg-git/files/hg-git-0.3.4-git_handler-bookmarks-hg25.patch b/dev-vcs/hg-git/files/hg-git-0.3.4-git_handler-bookmarks-hg25.patch
new file mode 100644
index 000000000000..2d3e06a840cc
--- /dev/null
+++ b/dev-vcs/hg-git/files/hg-git-0.3.4-git_handler-bookmarks-hg25.patch
@@ -0,0 +1,31 @@
+From 90904fffd50fa95cd9c0f4f9210a2e800b08a50d Mon Sep 17 00:00:00 2001
+From: "David M. Carr" <david@carrclan.us>
+Date: Thu, 22 Nov 2012 18:44:09 -0500
+Subject: [PATCH] git_handler: add bookmark compatibility with new bmstore
+ (issue #60)
+
+Prior to this fix, tests against the latest hg codebase would fail with:
+creating bookmarks failed, do you have bookmarks enabled?
+---
+ hggit/git_handler.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/hggit/git_handler.py b/hggit/git_handler.py
+index 2563e1b..a14c770 100644
+--- a/hggit/git_handler.py
++++ b/hggit/git_handler.py
+@@ -1044,7 +1044,10 @@ def update_hg_bookmarks(self, refs):
+ bookmarks.write(self.repo, bms)
+ else:
+ self.repo._bookmarks = bms
+- bookmarks.write(self.repo)
++ if getattr(bms, 'write', None): # hg >= 2.5
++ bms.write()
++ else: # hg < 2.5
++ bookmarks.write(self.repo)
+
+ except AttributeError:
+ self.ui.warn(_('creating bookmarks failed, do you have'
+--
+1.8.1.5
+
diff --git a/dev-vcs/hg-git/hg-git-0.7.0.ebuild b/dev-vcs/hg-git/hg-git-0.7.0.ebuild
new file mode 100644
index 000000000000..89016f56ab03
--- /dev/null
+++ b/dev-vcs/hg-git/hg-git-0.7.0.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=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="push to and pull from a Git repository using Mercurial"
+HOMEPAGE="http://hg-git.github.io https://pypi.python.org/pypi/hg-git"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="
+ >=dev-vcs/mercurial-1.9.3[${PYTHON_USEDEP}]
+ <dev-vcs/mercurial-3.3.3[${PYTHON_USEDEP}]
+ >=dev-python/dulwich-0.9.4[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-vcs/hg-git/hg-git-0.8.0.ebuild b/dev-vcs/hg-git/hg-git-0.8.0.ebuild
new file mode 100644
index 000000000000..2dbdf94eac10
--- /dev/null
+++ b/dev-vcs/hg-git/hg-git-0.8.0.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=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="push to and pull from a Git repository using Mercurial"
+HOMEPAGE="http://hg-git.github.io https://pypi.python.org/pypi/hg-git"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="
+ >=dev-vcs/mercurial-1.9.3[${PYTHON_USEDEP}]
+ <dev-vcs/mercurial-3.3.3[${PYTHON_USEDEP}]
+ >=dev-python/dulwich-0.9.4[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-vcs/hg-git/hg-git-0.8.1.ebuild b/dev-vcs/hg-git/hg-git-0.8.1.ebuild
new file mode 100644
index 000000000000..e2c3fb37b851
--- /dev/null
+++ b/dev-vcs/hg-git/hg-git-0.8.1.ebuild
@@ -0,0 +1,25 @@
+# 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="push to and pull from a Git repository using Mercurial"
+HOMEPAGE="http://hg-git.github.io https://pypi.python.org/pypi/hg-git"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="
+ >=dev-vcs/mercurial-1.9.3[${PYTHON_USEDEP}]
+ >=dev-python/dulwich-0.9.4[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
diff --git a/dev-vcs/hg-git/metadata.xml b/dev-vcs/hg-git/metadata.xml
new file mode 100644
index 000000000000..6a46e8d449e3
--- /dev/null
+++ b/dev-vcs/hg-git/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>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <maintainer>
+ <email>grobian@gentoo.org</email>
+ <name>Fabian Groffen</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">hg-git</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/hgsubversion/Manifest b/dev-vcs/hgsubversion/Manifest
new file mode 100644
index 000000000000..a3e34e9a29ea
--- /dev/null
+++ b/dev-vcs/hgsubversion/Manifest
@@ -0,0 +1,5 @@
+DIST hgsubversion-1.4.tar.gz 133564 SHA256 e3febee217ce321d316712c4c75236dcc2f2769c329c687114e2c37d303f1c0f SHA512 23305b210e2f51cbcd866a5d87caa23f8e5d405532b3139f5700572f13f5a52c1699d937e8c87a8580274ddc1240f51b773334083ced44da98fe7bf270f006fb WHIRLPOOL 5c7b4b9a5537ce4b65f806db23ab4e0ad920b394b44a015d8144c8da9456ad3ed8f3cc8911d539a2488fbd1e446aa7cb6ad5af0c195461ad580ee497cf793a91
+DIST hgsubversion-1.6.1.tar.gz 173184 SHA256 bb2787259a5f9716fe4ff4f6a4e6170fb8109c6f74550cbd92ec314d8d4278a0 SHA512 0f8e50a7445b85ad6a4984d22b976d55ebf6e15ade85aed2ae87aaf7914bcc9fbb4bd68347b1377ca2d0d307de31cbcc5e2b3691327ab9463401a1c5eee8a6f2 WHIRLPOOL c581de56a6ae5cf98ab78c8f61e1f1f1f7df895be582ccad94e05675965770aaee7e51371a14059dd2bbbc29407697dcfe1341c564cced8377283b75e0569752
+DIST hgsubversion-1.6.3.tar.gz 177625 SHA256 915f4415208f61ae7dc551da94a3c6269805af0558945a9f2736e60b0a6190c5 SHA512 b94c5febced30a6d199307ea7ff53b737e287055a97ddc539eb982efd357e8eac97bed52404099ec537ca84ff4a29a109ba88d658dfc0df38128ee1727cf3465 WHIRLPOOL 7a7970cbd223311629cb889389ffe6c48a76d54554c736fe66c025151fdad4f0083216b6465e3734319abfe0a0eb4823812652d8236ce58c20ce90baf5fa9299
+DIST hgsubversion-1.7.tar.gz 179852 SHA256 87ac8ad36dc4252202a3138a1a126710bb8f6783c9806ea408bcb8f467daf292 SHA512 a80884df901d8233ae1e59040dd272b904e6f52bcfa5a3b804e5e2b49dad75c253f1c9efe61f2dbd587f901dac0e0704e618297a975665eed8d6fc6042cd8e49 WHIRLPOOL cab9f0ce016bc1336096aa75f696664524afd391aedfded0455b006f92ed7e5b04d79b2056d3b1892fc6d02c1954edfb21495d5042296a5fe51556a0ec923494
+DIST hgsubversion-1.8.tar.gz 179375 SHA256 f8e4d1b4fc8621b8ed782f74a6328c76dabec1385d4f732f2a15d4efd27201b1 SHA512 dd38722f771e9fa4b56e8921064c7b819bb9c0483aaef48de7414531c1cc1fa3802ef3870ef22c59526afa6aa10459c0ea9f8ef1b6e3f20b41c8457c644433f9 WHIRLPOOL f70c6061e1f6dda053b65e896a7fd8ac133f08a256d0b3b47910c5b477583f0a921e76efcb557019291c6fb810293d740f8f561b56800b41ac00c050cde9b0ef
diff --git a/dev-vcs/hgsubversion/hgsubversion-1.4.ebuild b/dev-vcs/hgsubversion/hgsubversion-1.4.ebuild
new file mode 100644
index 000000000000..8e1ba8ee7400
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-1.4.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 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="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="test"
+
+RDEPEND="
+ >=dev-vcs/mercurial-1.4
+ || (
+ dev-python/subvertpy
+ >=dev-vcs/subversion-1.5[python]
+ )
+"
+DEPEND="
+ dev-python/setuptools
+ test? ( dev-python/nose )
+"
+
+DOCS="README"
+
+src_test() {
+ cd tests
+
+ testing() {
+ PYTHONPATH="../build-${PYTHON_ABI}/lib" "$(PYTHON)" run.py
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/hgsubversion/hgsubversion-1.6.1.ebuild b/dev-vcs/hgsubversion/hgsubversion-1.6.1.ebuild
new file mode 100644
index 000000000000..8b3d73cc55ab
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-1.6.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=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="test"
+
+# although any ref absent in the source, tests fail badly with >=mercurial-2.8.1
+RDEPEND=">=dev-vcs/mercurial-1.4[${PYTHON_USEDEP}]
+ dev-vcs/mercurial[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/subvertpy-0.7.4[${PYTHON_USEDEP}]
+ >=dev-vcs/subversion-1.5[python] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( README )
+
+#python_test() {
+# "${PYTHON}" tests/run.py || die "Tests failed under ${EPYTHON}"
+#}
diff --git a/dev-vcs/hgsubversion/hgsubversion-1.6.3.ebuild b/dev-vcs/hgsubversion/hgsubversion-1.6.3.ebuild
new file mode 100644
index 000000000000..e9a8673c29ac
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-1.6.3.ebuild
@@ -0,0 +1,32 @@
+# 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="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="test"
+
+# although any ref absent in the source, tests fail badly with >=mercurial-2.8.1
+RDEPEND=">=dev-vcs/mercurial-1.4[${PYTHON_USEDEP}]
+ dev-vcs/mercurial[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/subvertpy-0.7.4[${PYTHON_USEDEP}]
+ >=dev-vcs/subversion-1.5[python] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( README )
+
+#python_test() {
+# "${PYTHON}" tests/run.py || die "Tests failed under ${EPYTHON}"
+#}
diff --git a/dev-vcs/hgsubversion/hgsubversion-1.7.ebuild b/dev-vcs/hgsubversion/hgsubversion-1.7.ebuild
new file mode 100644
index 000000000000..e9a8673c29ac
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-1.7.ebuild
@@ -0,0 +1,32 @@
+# 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="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="test"
+
+# although any ref absent in the source, tests fail badly with >=mercurial-2.8.1
+RDEPEND=">=dev-vcs/mercurial-1.4[${PYTHON_USEDEP}]
+ dev-vcs/mercurial[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/subvertpy-0.7.4[${PYTHON_USEDEP}]
+ >=dev-vcs/subversion-1.5[python] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( README )
+
+#python_test() {
+# "${PYTHON}" tests/run.py || die "Tests failed under ${EPYTHON}"
+#}
diff --git a/dev-vcs/hgsubversion/hgsubversion-1.8.ebuild b/dev-vcs/hgsubversion/hgsubversion-1.8.ebuild
new file mode 100644
index 000000000000..8b3d73cc55ab
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-1.8.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=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="test"
+
+# although any ref absent in the source, tests fail badly with >=mercurial-2.8.1
+RDEPEND=">=dev-vcs/mercurial-1.4[${PYTHON_USEDEP}]
+ dev-vcs/mercurial[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/subvertpy-0.7.4[${PYTHON_USEDEP}]
+ >=dev-vcs/subversion-1.5[python] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+DOCS=( README )
+
+#python_test() {
+# "${PYTHON}" tests/run.py || die "Tests failed under ${EPYTHON}"
+#}
diff --git a/dev-vcs/hgsubversion/hgsubversion-9999.ebuild b/dev-vcs/hgsubversion/hgsubversion-9999.ebuild
new file mode 100644
index 000000000000..2ecb506f596b
--- /dev/null
+++ b/dev-vcs/hgsubversion/hgsubversion-9999.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 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 mercurial
+
+DESCRIPTION="hgsubversion is a Mercurial extension for working with Subversion repositories"
+HOMEPAGE="https://bitbucket.org/durin42/hgsubversion/wiki/Home http://pypi.python.org/pypi/hgsubversion"
+SRC_URI=""
+EHG_REPO_URI="https://bitbucket.org/durin42/hgsubversion"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="test"
+
+RDEPEND="
+ >=dev-vcs/mercurial-1.4
+ || (
+ dev-python/subvertpy
+ >=dev-vcs/subversion-1.5[python]
+ )
+"
+DEPEND="
+ dev-python/setuptools
+ test? ( dev-python/nose )
+"
+
+DOCS="README"
+
+src_test() {
+ cd tests
+
+ testing() {
+ PYTHONPATH="../build-${PYTHON_ABI}/lib" "$(PYTHON)" run.py
+ }
+ python_execute_function testing
+}
diff --git a/dev-vcs/hgsubversion/metadata.xml b/dev-vcs/hgsubversion/metadata.xml
new file mode 100644
index 000000000000..5d9af741ef98
--- /dev/null
+++ b/dev-vcs/hgsubversion/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">hgsubversion</remote-id>
+ <remote-id type="bitbucket">durin42/hgsubversion</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/hgsvn/Manifest b/dev-vcs/hgsvn/Manifest
new file mode 100644
index 000000000000..9744d753d4a4
--- /dev/null
+++ b/dev-vcs/hgsvn/Manifest
@@ -0,0 +1 @@
+DIST hgsvn-0.2.3.zip 199696 SHA256 bd066a058b34b8beb0b108e729f223e177532487fed0422d978061620422ed0e SHA512 d88d683730430b825411b4267c78e82e492f45d55c49c8a19ed159a95390e58507b07217c4e5082a223c3217042fdc1ae2c96648b1880bd441117ca173ca4c09 WHIRLPOOL aa0027405a1d8aa58cb41e563f5120e00b8ea38a8a944146a0df3e4b715f2a0276f6811285aa1d324f3407fd11d234b4a5dba37c563612c3f98007b69cd8eca0
diff --git a/dev-vcs/hgsvn/hgsvn-0.2.3-r1.ebuild b/dev-vcs/hgsvn/hgsvn-0.2.3-r1.ebuild
new file mode 100644
index 000000000000..4673b29205e6
--- /dev/null
+++ b/dev-vcs/hgsvn/hgsvn-0.2.3-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+PYTHON_REQ_USE="xml"
+
+DESCRIPTION="A set of scripts to work locally on Subversion checkouts using Mercurial"
+HOMEPAGE="http://pypi.python.org/pypi/hgsvn"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux ~x86-macos"
+IUSE=""
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}
+ dev-vcs/subversion[${PYTHON_USEDEP}]"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_prepare_all() {
+ sed -e "/use_setuptools/d" -i setup.py || die "sed failed"
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ distutils-r1_python_install
+ rm -fr "${ED}$(python_get_sitedir)/hgsvn/unittests"
+}
diff --git a/dev-vcs/hgsvn/metadata.xml b/dev-vcs/hgsvn/metadata.xml
new file mode 100644
index 000000000000..e2a0f12dc5dd
--- /dev/null
+++ b/dev-vcs/hgsvn/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>A set of scripts to work locally on Subversion checkouts using Mercurial</longdescription>
+ <upstream>
+ <remote-id type="pypi">hgsvn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/hgview/Manifest b/dev-vcs/hgview/Manifest
new file mode 100644
index 000000000000..6dc0435f0e6b
--- /dev/null
+++ b/dev-vcs/hgview/Manifest
@@ -0,0 +1,4 @@
+DIST hgview-1.7.1.tar.gz 307250 SHA256 633862c3a2313e5f2432f19b9da9fa19a1ca8f2f2cd0b86df019832e86afc001 SHA512 ddd6645160a5660515d0dbf46af7d600cd9b1588393142f536f04889e75f4740af2b3196c879993138735ed4d2c16c2b71d3ef8997e50ae41e01c83b5b6f441a WHIRLPOOL 851d7e211153f070f3dbf0d86269cef5efbac002441768a8b73911237c99ce01b2dcfb26e5d31a726d52dd764769cbeeeaa915dacf8425c2a8251b8bb3f5bf47
+DIST hgview-1.8.0.tar.gz 177390 SHA256 21cbead835113cc307c2f9982805ba6621513260c44d3102d05f1a903ec4caec SHA512 8c432517d17253def8f2aefc5d5b2d7b7b4f422bf0f97d3a53501d9a3e1e023f6bf76a100d95479f93a0dcaa6816364a56a12e07467dfcb1a205b151d8115c47 WHIRLPOOL c8cb26d73be17cd43e9f07e222b3b41680d09b7f077519f50e076be17d98b450b445089c33f59fd3703c9a245de8e64756f745c8bda22418445a940bd933d15b
+DIST hgview-1.8.1.tar.gz 177648 SHA256 8a24899f050a8f6dba8d4b3d3bc31532e375b1a8e6012a9baaaf2a48a188f72c SHA512 2d7431acf15519a0ea87ae338bc1bb70f88cc456dec424aab0e7a5c258e8e8617133366fd7ad05a3ca4d740261f245757494f95de75e0a1fb1f756cf9728aa25 WHIRLPOOL d7dad115b5aa83ac3115e3f05154bd509f96a886ebbad0d01bbb0072bb22ea4ef84b76f4aa51514e17a3a2cd49814479045b1d1c76d0a2b8a2caa5fe1d96e115
+DIST hgview-1.8.2.tar.gz 178453 SHA256 0f4c2d7e40d3c6ab7a444502366ee262fdb6caca97c321e78d4e430e71a04655 SHA512 9bab867ebda22d730ea6e846523c2426ea88275a56ddc8546bd874266d2a9742abcb22bcd4a8f4bbd6b6deffbaac7b4a365117dd7a040a86f68e4f43bd793b6f WHIRLPOOL 744b3ab9af3cefa92d53645febaacf9b4e33ec1eb174763fe6e20e5f8c9ae610d9e84c898fe53dde14a5d58a8ee6f1d359731b656c92ed7ca0e38d079e05355a
diff --git a/dev-vcs/hgview/hgview-1.7.1-r1.ebuild b/dev-vcs/hgview/hgview-1.7.1-r1.ebuild
new file mode 100644
index 000000000000..3f827434180d
--- /dev/null
+++ b/dev-vcs/hgview/hgview-1.7.1-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit distutils-r1
+
+DESCRIPTION="PyQt4-based Mercurial log navigator"
+HOMEPAGE="http://www.logilab.org/project/hgview"
+SRC_URI="http://ftp.logilab.org/pub/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/PyQt4[${PYTHON_USEDEP},X]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]
+ dev-vcs/mercurial[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ )"
+
+python_configure_all() {
+ mydistutilsargs=(
+ build $(use doc || echo --no-doc)
+ )
+}
+
+src_prepare() {
+ # https://www.logilab.org/ticket/103668
+ sed -i \
+ -e 's:MANDIR=$(PREFIX)/man:MANDIR=$(PREFIX)/share/man:' \
+ -e 's:$(INSTALL) $$i:$(INSTALL) -m 644 $$i:' \
+ doc/Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install Mercurial extension config file
+ insinto /etc/mercurial/hgrc.d
+ doins hgext/hgview.rc
+}
diff --git a/dev-vcs/hgview/hgview-1.8.0.ebuild b/dev-vcs/hgview/hgview-1.8.0.ebuild
new file mode 100644
index 000000000000..25ee8c32cabf
--- /dev/null
+++ b/dev-vcs/hgview/hgview-1.8.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit distutils-r1
+
+DESCRIPTION="A Mercurial interactive history viewer"
+HOMEPAGE="http://www.logilab.org/project/hgview/ https://pypi.python.org/pypi/hgview/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc ncurses +qt4"
+REQUIRED_USE="|| ( ncurses qt4 )"
+
+RDEPEND="dev-vcs/mercurial[${PYTHON_USEDEP}]
+ ncurses? (
+ >=dev-python/urwid-1.0.0[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/PyQt4[X,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ )"
+
+python_configure_all() {
+ mydistutilsargs=(
+ build $(use doc || echo --no-doc)
+ build $(use ncurses || echo --no-curses)
+ build $(use qt4 || echo --no-qt)
+ )
+}
+
+src_prepare() {
+ # https://www.logilab.org/ticket/103668
+ sed -i \
+ -e 's:MANDIR=$(PREFIX)/man:MANDIR=$(PREFIX)/share/man:' \
+ -e 's:$(INSTALL) $$i:$(INSTALL) -m 644 $$i:' \
+ doc/Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install Mercurial extension config file
+ insinto /etc/mercurial/hgrc.d
+ doins hgext/hgview.rc
+}
diff --git a/dev-vcs/hgview/hgview-1.8.1.ebuild b/dev-vcs/hgview/hgview-1.8.1.ebuild
new file mode 100644
index 000000000000..25ee8c32cabf
--- /dev/null
+++ b/dev-vcs/hgview/hgview-1.8.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit distutils-r1
+
+DESCRIPTION="A Mercurial interactive history viewer"
+HOMEPAGE="http://www.logilab.org/project/hgview/ https://pypi.python.org/pypi/hgview/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc ncurses +qt4"
+REQUIRED_USE="|| ( ncurses qt4 )"
+
+RDEPEND="dev-vcs/mercurial[${PYTHON_USEDEP}]
+ ncurses? (
+ >=dev-python/urwid-1.0.0[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/PyQt4[X,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ )"
+
+python_configure_all() {
+ mydistutilsargs=(
+ build $(use doc || echo --no-doc)
+ build $(use ncurses || echo --no-curses)
+ build $(use qt4 || echo --no-qt)
+ )
+}
+
+src_prepare() {
+ # https://www.logilab.org/ticket/103668
+ sed -i \
+ -e 's:MANDIR=$(PREFIX)/man:MANDIR=$(PREFIX)/share/man:' \
+ -e 's:$(INSTALL) $$i:$(INSTALL) -m 644 $$i:' \
+ doc/Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install Mercurial extension config file
+ insinto /etc/mercurial/hgrc.d
+ doins hgext/hgview.rc
+}
diff --git a/dev-vcs/hgview/hgview-1.8.2.ebuild b/dev-vcs/hgview/hgview-1.8.2.ebuild
new file mode 100644
index 000000000000..25ee8c32cabf
--- /dev/null
+++ b/dev-vcs/hgview/hgview-1.8.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit distutils-r1
+
+DESCRIPTION="A Mercurial interactive history viewer"
+HOMEPAGE="http://www.logilab.org/project/hgview/ https://pypi.python.org/pypi/hgview/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc ncurses +qt4"
+REQUIRED_USE="|| ( ncurses qt4 )"
+
+RDEPEND="dev-vcs/mercurial[${PYTHON_USEDEP}]
+ ncurses? (
+ >=dev-python/urwid-1.0.0[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ )
+ qt4? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/PyQt4[X,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]
+ )"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ )"
+
+python_configure_all() {
+ mydistutilsargs=(
+ build $(use doc || echo --no-doc)
+ build $(use ncurses || echo --no-curses)
+ build $(use qt4 || echo --no-qt)
+ )
+}
+
+src_prepare() {
+ # https://www.logilab.org/ticket/103668
+ sed -i \
+ -e 's:MANDIR=$(PREFIX)/man:MANDIR=$(PREFIX)/share/man:' \
+ -e 's:$(INSTALL) $$i:$(INSTALL) -m 644 $$i:' \
+ doc/Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Install Mercurial extension config file
+ insinto /etc/mercurial/hgrc.d
+ doins hgext/hgview.rc
+}
diff --git a/dev-vcs/hgview/metadata.xml b/dev-vcs/hgview/metadata.xml
new file mode 100644
index 000000000000..03e6087438f3
--- /dev/null
+++ b/dev-vcs/hgview/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>qt</herd>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">hgview</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/hub/Manifest b/dev-vcs/hub/Manifest
new file mode 100644
index 000000000000..1a3621987e07
--- /dev/null
+++ b/dev-vcs/hub/Manifest
@@ -0,0 +1,2 @@
+DIST hub-1.12.4.tar.gz 76798 SHA256 b7fe404d7dc5f60554f088bec12de5e80229331430ea0ced46d5bf89ecae5117 SHA512 3c80592954f6f9bd9406adf8faaaf3e307a5387b623b07f06f574e6841899a7e253b67429417ba37c78b53064ddd0188b9f37e3e24130d899207c23bad389618 WHIRLPOOL 46c0870101add366c83d12ea92cfd1d434e841df58101ef8b1250e040cb0fe92590245b3e092780213b837cc2f9d9ad9bd9bff37a110bc608d63cddd7bbf4898
+DIST hub-2.2.0.tar.gz 301460 SHA256 2da1351197eb5696c207f22c69a5422af052d74277b73d0b8661efb9ec1d0eb1 SHA512 ad65cfd2a81ab92ab69d31ff7a068cf2da1557ca1d2f6e1b97b7f939249e9955bb2cace42b8900ec2d5b98970fbca27435edcd503af7ee3c05a79462e7734d8a WHIRLPOOL 83ea1d3b1086d7cdcebed6cb604027763cd41dd3f101dd56827c469ec61034a9e3a7b4cbd1111b5b7820707a13679a558704d80d58fed125f07573fb983dff9a
diff --git a/dev-vcs/hub/hub-1.12.4.ebuild b/dev-vcs/hub/hub-1.12.4.ebuild
new file mode 100644
index 000000000000..1415d6bb713e
--- /dev/null
+++ b/dev-vcs/hub/hub-1.12.4.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+USE_RUBY="ruby19 ruby20 ruby21"
+RUBY_FAKEGEM_TASK_DOC=
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+inherit bash-completion-r1 readme.gentoo ruby-fakegem
+
+DESCRIPTION="Command-line wrapper for git that makes you better at GitHub"
+HOMEPAGE="https://github.com/github/hub"
+SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+RDEPEND+=" dev-vcs/git"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/webmock
+ dev-util/cucumber
+ dev-ruby/minitest:5
+ )"
+
+DOC_CONTENTS="You may want to add 'alias git=hub' to your .{csh,bash}rc"
+
+all_ruby_prepare() {
+ # Git's manpage changed, so this test will fail
+ sed -i -e '/test_help_custom_command/,+4 s/^/#/' test/hub_test.rb || die
+}
+
+src_install() {
+ ruby-ng_src_install
+ readme.gentoo_create_doc
+
+ cd "${S}"/all/${P} || die
+
+ doman man/${PN}.1
+
+ insinto /usr/share/${PN}/
+ doins -r git-hooks
+
+ # Broken with autoloader
+ # https://github.com/github/hub/issues/592
+ #newbashcomp etc/hub.bash_completion.sh ${PN}
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/hub.zsh_completion ${PN}
+}
diff --git a/dev-vcs/hub/hub-2.2.0-r1.ebuild b/dev-vcs/hub/hub-2.2.0-r1.ebuild
new file mode 100644
index 000000000000..f5240aec72dd
--- /dev/null
+++ b/dev-vcs/hub/hub-2.2.0-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit bash-completion-r1 readme.gentoo
+
+DESCRIPTION="Command-line wrapper for git that makes you better at GitHub"
+HOMEPAGE="https://github.com/github/hub"
+SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND=">=dev-lang/go-1.4:="
+RDEPEND=">=dev-vcs/git-1.7.3"
+
+DOC_CONTENTS="You may want to add 'alias git=hub' to your .{csh,bash}rc"
+
+src_compile() {
+ ./script/build || die
+}
+
+src_install() {
+ readme.gentoo_create_doc
+
+ dobin hub
+
+ doman man/${PN}.1
+ dodoc README.md
+
+ # Broken with autoloader
+ # https://github.com/github/hub/issues/592
+ # newbashcomp etc/${PN}.bash_completion.sh ${PN}
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/hub.zsh_completion _${PN}
+}
diff --git a/dev-vcs/hub/metadata.xml b/dev-vcs/hub/metadata.xml
new file mode 100644
index 000000000000..b8c73ab5785a
--- /dev/null
+++ b/dev-vcs/hub/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>vikraman@gentoo.org</email>
+ <name>Vikraman Choudhury</name>
+ </maintainer>
+ <maintainer>
+ <email>ottxor@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">defunkt/hub</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/kdesvn/Manifest b/dev-vcs/kdesvn/Manifest
new file mode 100644
index 000000000000..951567136e96
--- /dev/null
+++ b/dev-vcs/kdesvn/Manifest
@@ -0,0 +1 @@
+DIST kdesvn-1.6.0.tar.bz2 1863823 SHA256 05686f246b76810f90a9f80f1d45cdccf812b42e18fa10a16b14e7d27d370f96 SHA512 e8ac9a55a8003e5cf724fc49281355fa0b6926ed2c984cece3f3fa076bac03ad1e9f1ab0e258d91e547f8cb542a739e0933e57f64bc0b9fa06417a4bcc5ae8cd WHIRLPOOL 13921530f77db3b4b30a7cfef86468d9c4f94d900017b3747f81114b83c0dbc22a84cb63c76cefe51ef5a6823e0c8ceac31de77bc8279897b679608ea4c2b43f
diff --git a/dev-vcs/kdesvn/files/kdesvn-1.6.0-bug-address.patch b/dev-vcs/kdesvn/files/kdesvn-1.6.0-bug-address.patch
new file mode 100644
index 000000000000..e1c9907bb59f
--- /dev/null
+++ b/dev-vcs/kdesvn/files/kdesvn-1.6.0-bug-address.patch
@@ -0,0 +1,20 @@
+--- src/main.cpp.old 2013-07-07 17:37:05.617114521 +0200
++++ src/main.cpp 2013-07-07 17:37:20.322929644 +0200
+@@ -40,7 +40,6 @@
+ KAboutData::License_GPL,ki18n("(C) 2005-2009 Rajko Albrecht"));
+ about.addAuthor( ki18n("Rajko Albrecht"),ki18n("Developer"),QByteArray("ral@alwins-world.de"),QByteArray());
+ about.setHomepage("http://kdesvn.alwins-world.de/");
+- about.setBugAddress("kdesvn-bugs@alwins-world.de");
+
+ KCmdLineArgs::init(argc, argv, &about);
+ KCmdLineOptions options;
+--- src/kdesvn_part.cpp.old 2013-07-07 17:37:41.415664472 +0200
++++ src/kdesvn_part.cpp 2013-07-07 17:37:53.484512746 +0200
+@@ -174,7 +174,6 @@
+ about.addAuthor(ki18n("Rajko Albrecht"), ki18n("Original author and maintainer"), "ral@alwins-world.de" );
+ about.setOtherText(m_Extratext);
+ about.setHomepage("http://kdesvn.alwins-world.de/");
+- about.setBugAddress("kdesvn-bugs@alwins-world.de");
+ about.setProgramIconName("kdesvn");
+ about.setTranslator(ki18n("kdesvn: NAME OF TRANSLATORS\\nYour names"),
+ ki18n("kdesvn: EMAIL OF TRANSLATORS\\nYour emails"));
diff --git a/dev-vcs/kdesvn/kdesvn-1.6.0-r1.ebuild b/dev-vcs/kdesvn/kdesvn-1.6.0-r1.ebuild
new file mode 100644
index 000000000000..af14991902a8
--- /dev/null
+++ b/dev-vcs/kdesvn/kdesvn-1.6.0-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+KDE_HANDBOOK="optional"
+KDE_LINGUAS="cs de el es fr it ja lt pt_BR ro ru"
+KDE_LINGUAS_LIVE_OVERRIDE="true"
+inherit flag-o-matic kde4-base
+
+DESCRIPTION="KDESvn is a frontend to the subversion vcs"
+HOMEPAGE="http://kdesvn.alwins-world.de/"
+if [[ ${PV} != 9999* ]]; then
+ SRC_URI="http://kdesvn.alwins-world.de/downloads/${P}.tar.bz2"
+fi
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+SLOT="4"
+IUSE="debug"
+
+DEPEND="
+ dev-libs/apr:1
+ dev-libs/apr-util:1
+ >=dev-vcs/subversion-1.7
+ sys-devel/gettext
+ dev-qt/qtsql:4[sqlite]
+"
+RDEPEND="${DEPEND}
+ !kde-apps/kdesdk-kioslaves:4[subversion(+)]
+"
+
+PATCHES=( "${FILESDIR}/${P}-bug-address.patch" )
+
+src_configure() {
+ append-cppflags -DQT_THREAD_SUPPORT
+
+ [[ ${PV} = 9999* ]] && mycmakeargs=(-DDAILY_BUILD=ON)
+
+ kde4-base_src_configure
+}
diff --git a/dev-vcs/kdesvn/metadata.xml b/dev-vcs/kdesvn/metadata.xml
new file mode 100644
index 000000000000..aae019204ec7
--- /dev/null
+++ b/dev-vcs/kdesvn/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>dev-tools</herd>
+ <herd>kde</herd>
+ <maintainer>
+ <email>george@gentoo.org</email>
+ <name>George Shapovalov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/mercurial-server/Manifest b/dev-vcs/mercurial-server/Manifest
new file mode 100644
index 000000000000..0d9d720d74c8
--- /dev/null
+++ b/dev-vcs/mercurial-server/Manifest
@@ -0,0 +1,2 @@
+DIST mercurial-server_1.1.tar.gz 21166 SHA256 34b18275d48397122aed519f91eb3602983ef952597ed807de868b413ead7091 SHA512 af154d21e70a2f4b6027336a57729c8f8c7ba3e9427778c784028f8902b697743a6bcd96336642d65a6e8408d1ebaf428f7851b82807ddf1ce89e58ff92a3022 WHIRLPOOL 86fad7092c3ee8f6c975634d563d00b7cd84cd93196dd6ebaf484158e3e31ea69f02fdc57c274c4b2d156b756d4fe3e22227c0ffb259e0a599f7c1c60f527375
+DIST mercurial-server_1.2.tar.gz 21560 SHA256 c6693bc19d1d8d44593e792af95a402ca112a7fa29efba6b9851bc696b258a91 SHA512 3dec14309fc050fa49ffd5253a491b2d65507ed8da04741ba5247d420701a9f836a1c3ef6924a706671e28bafbe0200af03c817184e303179002419887400ce0 WHIRLPOOL 8f475db3b86169c4eddad7364901e6027f9421c7883d826f122d91f65a2124ea8e875f6f0f35b3ddf339e43bcba304d20837b762966d07077bce5acb87e5a9fe
diff --git a/dev-vcs/mercurial-server/files/mercurial-server-1.1_documentation.patch b/dev-vcs/mercurial-server/files/mercurial-server-1.1_documentation.patch
new file mode 100644
index 000000000000..545eb3fabfed
--- /dev/null
+++ b/dev-vcs/mercurial-server/files/mercurial-server-1.1_documentation.patch
@@ -0,0 +1,18 @@
+# HG changeset patch
+# User Rafael G. Martins <rafaelmartins@gentoo.org>
+# Date 1294947033 7200
+# Node ID 43c5177150a58f1e5e778319ec055b767971d0b0
+# Parent 022d2e6bcdde0599465cb7193b836f93154b4c78
+add missing configuration step (hginit) to doc/manual.docbook
+
+diff --git a/doc/manual.docbook b/doc/manual.docbook
+--- a/doc/manual.docbook
++++ b/doc/manual.docbook
+@@ -51,6 +51,7 @@
+ <computeroutput>jay@jeeves:~$ </computeroutput><userinput>ssh-add -L > my-key</userinput>
+ <computeroutput>jay@jeeves:~$ </computeroutput><userinput>sudo mkdir -p /etc/mercurial-server/keys/root/jay</userinput>
+ <computeroutput>jay@jeeves:~$ </computeroutput><userinput>sudo cp my-key /etc/mercurial-server/keys/root/jay/spoon</userinput>
++<computeroutput>jay@jeeves:~$ </computeroutput><userinput>sudo -u hg /usr/share/mercurial-server/init/hginit /usr/share/mercurial-server</userinput>
+ <computeroutput>jay@jeeves:~$ </computeroutput><userinput>sudo -u hg /usr/share/mercurial-server/refresh-auth</userinput>
+ <computeroutput>jay@jeeves:~$ </computeroutput><userinput>exit</userinput>
+ <computeroutput>Connection to jeeves closed.
diff --git a/dev-vcs/mercurial-server/mercurial-server-1.1.ebuild b/dev-vcs/mercurial-server/mercurial-server-1.1.ebuild
new file mode 100644
index 000000000000..0c131f4f95e1
--- /dev/null
+++ b/dev-vcs/mercurial-server/mercurial-server-1.1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+
+inherit distutils eutils user
+
+if [[ "${PV}" = "9999" ]]; then
+ inherit mercurial
+ EHG_REPO_URI="http://hg.opensource.lshift.net/mercurial-server"
+ KEYWORDS=""
+else
+ MY_P="${PN}_${PV}"
+ SRC_URI="http://dev.lshift.net/paul/mercurial-server/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Mercurial authentication and authorization tools"
+HOMEPAGE="http://www.lshift.net/mercurial-server.html"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="dev-vcs/mercurial"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ )"
+
+pkg_setup() {
+ enewgroup hg
+ enewuser hg -1 /bin/bash "/var/lib/${PN}" hg
+}
+
+src_prepare() {
+ # remove useless makefile
+ rm Makefile
+
+ # fix installation paths
+ sed -i -e "s|'init'|'share/${PN}/init'|" setup.py \
+ || die 'sed setup.py failed.'
+
+ # fix documentation
+ if [[ "${PV}" = "1.1" ]]; then
+ epatch "${FILESDIR}/${P}_documentation.patch"
+ fi
+}
+
+src_compile() {
+ distutils_src_compile
+
+ # build documentation
+ if use doc; then
+ xsltproc --nonet -o manual.html \
+ /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl \
+ doc/manual.docbook || die "xsltproc failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install --install-scripts="/usr/share/${PN}"
+
+ # install configuration files
+ insinto "/etc/${PN}"
+ doins -r src/init/conf/*
+ keepdir /etc/mercurial-server/keys/{root,users}
+
+ # install documentation
+ if use doc; then
+ dohtml manual.html
+ fi
+
+ # install hg home directory
+ keepdir "/var/lib/${PN}"
+ fowners hg:hg "/var/lib/${PN}"
+ fperms 750 "/var/lib/${PN}"
+}
diff --git a/dev-vcs/mercurial-server/mercurial-server-1.2.ebuild b/dev-vcs/mercurial-server/mercurial-server-1.2.ebuild
new file mode 100644
index 000000000000..6f78f0191984
--- /dev/null
+++ b/dev-vcs/mercurial-server/mercurial-server-1.2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+
+inherit distutils eutils user
+
+if [[ "${PV}" = "9999" ]]; then
+ inherit mercurial
+ EHG_REPO_URI="http://hg.opensource.lshift.net/mercurial-server"
+ KEYWORDS=""
+else
+ MY_P="${PN}_${PV}"
+ SRC_URI="http://dev.lshift.net/paul/mercurial-server/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${MY_P}.orig"
+fi
+
+DESCRIPTION="Mercurial authentication and authorization tools"
+HOMEPAGE="http://www.lshift.net/mercurial-server.html"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="dev-vcs/mercurial"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ )"
+
+pkg_setup() {
+ enewgroup hg
+ enewuser hg -1 /bin/bash "/var/lib/${PN}" hg
+}
+
+src_prepare() {
+ # remove useless makefile
+ rm Makefile
+
+ # fix installation paths
+ sed -i -e "s|'init'|'share/${PN}/init'|" setup.py \
+ || die 'sed setup.py failed.'
+
+ # fix documentation
+ if [[ "${PV}" = "1.1" ]]; then
+ epatch "${FILESDIR}/${P}_documentation.patch"
+ fi
+}
+
+src_compile() {
+ distutils_src_compile
+
+ # build documentation
+ if use doc; then
+ xsltproc --nonet -o manual.html \
+ /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl \
+ doc/manual.docbook || die "xsltproc failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install --install-scripts="/usr/share/${PN}"
+
+ # install configuration files
+ insinto "/etc/${PN}"
+ doins -r src/init/conf/*
+ keepdir /etc/mercurial-server/keys/{root,users}
+
+ # install documentation
+ if use doc; then
+ dohtml manual.html
+ fi
+
+ # install hg home directory
+ keepdir "/var/lib/${PN}"
+ fowners hg:hg "/var/lib/${PN}"
+ fperms 750 "/var/lib/${PN}"
+}
diff --git a/dev-vcs/mercurial-server/mercurial-server-9999.ebuild b/dev-vcs/mercurial-server/mercurial-server-9999.ebuild
new file mode 100644
index 000000000000..0c131f4f95e1
--- /dev/null
+++ b/dev-vcs/mercurial-server/mercurial-server-9999.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+PYTHON_DEPEND="2"
+
+inherit distutils eutils user
+
+if [[ "${PV}" = "9999" ]]; then
+ inherit mercurial
+ EHG_REPO_URI="http://hg.opensource.lshift.net/mercurial-server"
+ KEYWORDS=""
+else
+ MY_P="${PN}_${PV}"
+ SRC_URI="http://dev.lshift.net/paul/mercurial-server/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Mercurial authentication and authorization tools"
+HOMEPAGE="http://www.lshift.net/mercurial-server.html"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="dev-vcs/mercurial"
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ )"
+
+pkg_setup() {
+ enewgroup hg
+ enewuser hg -1 /bin/bash "/var/lib/${PN}" hg
+}
+
+src_prepare() {
+ # remove useless makefile
+ rm Makefile
+
+ # fix installation paths
+ sed -i -e "s|'init'|'share/${PN}/init'|" setup.py \
+ || die 'sed setup.py failed.'
+
+ # fix documentation
+ if [[ "${PV}" = "1.1" ]]; then
+ epatch "${FILESDIR}/${P}_documentation.patch"
+ fi
+}
+
+src_compile() {
+ distutils_src_compile
+
+ # build documentation
+ if use doc; then
+ xsltproc --nonet -o manual.html \
+ /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl \
+ doc/manual.docbook || die "xsltproc failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install --install-scripts="/usr/share/${PN}"
+
+ # install configuration files
+ insinto "/etc/${PN}"
+ doins -r src/init/conf/*
+ keepdir /etc/mercurial-server/keys/{root,users}
+
+ # install documentation
+ if use doc; then
+ dohtml manual.html
+ fi
+
+ # install hg home directory
+ keepdir "/var/lib/${PN}"
+ fowners hg:hg "/var/lib/${PN}"
+ fperms 750 "/var/lib/${PN}"
+}
diff --git a/dev-vcs/mercurial-server/metadata.xml b/dev-vcs/mercurial-server/metadata.xml
new file mode 100644
index 000000000000..2180b69fab3b
--- /dev/null
+++ b/dev-vcs/mercurial-server/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>
+ <longdescription lang="en">
+ mercurial-server gives your developers remote read/write access to
+ centralized Mercurial repositories using SSH public key authentication; it
+ provides convenient and fine-grained key management and access control.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/dev-vcs/mercurial/Manifest b/dev-vcs/mercurial/Manifest
new file mode 100644
index 000000000000..d6c9ad930b16
--- /dev/null
+++ b/dev-vcs/mercurial/Manifest
@@ -0,0 +1,5 @@
+DIST mercurial-3.3.2.tar.gz 4165131 SHA256 67c617c740ac706f923371a26f02339b27cd6c36e5d3fb2ccad0dc02361527fa SHA512 f151ea3187b70d70a82f643aaacd2742d0ce5f996590eab008332a7f28df5a19e99634ff33b0509ad38d2b6b411627413a457255df8a8e45025246beebb6fcc1 WHIRLPOOL 740b1ebb68f7c8baf3e6a9b023be2423677e3189221dc302c0601b514193e27eaaf73985c9536c6aa03fa0c5b9be8c092cd7b3eaca5f77ee24bfa276bbb6109c
+DIST mercurial-3.3.3.tar.gz 4167447 SHA256 a445367f0dcbaf3a6279bfa743b364e729be0d1f0c852cb6d37f297916ffae13 SHA512 bea215b0bd9e8603ade019f01ae0600dd1d1ad77675b38b5e13d86c43dd2c58b6c86c252517f0fcab6444c171e9f53537e4e170739c991ac08a1111169fe545d WHIRLPOOL e5fd41c6d27d7fce8559a2d15b33e24cf702d9497326e2c1062fe2acd22e7ad16cd6981d3dadb5a7458f12dcd35cc98583f53bc3188d99a9638daddb7d95657b
+DIST mercurial-3.4.1.tar.gz 4294163 SHA256 7a8acf7329beda38ceea29c689212574d9a6bfffe24cf565015ea0066f7cee3f SHA512 f5646dcaa31315ac37f59c54474ec0b1b73a94a3943961fcc21c9a148bced66887cc7b00c6955c7982bf6d1949343d91caeec4f72c1035790d9fc7ddade1fcde WHIRLPOOL 06192767328d98c603225526c5e00e72d36ee53bc5785b1e25f3f379976c1640cb5c6b1e9229f9262acf1b1d57346a5388a52adf273d1eb6c3676dd0e5cfcd2f
+DIST mercurial-3.4.2.tar.gz 4296407 SHA256 dcc90e4a8476149ecc8af13c08202860b4c9c987a94c4f3c18b28294b6fd8ecd SHA512 f5ef7064a1ac4189fe4db91fec283cdead257b132674d0869f075b80ba5707e0163e28f18545a9d867336ebc6b1cbb8bcf794b6881b8f23f6c067e68c7ae584b WHIRLPOOL db7389c92680f6058efda6fa4cb7747ff3cd78bc361c43464a938c213b9ce46e8a040a57c68975f02342beb35522c27c3ab6250b2fc6e54777ddd20b0bda5443
+DIST mercurial-3.5.tar.gz 4403206 SHA256 b50f6978e7d39fe0cb298fa3fa3e9ce41d2356721d155e5288f9c57e5f13e9a7 SHA512 1944521d08b7c1cf6872edd5e394ebfad5f53f931b3bfb6197292c1c0f9e275b27f92284b91cf11bec8a50631468e1447d4e94f18a5b4ac237df61b0a1e5fd5a WHIRLPOOL c19adf7e14596ee7987061dd672d7c1ccfd333de301b539629a0962785aa791a8ddfcbd584bd78fa869d1c9b04e4a73e5083d824f82daeef1fbe28550cad1c1d
diff --git a/dev-vcs/mercurial/files/70mercurial-gentoo.el b/dev-vcs/mercurial/files/70mercurial-gentoo.el
new file mode 100644
index 000000000000..5779a612f204
--- /dev/null
+++ b/dev-vcs/mercurial/files/70mercurial-gentoo.el
@@ -0,0 +1,3 @@
+;;; mercurial site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@") \ No newline at end of file
diff --git a/dev-vcs/mercurial/files/cacerts.rc b/dev-vcs/mercurial/files/cacerts.rc
new file mode 100644
index 000000000000..240261c53668
--- /dev/null
+++ b/dev-vcs/mercurial/files/cacerts.rc
@@ -0,0 +1,2 @@
+[web]
+cacerts = /etc/ssl/certs/ca-certificates.crt
diff --git a/dev-vcs/mercurial/files/mercurial-3.0.1-po_fixes.patch b/dev-vcs/mercurial/files/mercurial-3.0.1-po_fixes.patch
new file mode 100644
index 000000000000..a48932ee9fe5
--- /dev/null
+++ b/dev-vcs/mercurial/files/mercurial-3.0.1-po_fixes.patch
@@ -0,0 +1,40 @@
+--- mercurial-3.0.1/i18n/el.po
++++ mercurial-3.0.1/i18n/el.po
+@@ -11,6 +11,7 @@
+ "PO-Revision-Date: 2009-12-02 03:23+0200\n"
+ "Last-Translator: <keramida@ceid.upatras.gr>\n"
+ "Language-Team: Greek\n"
++"Language: el\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+--- mercurial-3.0.1/i18n/fr.po
++++ mercurial-3.0.1/i18n/fr.po
+@@ -90,6 +90,7 @@
+ "PO-Revision-Date: 2009-10-25 12:43+0100\n"
+ "Last-Translator: Cedric Duval <cedricduval@free.fr>\n"
+ "Language-Team: French\n"
++"Language: fr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+--- mercurial-3.0.1/i18n/ro.po
++++ mercurial-3.0.1/i18n/ro.po
+@@ -110,6 +110,7 @@
+ "PO-Revision-Date: 2011-06-08 17:00+0200\n"
+ "Last-Translator: Daniel Dumitriu <daniel.dumitriu@gmail.com>\n"
+ "Language-Team: Romanian <>\n"
++"Language: ro\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+--- mercurial-3.0.1/i18n/zh_CN.po
++++ mercurial-3.0.1/i18n/zh_CN.po
+@@ -51,6 +51,7 @@
+ "PO-Revision-Date: 2009-03-31 20:38+0200\n"
+ "Last-Translator: Dongsheng Song <dongsheng.song@gmail.com>\n"
+ "Language-Team: Chinese translation team <i18n-zh@googlegroups.com>\n"
++"Language: zh_CN\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
diff --git a/dev-vcs/mercurial/mercurial-3.3.2.ebuild b/dev-vcs/mercurial/mercurial-3.3.2.ebuild
new file mode 100644
index 000000000000..4386ba897929
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-3.3.2.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bugzilla emacs gpg test tk"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )"
+
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.1-po_fixes.patch" )
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+
+ rm -f doc/*.?.txt
+ dodoc CONTRIBUTORS
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -r contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ pushd tests &>/dev/null || die
+ rm -rf *svn* # Subversion tests fail with 1.5
+ rm -f test-archive* # Fails due to verbose tar output changes
+ rm -f test-convert-baz* # GNU Arch baz
+ rm -f test-convert-cvs* # CVS
+ rm -f test-convert-darcs* # Darcs
+ rm -f test-convert-git* # git
+ rm -f test-convert-mtn* # monotone
+ rm -f test-convert-tla* # GNU Arch tla
+ #rm -f test-doctest* # doctest always fails with python 2.5.x
+ rm -f test-largefiles* # tends to time out
+
+ popd &>/dev/null || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/mercurial-3.3.3.ebuild b/dev-vcs/mercurial/mercurial-3.3.3.ebuild
new file mode 100644
index 000000000000..1f57c1ef8c43
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-3.3.3.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bugzilla emacs gpg test tk"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )"
+
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.1-po_fixes.patch" )
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+
+ rm -f doc/*.?.txt
+ dodoc CONTRIBUTORS
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -r contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ pushd tests &>/dev/null || die
+ rm -rf *svn* # Subversion tests fail with 1.5
+ rm -f test-archive* # Fails due to verbose tar output changes
+ rm -f test-convert-baz* # GNU Arch baz
+ rm -f test-convert-cvs* # CVS
+ rm -f test-convert-darcs* # Darcs
+ rm -f test-convert-git* # git
+ rm -f test-convert-mtn* # monotone
+ rm -f test-convert-tla* # GNU Arch tla
+ #rm -f test-doctest* # doctest always fails with python 2.5.x
+ rm -f test-largefiles* # tends to time out
+
+ popd &>/dev/null || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/mercurial-3.4.1.ebuild b/dev-vcs/mercurial/mercurial-3.4.1.ebuild
new file mode 100644
index 000000000000..1f57c1ef8c43
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-3.4.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bugzilla emacs gpg test tk"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )"
+
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.1-po_fixes.patch" )
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+
+ rm -f doc/*.?.txt
+ dodoc CONTRIBUTORS
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -r contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ pushd tests &>/dev/null || die
+ rm -rf *svn* # Subversion tests fail with 1.5
+ rm -f test-archive* # Fails due to verbose tar output changes
+ rm -f test-convert-baz* # GNU Arch baz
+ rm -f test-convert-cvs* # CVS
+ rm -f test-convert-darcs* # Darcs
+ rm -f test-convert-git* # git
+ rm -f test-convert-mtn* # monotone
+ rm -f test-convert-tla* # GNU Arch tla
+ #rm -f test-doctest* # doctest always fails with python 2.5.x
+ rm -f test-largefiles* # tends to time out
+
+ popd &>/dev/null || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/mercurial-3.4.2.ebuild b/dev-vcs/mercurial/mercurial-3.4.2.ebuild
new file mode 100644
index 000000000000..1f57c1ef8c43
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-3.4.2.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bugzilla emacs gpg test tk"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )"
+
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.1-po_fixes.patch" )
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+
+ rm -f doc/*.?.txt
+ dodoc CONTRIBUTORS
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -r contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ pushd tests &>/dev/null || die
+ rm -rf *svn* # Subversion tests fail with 1.5
+ rm -f test-archive* # Fails due to verbose tar output changes
+ rm -f test-convert-baz* # GNU Arch baz
+ rm -f test-convert-cvs* # CVS
+ rm -f test-convert-darcs* # Darcs
+ rm -f test-convert-git* # git
+ rm -f test-convert-mtn* # monotone
+ rm -f test-convert-tla* # GNU Arch tla
+ #rm -f test-doctest* # doctest always fails with python 2.5.x
+ rm -f test-largefiles* # tends to time out
+
+ popd &>/dev/null || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/mercurial-3.5.ebuild b/dev-vcs/mercurial/mercurial-3.5.ebuild
new file mode 100644
index 000000000000..1f57c1ef8c43
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-3.5.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="bugzilla emacs gpg test tk"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )"
+
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.1-po_fixes.patch" )
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+
+ rm -f doc/*.?.txt
+ dodoc CONTRIBUTORS
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -r contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ pushd tests &>/dev/null || die
+ rm -rf *svn* # Subversion tests fail with 1.5
+ rm -f test-archive* # Fails due to verbose tar output changes
+ rm -f test-convert-baz* # GNU Arch baz
+ rm -f test-convert-cvs* # CVS
+ rm -f test-convert-darcs* # Darcs
+ rm -f test-convert-git* # git
+ rm -f test-convert-mtn* # monotone
+ rm -f test-convert-tla* # GNU Arch tla
+ #rm -f test-doctest* # doctest always fails with python 2.5.x
+ rm -f test-largefiles* # tends to time out
+
+ popd &>/dev/null || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/mercurial-9999.ebuild b/dev-vcs/mercurial/mercurial-9999.ebuild
new file mode 100644
index 000000000000..e7c30f89196c
--- /dev/null
+++ b/dev-vcs/mercurial/mercurial-9999.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="threads"
+
+inherit bash-completion-r1 elisp-common eutils distutils-r1 mercurial flag-o-matic
+
+DESCRIPTION="Scalable distributed SCM"
+HOMEPAGE="http://mercurial.selenic.com/"
+EHG_REPO_URI="http://selenic.com/repo/hg"
+EHG_REVISION="@"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="bugzilla emacs gpg test tk zsh-completion"
+
+RDEPEND="bugzilla? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ gpg? ( app-crypt/gnupg )
+ tk? ( dev-lang/tk )
+ zsh-completion? ( app-shells/zsh )
+ app-misc/ca-certificates"
+DEPEND="emacs? ( virtual/emacs )
+ test? ( app-arch/unzip
+ dev-python/pygments[${PYTHON_USEDEP}] )
+ dev-python/docutils[${PYTHON_USEDEP}]"
+
+SITEFILE="70${PN}-gentoo.el"
+
+python_prepare_all() {
+ # fix up logic that won't work in Gentoo Prefix (also won't outside in
+ # certain cases), bug #362891
+ sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ strip-flags -ftracer -ftree-vectorize
+ # Note: make it impl-conditional if py3 is supported
+ append-flags -fno-strict-aliasing
+
+ "${PYTHON}" setup.py build_mo || die
+}
+
+python_compile_all() {
+ rm -r contrib/{win32,macosx} || die
+ emake doc
+ if use emacs; then
+ cd contrib || die
+ elisp-compile mercurial.el || die "elisp-compile failed!"
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp contrib/bash_completion hg
+
+ if use zsh-completion ; then
+ insinto /usr/share/zsh/site-functions
+ newins contrib/zsh_completion _hg
+ fi
+
+ rm -f doc/*.?.txt || die
+ dodoc CONTRIBUTORS doc/*.txt
+ cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
+
+ dobin hgeditor
+ dobin contrib/hgk
+ python_foreach_impl python_doscript contrib/hg-ssh
+
+ if use emacs; then
+ elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ local RM_CONTRIB=(hgk hg-ssh bash_completion zsh_completion wix buildrpm plan9
+ *.el mercurial.spec)
+ for f in ${RM_CONTRIB[@]}; do
+ rm -rf contrib/$f || die
+ done
+
+ dodoc -r contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ doman doc/*.?
+
+ cat > "${T}/80mercurial" <<-EOF
+HG="${EPREFIX}/usr/bin/hg"
+EOF
+ doenvd "${T}/80mercurial"
+
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/cacerts.rc"
+}
+
+src_test() {
+ cd tests || die
+ rm -rf *svn* || die # Subversion tests fail with 1.5
+ rm -f test-archive* || die # Fails due to verbose tar output changes
+ rm -f test-convert-baz* || die # GNU Arch baz
+ rm -f test-convert-cvs* || die # CVS
+ rm -f test-convert-darcs* || die # Darcs
+ rm -f test-convert-git* || die # git
+ rm -f test-convert-mtn* || die # monotone
+ rm -f test-convert-tla* || die # GNU Arch tla
+ rm -f test-doctest* || die # doctest always fails with python 2.5.x
+ rm -f test-largefiles* || die # tends to time out
+ if [[ ${EUID} -eq 0 ]]; then
+ einfo "Removing tests which require user privileges to succeed"
+ rm -f test-command-template* || die # Test is broken when run as root
+ rm -f test-convert* || die # Test is broken when run as root
+ rm -f test-lock-badness* || die # Test is broken when run as root
+ rm -f test-permissions* || die # Test is broken when run as root
+ rm -f test-pull-permission* || die # Test is broken when run as root
+ rm -f test-clone-failure* || die
+ rm -f test-journal-exists* || die
+ rm -f test-repair-strip* || die
+ fi
+
+ cd .. || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local TEST_DIR
+
+ rm -rf "${TMPDIR}"/test
+ distutils_install_for_testing
+ cd tests || die
+ "${PYTHON}" run-tests.py --verbose \
+ --tmpdir="${TMPDIR}"/test \
+ --with-hg="${TEST_DIR}"/scripts/hg \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+
+ elog "If you want to convert repositories from other tools using convert"
+ elog "extension please install correct tool:"
+ elog " dev-vcs/cvs"
+ elog " dev-vcs/darcs"
+ elog " dev-vcs/git"
+ elog " dev-vcs/monotone"
+ elog " dev-vcs/subversion"
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-vcs/mercurial/metadata.xml b/dev-vcs/mercurial/metadata.xml
new file mode 100644
index 000000000000..31d538aa1bc4
--- /dev/null
+++ b/dev-vcs/mercurial/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>djc@gentoo.org</email>
+ <name>Dirkjan Ochtman</name>
+ </maintainer>
+ <maintainer>
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <maintainer>
+ <email>skrattaren@yandex.ru</email>
+ <name>Nikolaj Sjujskij</name>
+ <description>Fallback maintaner, please CC on bugs</description>
+ </maintainer>
+ <use>
+ <flag name="bugzilla">Support bugzilla integration.</flag>
+ <flag name="gpg">Support signing with GnuPG.</flag>
+ <flag name="tk">Install dev-lang/tk for hgk script.</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/metadata.xml b/dev-vcs/metadata.xml
new file mode 100644
index 000000000000..99443216889b
--- /dev/null
+++ b/dev-vcs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The dev-vcs category contains utilities focused on version control.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie dev-vcs enthält Programme, die sich mit Versionskontrolle beschäftigen.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría dev-vcs contiene programas para control de versiones.
+ </longdescription>
+</catmetadata>
diff --git a/dev-vcs/monotone/Manifest b/dev-vcs/monotone/Manifest
new file mode 100644
index 000000000000..8d194b394adc
--- /dev/null
+++ b/dev-vcs/monotone/Manifest
@@ -0,0 +1 @@
+DIST monotone-1.0.tar.bz2 3588074 SHA256 5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc SHA512 85f5a015ee3f7a924e16b7f20974cadd18bd6aaf2815eca0da42689373fc654c661051ce6981ec473f9eac7f9796cfed3431f0cfe16d1cbe0b0b625302ef3e77 WHIRLPOOL c0379f4e37fc6dc8f47caf4b548f7ef124cdf3f7a87fccb3a4cc6d160bcff4092a4d9636d71558120c9e28ef072bcf5dd23d6e116ad49abb6c99a9886d1747df
diff --git a/dev-vcs/monotone/files/50monotone-gentoo.el b/dev-vcs/monotone/files/50monotone-gentoo.el
new file mode 100644
index 000000000000..c84f4560c673
--- /dev/null
+++ b/dev-vcs/monotone/files/50monotone-gentoo.el
@@ -0,0 +1,28 @@
+
+;;; monotone site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+
+(autoload 'monotone-toggle-vc-prefix-map "monotone"
+ "Toggle between the default and monotone vc-maps, ARG set map." t)
+(autoload 'monotone "monotone"
+ "Prompt for a STRING and run monotone with the split string." t)
+(autoload 'monotone-pull "monotone"
+ "Pull updates from a remote server. ARG prompts." t)
+(autoload 'monotone-push "monotone"
+ "Push the DB contents to a remote server. ARG prompts." t)
+(autoload 'monotone-vc-commit "monotone" "Do a commit." t)
+(autoload 'monotone-vc-print-log "monotone"
+ "Print the log for this buffer. With prefix ARG the global log." t)
+(autoload 'monotone-vc-diff "monotone"
+ "Print the diffs for this buffer. With prefix ARG, the global diffs." t)
+(autoload 'monotone-vc-register "monotone"
+ "Register this file with monotone for the next commit." t)
+(autoload 'monotone-vc-status "monotone"
+ "Print the status of the current branch." t)
+(autoload 'monotone-grab-id "monotone"
+ "Grab the id under point and put it in the kill buffer for later use." t)
+
+(autoload 'mnav-revdb-reload "monotone-nav")
+(autoload 'mnav-pick "monotone-nav"
+ "Display browser to pick a monotone revision." t)
diff --git a/dev-vcs/monotone/files/hooks.lua b/dev-vcs/monotone/files/hooks.lua
new file mode 100644
index 000000000000..bbdb0042a5f6
--- /dev/null
+++ b/dev-vcs/monotone/files/hooks.lua
@@ -0,0 +1,4 @@
+-- Add custom hooks after the following line. It includes the identification
+-- needed to start the server.
+
+include(get_confdir() .. "/passphrase.lua")
diff --git a/dev-vcs/monotone/files/monotone-0.36.initd b/dev-vcs/monotone/files/monotone-0.36.initd
new file mode 100644
index 000000000000..1718fd2c4416
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-0.36.initd
@@ -0,0 +1,85 @@
+#!/sbin/runscript
+# Copyright 2006-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+extra_commands="import"
+
+depend() {
+ need net
+}
+
+# Substitute common default values
+MTN_USER=${MTN_USER:-monotone}
+MTN_GROUP=${MTN_GROUP:-monotone}
+MTN_KEY=${MTN_KEY:-monotone@`hostname --fqdn`}
+MTN_CONFDIR=${MTN_CONFDIR:-/etc/monotone}
+MTN_COMMON="--norc --confdir=${MTN_CONFDIR} \
+ --keydir=${MTN_KEYDIR:-/var/lib/monotone/keys} \
+ --db=${MTN_DB:-/var/lib/monotone/default.mtn} \
+ --rcfile=${MTN_CONFDIR}/hooks.lua --log=/var/log/monotone/monotone.log"
+ #--dump=$ERRORLOG
+MTN_PIDFILE="/var/run/monotone/monotone.pid"
+MTN_HOME=$(awk -F: -vuid=$MTN_USER -vuser=$MTN_USER '$3 == uid || $1 == user { print $6 }' < /etc/passwd)
+
+dbexists() {
+ # Create the database if it doesn't exist
+ if [ ! -e ${MTN_DB:-/var/lib/monotone/default.mtn} ]; then
+ ebegin "Creating monotone database"
+ start-stop-daemon --start \
+ --user ${MTN_USER} --group ${MTN_GROUP} \
+ --exec /usr/bin/mtn -- ${MTN_COMMON} db init
+ eend $?
+ fi
+ if [ ! -e ${MTN_KEYDIR:-/var/lib/monotone/keys}/${MTN_KEY} ]; then
+ ebegin "Creating monotone server keypair"
+ export MTN_PWD=${RANDOM}
+ yes "${MTN_PWD}" | \
+ start-stop-daemon --start \
+ --user ${MTN_USER} --group ${MTN_GROUP} \
+ --exec /usr/bin/mtn -- ${MTN_COMMON} genkey ${MTN_KEY}
+
+ eend $?
+ # Update the password lua hook
+ cat > ${MTN_CONFDIR}/passphrase.lua <<EOF
+-- This file is automaticaly generated by the init scripts.
+-- If you want to add custom hooks, edit ${MTN_CONFDIR}/hooks.lua
+-- If you want to change the settings, please edit /etc/conf.d/monotone
+
+function get_passphrase(identity)
+ if (identity == "${MTN_KEY}") then
+ return "${MTN_PWD}"
+ end
+ return false
+end
+EOF
+ fi
+}
+
+start() {
+ cd ${MTN_HOME}
+ dbexists
+
+ ebegin "Starting monotone server"
+ start-stop-daemon --start --background \
+ --user ${MTN_USER} --group ${MTN_GROUP} \
+ --exec /usr/bin/mtn -- ${MTN_COMMON} --pid-file=${MTN_PIDFILE} \
+ --key=${MTN_KEY} --bind=${MTN_ADDRESS:-0.0.0.0} serve
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping monotone server"
+ start-stop-daemon --stop --quiet --pidfile ${MTN_PIDFILE}
+ eend $?
+}
+
+import() {
+ cd ${MTN_HOME}
+ dbexists
+
+ # Read packets into the database
+ einfo "Importing packets to monotone database"
+ cat | /usr/bin/mtn ${MTN_COMMON} read
+ eend $?
+}
diff --git a/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch b/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch
new file mode 100644
index 000000000000..5b877d4d31cd
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch
@@ -0,0 +1,18 @@
+https://code.monotone.ca/p/monotone/issues/180/
+--- test/extra/bash_completion/bashrc 2011-09-07 09:00:12 +0000
++++ test/extra/bash_completion/bashrc 2011-09-07 12:14:59 +0000
+@@ -18,6 +18,13 @@
+ . /etc/bash_completion
+ elif [ -f /usr/local/etc/bash_completion ]; then
+ . /usr/local/etc/bash_completion
++ elif [ -f /usr/share/bash-completion/.pre -a \
++ -f /usr/share/bash-completion/base ]; then
++ # In Gentoo /etc/profile.d/bash-completion.sh sources required
++ # functions only if enabled with `eselect bashcomp`. We source
++ # required definitions manually.
++ source /usr/share/bash-completion/.pre
++ source /usr/share/bash-completion/base
+ else
+ echo No bash completion package present.
+ exit
+
diff --git a/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch b/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch
new file mode 100644
index 000000000000..e72a57e4cdee
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch
@@ -0,0 +1,92 @@
+============================================================
+--- src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
++++ src/database.cc 39ab2644b936e09a536b99ebd28b93f6e0d7c162
+@@ -92,7 +92,7 @@ using boost::shared_ptr;
+ using std::accumulate;
+
+ using boost::shared_ptr;
+-using boost::shared_dynamic_cast;
++using boost::dynamic_pointer_cast;
+ using boost::lexical_cast;
+ using boost::get;
+ using boost::tuple;
+@@ -3430,7 +3430,7 @@ database::encrypt_rsa(key_id const & pub
+
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+ shared_ptr<RSA_PublicKey> pub_key
+- = shared_dynamic_cast<RSA_PublicKey>(x509_key);
++ = dynamic_pointer_cast<RSA_PublicKey>(x509_key);
+ if (!pub_key)
+ throw recoverable_failure(origin::system,
+ "Failed to get RSA encrypting key");
+@@ -3481,7 +3481,7 @@ database::check_signature(key_id const &
+ L(FL("building verifier for %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+ shared_ptr<RSA_PublicKey> pub_key
+- = boost::shared_dynamic_cast<RSA_PublicKey>(x509_key);
++ = boost::dynamic_pointer_cast<RSA_PublicKey>(x509_key);
+
+ E(pub_key, id.inner().made_from,
+ F("failed to get RSA verifying key for %s") % id);
+============================================================
+--- src/key_store.cc b7859345f7c665914d16357409bdff24a48b7996
++++ src/key_store.cc 1ca13b7ee527bc2872d9fc325cf5ef327ca053c2
+@@ -43,7 +43,7 @@ using boost::shared_ptr;
+
+ using boost::scoped_ptr;
+ using boost::shared_ptr;
+-using boost::shared_dynamic_cast;
++using boost::dynamic_pointer_cast;
+
+ using Botan::RSA_PrivateKey;
+ using Botan::RSA_PublicKey;
+@@ -641,7 +641,7 @@ key_store_state::decrypt_private_key(key
+ I(pkcs8_key);
+
+ shared_ptr<RSA_PrivateKey> priv_key;
+- priv_key = shared_dynamic_cast<RSA_PrivateKey>(pkcs8_key);
++ priv_key = dynamic_pointer_cast<RSA_PrivateKey>(pkcs8_key);
+ E(priv_key, origin::no_fault,
+ F("failed to extract RSA private key from PKCS#8 keypair"));
+
+@@ -879,7 +879,8 @@ key_store::make_signature(database & db,
+ L(FL("make_signature: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+- shared_ptr<RSA_PublicKey> pub_key = shared_dynamic_cast<RSA_PublicKey>(x509_key);
++ shared_ptr<RSA_PublicKey> pub_key =
++ dynamic_pointer_cast<RSA_PublicKey>(x509_key);
+
+ if (!pub_key)
+ throw recoverable_failure(origin::system,
+@@ -1092,7 +1093,7 @@ key_store_state::migrate_old_key_pair
+ continue;
+ }
+
+- priv_key = shared_dynamic_cast<RSA_PrivateKey>(pkcs8_key);
++ priv_key = dynamic_pointer_cast<RSA_PrivateKey>(pkcs8_key);
+ I(priv_key);
+
+ // now we can write out the new key
+============================================================
+--- src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
++++ src/ssh_agent.cc 6313ee3cdfca4112ba3957dc4a5f318472289dfa
+@@ -32,7 +32,7 @@ using boost::shared_ptr;
+ using std::vector;
+
+ using boost::shared_ptr;
+-using boost::shared_dynamic_cast;
++using boost::dynamic_pointer_cast;
+
+ using Botan::RSA_PublicKey;
+ using Botan::RSA_PrivateKey;
+@@ -391,7 +391,8 @@ ssh_agent::has_key(const keypair & key)
+ L(FL("has_key: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+- shared_ptr<RSA_PublicKey> pub_key = shared_dynamic_cast<RSA_PublicKey>(x509_key);
++ shared_ptr<RSA_PublicKey> pub_key =
++ dynamic_pointer_cast<RSA_PublicKey>(x509_key);
+
+ if (!pub_key)
+ throw recoverable_failure(origin::system,
diff --git a/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch b/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch
new file mode 100644
index 000000000000..a86bac555b18
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch
@@ -0,0 +1,644 @@
+Make monotone work with botan 1.10.
+
+Patch generated using the following command:
+mtn diff -r 972ee5c3eab3fb5ba0b80684193293d18438a9d0 \
+ -r f4feb3fdc68e4f955909450b2dcb3ff9312dbc9e
+
+Authors: Martin von Gagern, Markus Wanner
+
+References:
+https://bugs.gentoo.org/380257
+https://code.monotone.ca/p/monotone/issues/182/
+https://code.monotone.ca/p/monotone/source/commit/f4feb3fd
+
+============================================================
+--- src/database.cc 4c259f963c440fc95564dfec99b2f832f0bad643
++++ src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
+@@ -3425,9 +3425,8 @@ database::encrypt_rsa(key_id const & pub
+ rsa_pub_key pub;
+ get_key(pub_id, pub);
+
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
+- pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
+
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+ shared_ptr<RSA_PublicKey> pub_key
+@@ -3471,14 +3470,13 @@ database::check_signature(key_id const &
+ else
+ {
+ rsa_pub_key pub;
+- SecureVector<Botan::byte> pub_block;
+
+ if (!public_key_exists(id))
+ return cert_unknown;
+
+ get_key(id, pub);
+- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
+- pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
+
+ L(FL("building verifier for %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+============================================================
+--- src/gzip.cc e7c19bee910e3d421fd073933810ec52092b1d9b
++++ src/gzip.cc 9da41f6820cdf39707b22c716e3682e0fa0fd745
+@@ -110,7 +110,7 @@ Gzip_Compression::Gzip_Compression(u32bi
+ if(deflateInit2(&(zlib->stream), level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY) != Z_OK)
+ {
+ delete zlib; zlib = 0;
+- throw Exception("Gzip_Compression: Memory allocation error");
++ throw Memory_Exhaustion();
+ }
+ }
+
+@@ -137,7 +137,7 @@ void Gzip_Compression::start_msg()
+ /*************************************************
+ * Compress Input with Gzip *
+ *************************************************/
+-void Gzip_Compression::write(const byte input[], u32bit length)
++void Gzip_Compression::write(const byte input[], filter_length_t length)
+ {
+
+ count += length;
+@@ -152,7 +152,7 @@ void Gzip_Compression::write(const byte
+ zlib->stream.avail_out = buffer.size();
+ int rc = deflate(&(zlib->stream), Z_NO_FLUSH);
+ if (rc != Z_OK && rc != Z_STREAM_END)
+- throw Exception("Internal error in Gzip_Compression deflate.");
++ throw Invalid_State("Internal error in Gzip_Compression deflate.");
+ send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
+ }
+ }
+@@ -172,7 +172,7 @@ void Gzip_Compression::end_msg()
+ zlib->stream.avail_out = buffer.size();
+ rc = deflate(&(zlib->stream), Z_FINISH);
+ if (rc != Z_OK && rc != Z_STREAM_END)
+- throw Exception("Internal error in Gzip_Compression finishing deflate.");
++ throw Invalid_State("Internal error in Gzip_Compression finishing deflate.");
+ send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
+ }
+
+@@ -228,7 +228,7 @@ Gzip_Decompression::Gzip_Decompression()
+ no_writes(true), pipe(new Hash_Filter("CRC32")), footer(0)
+ {
+ if (DEFAULT_BUFFERSIZE < sizeof(GZIP::GZIP_HEADER))
+- throw Exception("DEFAULT_BUFFERSIZE is too small");
++ throw Decoding_Error("DEFAULT_BUFFERSIZE is too small");
+
+ zlib = new Zlib_Stream;
+
+@@ -237,7 +237,7 @@ Gzip_Decompression::Gzip_Decompression()
+ if(inflateInit2(&(zlib->stream), -15) != Z_OK)
+ {
+ delete zlib; zlib = 0;
+- throw Exception("Gzip_Decompression: Memory allocation error");
++ throw Memory_Exhaustion();
+ }
+ }
+
+@@ -256,7 +256,7 @@ void Gzip_Decompression::start_msg()
+ void Gzip_Decompression::start_msg()
+ {
+ if (!no_writes)
+- throw Exception("Gzip_Decompression: start_msg after already writing");
++ throw Decoding_Error("Gzip_Decompression: start_msg after already writing");
+
+ pipe.start_msg();
+ datacount = 0;
+@@ -267,7 +267,7 @@ void Gzip_Decompression::start_msg()
+ /*************************************************
+ * Decompress Input with Gzip *
+ *************************************************/
+-void Gzip_Decompression::write(const byte input[], u32bit length)
++void Gzip_Decompression::write(const byte input[], filter_length_t length)
+ {
+ if(length) no_writes = false;
+
+@@ -277,15 +277,16 @@ void Gzip_Decompression::write(const byt
+ u32bit eat_len = eat_footer(input, length);
+ input += eat_len;
+ length -= eat_len;
+- if (length == 0)
+- return;
+ }
+
++ if (length == 0)
++ return;
++
+ // Check the gzip header
+ if (pos < sizeof(GZIP::GZIP_HEADER))
+ {
+- u32bit len = std::min((u32bit)sizeof(GZIP::GZIP_HEADER)-pos, length);
+- u32bit cmplen = len;
++ filter_length_t len = std::min((filter_length_t)sizeof(GZIP::GZIP_HEADER)-pos, length);
++ filter_length_t cmplen = len;
+ // The last byte is the OS flag - we don't care about that
+ if (pos + len - 1 >= GZIP::HEADER_POS_OS)
+ cmplen--;
+@@ -317,8 +318,8 @@ void Gzip_Decompression::write(const byt
+ if(rc == Z_NEED_DICT)
+ throw Decoding_Error("Gzip_Decompression: Need preset dictionary");
+ if(rc == Z_MEM_ERROR)
+- throw Exception("Gzip_Decompression: Memory allocation error");
+- throw Exception("Gzip_Decompression: Unknown decompress error");
++ throw Memory_Exhaustion();
++ throw Decoding_Error("Gzip_Decompression: Unknown decompress error");
+ }
+ send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
+ pipe.write(buffer.begin(), buffer.size() - zlib->stream.avail_out);
+@@ -346,8 +347,14 @@ u32bit Gzip_Decompression::eat_footer(co
+ if (footer.size() >= GZIP::FOOTER_LENGTH)
+ throw Decoding_Error("Gzip_Decompression: Data integrity error in footer");
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ size_t eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(),
++ static_cast<size_t>(length));
++ footer += std::make_pair(input, eat_len);
++#else
+ u32bit eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(), length);
+ footer.append(input, eat_len);
++#endif
+
+ if (footer.size() == GZIP::FOOTER_LENGTH)
+ {
+@@ -364,7 +371,7 @@ void Gzip_Decompression::check_footer()
+ void Gzip_Decompression::check_footer()
+ {
+ if (footer.size() != GZIP::FOOTER_LENGTH)
+- throw Exception("Gzip_Decompression: Error finalizing decompression");
++ throw Decoding_Error("Gzip_Decompression: Error finalizing decompression");
+
+ pipe.end_msg();
+
+@@ -377,7 +384,12 @@ void Gzip_Decompression::check_footer()
+ for (int i = 0; i < 4; i++)
+ buf[3-i] = tmpbuf[i];
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ tmpbuf.resize(4);
++ tmpbuf.copy(footer.begin(), 4);
++#else
+ tmpbuf.set(footer.begin(), 4);
++#endif
+ if (buf != tmpbuf)
+ throw Decoding_Error("Gzip_Decompression: Data integrity error - CRC32 error");
+
+@@ -400,7 +412,7 @@ void Gzip_Decompression::end_msg()
+ // read, clear() will reset no_writes
+ if(no_writes) return;
+
+- throw Exception("Gzip_Decompression: didn't find footer");
++ throw Decoding_Error("Gzip_Decompression: didn't find footer");
+
+ }
+
+@@ -412,7 +424,11 @@ void Gzip_Decompression::clear()
+ no_writes = true;
+ inflateReset(&(zlib->stream));
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ footer.clear();
++#else
+ footer.destroy();
++#endif
+ pos = 0;
+ datacount = 0;
+ }
+============================================================
+--- src/gzip.hh 649dfc0b250954f39c0f73870f8bec3f32f7fa43
++++ src/gzip.hh aff9da63bb22366bccf69c2d75ee7790406d2455
+@@ -7,11 +7,18 @@
+ #ifndef BOTAN_EXT_GZIP_H__
+ #define BOTAN_EXT_GZIP_H__
+
++#include <botan/version.h>
+ #include <botan/filter.h>
+ #include <botan/pipe.h>
+
+ namespace Botan {
+
++#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,4)
++// Only 1.9.4 and newer export the Memory_Exception. Give this gzip
++// implementation something compatible to work with.
++typedef std::bad_alloc Memory_Exhaustion;
++#endif
++
+ namespace GZIP {
+
+ /* A basic header - we only need to set the IDs and compression method */
+@@ -30,13 +37,19 @@ namespace GZIP {
+
+ }
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++typedef size_t filter_length_t;
++#else
++typedef u32bit filter_length_t;
++#endif
++
+ /*************************************************
+ * Gzip Compression Filter *
+ *************************************************/
+ class Gzip_Compression : public Filter
+ {
+ public:
+- void write(const byte input[], u32bit length);
++ void write(const byte input[], filter_length_t length);
+ void start_msg();
+ void end_msg();
+ std::string name() const { return "Gzip_Compression"; }
+@@ -60,7 +73,7 @@ class Gzip_Decompression : public Filter
+ class Gzip_Decompression : public Filter
+ {
+ public:
+- void write(const byte input[], u32bit length);
++ void write(const byte input[], filter_length_t length);
+ void start_msg();
+ void end_msg();
+ std::string name() const { return "Gzip_Decompression"; }
+============================================================
+--- src/key_packet.cc d1306df89dd684badac02c03744cd446381c07d3
++++ src/key_packet.cc c97262d161b23c9640972188979669b3e95afe7b
+@@ -106,8 +106,8 @@ namespace
+ void validate_public_key_data(string const & name, string const & keydata) const
+ {
+ string decoded = decode_base64_as<string>(keydata, origin::user);
+- Botan::SecureVector<Botan::byte> key_block;
+- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
++ Botan::SecureVector<Botan::byte> key_block
++ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
+ try
+ {
+ Botan::X509::load_key(key_block);
+============================================================
+--- src/key_store.cc 64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e
++++ src/key_store.cc b7859345f7c665914d16357409bdff24a48b7996
+@@ -572,13 +572,21 @@ key_store_state::decrypt_private_key(key
+ try // with empty passphrase
+ {
+ Botan::DataSource_Memory ds(kp.priv());
+-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI()));
++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), ""));
+ #else
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, ""));
+ #endif
+ }
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ catch (Passphrase_Required & e)
++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
++ catch (Botan::Invalid_Argument & e)
++#else
+ catch (Botan::Exception & e)
++#endif
+ {
+ L(FL("failed to load key with no passphrase: %s") % e.what());
+
+@@ -605,13 +613,18 @@ key_store_state::decrypt_private_key(key
+ {
+ Botan::DataSource_Memory ds(kp.priv());
+ #if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
+- pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), phrase()));
++ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(),
++ phrase()));
+ #else
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, phrase()));
+ #endif
+ break;
+ }
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
++ catch (Botan::Invalid_Argument)
++#else
+ catch (Botan::Exception & e)
++#endif
+ {
+ cycles++;
+ L(FL("decrypt_private_key: failure %d to load encrypted key: %s")
+@@ -822,10 +835,14 @@ key_store::decrypt_rsa(key_id const & id
+ plaintext = string(reinterpret_cast<char const*>(plain.begin()),
+ plain.size());
+ }
+- catch (Botan::Exception & ex)
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
++ catch (std::exception & e)
++#else
++ catch (Botan::Exception & e)
++#endif
+ {
+ E(false, ciphertext.made_from,
+- F("Botan error decrypting data: '%s'") % ex.what());
++ F("Botan error decrypting data: '%s'") % e.what());
+ }
+ }
+
+@@ -856,9 +873,9 @@ key_store::make_signature(database & db,
+ {
+ if (agent.connected()) {
+ //grab the monotone public key as an RSA_PublicKey
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>(key.pub().data()),
+- key.pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(key.pub().data()),
++ key.pub().size());
+ L(FL("make_signature: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+@@ -1031,8 +1048,14 @@ key_store_state::migrate_old_key_pair
+ for (;;)
+ try
+ {
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ arc4_key.resize(phrase().size());
++ arc4_key.copy(reinterpret_cast<Botan::byte const *>(phrase().data()),
++ phrase().size());
++#else
+ arc4_key.set(reinterpret_cast<Botan::byte const *>(phrase().data()),
+ phrase().size());
++#endif
+
+ Pipe arc4_decryptor(get_cipher("ARC4", arc4_key, Botan::DECRYPTION));
+
+@@ -1051,7 +1074,11 @@ key_store_state::migrate_old_key_pair
+ #endif
+ break;
+ }
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
++ catch (Botan::Invalid_Argument & e)
++#else
+ catch (Botan::Exception & e)
++#endif
+ {
+ L(FL("migrate_old_key_pair: failure %d to load old private key: %s")
+ % cycles % e.what());
+============================================================
+--- src/monotone.cc a25ecdd170a601db798b63a60add7681609a34c4
++++ src/monotone.cc 764bc9ca406b41d21efd552a0d810bc2849e0588
+@@ -156,27 +156,53 @@ cpp_main(int argc, char ** argv)
+ E(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,7,14), origin::system,
+ F("monotone does not support Botan 1.7.14"));
+
+-#if BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,6)
++ // In Botan 1.9.9, the DataSink_Stream cannot be instantiated per
++ // se. As 1.10.1 is already out, let's simply disable support for
++ // that specific (testing) version of botan.
++ E(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,9,9), origin::system,
++ F("monotone does not support Botan 1.9.9"));
++
++#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,7,7)
++ // motonote binary compiled against botan younger than 1.7.7
+ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,6,3), origin::system,
+ F("this monotone binary requires Botan 1.6.3 or newer"));
+- E(linked_botan_version <= BOTAN_VERSION_CODE_FOR(1,7,6), origin::system,
+- F("this monotone binary does not work with Botan newer than 1.7.6"));
+-#elif BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,22)
+- E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,6), origin::system,
++ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,7,7), origin::system,
++ F("this monotone binary does not work with Botan 1.7.7 or newer"));
++
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,7,22)
++ // motonote binary compiled against botan 1.7.7 - 1.7.21
++ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,7,7), origin::system,
+ F("this monotone binary requires Botan 1.7.7 or newer"));
+- // While compiling against 1.7.22 or newer is recommended, because
+- // it enables new features of Botan, the monotone binary compiled
+- // against Botan 1.7.21 and before should still work with newer Botan
+- // versions, including all of the stable branch 1.8.x.
+- E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
+- F("this monotone binary does not work with Botan 1.9.x"));
+-#else
+- E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
++ // While compiling against 1.7.22 or newer is recommended, because it
++ // enables new features of Botan, the monotone binary compiled against
++ // Botan 1.7.21 and before should still work with newer Botan version,
++ // including all of the stable branch 1.8.x, up to and including
++ // 1.9.3.
++ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
++ F("this monotone binary does not work with Botan 1.9.4 or newer"));
++
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,4)
++ // motonote binary compiled against botan 1.7.22 - 1.9.3
++ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
+ F("this monotone binary requires Botan 1.7.22 or newer"));
+- E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
+- F("this monotone binary does not work with Botan 1.9.x"));
++ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
++ F("this monotone binary does not work with Botan 1.9.4 or newer"));
++
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
++ // motonote binary compiled against botan 1.9.4 - 1.9.10
++#pragma message ( "The resulting monotone binary won't be able to run with any stable release of botan." )
++ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
++ F("this monotone binary requires Botan 1.9.4 or newer"));
++ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
++ F("this monotone binary does not work with Botan 1.9.11 or newer"));
++
++#else
++ // motonote binary compiled against botan 1.9.11 and newer
++ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
++ F("this monotone binary requires Botan 1.9.11 or newer"));
+ #endif
+
++
+ app_state app;
+ try
+ {
+============================================================
+--- src/packet.cc f61360ed2524fdf53411bd24d022a2a3c9e6e9c7
++++ src/packet.cc 571ff6eae1d269a146da74f2730b70376957d3bb
+@@ -156,8 +156,8 @@ namespace
+ void validate_public_key_data(string const & name, string const & keydata) const
+ {
+ string decoded = decode_base64_as<string>(keydata, origin::user);
+- Botan::SecureVector<Botan::byte> key_block;
+- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
++ Botan::SecureVector<Botan::byte> key_block
++ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
+ try
+ {
+ Botan::X509::load_key(key_block);
+@@ -175,7 +175,9 @@ namespace
+ Botan::DataSource_Memory ds(decoded);
+ try
+ {
+-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI());
++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
+ Botan::PKCS8::load_key(ds, lazy_rng::get(), string());
+ #else
+ Botan::PKCS8::load_key(ds, string());
+@@ -189,7 +191,11 @@ namespace
+ }
+ // since we do not want to prompt for a password to decode it finally,
+ // we ignore all other exceptions
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ catch (Passphrase_Required) {}
++#else
+ catch (Botan::Invalid_Argument) {}
++#endif
+ }
+ void validate_certname(string const & cn) const
+ {
+@@ -460,8 +466,16 @@ read_packets(istream & in, packet_consum
+ return count;
+ }
+
++// Dummy User_Interface implementation for Botan
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++std::string
++Dummy_UI::get_passphrase(const std::string &, const std::string &,
++ Botan::User_Interface::UI_Result&) const
++{
++ throw Passphrase_Required("Passphrase required");
++}
++#endif
+
+-
+ // Local Variables:
+ // mode: C++
+ // fill-column: 76
+============================================================
+--- src/packet.hh 0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b
++++ src/packet.hh 9c43d30145f0292d6ceda5e717e366fdead5a4d6
+@@ -10,6 +10,10 @@
+ #ifndef __PACKET_HH__
+ #define __PACKET_HH__
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++#include <botan/ui.h>
++#endif
++
+ #include "vocab.hh"
+
+ struct cert;
+@@ -84,8 +88,23 @@ size_t read_packets(std::istream & in, p
+
+ size_t read_packets(std::istream & in, packet_consumer & cons);
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++// A helper class implementing Botan::User_Interface - which doesn't really
++// interface with the user, but provides the necessary plumbing for Botan.
++//
++// See Botan commit 2d09d7d0cd4bd0e7155d001dd65a4f29103b158c
++typedef std::runtime_error Passphrase_Required;
++
++class Dummy_UI : public Botan::User_Interface
++{
++public:
++ virtual std::string get_passphrase(const std::string &, const std::string &,
++ Botan::User_Interface::UI_Result &) const;
++};
+ #endif
+
++#endif
++
+ // Local Variables:
+ // mode: C++
+ // fill-column: 76
+============================================================
+--- src/sha1.cc 5e1aa972d7c7d66e06320b039989652b830dcd75
++++ src/sha1.cc 42e48b22fd88b25e0d38d4f91e1f13f8a83c7120
+@@ -50,9 +50,12 @@ CMD_HIDDEN(benchmark_sha1, "benchmark_sh
+ Botan::Default_Benchmark_Timer timer;
+ std::map<std::string, double> results =
+ Botan::algorithm_benchmark("SHA-1", milliseconds, timer, rng, af);
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
++ std::map<std::string, double> results =
++ Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
+ #else
+ std::map<std::string, double> results =
+- Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
++ Botan::algorithm_benchmark("SHA-1", af, rng, milliseconds, 16);
+ #endif
+
+ for(std::map<std::string, double>::const_iterator i = results.begin();
+============================================================
+--- src/ssh_agent.cc 6d188e7012a0b82f782563b09bbd7adf3f70cf75
++++ src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
+@@ -385,9 +385,9 @@ ssh_agent::has_key(const keypair & key)
+ ssh_agent::has_key(const keypair & key)
+ {
+ //grab the monotone public key as an RSA_PublicKey
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>((key.pub)().data()),
+- (key.pub)().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>((key.pub)().data()),
++ (key.pub)().size());
+ L(FL("has_key: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+============================================================
+--- src/transforms.cc cdfb6854ef4992faba21074145f3c8269b845b11
++++ src/transforms.cc b99278ffe95c0081bf4986bc74d3699c37a52948
+@@ -53,15 +53,16 @@ using Botan::Hash_Filter;
+ // paradigm "must" be used. this program is intended for source code
+ // control and I make no bones about it.
+
+-NORETURN(static inline void error_in_transform(Botan::Exception & e));
++NORETURN(static inline void error_in_transform(std::exception & e));
+
+ static inline void
+-error_in_transform(Botan::Exception & e, origin::type caused_by)
++error_in_transform(std::exception & e, origin::type caused_by)
+ {
+ // these classes can all indicate data corruption
+ if (typeid(e) == typeid(Botan::Encoding_Error)
+ || typeid(e) == typeid(Botan::Decoding_Error)
+ || typeid(e) == typeid(Botan::Stream_IO_Error)
++ || typeid(e) == typeid(Botan::Invalid_Argument)
+ || typeid(e) == typeid(Botan::Integrity_Failure))
+ {
+ // clean up the what() string a little: throw away the
+@@ -107,7 +108,7 @@ error_in_transform(Botan::Exception & e,
+ pipe->process_msg(in); \
+ out = pipe->read_all_as_string(Pipe::LAST_MESSAGE); \
+ } \
+- catch (Botan::Exception & e) \
++ catch (std::exception & e) \
+ { \
+ pipe.reset(new Pipe(new T(carg))); \
+ error_in_transform(e, made_from); \
+@@ -173,7 +174,7 @@ template<> string xform<Botan::Hex_Decod
+ {
+ throw Botan::Decoding_Error(string("invalid hex character '") + (char)c + "'");
+ }
+- catch(Botan::Exception & e)
++ catch(std::exception & e)
+ {
+ error_in_transform(e, made_from);
+ }
+@@ -219,7 +220,7 @@ void pack(T const & in, base64< gzip<T>
+ tmp = pipe->read_all_as_string(Pipe::LAST_MESSAGE);
+ out = base64< gzip<T> >(tmp, in.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ pipe.reset(new Pipe(new Gzip_Compression,
+ new Base64_Encoder));
+@@ -237,7 +238,7 @@ void unpack(base64< gzip<T> > const & in
+ pipe->process_msg(in());
+ out = T(pipe->read_all_as_string(Pipe::LAST_MESSAGE), in.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ pipe.reset(new Pipe(new Base64_Decoder,
+ new Gzip_Decompression));
+@@ -264,7 +265,7 @@ calculate_ident(data const & dat,
+ p->process_msg(dat());
+ ident = id(p->read_all_as_string(Pipe::LAST_MESSAGE), dat.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ p.reset(new Pipe(new Hash_Filter("SHA-160")));
+ error_in_transform(e, dat.made_from);
diff --git a/dev-vcs/monotone/files/monotone-1.0-botan-1.10.patch b/dev-vcs/monotone/files/monotone-1.0-botan-1.10.patch
new file mode 100644
index 000000000000..daf73ca833a8
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-botan-1.10.patch
@@ -0,0 +1,412 @@
+by Martin von Gagern:
+https://code.monotone.ca/p/monotone/issues/182/
+
+============================================================
+--- src/database.cc 4c259f963c440fc95564dfec99b2f832f0bad643
++++ src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
+@@ -3425,9 +3425,8 @@ database::encrypt_rsa(key_id const & pub
+ rsa_pub_key pub;
+ get_key(pub_id, pub);
+
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
+- pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
+
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+ shared_ptr<RSA_PublicKey> pub_key
+@@ -3471,14 +3470,13 @@ database::check_signature(key_id const &
+ else
+ {
+ rsa_pub_key pub;
+- SecureVector<Botan::byte> pub_block;
+
+ if (!public_key_exists(id))
+ return cert_unknown;
+
+ get_key(id, pub);
+- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
+- pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
+
+ L(FL("building verifier for %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
+============================================================
+--- src/gzip.cc e7c19bee910e3d421fd073933810ec52092b1d9b
++++ src/gzip.cc bab290412cff6031b2d3bf9d1439a08499d39640
+@@ -137,7 +137,7 @@ void Gzip_Compression::start_msg()
+ /*************************************************
+ * Compress Input with Gzip *
+ *************************************************/
+-void Gzip_Compression::write(const byte input[], u32bit length)
++void Gzip_Compression::write(const byte input[], filter_length_t length)
+ {
+
+ count += length;
+@@ -267,7 +267,7 @@ void Gzip_Decompression::start_msg()
+ /*************************************************
+ * Decompress Input with Gzip *
+ *************************************************/
+-void Gzip_Decompression::write(const byte input[], u32bit length)
++void Gzip_Decompression::write(const byte input[], filter_length_t length)
+ {
+ if(length) no_writes = false;
+
+@@ -284,8 +284,8 @@ void Gzip_Decompression::write(const byt
+ // Check the gzip header
+ if (pos < sizeof(GZIP::GZIP_HEADER))
+ {
+- u32bit len = std::min((u32bit)sizeof(GZIP::GZIP_HEADER)-pos, length);
+- u32bit cmplen = len;
++ filter_length_t len = std::min((filter_length_t)sizeof(GZIP::GZIP_HEADER)-pos, length);
++ filter_length_t cmplen = len;
+ // The last byte is the OS flag - we don't care about that
+ if (pos + len - 1 >= GZIP::HEADER_POS_OS)
+ cmplen--;
+@@ -346,8 +346,14 @@ u32bit Gzip_Decompression::eat_footer(co
+ if (footer.size() >= GZIP::FOOTER_LENGTH)
+ throw Decoding_Error("Gzip_Decompression: Data integrity error in footer");
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ size_t eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(),
++ static_cast<size_t>(length));
++ footer += std::make_pair(input, eat_len);
++#else
+ u32bit eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(), length);
+ footer.append(input, eat_len);
++#endif
+
+ if (footer.size() == GZIP::FOOTER_LENGTH)
+ {
+@@ -377,7 +383,12 @@ void Gzip_Decompression::check_footer()
+ for (int i = 0; i < 4; i++)
+ buf[3-i] = tmpbuf[i];
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ tmpbuf.resize(4);
++ tmpbuf.copy(footer.begin(), 4);
++#else
+ tmpbuf.set(footer.begin(), 4);
++#endif
+ if (buf != tmpbuf)
+ throw Decoding_Error("Gzip_Decompression: Data integrity error - CRC32 error");
+
+@@ -412,7 +423,11 @@ void Gzip_Decompression::clear()
+ no_writes = true;
+ inflateReset(&(zlib->stream));
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ footer.clear();
++#else
+ footer.destroy();
++#endif
+ pos = 0;
+ datacount = 0;
+ }
+============================================================
+--- src/gzip.hh 649dfc0b250954f39c0f73870f8bec3f32f7fa43
++++ src/gzip.hh f462dfc1df71ae1e9a8203606fd29d9e0eda9b2a
+@@ -7,6 +7,7 @@
+ #ifndef BOTAN_EXT_GZIP_H__
+ #define BOTAN_EXT_GZIP_H__
+
++#include <botan/version.h>
+ #include <botan/filter.h>
+ #include <botan/pipe.h>
+
+@@ -30,13 +31,19 @@ namespace GZIP {
+
+ }
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ typedef size_t filter_length_t;
++#else
++ typedef u32bit filter_length_t;
++#endif
++
+ /*************************************************
+ * Gzip Compression Filter *
+ *************************************************/
+ class Gzip_Compression : public Filter
+ {
+ public:
+- void write(const byte input[], u32bit length);
++ void write(const byte input[], filter_length_t length);
+ void start_msg();
+ void end_msg();
+ std::string name() const { return "Gzip_Compression"; }
+@@ -60,7 +67,7 @@ class Gzip_Decompression : public Filter
+ class Gzip_Decompression : public Filter
+ {
+ public:
+- void write(const byte input[], u32bit length);
++ void write(const byte input[], filter_length_t length);
+ void start_msg();
+ void end_msg();
+ std::string name() const { return "Gzip_Decompression"; }
+============================================================
+--- src/key_packet.cc d1306df89dd684badac02c03744cd446381c07d3
++++ src/key_packet.cc c97262d161b23c9640972188979669b3e95afe7b
+@@ -106,8 +106,8 @@ namespace
+ void validate_public_key_data(string const & name, string const & keydata) const
+ {
+ string decoded = decode_base64_as<string>(keydata, origin::user);
+- Botan::SecureVector<Botan::byte> key_block;
+- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
++ Botan::SecureVector<Botan::byte> key_block
++ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
+ try
+ {
+ Botan::X509::load_key(key_block);
+============================================================
+--- src/key_store.cc 64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e
++++ src/key_store.cc 1b1f1a989c21ee0dc69c540783ffb1fe4bceabf5
+@@ -572,13 +572,19 @@ key_store_state::decrypt_private_key(key
+ try // with empty passphrase
+ {
+ Botan::DataSource_Memory ds(kp.priv());
+-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI()));
++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), ""));
+ #else
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, ""));
+ #endif
+ }
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ catch (Passphrase_Required & e)
++#else
+ catch (Botan::Exception & e)
++#endif
+ {
+ L(FL("failed to load key with no passphrase: %s") % e.what());
+
+@@ -856,9 +862,9 @@ key_store::make_signature(database & db,
+ {
+ if (agent.connected()) {
+ //grab the monotone public key as an RSA_PublicKey
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>(key.pub().data()),
+- key.pub().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>(key.pub().data()),
++ key.pub().size());
+ L(FL("make_signature: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+@@ -1031,8 +1037,14 @@ key_store_state::migrate_old_key_pair
+ for (;;)
+ try
+ {
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ arc4_key.resize(phrase().size());
++ arc4_key.copy(reinterpret_cast<Botan::byte const *>(phrase().data()),
++ phrase().size());
++#else
+ arc4_key.set(reinterpret_cast<Botan::byte const *>(phrase().data()),
+ phrase().size());
++#endif
+
+ Pipe arc4_decryptor(get_cipher("ARC4", arc4_key, Botan::DECRYPTION));
+
+============================================================
+--- src/monotone.cc a25ecdd170a601db798b63a60add7681609a34c4
++++ src/monotone.cc 2c5f57762bc687a90f75e732f39d2181fc50bd6d
+@@ -170,11 +170,16 @@ cpp_main(int argc, char ** argv)
+ // versions, including all of the stable branch 1.8.x.
+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
+ F("this monotone binary does not work with Botan 1.9.x"));
+-#else
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
+ E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
+ F("this monotone binary requires Botan 1.7.22 or newer"));
+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
+ F("this monotone binary does not work with Botan 1.9.x"));
++#else
++ E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
++ F("this monotone binary requires Botan 1.9.11 or newer"));
++ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,11,0), origin::system,
++ F("this monotone binary does not work with Botan 1.11.x"));
+ #endif
+
+ app_state app;
+============================================================
+--- src/packet.cc f61360ed2524fdf53411bd24d022a2a3c9e6e9c7
++++ src/packet.cc 6f6739c4756933843a2d865dc6790de9013626b7
+@@ -156,8 +156,8 @@ namespace
+ void validate_public_key_data(string const & name, string const & keydata) const
+ {
+ string decoded = decode_base64_as<string>(keydata, origin::user);
+- Botan::SecureVector<Botan::byte> key_block;
+- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
++ Botan::SecureVector<Botan::byte> key_block
++ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
+ try
+ {
+ Botan::X509::load_key(key_block);
+@@ -175,7 +175,9 @@ namespace
+ Botan::DataSource_Memory ds(decoded);
+ try
+ {
+-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI());
++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
+ Botan::PKCS8::load_key(ds, lazy_rng::get(), string());
+ #else
+ Botan::PKCS8::load_key(ds, string());
+@@ -189,7 +191,11 @@ namespace
+ }
+ // since we do not want to prompt for a password to decode it finally,
+ // we ignore all other exceptions
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++ catch (Passphrase_Required) {}
++#else
+ catch (Botan::Invalid_Argument) {}
++#endif
+ }
+ void validate_certname(string const & cn) const
+ {
+@@ -460,8 +466,14 @@ read_packets(istream & in, packet_consum
+ return count;
+ }
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++std::string Dummy_UI::get_passphrase(const std::string&,
++ const std::string&,
++ Botan::User_Interface::UI_Result&) const {
++ throw Passphrase_Required();
++}
++#endif
+
+-
+ // Local Variables:
+ // mode: C++
+ // fill-column: 76
+============================================================
+--- src/packet.hh 0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b
++++ src/packet.hh 6c7d90e0bd9abe1e2e97da8ed40808fe438ea34b
+@@ -84,8 +84,26 @@ size_t read_packets(std::istream & in, p
+
+ size_t read_packets(std::istream & in, packet_consumer & cons);
+
++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
++// work around botan commit 2d09d7d0cd4bd0e7155d001dd65a4f29103b158c
++#include <botan/ui.h>
++class Dummy_UI : public Botan::User_Interface
++{
++public:
++ virtual std::string get_passphrase(const std::string&,
++ const std::string&,
++ Botan::User_Interface::UI_Result&) const;
++};
++class Passphrase_Required : public Botan::Exception {
++public:
++ Passphrase_Required(const std::string& m = "Passphrase required") :
++ Botan::Exception(m)
++ {}
++};
+ #endif
+
++#endif
++
+ // Local Variables:
+ // mode: C++
+ // fill-column: 76
+============================================================
+--- src/sha1.cc 5e1aa972d7c7d66e06320b039989652b830dcd75
++++ src/sha1.cc 42e48b22fd88b25e0d38d4f91e1f13f8a83c7120
+@@ -50,9 +50,12 @@ CMD_HIDDEN(benchmark_sha1, "benchmark_sh
+ Botan::Default_Benchmark_Timer timer;
+ std::map<std::string, double> results =
+ Botan::algorithm_benchmark("SHA-1", milliseconds, timer, rng, af);
++#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
++ std::map<std::string, double> results =
++ Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
+ #else
+ std::map<std::string, double> results =
+- Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
++ Botan::algorithm_benchmark("SHA-1", af, rng, milliseconds, 16);
+ #endif
+
+ for(std::map<std::string, double>::const_iterator i = results.begin();
+============================================================
+--- src/ssh_agent.cc 6d188e7012a0b82f782563b09bbd7adf3f70cf75
++++ src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
+@@ -385,9 +385,9 @@ ssh_agent::has_key(const keypair & key)
+ ssh_agent::has_key(const keypair & key)
+ {
+ //grab the monotone public key as an RSA_PublicKey
+- SecureVector<Botan::byte> pub_block;
+- pub_block.set(reinterpret_cast<Botan::byte const *>((key.pub)().data()),
+- (key.pub)().size());
++ SecureVector<Botan::byte> pub_block
++ (reinterpret_cast<Botan::byte const *>((key.pub)().data()),
++ (key.pub)().size());
+ L(FL("has_key: building %d-byte pub key") % pub_block.size());
+ shared_ptr<X509_PublicKey> x509_key =
+ shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
+============================================================
+--- src/transforms.cc cdfb6854ef4992faba21074145f3c8269b845b11
++++ src/transforms.cc 789e01bbff42020d04d8dba8f6b97588fbe4ca3d
+@@ -53,10 +53,10 @@ using Botan::Hash_Filter;
+ // paradigm "must" be used. this program is intended for source code
+ // control and I make no bones about it.
+
+-NORETURN(static inline void error_in_transform(Botan::Exception & e));
++NORETURN(static inline void error_in_transform(std::exception & e));
+
+ static inline void
+-error_in_transform(Botan::Exception & e, origin::type caused_by)
++error_in_transform(std::exception & e, origin::type caused_by)
+ {
+ // these classes can all indicate data corruption
+ if (typeid(e) == typeid(Botan::Encoding_Error)
+@@ -107,7 +107,7 @@ error_in_transform(Botan::Exception & e,
+ pipe->process_msg(in); \
+ out = pipe->read_all_as_string(Pipe::LAST_MESSAGE); \
+ } \
+- catch (Botan::Exception & e) \
++ catch (std::exception & e) \
+ { \
+ pipe.reset(new Pipe(new T(carg))); \
+ error_in_transform(e, made_from); \
+@@ -173,7 +173,7 @@ template<> string xform<Botan::Hex_Decod
+ {
+ throw Botan::Decoding_Error(string("invalid hex character '") + (char)c + "'");
+ }
+- catch(Botan::Exception & e)
++ catch(std::exception & e)
+ {
+ error_in_transform(e, made_from);
+ }
+@@ -219,7 +219,7 @@ void pack(T const & in, base64< gzip<T>
+ tmp = pipe->read_all_as_string(Pipe::LAST_MESSAGE);
+ out = base64< gzip<T> >(tmp, in.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ pipe.reset(new Pipe(new Gzip_Compression,
+ new Base64_Encoder));
+@@ -237,7 +237,7 @@ void unpack(base64< gzip<T> > const & in
+ pipe->process_msg(in());
+ out = T(pipe->read_all_as_string(Pipe::LAST_MESSAGE), in.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ pipe.reset(new Pipe(new Base64_Decoder,
+ new Gzip_Decompression));
+@@ -264,7 +264,7 @@ calculate_ident(data const & dat,
+ p->process_msg(dat());
+ ident = id(p->read_all_as_string(Pipe::LAST_MESSAGE), dat.made_from);
+ }
+- catch (Botan::Exception & e)
++ catch (std::exception & e)
+ {
+ p.reset(new Pipe(new Hash_Filter("SHA-160")));
+ error_in_transform(e, dat.made_from);
diff --git a/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch b/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch
new file mode 100644
index 000000000000..a6e282232223
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch
@@ -0,0 +1,166 @@
+Revision: da62cad10eda55aa233ac124273f3db4f541137a
+Parent: 65bcb8cf8b32f68a5b48629b328f6d65979e58df
+Author: Thomas Moschny <thomas.moschny@gmx.de>
+Date: 07.05.2011 13:32:06
+Branch: net.venge.monotone
+
+Changelog:
+
+* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle"
+ to avoid a name clash with a struct of same name defined by newer
+ glibc's "fcntl.h". For aesthetic reasons, also rename struct
+ "file_source".
+
+References:
+https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/
+https://bugs.gentoo.org/396651
+
+============================================================
+--- src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6
++++ src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b
+@@ -42,12 +42,12 @@ struct
+
+ #ifdef HAVE_MMAP
+ struct
+-file_handle
++rcs_file_handle
+ {
+ string const & filename;
+ off_t length;
+ int fd;
+- file_handle(string const & fn) :
++ rcs_file_handle(string const & fn) :
+ filename(fn),
+ length(0),
+ fd(-1)
+@@ -60,13 +60,13 @@ file_handle
+ if (fd == -1)
+ throw oops("open of " + filename + " failed");
+ }
+- ~file_handle()
++ ~rcs_file_handle()
+ {
+ if (close(fd) == -1)
+ throw oops("close of " + filename + " failed");
+ }
+ };
+-struct file_source
++struct rcs_file_source
+ {
+ string const & filename;
+ int fd;
+@@ -91,7 +91,7 @@ struct file_source
+ ++pos;
+ return good();
+ }
+- file_source(string const & fn,
++ rcs_file_source(string const & fn,
+ int f,
+ off_t len) :
+ filename(fn),
+@@ -104,7 +104,7 @@ struct file_source
+ if (mapping == MAP_FAILED)
+ throw oops("mmap of " + filename + " failed");
+ }
+- ~file_source()
++ ~rcs_file_source()
+ {
+ if (munmap(mapping, length) == -1)
+ throw oops("munmapping " + filename + " failed, after reading RCS file");
+@@ -112,12 +112,12 @@ struct
+ };
+ #elif defined(WIN32)
+ struct
+-file_handle
++rcs_file_handle
+ {
+ string const & filename;
+ off_t length;
+ HANDLE fd;
+- file_handle(string const & fn) :
++ rcs_file_handle(string const & fn) :
+ filename(fn),
+ length(0),
+ fd(NULL)
+@@ -134,7 +134,7 @@ file_handle
+ if (fd == NULL)
+ throw oops("open of " + filename + " failed");
+ }
+- ~file_handle()
++ ~rcs_file_handle()
+ {
+ if (CloseHandle(fd)==0)
+ throw oops("close of " + filename + " failed");
+@@ -142,7 +142,7 @@ struct
+ };
+
+ struct
+-file_source
++rcs_file_source
+ {
+ string const & filename;
+ HANDLE fd,map;
+@@ -167,7 +167,7 @@ file_source
+ ++pos;
+ return good();
+ }
+- file_source(string const & fn,
++ rcs_file_source(string const & fn,
+ HANDLE f,
+ off_t len) :
+ filename(fn),
+@@ -183,7 +183,7 @@ file_source
+ if (mapping==NULL)
+ throw oops("MapViewOfFile of " + filename + " failed");
+ }
+- ~file_source()
++ ~rcs_file_source()
+ {
+ if (UnmapViewOfFile(mapping)==0)
+ throw oops("UnmapViewOfFile of " + filename + " failed");
+@@ -193,7 +193,7 @@ file_source
+ };
+ #else
+ // no mmap at all
+-typedef istream file_source;
++typedef istream rcs_file_source;
+ #endif
+
+ typedef enum
+@@ -220,7 +220,7 @@ static token_type
+ }
+
+ static token_type
+-get_token(file_source & ist,
++get_token(rcs_file_source & ist,
+ string & str,
+ size_t & line,
+ size_t & col)
+@@ -303,14 +303,14 @@ struct parser
+
+ struct parser
+ {
+- file_source & ist;
++ rcs_file_source & ist;
+ rcs_file & r;
+ string token;
+ token_type ttype;
+
+ size_t line, col;
+
+- parser(file_source & s,
++ parser(rcs_file_source & s,
+ rcs_file & r)
+ : ist(s), r(r), line(1), col(1)
+ {}
+@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename,
+ parse_rcs_file(string const & filename, rcs_file & r)
+ {
+ #if defined(HAVE_MMAP) || defined(WIN32)
+- file_handle handle(filename);
+- file_source ifs(filename, handle.fd, handle.length);
++ rcs_file_handle handle(filename);
++ rcs_file_source ifs(filename, handle.fd, handle.length);
+ #else
+ ifstream ifs(filename.c_str());
+ ifs.unsetf(ios_base::skipws);
diff --git a/dev-vcs/monotone/files/monotone-1.0-pcre3.patch b/dev-vcs/monotone/files/monotone-1.0-pcre3.patch
new file mode 100644
index 000000000000..932538e38a4b
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-pcre3.patch
@@ -0,0 +1,26 @@
+Author: Francis Russell
+Bug-Debian: http://bugs.debian.org/665448
+Description: The test 'syntax_errors_in_.mtn-ignore' from the monotone
+ test suite contains a .mtn-ignore file which contains a number of
+ regular expressions. Some of these are intended to match and fail to
+ match the names of files created by the test harness. The rest have
+ invalid syntax and should be ignored.
+ .
+ One regex, '(?<=\C)' is presumably intended to be invalid, but with
+ the most recent version of pcre3 matches most files and therefore
+ causes the test to fail. In fact, it appears to be a valid regex that
+ performs a positive look behind to match a single data unit (usually a
+ byte, even in UTF mode). This patch removes the problematic regex until
+ the issue can be addressed upstream.
+Index: monotone-1.0/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore
+===================================================================
+--- monotone-1.0.orig/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore 2011-03-26 06:41:05.000000000 +0000
++++ monotone-1.0/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore 2012-03-25 20:02:37.695875219 +0100
+@@ -21,7 +21,6 @@
+ [[:fnord:]]
+ \\x{123456}
+ (?(0))
+-(?<=\C)
+ \l
+ (?C256)
+ (?C1
diff --git a/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch b/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch
new file mode 100644
index 000000000000..cb457b547d19
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch
@@ -0,0 +1,625 @@
+Fixes build issue with texinfo-5.1
+https://bugs.gentoo.org/show_bug.cgi?id=483122
+
+============================================================
+--- doc/monotone.texi fcc02ef992214968bfbdd4a1f968846535de22f7
++++ doc/monotone.texi 4feaab5a3c304a6a465402d6069d214137d63198
+@@ -4845,7 +4845,7 @@ @subsection Global Options
+ Cancel all previous @option{--rcfile} options (standard rcfiles are
+ still loaded). See @ref{rcfiles}.
+
+-@itemx --root <arg>
++@item --root <arg>
+ Limit the search for a workspace to the specified root directory
+
+ @item --ssh-sign <arg>
+@@ -6247,7 +6247,7 @@ @section Informative
+ the root directory of the specified path (or the workspace, if no path
+ is given).
+
+-@itemx mtn list vars [@var{domain}]
++@item mtn list vars [@var{domain}]
+ @itemx mtn ls vars
+ @command{ls vars} is an alias for @command{list vars}.
+
+============================================================
+--- doc/pcrepattern.texi 43ef52850c1fd113b8a21d63634bafe61b3aec45
++++ doc/pcrepattern.texi 7ae6fb9367a2410c588230742d63ff4f83daa909
+@@ -74,32 +74,32 @@ @subsubheading Characters and Metacharac
+ brackets, the metacharacters are as follows:
+
+ @table @code
+-@itemx \
++@item \
+ general escape character with several uses
+-@itemx ^
++@item ^
+ assert start of string (or line, in multiline mode)
+-@itemx $
++@item $
+ assert end of string (or line, in multiline mode)
+-@itemx .
++@item .
+ match any character except newline (by default)
+-@itemx [
++@item [
+ start character class definition
+-@itemx |
++@item |
+ start of alternative branch
+-@itemx (
++@item (
+ start subpattern
+-@itemx )
++@item )
+ end subpattern
+-@itemx ?
++@item ?
+ extends the meaning of @samp{(}
+ also 0 or 1 quantifier
+ also quantifier minimizer
+-@itemx *
++@item *
+ 0 or more quantifier
+-@itemx +
++@item +
+ 1 or more quantifier
+ also ``possessive quantifier''
+-@itemx @{
++@item @{
+ start min/max quantifier
+ @end table
+
+@@ -108,16 +108,16 @@ @subsubheading Characters and Metacharac
+ class". In a character class the only metacharacters are:
+
+ @table @code
+-@itemx \
++@item \
+ general escape character
+-@itemx ^
++@item ^
+ negate the class, but only if the first character
+-@itemx -
++@item -
+ indicates character range
+-@itemx [
++@item [
+ POSIX character class (only if followed by POSIX
+ syntax)
+-@itemx ]
++@item ]
+ terminates the character class
+ @end table
+
+@@ -159,25 +159,25 @@ @subsubheading Non-printing Characters
+ represents:
+
+ @table @code
+-@itemx \a
++@item \a
+ alarm, that is, the BEL character (hex 07)
+-@itemx \c@var{x}
++@item \c@var{x}
+ "control-@var{x}", where @var{x} is any character
+-@itemx \e
++@item \e
+ escape (hex 1B)
+-@itemx \f
++@item \f
+ formfeed (hex 0C)
+-@itemx \n
++@item \n
+ linefeed (hex 0A)
+-@itemx \r
++@item \r
+ carriage return (hex 0D)
+-@itemx \t
++@item \t
+ tab (hex 09)
+-@itemx \@var{ddd}
++@item \@var{ddd}
+ character with octal code @var{ddd}, or backreference
+-@itemx \x@var{hh}
++@item \x@var{hh}
+ character with hex code @var{hh}
+-@itemx \x@{@var{hhh...}@}
++@item \x@{@var{hhh...}@}
+ character with hex code @var{hhh...}
+ @end table
+
+@@ -244,27 +244,27 @@ @subsubheading Non-printing Characters
+ @samp{\777} are permitted. For example:
+
+ @table @code
+-@itemx \040
++@item \040
+ is another way of writing a space
+-@itemx \40
++@item \40
+ is the same, provided there are fewer than 40
+ previous capturing subpatterns
+-@itemx \7
++@item \7
+ is always a back reference
+-@itemx \11
++@item \11
+ might be a back reference, or another way of
+ writing a tab
+-@itemx \011
++@item \011
+ is always a tab
+-@itemx \0113
++@item \0113
+ is a tab followed by the character @samp{3}
+-@itemx \113
++@item \113
+ might be a back reference, otherwise the
+ character with octal code 113
+-@itemx \377
++@item \377
+ might be a back reference, otherwise
+ the byte consisting entirely of 1 bits
+-@itemx \81
++@item \81
+ is either a back reference, or a binary zero
+ followed by the two characters @samp{8} and @samp{1}
+ @end table
+@@ -294,25 +294,25 @@ @subsubheading Generic character types
+ following are always recognized:
+
+ @table @code
+-@itemx \d
++@item \d
+ any decimal digit
+-@itemx \D
++@item \D
+ any character that is not a decimal digit
+-@itemx \h
++@item \h
+ any horizontal whitespace character
+-@itemx \H
++@item \H
+ any character that is not a horizontal whitespace character
+-@itemx \s
++@item \s
+ any whitespace character
+-@itemx \S
++@item \S
+ any character that is not a whitespace character
+-@itemx \v
++@item \v
+ any vertical whitespace character
+-@itemx \V
++@item \V
+ any character that is not a vertical whitespace character
+-@itemx \w
++@item \w
+ any ``word'' character
+-@itemx \W
++@item \W
+ any ``non-word'' character
+ @end table
+
+@@ -342,43 +342,43 @@ @subsubheading Generic character types
+ characters are:
+
+ @table @code
+-@itemx U+0009
++@item U+0009
+ Horizontal tab
+-@itemx U+0020
++@item U+0020
+ Space
+-@itemx U+00A0
++@item U+00A0
+ Non-break space
+-@itemx U+1680
++@item U+1680
+ Ogham space mark
+-@itemx U+180E
++@item U+180E
+ Mongolian vowel separator
+ @item U+2000
+ En quad
+-@itemx U+2001
++@item U+2001
+ Em quad
+-@itemx U+2002
++@item U+2002
+ En space
+-@itemx U+2003
++@item U+2003
+ Em space
+-@itemx U+2004
++@item U+2004
+ Three-per-em space
+-@itemx U+2005
++@item U+2005
+ Four-per-em space
+-@itemx U+2006
++@item U+2006
+ Six-per-em space
+ @item U+2007
+ Figure space
+-@itemx U+2008
++@item U+2008
+ Punctuation space
+-@itemx U+2009
++@item U+2009
+ Thin space
+-@itemx U+200A
++@item U+200A
+ Hair space
+-@itemx U+202F
++@item U+202F
+ Narrow no-break space
+-@itemx U+205F
++@item U+205F
+ Medium mathematical space
+-@itemx U+3000
++@item U+3000
+ Ideographic space
+ @end table
+
+@@ -386,19 +386,19 @@ @subsubheading Generic character types
+ The vertical space characters are:
+
+ @table @code
+-@itemx U+000A
++@item U+000A
+ Linefeed
+-@itemx U+000B
++@item U+000B
+ Vertical tab
+-@itemx U+000C
++@item U+000C
+ Formfeed
+-@itemx U+000D
++@item U+000D
+ Carriage return
+-@itemx U+0085
++@item U+0085
+ Next line
+-@itemx U+2028
++@item U+2028
+ Line separator
+-@itemx U+2029
++@item U+2029
+ Paragraph separator
+ @end table
+
+@@ -418,15 +418,15 @@ @subsubheading Newline Conventions
+ the following five sequences:
+
+ @table @code
+-@itemx (*CR)
++@item (*CR)
+ carriage return
+-@itemx (*LF)
++@item (*LF)
+ linefeed
+-@itemx (*CRLF)
++@item (*CRLF)
+ carriage return, followed by linefeed
+-@itemx (*ANYCRLF)
++@item (*ANYCRLF)
+ any of the three above
+-@itemx (*ANY)
++@item (*ANY)
+ all Unicode newline sequences
+ @end table
+
+@@ -474,9 +474,9 @@ @subsubheading Newline Sequences
+ pattern string with one of the following sequences:
+
+ @table @code
+-@itemx (*BSR_ANYCRLF)
++@item (*BSR_ANYCRLF)
+ @key{CR}, @key{LF}, or @key{CR}@key{LF} only
+-@itemx (*BSR_UNICODE)
++@item (*BSR_UNICODE)
+ any Unicode newline sequence (the default)
+ @end table
+
+@@ -501,11 +501,11 @@ @subsubheading Unicode Character Propert
+ 256, but they do work in this mode. The extra escape sequences are:
+
+ @table @code
+-@itemx \p@{@var{xx}@}
++@item \p@{@var{xx}@}
+ a character with the @var{xx} property
+-@itemx \P@{@var{xx}@}
++@item \P@{@var{xx}@}
+ a character without the @var{xx} property
+-@itemx \X
++@item \X
+ an extended Unicode sequence
+ @end table
+
+@@ -618,83 +618,83 @@ @subsubheading Unicode Character Propert
+ @table @code
+ @item C
+ Other
+-@itemx Cc
++@item Cc
+ Control
+-@itemx Cf
++@item Cf
+ Format
+-@itemx Cn
++@item Cn
+ Unassigned
+-@itemx Co
++@item Co
+ Private use
+-@itemx Cs
++@item Cs
+ Surrogate
+
+ @item L
+ Letter
+-@itemx Ll
++@item Ll
+ Lower case letter
+-@itemx Lm
++@item Lm
+ Modifier letter
+-@itemx Lo
++@item Lo
+ Other letter
+-@itemx Lt
++@item Lt
+ Title case letter
+-@itemx Lu
++@item Lu
+ Upper case letter
+
+ @item M
+ Mark
+-@itemx Mc
++@item Mc
+ Spacing mark
+-@itemx Me
++@item Me
+ Enclosing mark
+-@itemx Mn
++@item Mn
+ Non-spacing mark
+
+ @item N
+ Number
+-@itemx Nd
++@item Nd
+ Decimal number
+-@itemx Nl
++@item Nl
+ Letter number
+-@itemx No
++@item No
+ Other number
+
+ @item P
+ Punctuation
+-@itemx Pc
++@item Pc
+ Connector punctuation
+-@itemx Pd
++@item Pd
+ Dash punctuation
+-@itemx Pe
++@item Pe
+ Close punctuation
+-@itemx Pf
++@item Pf
+ Final punctuation
+-@itemx Pi
++@item Pi
+ Initial punctuation
+-@itemx Po
++@item Po
+ Other punctuation
+-@itemx Ps
++@item Ps
+ Open punctuation
+
+ @item S
+ Symbol
+-@itemx Sc
++@item Sc
+ Currency symbol
+-@itemx Sk
++@item Sk
+ Modifier symbol
+-@itemx Sm
++@item Sm
+ Mathematical symbol
+-@itemx So
++@item So
+ Other symbol
+
+ @item Z
+ Separator
+-@itemx Zl
++@item Zl
+ Line separator
+-@itemx Zp
++@item Zp
+ Paragraph separator
+-@itemx Zs
++@item Zs
+ Space separator
+ @end table
+
+@@ -771,18 +771,18 @@ @subsubheading Simple assertions
+ described below. The backslashed assertions are:
+
+ @table @code
+-@itemx \b
++@item \b
+ matches at a word boundary
+-@itemx \B
++@item \B
+ matches when not at a word boundary
+-@itemx \A
++@item \A
+ matches at the start of the subject
+-@itemx \Z
++@item \Z
+ matches at the end of the subject
+ also matches before a newline at the end of the subject
+-@itemx \z
++@item \z
+ matches only at the end of the subject
+-@itemx \G
++@item \G
+ matches at the first matching position in the subject
+ @end table
+
+@@ -993,33 +993,33 @@ @subsubheading POSIX Character Classes
+ supported class names are
+
+ @table @code
+-@itemx alnum
++@item alnum
+ letters and digits
+-@itemx alpha
++@item alpha
+ letters
+-@itemx ascii
++@item ascii
+ character codes 0 -- 127
+-@itemx blank
++@item blank
+ space or tab only
+-@itemx cntrl
++@item cntrl
+ control characters
+-@itemx digit
++@item digit
+ decimal digits (same as @samp{\d})
+-@itemx graph
++@item graph
+ printing characters, excluding space
+-@itemx lower
++@item lower
+ lower case letters
+-@itemx print
++@item print
+ printing characters, including space
+-@itemx punct
++@item punct
+ printing characters, excluding letters and digits
+-@itemx space
++@item space
+ white space (not quite the same as @samp{\s})
+-@itemx upper
++@item upper
+ upper case letters
+-@itemx word
++@item word
+ ``word'' characters (same as @samp{\w})
+-@itemx xdigit
++@item xdigit
+ hexadecimal digits
+ @end table
+
+@@ -1071,22 +1071,22 @@ @subsubheading Internal Option Setting
+ @samp{)}. The option letters are
+
+ @table @code
+-@itemx i
++@item i
+ Caseless: characters in one case match the corresponding
+ characters in other cases as well.
+-@itemx m
++@item m
+ Multiline: @samp{^} and @samp{$} match at newlines
+ as well as at beginning and end of string.
+-@itemx s
++@item s
+ Dotall: dot matches any character, including newline characters.
+-@itemx x
++@item x
+ Extended syntax: unescaped white space is ignored and embedded
+ comments are possible.
+-@itemx J
++@item J
+ Dupnames: names for capturing subpattern need not be unique.
+-@itemx U
++@item U
+ Ungreedy: quantifiers match as few times as possible by default.
+-@itemx X
++@item X
+ Extra: for forward compatibility, give an error if any escape sequence
+ with no defined meaning appears.
+ @end table
+@@ -1358,11 +1358,11 @@ @subsubheading Repetition
+ single-character abbreviations:
+
+ @table @code
+-@itemx *
++@item *
+ is equivalent to @{0,@}
+-@itemx +
++@item +
+ is equivalent to @{1,@}
+-@itemx ?
++@item ?
+ is equivalent to @{0,1@}
+ @end table
+
+@@ -2302,7 +2302,7 @@ @subsubheading Verbs that act immediatel
+ The following verbs act as soon as they are encountered:
+
+ @table @code
+-@itemx (*ACCEPT)
++@item (*ACCEPT)
+
+ This verb causes the match to end successfully, skipping the remainder
+ of the pattern. When inside a recursion, only the innermost pattern is
+@@ -2317,7 +2317,7 @@ @subsubheading Verbs that act immediatel
+ This matches @samp{AB}, @samp{AAD}, or @samp{ACD}, but when it matches
+ @samp{AB}, no data is captured.
+
+-@itemx (*FAIL) @r{or} (*F)
++@item (*FAIL) @r{or} (*F)
+
+ This verb causes the match to fail, forcing backtracking to occur. It
+ is equivalent to @samp{(?!)} but easier to read. It is not clear
+@@ -2334,7 +2334,7 @@ @subsubheading Verbs that act after back
+ occurs.
+
+ @table @code
+-@itemx (*COMMIT)
++@item (*COMMIT)
+
+ This verb causes the whole match to fail outright if the rest of the
+ pattern does not match. Even if the pattern is unanchored, no further
+@@ -2350,7 +2350,7 @@ @subsubheading Verbs that act after back
+ This matches @samp{xxaab} but not @samp{aacaab}. It can be thought of
+ as a kind of dynamic anchor, or ``I've started, so I must finish.''
+
+-@itemx (*PRUNE)
++@item (*PRUNE)
+
+ This verb causes the match to fail at the current position if the rest
+ of the pattern does not match. If the pattern is unanchored, the
+@@ -2363,7 +2363,7 @@ @subsubheading Verbs that act after back
+ are some uses of @code{(*PRUNE)} that cannot be expressed in any other
+ way.
+
+-@itemx (*SKIP)
++@item (*SKIP)
+
+ This verb is like @code{(*PRUNE)}, except that if the pattern is
+ unanchored, the "bumpalong" advance is not to the next character, but
+@@ -2383,7 +2383,7 @@ @subsubheading Verbs that act after back
+ attempt would start at the second character instead of skipping on to
+ @samp{c}.
+
+-@itemx (*THEN)
++@item (*THEN)
+
+ This verb causes a skip to the next alternation if the rest of the
+ pattern does not match. That is, it cancels pending backtracking, but
diff --git a/dev-vcs/monotone/files/monotone.confd b/dev-vcs/monotone/files/monotone.confd
new file mode 100644
index 000000000000..bf9366584108
--- /dev/null
+++ b/dev-vcs/monotone/files/monotone.confd
@@ -0,0 +1,26 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# The commented variables in this file are the defaults that are used
+
+# in the init-script. You don't need to uncomment them except to
+# customize them to different values.
+
+# Location of the served database
+#MTN_DB="/var/lib/monotone/default.mtn"
+
+# Server identification
+#MTN_KEY="monotone@`hostname --fqdn`"
+#MTN_PWD=""
+
+# User and group as which to run monotone
+#MTN_USER="monotone"
+#MTN_GROUP="monotone"
+
+# The address and or port (ADDRESS[:PORT]) monotone should listen on
+#MTN_ADDRESS=0.0.0.0
+
+# Advanced options
+#MTN_CONFDIR=/etc/monotone
+#MTN_KEYDIR=/var/lib/monotone/keys
diff --git a/dev-vcs/monotone/files/read-permissions b/dev-vcs/monotone/files/read-permissions
new file mode 100644
index 000000000000..d08200aa0059
--- /dev/null
+++ b/dev-vcs/monotone/files/read-permissions
@@ -0,0 +1,7 @@
+pattern "net.example.project.{private,security}*"
+allow "joe@example.net"
+allow "jim@example.net"
+
+comment "everyone can read these branches"
+pattern "net.example.{public,project}*"
+allow "*"
diff --git a/dev-vcs/monotone/files/write-permissions b/dev-vcs/monotone/files/write-permissions
new file mode 100644
index 000000000000..1b138c7fc6c0
--- /dev/null
+++ b/dev-vcs/monotone/files/write-permissions
@@ -0,0 +1,2 @@
+joe@example.net
+jim@example.net
diff --git a/dev-vcs/monotone/metadata.xml b/dev-vcs/monotone/metadata.xml
new file mode 100644
index 000000000000..968c07b67dee
--- /dev/null
+++ b/dev-vcs/monotone/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>proxy-maintainers</herd>
+ <maintainer>
+ <email>johnny@localmomentum.net</email>
+ <name>Jonny</name>
+ <description>Future Maintainer</description>
+ </maintainer>
+ <maintainer>
+ <email>pva@gentoo.org</email>
+ <name>Peter Volkov</name>
+ </maintainer>
+ <longdescription>
+ A free distributed version control system. It provides a simple,
+ single-file transactional version store, with fully disconnected
+ operation and an efficient peer-to-peer synchronization
+ protocol. It understands history-sensitive merging, lightweight
+ branches, integrated code review and 3rd party testing. It uses
+ cryptographic version naming and client-side RSA certificates. It
+ has good internationalization support, has no external
+ dependencies, runs on linux, solaris, OSX, windows, and other
+ unixes, and is licensed under the GNU GPL.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-vcs/monotone/monotone-1.0-r4.ebuild b/dev-vcs/monotone/monotone-1.0-r4.ebuild
new file mode 100644
index 000000000000..0167df6dcc2b
--- /dev/null
+++ b/dev-vcs/monotone/monotone-1.0-r4.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# QA failiures reported in https://code.monotone.ca/p/monotone/issues/181/
+EAPI="4"
+inherit bash-completion-r1 elisp-common eutils toolchain-funcs user
+
+DESCRIPTION="Monotone Distributed Version Control System"
+HOMEPAGE="http://monotone.ca"
+SRC_URI="http://monotone.ca/downloads/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="1"
+KEYWORDS="amd64 ~ia64 x86"
+IUSE="doc ipv6 nls test"
+
+RDEPEND="sys-libs/zlib
+ >=dev-libs/libpcre-7.6
+ >=dev-libs/botan-1.8.0
+ >=dev-db/sqlite-3.3.8
+ >=dev-lang/lua-5.1
+ net-dns/libidn"
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.33.1
+ nls? ( >=sys-devel/gettext-0.11.5 )
+ doc? ( sys-apps/texinfo )
+ test? ( dev-tcltk/expect
+ app-shells/bash-completion )"
+
+pkg_setup() {
+ enewgroup monotone
+ enewuser monotone -1 -1 /var/lib/monotone monotone
+}
+
+src_prepare() {
+ if [[ $(gcc-major-version) -lt "3" ||
+ ( $(gcc-major-version) -eq "3" && $(gcc-minor-version) -le 3 ) ]]; then
+ die 'requires >=gcc-3.4'
+ fi
+ epatch "${FILESDIR}/monotone-1.0-bash-completion-tests.patch"
+ epatch "${FILESDIR}/monotone-1.0-botan-1.10-v2.patch"
+ epatch "${FILESDIR}/monotone-1.0-glibc-2.14-file-handle.patch"
+ epatch "${FILESDIR}/monotone-1.0-boost-1.53.patch"
+ epatch "${FILESDIR}/monotone-1.0-pcre3.patch"
+ epatch "${FILESDIR}/monotone-1.0-texinfo-5.1.patch"
+}
+
+src_configure() {
+ econf \
+ $(use_enable nls) \
+ $(use_enable ipv6)
+}
+
+src_compile() {
+ emake
+ use doc && emake html
+}
+
+src_test() {
+ # Disables netsync_bind_opt test
+ # https://code.monotone.ca/p/monotone/issues/179/
+ export DISABLE_NETWORK_TESTS=true
+ if [[ ${UID} != 0 ]]; then
+ emake check
+ else
+ ewarn "Tests will fail if ran as root, skipping."
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
+
+ rm "${ED}"/etc/bash_completion.d/monotone.bash_completion || die
+ newbashcomp extra/shell/monotone.bash_completion ${PN}
+
+ if use doc; then
+ dohtml -r doc/html/*
+ dohtml -r doc/figures
+ fi
+
+ dodoc AUTHORS NEWS README* UPGRADE
+ docinto contrib
+ docompress -x /usr/share/doc/${PF}/contrib
+ dodoc -r contrib
+ newconfd "${FILESDIR}"/monotone.confd monotone
+ newinitd "${FILESDIR}"/${PN}-0.36.initd monotone
+
+ insinto /etc/monotone
+ newins "${FILESDIR}"/hooks.lua hooks.lua
+ newins "${FILESDIR}"/read-permissions read-permissions
+ newins "${FILESDIR}"/write-permissions write-permissions
+
+ keepdir /var/lib/monotone/keys/ /var/{log,run}/monotone
+ fowners monotone:monotone /var/lib/monotone{,/keys} /var/{log,run}/monotone
+}
+
+pkg_postinst() {
+ elog
+ elog "For details and instructions to upgrade from previous versions,"
+ elog "please read /usr/share/doc/${PF}/UPGRADE.bz2"
+ elog
+ elog " 1. edit /etc/conf.d/monotone"
+ elog " 2. import the first keys to enable access with"
+ elog " env HOME=\${homedir} mtn pubkey me@example.net | /etc/init.d/monotone import"
+ elog " Thereafter, those with write permission can add other keys via"
+ elog " netsync with 'monotone push --key-to-push=IDENT' and then IDENT"
+ elog " can be used in the read-permission and write-permission files."
+ elog " 3. adjust permisions in /etc/monotone/read-permissions"
+ elog " and /etc/monotone/write-permissions"
+ elog " 4. start the daemon: /etc/init.d/monotone start"
+ elog " 5. make persistent: rc-update add monotone default"
+ elog
+}
diff --git a/dev-vcs/mr/Manifest b/dev-vcs/mr/Manifest
new file mode 100644
index 000000000000..696ec2d58abd
--- /dev/null
+++ b/dev-vcs/mr/Manifest
@@ -0,0 +1,2 @@
+DIST mr-1.20140831.1.tar.gz 44706 SHA256 efb864848d3c557d913138a52e3d5a4736edcccd9f9b46bb65931060cf8548f0 SHA512 f8004c37200bf0f227371d2cb747f38c1bf37d1ff270c299b1a97ee92b22a2be039da3c8e9b31b4402adb8ee985a16764115debedad027c5b0f830ceb3a39216 WHIRLPOOL d2eff39628324c3be7996a715ff487e8cb37313eecaed4dcaa25bc320c5d96ba32cc578a85dab241b53556b297ba29def3cd9ea2b3b5a7afe5e2dac57cfd544b
+DIST mr-1.20141024.tar.gz 45032 SHA256 7b68183476867d15d6f111fc9678335b94824dcfa09f07c761a72d64cdf5ad4a SHA512 d39428bc9858a3d9649ff841fa688a5cb92632bf957af9101c7f7e709d2821dbc38a2ab5400d9fe31208159873156cc6d740538b5567e758c35afb01744000d6 WHIRLPOOL a806e3543b1fc4864b2581883a348cc1441a75fb8ebd4fe6ab393f8180b820e0b389c0b40123798b8257a1641409747981227b6616368eafda4f3d56e9ba39a5
diff --git a/dev-vcs/mr/metadata.xml b/dev-vcs/mr/metadata.xml
new file mode 100644
index 000000000000..9e6151942610
--- /dev/null
+++ b/dev-vcs/mr/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <longdescription lang="en">
+ The mr(1) command can checkout, update, or perform other actions on a
+ set of repositories as if they were one combined respository. It
+ supports any combination of git, svn, mercurial, bzr, darcs, cvs, vcsh,
+ fossil, and veracity repositories, and support for other version control
+ systems can easily be added. (There are extensions adding support for unison
+ and git-svn.)
+
+ It is extremely configurable via simple shell scripting. Some examples
+ of things it can do include:
+
+ * Update a repository no more frequently than once every twelve hours.
+ * Run an arbitrary command before committing to a repository.
+ * When updating a git repository, pull from two different upstreams
+ and merge the two together.
+ * Run several repository updates in parallel, greatly speeding up
+ the update process.
+ * Remember actions that failed due to a laptop being offline,
+ so they can be retried when it comes back online.
+
+ This package also includes the webcheckout command.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">joeyh/myrepos</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/mr/mr-1.20140831.1.ebuild b/dev-vcs/mr/mr-1.20140831.1.ebuild
new file mode 100644
index 000000000000..d051afa7157a
--- /dev/null
+++ b/dev-vcs/mr/mr-1.20140831.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="myrepos-${PV}"
+
+DESCRIPTION="Multiple Repository management tool"
+HOMEPAGE="https://github.com/joeyh/myrepos"
+SRC_URI="https://github.com/joeyh/myrepos/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-lang/perl"
+RDEPEND="${DEPEND}
+ dev-perl/libwww-perl
+ dev-perl/HTML-Parser
+"
+S=${WORKDIR}/${MY_P}
+
+src_install() {
+ dobin mr webcheckout
+ doman mr.1 webcheckout.1
+ dodoc README debian/changelog \
+ mrconfig mrconfig.complex
+ insinto /usr/share/${PN}
+ doins lib/*
+}
diff --git a/dev-vcs/mr/mr-1.20141024.ebuild b/dev-vcs/mr/mr-1.20141024.ebuild
new file mode 100644
index 000000000000..c2fb1cc1aaa9
--- /dev/null
+++ b/dev-vcs/mr/mr-1.20141024.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="myrepos-${PV}"
+
+DESCRIPTION="Multiple Repository management tool"
+HOMEPAGE="https://github.com/joeyh/myrepos"
+SRC_URI="https://github.com/joeyh/myrepos/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="dev-lang/perl"
+RDEPEND="${DEPEND}
+ dev-perl/libwww-perl
+ dev-perl/HTML-Parser
+"
+S=${WORKDIR}/${MY_P}
+
+src_install() {
+ dobin mr webcheckout
+ doman mr.1 webcheckout.1
+ dodoc README debian/changelog \
+ mrconfig mrconfig.complex
+ insinto /usr/share/${PN}
+ doins lib/*
+}
diff --git a/dev-vcs/notify-webhook/Manifest b/dev-vcs/notify-webhook/Manifest
new file mode 100644
index 000000000000..f02465c442bc
--- /dev/null
+++ b/dev-vcs/notify-webhook/Manifest
@@ -0,0 +1,3 @@
+DIST notify-webhook-20140805.tar.gz 15078 SHA256 479d71c7ab9ba772a0b621638e80a14cbe6f34e8fbe851d8db93b118d4567e3f SHA512 8e10994ad26d6de86e7930a2299a8701bed0f04299f2ca14b070f00543368015628b89fd4cbf351f3e42e85cf98e7465dd94517243d1beb71b645d91a637e6d2 WHIRLPOOL 533e2118941edc2f9db4412477a76332fe27475ebc882eb8f567d39a846bf04c95cc693230ae32bc1c10bf24301117b7d6e04c08e45e0fe7cf181fe454504a4b
+DIST notify-webhook-20150308-1ff3985...BCLibCoop:ee038b5.patch 8581 SHA256 c6167fd81e88fcb8de6c37bb2c5259f1c09e6e3a7f0b61d6b58f5f5e478e585c SHA512 c72b03cbea34884c089968e67b61e654a9d365e6b2a338363b6405ab1950aaa5a1c4f8ece73181003571a88f1983458c2e9194d6b26aa103c95c1ceed8e0dd4c WHIRLPOOL 3f4be9d58f5d1a4dff2a7978d067afb0e8fb739b6836709964dec17cc386890eb1d97b0652323acaefc7ca5bc5ae25c46f1f222323d471529e92a5640541bcae
+DIST notify-webhook-20150308.tar.gz 16347 SHA256 cb9d2687eea5ab4f32f6fbc9bdb05a24c8b7755193b312a574172f6aaaca857e SHA512 7a82418d16e6cfd58b9bccaf1700c5a9258601a45a823f1b8307ee3b3c6e90ad52424421836468e34b400b07100a291fd514450a2e1b3c2d1c8dff99ee409557 WHIRLPOOL 523578237483d74d2bd4fa9f4f87277b9103c67c415fbb383629211ea91403fc11debfed70fa94069e9bd8e87a1c9e799929aa1c376244e1a2dde656609a10d8
diff --git a/dev-vcs/notify-webhook/metadata.xml b/dev-vcs/notify-webhook/metadata.xml
new file mode 100644
index 000000000000..4ff0a821841e
--- /dev/null
+++ b/dev-vcs/notify-webhook/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>robbat2@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ notify-webhook is a git post-receive hook script that posts JSON data to a
+ webhook capable server.
+
+ This implements the GitHub Web hooks API as closely as possible. It allows
+ arbitrary git repositories to use webhook capable services.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">metajack/notify-webhook</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/notify-webhook/notify-webhook-20140805.ebuild b/dev-vcs/notify-webhook/notify-webhook-20140805.ebuild
new file mode 100644
index 000000000000..a909d4780d58
--- /dev/null
+++ b/dev-vcs/notify-webhook/notify-webhook-20140805.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Git post-receive web hook notifier in Python."
+HOMEPAGE="https://github.com/metajack/notify-webhook"
+COMMIT='c571160f155122446e97bb01c1150b4d14ea69d6'
+SRC_URI="https://github.com/metajack/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-python/simplejson"
+RDEPEND="${DEPEND}"
+
+MY_P="${PN}-${COMMIT}"
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ dodoc *markdown
+ exeinto /usr/libexec/githook/$PN/
+ doexe notify-webhook.py
+}
diff --git a/dev-vcs/notify-webhook/notify-webhook-20150308.ebuild b/dev-vcs/notify-webhook/notify-webhook-20150308.ebuild
new file mode 100644
index 000000000000..9262564d7192
--- /dev/null
+++ b/dev-vcs/notify-webhook/notify-webhook-20150308.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Git post-receive web hook notifier in Python."
+HOMEPAGE="https://github.com/metajack/notify-webhook"
+COMMIT='1ff39853e59bb0ee37c4783da8dcf3ea14cef53f'
+PATCH_COMMIT='BCLibCoop:ee038b53a48e70d9e69c86386c39b7f24736d07e'
+PATCH_DELTA="${COMMIT:0:7}...${PATCH_COMMIT:0:17}"
+PATCH_NAME="${P}-${PATCH_DELTA}.patch"
+SRC_URI="https://github.com/metajack/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz
+ https://github.com/metajack/notify-webhook/compare/${PATCH_DELTA}.patch -> ${PATCH_NAME}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-python/simplejson"
+DEPEND="${RDEPEND}
+ dev-util/patchutils"
+
+MY_P="${PN}-${COMMIT}"
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+ unpack ${P}.tar.gz
+}
+
+# Yes, this is some creative patch mangling, to avoid a manually created
+# distfile. epatch's dryrun fails on a sequence of changes that depend on each
+# other, so we can clean up the patch to actually pass that check.
+src_prepare() {
+ cd "${T}"
+ cp "${DISTDIR}/${PATCH_NAME}" diff
+ p="newdiff"
+ >$p # Make an empty file to work in
+ splitdiff -a -p 1 diff # split out the patches
+ # combine them to a single patch
+ for f in diff.part*.patch ; do
+ combinediff -p 1 $p $f >$p.new && mv $p.new $p
+ done
+
+ # Now apply it, and dry-run will pass too!
+ cd "${S}"
+ EPATCH_OPTS="-p1" epatch "${T}"/newdiff
+}
+
+src_install() {
+ dodoc *markdown
+ exeinto /usr/libexec/githook/$PN/
+ doexe notify-webhook.py
+}
diff --git a/dev-vcs/pwclient/Manifest b/dev-vcs/pwclient/Manifest
new file mode 100644
index 000000000000..e7cac9b4050d
--- /dev/null
+++ b/dev-vcs/pwclient/Manifest
@@ -0,0 +1,2 @@
+DIST pwclient-20121105131501 15497 SHA256 4818caef545d24ee4f17e28f2297c0317321a3acc892fb38b304e28b64342cc2 SHA512 07e70ec8ba2bd3a048cd9c5d5c8f8e142358608f462befc10388651c658d46660ce71cbc24eec09c908112dd38761febc8dfbee0c5a56f325eca8129e190ed1c WHIRLPOOL e97f88498774d13a2d21a38fb2a6cd63903f350870eb6d577a4e7383f9b58044307fae837d53b6946337ff5ef53815d12613830da0b6d241d06685056b53ac6d
+DIST pwclient-20141110122616 23527 SHA256 5b13aad2cba051d38a3f80f50480e903c001f737302ec371b29247e3ec6fb396 SHA512 4933b7c5b4129d5fa1e47fa09dd8a75e5e5aac3254d8ed4bb65f8e7363d082217deecf8fc99f53092b607c49eebf9144e335079472a790a0193d0c6cddcf433f WHIRLPOOL 2689190853cb37f2be3c6db9fb67d4cdb4b2e927c388b2f916d2a0d26ea2156466ebdef4b9fbb57f928050026dccaff0686ab9c258b497374c2a3eaccd1249cb
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch
new file mode 100644
index 000000000000..43e2606efa67
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch
@@ -0,0 +1,45 @@
+From 601e1362d63293ca567295f63cb52bcfeb5d9959 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Tue, 5 May 2015 23:19:57 -0400
+Subject: [PATCH 1/3] pwclient: handle missing ~/.pwclientrc better
+
+The upgrade path will crash if ~/.pwclientrc doesn't exist, so add an
+explicit check for the file before we try to "upgrade" it.
+
+The default error messages don't mention the config file, so it can be
+a bit confusing what pwclient is complaining about when running.
+
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+---
+ apps/patchwork/bin/pwclient | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
+index 2a80981..56aa909 100755
+--- a/apps/patchwork/bin/pwclient
++++ b/apps/patchwork/bin/pwclient
+@@ -552,7 +552,7 @@ def main():
+ config = ConfigParser.ConfigParser()
+ config.read([CONFIG_FILE])
+
+- if not config.has_section('options'):
++ if not config.has_section('options') and os.path.exists(CONFIG_FILE):
+ sys.stderr.write('~/.pwclientrc is in the old format. Migrating it...')
+
+ old_project = config.get('base','project')
+@@ -590,10 +590,10 @@ def main():
+ sys.exit(1)
+
+ if not config.has_section(project_str):
+- sys.stderr.write("No section for project %s\n" % project_str)
++ sys.stderr.write('No section for project %s in ~/.pwclientrc\n' % project_str)
+ sys.exit(1)
+ if not config.has_option(project_str, 'url'):
+- sys.stderr.write("No URL for project %s\n" % project_str)
++ sys.stderr.write('No URL for project %s in ~/.pwclientrc\n' % project_str)
+ sys.exit(1)
+ if not do_signoff and config.has_option('options', 'signoff'):
+ do_signoff = config.getboolean('options', 'signoff')
+--
+2.4.0
+
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch
new file mode 100644
index 000000000000..70f54a7aed3a
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch
@@ -0,0 +1,101 @@
+From 0991ccb0e7c0be66e087839f88a7120394c2f052 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Tue, 5 May 2015 23:54:16 -0400
+Subject: [PATCH 2/3] pwclient: use print_function for better py3 compatibility
+
+The script already tries to use print like a function in many places but
+is really passing a parenthesized string. Import the print_function from
+the future module so that it actually works as intended.
+
+We also need to fix up a few latent print statements to make it work.
+
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+---
+ apps/patchwork/bin/pwclient | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
+index 56aa909..2e6daa5 100755
+--- a/apps/patchwork/bin/pwclient
++++ b/apps/patchwork/bin/pwclient
+@@ -19,6 +19,8 @@
+ # along with Patchwork; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
++from __future__ import print_function
++
+ import os
+ import sys
+ import xmlrpclib
+@@ -170,9 +172,9 @@ def action_list(rpc, filter, submitter_str, delegate_str, format_str=None):
+ else:
+ for id in ids:
+ person = rpc.person_get(id)
+- print "Patches submitted by %s <%s>:" % \
+- (unicode(person['name']).encode("utf-8"), \
+- unicode(person['email']).encode("utf-8"))
++ print('Patches submitted by %s <%s>:' %
++ (unicode(person['name']).encode('utf-8'),
++ unicode(person['email']).encode('utf-8')))
+ f = filter
+ f.add("submitter_id", id)
+ patches = rpc.patch_list(f.d)
+@@ -187,8 +189,8 @@ def action_list(rpc, filter, submitter_str, delegate_str, format_str=None):
+ else:
+ for id in ids:
+ person = rpc.person_get(id)
+- print "Patches delegated to %s <%s>:" % \
+- (person['name'], person['email'])
++ print('Patches delegated to %s <%s>:' %
++ (person['name'], person['email']))
+ f = filter
+ f.add("delegate_id", id)
+ patches = rpc.patch_list(f.d)
+@@ -245,7 +247,7 @@ def action_get(rpc, patch_id):
+ try:
+ f.write(unicode(s).encode("utf-8"))
+ f.close()
+- print "Saved patch to %s" % fname
++ print('Saved patch to %s' % fname)
+ except:
+ sys.stderr.write("Failed to write to %s\n" % fname)
+ sys.exit(1)
+@@ -258,13 +260,13 @@ def action_apply(rpc, patch_id, apply_cmd=None):
+ sys.exit(1)
+
+ if apply_cmd is None:
+- print "Applying patch #%d to current directory" % patch_id
++ print('Applying patch #%d to current directory' % patch_id)
+ apply_cmd = ['patch', '-p1']
+ else:
+- print "Applying patch #%d using %s" % (
+- patch_id, repr(' '.join(apply_cmd)))
++ print('Applying patch #%d using %s' %
++ (patch_id, repr(' '.join(apply_cmd))))
+
+- print "Description: %s" % patch['name']
++ print('Description: %s' % patch['name'])
+ s = rpc.patch_get_mbox(patch_id)
+ if len(s) > 0:
+ proc = subprocess.Popen(apply_cmd, stdin = subprocess.PIPE)
+@@ -295,7 +297,7 @@ def action_update_patch(rpc, patch_id, state = None, commit = None):
+ success = False
+ try:
+ success = rpc.patch_set(patch_id, params)
+- except xmlrpclib.Fault, f:
++ except xmlrpclib.Fault as f:
+ sys.stderr.write("Error updating patch: %s\n" % f.faultString)
+
+ if not success:
+@@ -668,7 +670,7 @@ def main():
+ for patch_id in non_empty(h, patch_ids):
+ s = rpc.patch_get_mbox(patch_id)
+ if len(s) > 0:
+- print unicode(s).encode("utf-8")
++ print(unicode(s).encode('utf-8'))
+
+ elif action == 'info':
+ for patch_id in non_empty(h, patch_ids):
+--
+2.4.0
+
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch
new file mode 100644
index 000000000000..da75ac1d3e1a
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch
@@ -0,0 +1,125 @@
+From fcbd40fe7fa3fbdc5ffb386c5c7b72a8704e7136 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 6 May 2015 00:12:02 -0400
+Subject: [PATCH 3/3] pwclient: basic python3 support
+
+This fixes a few random issues to make the script work at least somewhat
+under python 3:
+- set the default encoding to utf-8
+- handle xmlrpclib/xmlrpc.client module renames
+- handle ConfigParser/configparser module renames
+- add a unicode() stub for python 3
+- fix old style class definition w/Filter
+- use list comprehension instead of map()
+- drop the unused version= keyword w/argparse
+
+The code still runs under python 2 the same as before, and now works for
+the most part under python 3 -- the handling of encoded content still needs
+some work, but that'll require more surgery, and is best left to another
+commit after this.
+
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+---
+ apps/patchwork/bin/pwclient | 31 +++++++++++++++++++++++--------
+ 1 file changed, 23 insertions(+), 8 deletions(-)
+
+diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
+index 2e6daa5..5080a17 100755
+--- a/apps/patchwork/bin/pwclient
++++ b/apps/patchwork/bin/pwclient
+@@ -1,4 +1,5 @@
+ #!/usr/bin/env python
++# -*- coding: utf-8 -*-
+ #
+ # Patchwork command line client
+ # Copyright (C) 2008 Nate Case <ncase@xes-inc.com>
+@@ -23,16 +24,31 @@ from __future__ import print_function
+
+ import os
+ import sys
+-import xmlrpclib
++try:
++ import xmlrpclib
++except ImportError:
++ # Python 3 has merged/renamed things.
++ import xmlrpc.client as xmlrpclib
+ import argparse
+ import string
+ import tempfile
+ import subprocess
+ import base64
+-import ConfigParser
++try:
++ import ConfigParser
++except ImportError:
++ # Python 3 has renamed things.
++ import configparser as ConfigParser
+ import shutil
+ import re
+
++# Add a shim for Python 2's unicode() helper.
++try:
++ unicode
++except NameError:
++ # Python 3 does everything by unicode now.
++ unicode = str
++
+ # Default Patchwork remote XML-RPC server URL
+ # This script will check the PW_XMLRPC_URL environment variable
+ # for the URL to access. If that is unspecified, it will fallback to
+@@ -40,7 +56,7 @@ import re
+ DEFAULT_URL = "http://patchwork/xmlrpc/"
+ CONFIG_FILE = os.path.expanduser('~/.pwclientrc')
+
+-class Filter:
++class Filter(object):
+ """Filter for selecting patches."""
+ def __init__(self):
+ # These fields refer to specific objects, so they are special
+@@ -135,7 +151,7 @@ def person_ids_by_name(rpc, name):
+ if len(name) == 0:
+ return []
+ people = rpc.person_list(name, 0)
+- return map(lambda x: x['id'], people)
++ return [x['id'] for x in people]
+
+ def list_patches(patches, format_str=None):
+ """Dump a list of patches to stdout."""
+@@ -352,7 +368,7 @@ class _RecursiveHelpAction(argparse._HelpAction):
+ parser.exit()
+
+ def main():
+- hash_parser = argparse.ArgumentParser(add_help=False, version=False)
++ hash_parser = argparse.ArgumentParser(add_help=False)
+ hash_parser.add_argument(
+ '-h', metavar='HASH', dest='hash', action='store',
+ help='''Lookup by patch hash'''
+@@ -362,7 +378,7 @@ def main():
+ help='Patch ID',
+ )
+
+- filter_parser = argparse.ArgumentParser(add_help=False, version=False)
++ filter_parser = argparse.ArgumentParser(add_help=False)
+ filter_parser.add_argument(
+ '-s', metavar='STATE',
+ help='''Filter by patch state (e.g., 'New', 'Accepted', etc.)'''
+@@ -397,7 +413,7 @@ def main():
+ 'patch_name', metavar='STR', nargs='?',
+ help='substring to search for patches by name',
+ )
+- help_parser = argparse.ArgumentParser(add_help=False, version=False)
++ help_parser = argparse.ArgumentParser(add_help=False)
+ help_parser.add_argument(
+ '--help', action='help', help=argparse.SUPPRESS,
+ #help='''show this help message and exit'''
+@@ -406,7 +422,6 @@ def main():
+ action_parser = argparse.ArgumentParser(
+ prog='pwclient',
+ add_help=False,
+- version=False,
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ epilog='''(apply | get | info | view | update) (-h HASH | ID [ID ...])''',
+ )
+--
+2.4.0
+
diff --git a/dev-vcs/pwclient/metadata.xml b/dev-vcs/pwclient/metadata.xml
new file mode 100644
index 000000000000..7123fa8f9ece
--- /dev/null
+++ b/dev-vcs/pwclient/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>vapier@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/pwclient/pwclient-20121105131501.ebuild b/dev-vcs/pwclient/pwclient-20121105131501.ebuild
new file mode 100644
index 000000000000..e45b59680716
--- /dev/null
+++ b/dev-vcs/pwclient/pwclient-20121105131501.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+# The PV comes from:
+# git clone ${EGIT_REPO_URI}
+# cd patchwork
+# EGIT_COMMIT=$(git log -n1 --format=%H apps/patchwork/bin/pwclient)
+# date --date="$(git log -n1 --format=%ci ${EGIT_COMMIT})" -u +%Y%m%d%H%M%S
+EGIT_REPO_URI="git://ozlabs.org/home/jk/git/patchwork"
+EGIT_COMMIT="bc695f5a7e0a2dd184dc0eae7a923be24b1b1723"
+
+DESCRIPTION="command line utility for interacting with patchwork repos"
+HOMEPAGE="http://jk.ozlabs.org/projects/patchwork/"
+SRC_URI="http://repo.or.cz/w/patchwork.git/blob_plain/${EGIT_COMMIT}:/apps/patchwork/bin/pwclient -> ${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-lang/python"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+
+src_install() {
+ newbin "${DISTDIR}"/${P} ${PN}
+}
diff --git a/dev-vcs/pwclient/pwclient-20141110122616.ebuild b/dev-vcs/pwclient/pwclient-20141110122616.ebuild
new file mode 100644
index 000000000000..7ef63f1376d0
--- /dev/null
+++ b/dev-vcs/pwclient/pwclient-20141110122616.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=( python{2_7,3_3,3_4} )
+
+inherit eutils python-r1
+
+# The PV comes from:
+# git clone ${EGIT_REPO_URI}
+# cd patchwork
+# EGIT_COMMIT=$(git log -n1 --format=%H apps/patchwork/bin/pwclient)
+# date --date="$(git log -n1 --format=%ci ${EGIT_COMMIT})" -u +%Y%m%d%H%M%S
+EGIT_REPO_URI="git://ozlabs.org/home/jk/git/patchwork"
+EGIT_COMMIT="8904a7dcaf959da8db4a9a5d92b91a61eed05201"
+
+DESCRIPTION="command line utility for interacting with patchwork repos"
+HOMEPAGE="http://jk.ozlabs.org/projects/patchwork/"
+SRC_URI="mirror://gentoo/${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}"
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}"/${P} ${PN} || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-*.patch
+}
+
+src_install() {
+ python_setup
+ python_doscript ${PN}
+}
diff --git a/dev-vcs/qbzr/Manifest b/dev-vcs/qbzr/Manifest
new file mode 100644
index 000000000000..ea7b4687ff6f
--- /dev/null
+++ b/dev-vcs/qbzr/Manifest
@@ -0,0 +1,2 @@
+DIST qbzr-0.23.0.tar.gz 808036 SHA256 7e66f2cdb3b38e83ecb99ae2934fe42e9c137273a06d54f66aa76da8a06bef58 SHA512 c1f26ef0db8db48e5b05cb6164bac08f33746983df85dba9e359a78dffbf05f18f67788f0d0e7b42deb530cf5a31cd9284752946ee00731c1e7559a0dcc4a071 WHIRLPOOL f925a7d49fc6f8702a921731090abd44192ab88a9a1c28d1e37d7ea94fc1550a13c0c7204f0328225bd71c481653afd7846e2b92401e2de246f7b2753baffa81
+DIST qbzr-0.23.1.tar.gz 817769 SHA256 3211adef11c975dfbb6c80285651e2e6f3bfa99f1baa1a95371e8490ea8ff441 SHA512 05d05c2cf5e94d4a58d88d04bd3dd4ff13d977126d728683273990801733bc0dfb07388838e466117961a83c6e08454b7a8bdaca975ca19f7ecff729d97b4bd2 WHIRLPOOL 359f23ccaee972652c535ca238e7ee1a6781b5bc348aa291105bc1bb1211c98b2ebdf78d81d89659d6ff8c523ee3fcea9102a3a83f18c3e0a5b677b304a739b2
diff --git a/dev-vcs/qbzr/metadata.xml b/dev-vcs/qbzr/metadata.xml
new file mode 100644
index 000000000000..b5b93b4d45d9
--- /dev/null
+++ b/dev-vcs/qbzr/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>bazaar</herd>
+ <upstream>
+ <remote-id type="launchpad">qbzr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/qbzr/qbzr-0.23.0.ebuild b/dev-vcs/qbzr/qbzr-0.23.0.ebuild
new file mode 100644
index 000000000000..26a055787068
--- /dev/null
+++ b/dev-vcs/qbzr/qbzr-0.23.0.ebuild
@@ -0,0 +1,46 @@
+# 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.*"
+
+inherit distutils versionator
+
+DESCRIPTION="Qt frontend for Bazaar"
+HOMEPAGE="https://launchpad.net/qbzr"
+SRC_URI="https://edge.launchpad.net/qbzr/$(get_version_component_range 1-2)/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ppc x86"
+IUSE=""
+
+# bzr version comes from NEWS file. It's lowest version required for some
+# features to work.
+DEPEND=">=dev-vcs/bzr-2.5
+ >=dev-python/PyQt4-4.1[X]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+
+DOCS="AUTHORS.txt NEWS.txt README.txt TODO.txt"
+PYTHON_MODNAME="bzrlib/plugins/qbzr"
+
+src_test() {
+ elog "It's impossible to run tests at this point. If you wish to run tests"
+ elog "after installation of ${PN} execute:"
+ elog " $ bzr selftest -s bzrlib.plugins.qbzr"
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+
+ elog
+ elog "To enable spellchecking in qcommit, please, install >=dev-python/pyenchant-1.5.0"
+ elog " # emerge -a >=dev-python/pyenchant-1.5.0"
+ elog "To enable syntax highlighting, please, install dev-python/pygments"
+ elog " # emerge -a dev-python/pygments"
+}
diff --git a/dev-vcs/qbzr/qbzr-0.23.1.ebuild b/dev-vcs/qbzr/qbzr-0.23.1.ebuild
new file mode 100644
index 000000000000..87bbc46126eb
--- /dev/null
+++ b/dev-vcs/qbzr/qbzr-0.23.1.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 versionator
+
+DESCRIPTION="Qt frontend for Bazaar"
+HOMEPAGE="https://launchpad.net/qbzr"
+SRC_URI="https://edge.launchpad.net/qbzr/$(get_version_component_range 1-2)/${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~x86"
+IUSE=""
+
+# bzr version comes from NEWS file. It's lowest version required for some
+# features to work.
+DEPEND=">=dev-vcs/bzr-2.5
+ >=dev-python/PyQt4-4.1[X]"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+
+DOCS=( AUTHORS.txt NEWS.txt README.txt TODO.txt )
+
+src_test() {
+ elog "It's impossible to run tests at this point. If you wish to run tests"
+ elog "after installation of ${PN} execute:"
+ elog " $ bzr selftest -s bzrlib.plugins.qbzr"
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+
+ elog
+ elog "To enable spellchecking in qcommit, please, install >=dev-python/pyenchant-1.5.0"
+ elog " # emerge -a >=dev-python/pyenchant-1.5.0"
+ elog "To enable syntax highlighting, please, install dev-python/pygments"
+ elog " # emerge -a dev-python/pygments"
+}
diff --git a/dev-vcs/qct/Manifest b/dev-vcs/qct/Manifest
new file mode 100644
index 000000000000..4e43d88d2c40
--- /dev/null
+++ b/dev-vcs/qct/Manifest
@@ -0,0 +1 @@
+DIST qct-1.7.tar.gz 56658 SHA256 06e9969f6c8a08b67f289bc0e95b4f4469d6adbf1aa0bed0f0cc8c5bdea222d0 SHA512 85f8b6bcd5c4081ba17da1bc7e17d0036ec10d9133ed5383adbca16f81b8550d6f137e34636c20f3d03b7cedca75467daa057022374866b4e2ab18aaf7d4b6d2 WHIRLPOOL 1b806fdf090e8465e0c36e5ce6d6879d9cdc43f8906b1a13c72c6f1806c40fff6a1a77b0db59a60b9566e4ac785192a8ab498103bef249ee560899b0c05b0e2a
diff --git a/dev-vcs/qct/files/qct.rc b/dev-vcs/qct/files/qct.rc
new file mode 100644
index 000000000000..3ab69befa3c5
--- /dev/null
+++ b/dev-vcs/qct/files/qct.rc
@@ -0,0 +1,3 @@
+[extensions]
+hgext.qct=
+
diff --git a/dev-vcs/qct/metadata.xml b/dev-vcs/qct/metadata.xml
new file mode 100644
index 000000000000..481f5eadf4ab
--- /dev/null
+++ b/dev-vcs/qct/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>qt</herd>
+ <use>
+ <flag name='bazaar'>
+ Support for <pkg>dev-vcs/bzr</pkg>
+ </flag>
+ <flag name='mercurial'>
+ Support for <pkg>dev-vcs/mercurial</pkg>
+ </flag>
+ <flag name='monotone'>
+ Support for <pkg>dev-vcs/monotone</pkg>
+ </flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/qct/qct-1.7-r1.ebuild b/dev-vcs/qct/qct-1.7-r1.ebuild
new file mode 100644
index 000000000000..5fdc37fa8be4
--- /dev/null
+++ b/dev-vcs/qct/qct-1.7-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="PyQt based commit tool for many VCSs"
+HOMEPAGE="http://qct.sourceforge.net/"
+SRC_URI="http://qct.sourceforge.net/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="bazaar cvs mercurial monotone subversion"
+
+DEPEND="app-text/asciidoc[${PYTHON_USEDEP}]
+ app-text/xmlto
+ dev-python/PyQt4[${PYTHON_USEDEP}]
+ bazaar? ( dev-vcs/bzr[${PYTHON_USEDEP}] )
+ cvs? ( dev-vcs/cvs )
+ mercurial? ( dev-vcs/mercurial[${PYTHON_USEDEP}] )
+ monotone? ( dev-vcs/monotone )
+ subversion? ( dev-vcs/subversion[${PYTHON_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ rm qctlib/vcs/p4.py
+
+ # support for git requires cogito which isn't in portage
+ rm qctlib/vcs/git.py
+ rm qctlib/vcs/cg.py
+
+ use bazaar || rm qctlib/vcs/bzr.py
+ use cvs || rm qctlib/vcs/cvs.py
+ use mercurial || rm qctlib/vcs/hg.py
+ use monotone || rm qctlib/vcs/mtn.py
+ use subversion || rm qctlib/vcs/svn.py
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # manpage and html docs are built using asciidoc
+ make -C doc man html || die
+ doman doc/qct.1 || die
+ dohtml doc/qct.1.html || die
+
+ if use bazaar; then
+ insinto "$(python_get_sitedir)/bzrlib/plugins"
+ doins plugins/qctBzrPlugin.py
+ fi
+
+ if use mercurial; then
+ insinto "$(python_get_sitedir)/hgext"
+ doins hgext/qct.py
+ insinto /etc/mercurial/hgrc.d
+ doins "${FILESDIR}/qct.rc"
+ fi
+}
diff --git a/dev-vcs/qgit/Manifest b/dev-vcs/qgit/Manifest
new file mode 100644
index 000000000000..06b7d2dbd50d
--- /dev/null
+++ b/dev-vcs/qgit/Manifest
@@ -0,0 +1 @@
+DIST qgit-2.5.tar.gz 250855 SHA256 25f1ca2860d840d87b9919d34fc3a1b05d4163671ed87d29c3e4a8a09e0b2499 SHA512 1c56aa4019f3e7aeb4062f49bca48ff773ef0a9af9633e6ae58fe7bba441aa5d85bcdd2093954350d59bc6742b3440116b6e6d49c694a57cb1ffe70c89e4f94d WHIRLPOOL f312cb3ef6505aa61d6dbd8b07e7302047e73784042b29af7723b5a87c07e555d878a1173bee4b686c3c34059d61523d0caa1a3a8ae3b9aff947ec3b66d8f8fc
diff --git a/dev-vcs/qgit/metadata.xml b/dev-vcs/qgit/metadata.xml
new file mode 100644
index 000000000000..3c06801549f1
--- /dev/null
+++ b/dev-vcs/qgit/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>pesa@gentoo.org</email>
+ <name>Davide Pesavento</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/qgit/qgit-2.5.ebuild b/dev-vcs/qgit/qgit-2.5.ebuild
new file mode 100644
index 000000000000..44faeb7bb412
--- /dev/null
+++ b/dev-vcs/qgit/qgit-2.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils qt4-r2
+
+DESCRIPTION="Qt4 GUI for git repositories"
+HOMEPAGE="http://libre.tibirna.org/projects/qgit/wiki/QGit"
+SRC_URI="http://libre.tibirna.org/attachments/download/9/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="amd64 ~arm ppc ppc64 x86 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE=""
+
+DEPEND="dev-qt/qtgui:4"
+RDEPEND="${DEPEND}
+ >=dev-vcs/git-1.6
+"
+
+S=${WORKDIR}/redivivus
+
+src_install() {
+ newbin bin/qgit qgit4
+ newicon src/resources/qgit.png qgit4.png
+ make_desktop_entry qgit4 QGit qgit4
+ dodoc README
+}
diff --git a/dev-vcs/qsvn/Manifest b/dev-vcs/qsvn/Manifest
new file mode 100644
index 000000000000..399536553fb7
--- /dev/null
+++ b/dev-vcs/qsvn/Manifest
@@ -0,0 +1 @@
+DIST qsvn-0.8.3-src.tar.gz 782750 SHA256 8396f667dc7f09de2eead056608e90febb089fc26529b7fcebe157797c320f73 SHA512 65a636ad5d24302dde30046955f71e5ce494069f268abfbe8e35707ebc6d0454e5727394cf9476d9208bb8a55cbf08d2a131376a8bb900a5c9b316b7012f70e1 WHIRLPOOL a282bfee8b034bbb6ab801262ee1390773914be5dbc582448fa32dab541103be4dc5e2d98c3e6002b98b0e9bae6de7cd9e4dbcb53d2b5846b0d04c267114db0c
diff --git a/dev-vcs/qsvn/files/qsvn-0.8.3-static-lib.patch b/dev-vcs/qsvn/files/qsvn-0.8.3-static-lib.patch
new file mode 100644
index 000000000000..4bef9d63ea7d
--- /dev/null
+++ b/dev-vcs/qsvn/files/qsvn-0.8.3-static-lib.patch
@@ -0,0 +1,23 @@
+--- origsrc/qsvn-0.8.3/src/svnqt/CMakeLists.txt 2009-07-05 04:56:34.000000000 -0500
++++ src/qsvn-0.8.3/src/svnqt/CMakeLists.txt 2009-08-25 00:56:52.432416800 -0500
+@@ -131,7 +131,7 @@ CONFIGURE_FILE(
+ SET(INST_HEADERS ${INST_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/svnqt_defines.hpp)
+ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
+
+-ADD_LIBRARY(${svnqt-name} SHARED ${SOURCES} ${svnhdr})
++ADD_LIBRARY(${svnqt-name} STATIC ${SOURCES} ${svnhdr})
+ IF(WIN32)
+ ADD_DEFINITIONS(-D_USE_32BIT_TIME_T)
+ ELSE(WIN32)
+@@ -175,9 +175,11 @@ ENDIF (BUILD_TESTS)
+ # install rules
+ # in win32 we don't install it
+ IF(NOT WIN32)
++IF(FALSE)
+ INSTALL(TARGETS ${svnqt-name} DESTINATION ${LIB_INSTALL_DIR})
+ INSTALL(FILES ${INST_HEADERS} DESTINATION include/svnqt)
+ INSTALL(FILES ${CACHEINST_HEADERS} DESTINATION include/svnqt/cache)
++ENDIF(FALSE)
+ ENDIF(NOT WIN32)
+
+ IF (BUILD_TESTS)
diff --git a/dev-vcs/qsvn/files/qsvn-0.8.3-tests.patch b/dev-vcs/qsvn/files/qsvn-0.8.3-tests.patch
new file mode 100644
index 000000000000..eb7a45291af6
--- /dev/null
+++ b/dev-vcs/qsvn/files/qsvn-0.8.3-tests.patch
@@ -0,0 +1,12 @@
+The included tests are simple, "hello world" style tests
+that do not actually test this package.
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -187,7 +187,3 @@
+ /dVcInstallDir=$ENV{VCINSTALLDIR}
+ )
+ ENDIF (WIN32)
+-
+-# Unit-Tests
+-ENABLE_TESTING()
+-ADD_SUBDIRECTORY(tests)
diff --git a/dev-vcs/qsvn/metadata.xml b/dev-vcs/qsvn/metadata.xml
new file mode 100644
index 000000000000..c4db62280a40
--- /dev/null
+++ b/dev-vcs/qsvn/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>qt</herd>
+</pkgmetadata>
+
diff --git a/dev-vcs/qsvn/qsvn-0.8.3.ebuild b/dev-vcs/qsvn/qsvn-0.8.3.ebuild
new file mode 100644
index 000000000000..81236b1f64fe
--- /dev/null
+++ b/dev-vcs/qsvn/qsvn-0.8.3.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 cmake-utils
+
+DESCRIPTION="GUI frontend to the Subversion revision system"
+HOMEPAGE="http://www.anrichter.net/projects/qsvn/"
+SRC_URI="http://www.anrichter.net/projects/${PN}/chrome/site/${P}-src.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="dev-libs/apr
+ dev-libs/apr-util
+ dev-vcs/subversion
+ dev-qt/qtcore:4[qt3support]
+ dev-qt/qtgui:4[qt3support]
+ dev-qt/qtsql:4[sqlite]
+ dev-vcs/subversion"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${P}/src
+
+PATCHES=(
+ "${FILESDIR}/${P}-static-lib.patch"
+ "${FILESDIR}/${P}-tests.patch"
+)
+
+DOCS=( ../ChangeLog ../README )
diff --git a/dev-vcs/rabbitvcs/Manifest b/dev-vcs/rabbitvcs/Manifest
new file mode 100644
index 000000000000..663103e7c5bc
--- /dev/null
+++ b/dev-vcs/rabbitvcs/Manifest
@@ -0,0 +1,3 @@
+DIST rabbitvcs-0.15.2.tar.bz2 1166612 SHA256 252edcc934705c59365ebbee35868de2bbb32ee9e173ef3f7245efb2653762e8 SHA512 4509261cd8e138c74388d3488c54a6dff82505d19498d557f9add6445f351e76d28d012ecdefe24d082464e634259f3f917c4374b08106131023115b1c22b393 WHIRLPOOL a575f275843775743e85f573a84504192b34628a34deb89deea067c09fb2ebd3f9abaa33478b325593f3114879f0db3b2f313c46bcf39be36961c844ac9fd483
+DIST rabbitvcs-0.15.3.tar.bz2 1585107 SHA256 93838f15575e72a153078d63cc9fc6c91b136372ba08f1db56d4f712ee901297 SHA512 35e0eabf9590b56ca57f4c0b70009e8cdd034ce5d3bb6eb1fa22366fdda49ddd1cd8b1d36fcca160c40599d58ff38b3ec4f6b46dc026de16fd313b557b63aa34 WHIRLPOOL da18e3d571e353f81f749e31dd0d92a76c57b3f0a33cb7143866524d0c3eb0eec836b889ba1c23624d0b35d807d30940c5d1b4db09bab6266fd742dff6eafc0b
+DIST rabbitvcs-0.16.tar.gz 1670167 SHA256 2227482e5a965917eb404455ef243443c670f610e9843b6481607da3020873da SHA512 dac3b98acb5b7ef1147105aa0f735bb964c098f764c62d0e2e601a2ce34b315a5c83b3bac8929cbac898f674c86266a200f28042aad0340c1c5273bec4a6279c WHIRLPOOL f5c89e38e66a2ea7b5a98ca9d55e839dcdde94c156d25b25949213bae9d9edca0b9c87f9a8d953695f4f7c5b7499311291ed14bf7702da5c765a1a4e778af2b5
diff --git a/dev-vcs/rabbitvcs/metadata.xml b/dev-vcs/rabbitvcs/metadata.xml
new file mode 100644
index 000000000000..87a2ebb5baf0
--- /dev/null
+++ b/dev-vcs/rabbitvcs/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>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <longdescription>RabbitVCS is a set of graphical tools written to provide
+ simple and straightforward access to the version control systems you use.
+ RabbitVCS is inspired by TortoiseSVN and others.</longdescription>
+ <use>
+ <flag name="caja">Enable extension for <pkg>mate-base/caja</pkg></flag>
+ <flag name="cli">Eanble console based frontend</flag>
+ <flag name="diff">Use for diff command <pkg>dev-util/meld</pkg></flag>
+ <flag name="gedit">Enable plugin for <pkg>app-editors/gedit</pkg></flag>
+ <flag name="nautilus">Enable extension for <pkg>gnome-base/nautilus</pkg></flag>
+ <flag name="thunar">Enable extension for <pkg>xfce-base/thunar</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="github">rabbitvcs/rabbitvcs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/rabbitvcs/rabbitvcs-0.15.2.ebuild b/dev-vcs/rabbitvcs/rabbitvcs-0.15.2.ebuild
new file mode 100644
index 000000000000..5f24d042a764
--- /dev/null
+++ b/dev-vcs/rabbitvcs/rabbitvcs-0.15.2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2:2.7"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit eutils gnome2-utils multilib distutils
+
+DESCRIPTION="Integrated version control support for your desktop"
+HOMEPAGE="http://rabbitvcs.org"
+SRC_URI="http://rabbitvcs.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cli diff gedit git nautilus spell thunar"
+
+RDEPEND="dev-python/configobj
+ dev-python/pygobject:2
+ dev-python/pygtk
+ dev-python/pysvn
+ dev-python/simplejson
+ diff? ( dev-util/meld )
+ gedit? ( app-editors/gedit )
+ git? ( dev-python/dulwich )
+ nautilus? ( >=dev-python/nautilus-python-0.7.0
+ dev-python/dbus-python
+ dev-python/gnome-vfs-python )
+ spell? ( dev-python/gtkspell-python )
+ thunar? ( dev-python/thunarx-python
+ dev-python/dbus-python )"
+
+src_prepare() {
+ python_convert_shebangs -r 2 .
+
+ distutils_src_prepare
+
+ # we should not do gtk-update-icon-cache from setup script
+ # we prefer portage for that
+ sed -e 's/"install"/"fakeinstall"/' -i "${S}/setup.py" || die
+}
+
+src_install() {
+ distutils_src_install
+
+ if use cli ; then
+ dobin clients/cli/${PN}
+ fi
+ if use gedit ; then
+ insinto /usr/$(get_libdir)/gedit-2/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit2.gedit-plugin
+ insinto /usr/$(get_libdir)/gedit/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit3.plugin
+ fi
+ if use nautilus ; then
+ insinto /usr/$(get_libdir)/nautilus/extensions-2.0/python
+ doins clients/nautilus/RabbitVCS.py
+ insinto /usr/share/nautilus-python/extensions
+ doins clients/nautilus-3.0/RabbitVCS.py
+ fi
+ if use thunar ; then
+ insinto "/usr/$(get_libdir)/thunarx-2/python"
+ doins clients/thunar/RabbitVCS.py
+ insinto "/usr/$(get_libdir)/thunarx-1/python"
+ doins clients/thunar/RabbitVCS.py
+ fi
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ gnome2_icon_cache_update
+
+ elog "You should restart file manager to changes take effect:"
+ use nautilus && elog "\$ nautilus -q"
+ use thunar && elog "\$ thunar -q && thunar &"
+ elog ""
+ elog "Also you should really look at known issues page:"
+ elog "http://wiki.rabbitvcs.org/wiki/support/known-issues"
+}
+
+pkg_postrm() {
+ distutils_pkg_postrm
+ gnome2_icon_cache_update
+}
diff --git a/dev-vcs/rabbitvcs/rabbitvcs-0.15.3.ebuild b/dev-vcs/rabbitvcs/rabbitvcs-0.15.3.ebuild
new file mode 100644
index 000000000000..5f24d042a764
--- /dev/null
+++ b/dev-vcs/rabbitvcs/rabbitvcs-0.15.3.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2:2.7"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit eutils gnome2-utils multilib distutils
+
+DESCRIPTION="Integrated version control support for your desktop"
+HOMEPAGE="http://rabbitvcs.org"
+SRC_URI="http://rabbitvcs.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cli diff gedit git nautilus spell thunar"
+
+RDEPEND="dev-python/configobj
+ dev-python/pygobject:2
+ dev-python/pygtk
+ dev-python/pysvn
+ dev-python/simplejson
+ diff? ( dev-util/meld )
+ gedit? ( app-editors/gedit )
+ git? ( dev-python/dulwich )
+ nautilus? ( >=dev-python/nautilus-python-0.7.0
+ dev-python/dbus-python
+ dev-python/gnome-vfs-python )
+ spell? ( dev-python/gtkspell-python )
+ thunar? ( dev-python/thunarx-python
+ dev-python/dbus-python )"
+
+src_prepare() {
+ python_convert_shebangs -r 2 .
+
+ distutils_src_prepare
+
+ # we should not do gtk-update-icon-cache from setup script
+ # we prefer portage for that
+ sed -e 's/"install"/"fakeinstall"/' -i "${S}/setup.py" || die
+}
+
+src_install() {
+ distutils_src_install
+
+ if use cli ; then
+ dobin clients/cli/${PN}
+ fi
+ if use gedit ; then
+ insinto /usr/$(get_libdir)/gedit-2/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit2.gedit-plugin
+ insinto /usr/$(get_libdir)/gedit/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit3.plugin
+ fi
+ if use nautilus ; then
+ insinto /usr/$(get_libdir)/nautilus/extensions-2.0/python
+ doins clients/nautilus/RabbitVCS.py
+ insinto /usr/share/nautilus-python/extensions
+ doins clients/nautilus-3.0/RabbitVCS.py
+ fi
+ if use thunar ; then
+ insinto "/usr/$(get_libdir)/thunarx-2/python"
+ doins clients/thunar/RabbitVCS.py
+ insinto "/usr/$(get_libdir)/thunarx-1/python"
+ doins clients/thunar/RabbitVCS.py
+ fi
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ gnome2_icon_cache_update
+
+ elog "You should restart file manager to changes take effect:"
+ use nautilus && elog "\$ nautilus -q"
+ use thunar && elog "\$ thunar -q && thunar &"
+ elog ""
+ elog "Also you should really look at known issues page:"
+ elog "http://wiki.rabbitvcs.org/wiki/support/known-issues"
+}
+
+pkg_postrm() {
+ distutils_pkg_postrm
+ gnome2_icon_cache_update
+}
diff --git a/dev-vcs/rabbitvcs/rabbitvcs-0.16.ebuild b/dev-vcs/rabbitvcs/rabbitvcs-0.16.ebuild
new file mode 100644
index 000000000000..6c69c1fe2d31
--- /dev/null
+++ b/dev-vcs/rabbitvcs/rabbitvcs-0.16.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_DEPEND="2:2.7"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit eutils gnome2-utils multilib distutils vcs-snapshot
+
+DESCRIPTION="Integrated version control support for your desktop"
+HOMEPAGE="http://rabbitvcs.org"
+SRC_URI="http://github.com/rabbitvcs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="caja cli diff gedit git nautilus spell thunar"
+
+RDEPEND="dev-python/configobj
+ dev-python/pygobject:2
+ dev-python/pygtk
+ dev-python/pysvn
+ dev-python/simplejson
+ caja? ( dev-python/python-caja
+ dev-python/dbus-python
+ dev-python/gnome-vfs-python )
+ diff? ( dev-util/meld )
+ gedit? ( app-editors/gedit )
+ git? ( dev-python/dulwich )
+ nautilus? ( >=dev-python/nautilus-python-0.7.0
+ dev-python/dbus-python
+ dev-python/gnome-vfs-python )
+ spell? ( dev-python/gtkspell-python )
+ thunar? ( dev-python/thunarx-python
+ dev-python/dbus-python )"
+
+src_prepare() {
+ python_convert_shebangs -r 2 .
+
+ distutils_src_prepare
+
+ # we should not do gtk-update-icon-cache from setup script
+ # we prefer portage for that
+ sed -e 's/"install"/"fakeinstall"/' -i "${S}/setup.py" || die
+}
+
+src_install() {
+ distutils_src_install
+
+ if use caja ; then
+ insinto /usr/share/caja-python/extensions
+ doins clients/caja/RabbitVCS.py
+ fi
+ if use cli ; then
+ dobin clients/cli/${PN}
+ fi
+ if use gedit ; then
+ insinto /usr/$(get_libdir)/gedit-2/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit2.gedit-plugin
+ insinto /usr/$(get_libdir)/gedit/plugins
+ doins clients/gedit/${PN}-plugin.py
+ doins clients/gedit/${PN}-gedit3.plugin
+ fi
+ if use nautilus ; then
+ insinto /usr/$(get_libdir)/nautilus/extensions-2.0/python
+ doins clients/nautilus/RabbitVCS.py
+ insinto /usr/share/nautilus-python/extensions
+ doins clients/nautilus-3.0/RabbitVCS.py
+ fi
+ if use thunar ; then
+ insinto "/usr/$(get_libdir)/thunarx-2/python"
+ doins clients/thunar/RabbitVCS.py
+ insinto "/usr/$(get_libdir)/thunarx-1/python"
+ doins clients/thunar/RabbitVCS.py
+ fi
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ gnome2_icon_cache_update
+
+ elog "You should restart file manager to changes take effect:"
+ use caja && elog "\$ caja -q"
+ use nautilus && elog "\$ nautilus -q"
+ use thunar && elog "\$ thunar -q && thunar &"
+ elog ""
+ elog "Also you should really look at known issues page:"
+ elog "http://wiki.rabbitvcs.org/wiki/support/known-issues"
+}
+
+pkg_postrm() {
+ distutils_pkg_postrm
+ gnome2_icon_cache_update
+}
diff --git a/dev-vcs/rapidsvn/Manifest b/dev-vcs/rapidsvn/Manifest
new file mode 100644
index 000000000000..acdc929b4454
--- /dev/null
+++ b/dev-vcs/rapidsvn/Manifest
@@ -0,0 +1,2 @@
+DIST rapidsvn-0.12.1.tar.gz 1087511 SHA256 9744d2481b7e4db52adb0fa03806776463ed239ad39d09c807bc4c1198c4acae SHA512 892dab56e8ec19c5f26a0ddfab378187bc0325275f9fcf759c12beead70aab17876f7e5920bcf214fc86354faef58244ce25926ba010158f7354cd144e1c4c07 WHIRLPOOL c59205df79ef202bb448458afe7fd887d361a0fc33eb462cf4d92a3ec675ddda793b980201f89f415226053e89329cd081b2112fab2b6724d51e4697e5afe5ea
+DIST svncpp.dox.xz 1684 SHA256 d07a9f7fef3383d42d1f3f0a504a274942e080956dcb0233aa40a6564b23e530 SHA512 6314632b2f6a0f21bdd4644f856c8d60951c30135a82e509a7f929908dacb56462a2fa768c2e45cd7baf99face50fa5d4592a0691cfa1f16335bf64892933589 WHIRLPOOL ff55131f97d909eefedd5535885523c0ad70ea8263802c3fef187b62130fcfe4dd5c4bab3e8330ff83df3ba63e2d1bb1d5745244c56597805a6a8f748df18912
diff --git a/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-locale.patch b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-locale.patch
new file mode 100644
index 000000000000..e1712df85b19
--- /dev/null
+++ b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-locale.patch
@@ -0,0 +1,23 @@
+--- rapidsvn-0.12.0dfsg.orig/src/locale/Makefile.in
++++ rapidsvn-0.12.0dfsg/src/locale/Makefile.in
+@@ -369,8 +369,7 @@ all: all-mo
+ distclean: clean
+ clean:
+ for i in $(RAPIDSVN_LANGUAGES) ; do \
+- test -f $(srcdir)/$$i/rapidsvn.mo && rm $(srcdir)/$$i/rapidsvn.mo ; \
+- fi ; \
++ test -f $(srcdir)/$$i/rapidsvn.mo && rm $(srcdir)/$$i/rapidsvn.mo || true; \
+ done
+ .PHONY: all-mo
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- rapidsvn-0.12.0dfsg.orig/src/locale/Makefile.am
++++ rapidsvn-0.12.0dfsg/src/locale/Makefile.am
+@@ -38,7 +38,6 @@ all: all-mo
+ distclean: clean
+ clean:
+ for i in $(RAPIDSVN_LANGUAGES) ; do \
+- test -f $(srcdir)/$$i/rapidsvn.mo && rm $(srcdir)/$$i/rapidsvn.mo ; \
+- fi ; \
++ test -f $(srcdir)/$$i/rapidsvn.mo && rm $(srcdir)/$$i/rapidsvn.mo || true; \
+ done
+ .PHONY: all-mo
diff --git a/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-svncpp_link.patch b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-svncpp_link.patch
new file mode 100644
index 000000000000..4df855fb79b4
--- /dev/null
+++ b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-svncpp_link.patch
@@ -0,0 +1,12 @@
+Index: src/svncpp/Makefile.am
+===================================================================
+--- src/svncpp/Makefile.am (revision 7100)
++++ src/svncpp/Makefile.am (working copy)
+@@ -27,3 +27,7 @@
+ url.cpp \
+ wc.cpp
+
++libsvncpp_la_LIBADD= $(SVN_LIBS) \
++ $(NEON_LIBS) \
++ $(APR_LIBS) \
++ -lstdc++
diff --git a/dev-vcs/rapidsvn/files/rapidsvn-svncpp_link.patch b/dev-vcs/rapidsvn/files/rapidsvn-svncpp_link.patch
new file mode 100644
index 000000000000..4df855fb79b4
--- /dev/null
+++ b/dev-vcs/rapidsvn/files/rapidsvn-svncpp_link.patch
@@ -0,0 +1,12 @@
+Index: src/svncpp/Makefile.am
+===================================================================
+--- src/svncpp/Makefile.am (revision 7100)
++++ src/svncpp/Makefile.am (working copy)
+@@ -27,3 +27,7 @@
+ url.cpp \
+ wc.cpp
+
++libsvncpp_la_LIBADD= $(SVN_LIBS) \
++ $(NEON_LIBS) \
++ $(APR_LIBS) \
++ -lstdc++
diff --git a/dev-vcs/rapidsvn/metadata.xml b/dev-vcs/rapidsvn/metadata.xml
new file mode 100644
index 000000000000..c975c4e39268
--- /dev/null
+++ b/dev-vcs/rapidsvn/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>dev-tools</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <longdescription>
+RapidSVN is a cross-platform GUI front-end for the Subversion revision system written in C++ using the wxWidgets framework. This project also includes a Subversion client C++ API.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-vcs/rapidsvn/rapidsvn-0.12.1-r1.ebuild b/dev-vcs/rapidsvn/rapidsvn-0.12.1-r1.ebuild
new file mode 100644
index 000000000000..f2ae2384f48d
--- /dev/null
+++ b/dev-vcs/rapidsvn/rapidsvn-0.12.1-r1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+WX_GTK_VER=2.8
+
+AUTOTOOLS_AUTORECONF=true
+
+inherit autotools-utils fdo-mime flag-o-matic python-single-r1 versionator wxwidgets
+
+MY_PV=$(get_version_component_range 1-2)
+MY_REL="1"
+
+DESCRIPTION="Cross-platform GUI front-end for the Subversion revision system"
+HOMEPAGE="http://rapidsvn.tigris.org/"
+SRC_URI="
+ http://www.rapidsvn.org/download/release/${PV}/${P}.tar.gz
+ doc? ( http://dev.gentoo.org/~jlec/distfiles/svncpp.dox.xz )"
+
+LICENSE="GPL-2 LGPL-2.1 FDL-1.2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc static-libs"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEP="
+ ${PYTHON_DEPS}
+ dev-libs/apr
+ dev-libs/apr-util
+ dev-vcs/subversion
+ x11-libs/wxGTK:${WX_GTK_VER}[X]"
+DEPEND="${COMMON_DEP}
+ doc? (
+ dev-libs/libxslt
+ app-text/docbook-sgml-utils
+ app-doc/doxygen
+ app-text/docbook-xsl-stylesheets
+ media-gfx/graphviz
+)"
+RDEPEND="${COMMON_DEP}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-svncpp_link.patch"
+ "${FILESDIR}/${P}-locale.patch" )
+
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+DOCS=( HACKING.txt TRANSLATIONS )
+
+src_prepare() {
+ if use doc; then
+ mv "${WORKDIR}"/svncpp.dox doc/svncpp/ || die
+ fi
+ strip-linguas $(grep ^RAPIDSVN_LANGUAGES src/locale/Makefile.am | sed 's:RAPIDSVN_LANGUAGES=::g')
+ sed \
+ -e "/^RAPIDSVN_LANGUAGES/s:=.*:=${LINGUAS}:g" \
+ -i src/locale/Makefile.am || die
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local myeconfargs=( --with-wx-config=${WX_CONFIG} )
+
+ if use doc; then
+ myeconfargs+=( --with-manpage=yes )
+ else
+ myeconfargs+=(
+ --without-xsltproc
+ --with-manpage=no
+ --without-doxygen
+ --without-dot )
+ fi
+
+ append-cppflags $( apr-1-config --cppflags )
+
+ myeconfargs+=(
+ --with-svn-lib="${EPREFIX}"/usr/$(get_libdir)
+ --with-svn-include="${EPREFIX}"/usr/include
+ --with-apr-config="${EPREFIX}/usr/bin/apr-1-config"
+ --with-apu-config="${EPREFIX}/usr/bin/apu-1-config"
+ )
+ autotools-utils_src_configure
+}
+
+src_compile() {
+ autotools-utils_src_compile
+ use doc && autotools-utils_src_compile -C doc/manpage manpage
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ doicon src/res/rapidsvn.ico src/res/bitmaps/${PN}*.png
+ make_desktop_entry rapidsvn "RapidSVN ${PV}" \
+ "${EPREFIX}/usr/share/pixmaps/rapidsvn_32x32.png" \
+ "RevisionControl;Development"
+
+ if use doc ; then
+ doman doc/manpage/${PN}.1
+ dohtml "${S}"/doc/svncpp/html/*
+ fi
+}
+
+src_test() {
+ pushd "${BUILD_DIR}"/src/tests/svncpp > /dev/null || die
+ emake
+ ./svncpptest | grep OK || die
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+}
diff --git a/dev-vcs/rcs/Manifest b/dev-vcs/rcs/Manifest
new file mode 100644
index 000000000000..3397fbbcf07d
--- /dev/null
+++ b/dev-vcs/rcs/Manifest
@@ -0,0 +1,3 @@
+DIST rcs-5.8.2.tar.gz 1209822 SHA256 ea00bd5e0d0317d3388dd78c9b3a9381d7d1cce59d686aec60f41eb633c693dc SHA512 59bfdb57d1e361f01b6682aae99115e5b181ee429e4d49bf1eadd7c7d24abf8547f7368a608d5aac480ca2b8a095ca3d1b56723ba308c15aa5c612676088c374 WHIRLPOOL fd4a3bca5b0a745ec8cea219878585cfc57a963dac3f4a73fab5ee7b5651e0405e4f29a9bb22605c9e6285f881b9a7a75079b20ed14ad2ec56ad19bd36dc38f8
+DIST rcs-5.9.3.tar.xz 800736 SHA256 68b0d1c1b8657766cd7dc78e10564ce4836220e64665fb35fbe74dbc1dff5b47 SHA512 99b124a94f285d8c675a2a51397ca4a97468f053d42aecf543e9266f16aea6b2667613f565c3462ffd2350c28e22baa4d01d598e2cc7e1e940625086f6de0ba6 WHIRLPOOL e9cd1d14a0c00da42b464104032ee201d40a33d1601428c8483474474f86e8a3d0634e2ec6d92ada6d3a9af5f0463bd3690665a06133e8ddc65e676d69076976
+DIST rcs-5.9.4.tar.xz 801360 SHA256 063d5a0d7da1821754b80c639cdae2c82b535c8ff4131f75dc7bbf0cd63a5dff SHA512 c501a46b8d2e166ec0b54301d72687d9b38b31d84517fcc8dd560a296e7ad250962a92f019e53b2921af9045755e2e7f2f2acc9542dbe0d19ee110ef36861cd4 WHIRLPOOL 69f21d2f324422f549127e07f2147d9f01022b20893c1be53e9e06085647c59b18a44b91c2178654bfd6db01e6b451e848d095c299b87eaf0315dd9efdce6af7
diff --git a/dev-vcs/rcs/metadata.xml b/dev-vcs/rcs/metadata.xml
new file mode 100644
index 000000000000..36b9c241bdf8
--- /dev/null
+++ b/dev-vcs/rcs/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
+ </maintainer>
+ <maintainer>
+ <email>titanofold@gentoo.org</email>
+ <name>Aaron W. Swenson</name>
+ </maintainer>
+ <longdescription>
+ The Revision Control System (RCS) is a system for managing
+ multiple versions of files. RCS automates the storage, retrieval,
+ logging, identification and merging of file revisions. RCS is useful
+ for text files that are revised frequently (for example, programs,
+ documentation, graphics, papers and form letters).
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-vcs/rcs/rcs-5.8.2.ebuild b/dev-vcs/rcs/rcs-5.8.2.ebuild
new file mode 100644
index 000000000000..dfe9c5cc937e
--- /dev/null
+++ b/dev-vcs/rcs/rcs-5.8.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils
+
+DESCRIPTION="Revision Control System"
+HOMEPAGE="http://www.gnu.org/software/rcs/"
+SRC_URI="mirror://gnu/rcs/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc"
+
+RDEPEND="sys-apps/diffutils"
+
+src_prepare() {
+ sed -i \
+ -e '/gets is a security hole/d' \
+ lib/stdio.in.h || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS ChangeLog NEWS README
+
+ if use doc; then
+ emake DESTDIR="${D}" install-html
+ rm -R "${ED}/usr/share/doc/rcs"
+ dohtml -r doc/rcs.html/
+ fi
+}
diff --git a/dev-vcs/rcs/rcs-5.9.3.ebuild b/dev-vcs/rcs/rcs-5.9.3.ebuild
new file mode 100644
index 000000000000..7943c68b7df0
--- /dev/null
+++ b/dev-vcs/rcs/rcs-5.9.3.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Revision Control System"
+HOMEPAGE="http://www.gnu.org/software/rcs/"
+SRC_URI="mirror://gnu/rcs/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc"
+
+RDEPEND="
+ sys-apps/diffutils
+ sys-apps/ed"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ sed -i -e '/gets is a security hole/d' \
+ lib/stdio.in.h || die
+}
+
+src_configure() {
+ append-flags -std=gnu99
+ econf
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc ChangeLog NEWS README
+
+ if use doc; then
+ emake -C doc html
+ rm -R "${ED}/usr/share/doc/rcs"
+ mv doc/rcs.html doc/html
+ dodoc -r doc/html/
+ fi
+}
diff --git a/dev-vcs/rcs/rcs-5.9.4.ebuild b/dev-vcs/rcs/rcs-5.9.4.ebuild
new file mode 100644
index 000000000000..0dd71f7a6e42
--- /dev/null
+++ b/dev-vcs/rcs/rcs-5.9.4.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Revision Control System"
+HOMEPAGE="http://www.gnu.org/software/rcs/"
+SRC_URI="mirror://gnu/rcs/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
+IUSE="doc"
+
+RDEPEND="
+ sys-apps/diffutils
+ sys-apps/ed"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ sed -i -e '/gets is a security hole/d' \
+ lib/stdio.in.h || die
+}
+
+src_configure() {
+ append-flags -std=gnu99
+ econf
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc ChangeLog NEWS README
+
+ if use doc; then
+ emake -C doc html
+ rm -R "${ED}/usr/share/doc/rcs"
+ mv doc/rcs.html doc/html
+ dodoc -r doc/html/
+ fi
+}
diff --git a/dev-vcs/rcsi/Manifest b/dev-vcs/rcsi/Manifest
new file mode 100644
index 000000000000..e04218b3e50f
--- /dev/null
+++ b/dev-vcs/rcsi/Manifest
@@ -0,0 +1 @@
+DIST rcsi-0.5.tar.gz 68705 SHA256 b7b398addd2a329b1e737b21030e533c24611f1052d09135fddac6afbcd491b1 SHA512 4b9cf2bc9232fdad45461de1f2eca06958a26f2cfd1bb823be465102a152f31405aa611da922be5ebd9c83ff6efa62784fe9954563dee980befe1acd9c032f72 WHIRLPOOL 85be746f9fafd15e6d9d31afbdb7d7666786ee949c010e28586b891af30e156fa8620d42d579d4123259b8d5a295c0c6770071802379e14df07d1bd84816b622
diff --git a/dev-vcs/rcsi/metadata.xml b/dev-vcs/rcsi/metadata.xml
new file mode 100644
index 000000000000..cb2f040031cf
--- /dev/null
+++ b/dev-vcs/rcsi/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>cvs-utils</herd>
+<maintainer>
+ <email>robbat2@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/rcsi/rcsi-0.5.ebuild b/dev-vcs/rcsi/rcsi-0.5.ebuild
new file mode 100644
index 000000000000..bdef2a7fd17e
--- /dev/null
+++ b/dev-vcs/rcsi/rcsi-0.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit toolchain-funcs
+
+DESCRIPTION="A program to give information about RCS files"
+HOMEPAGE="http://www.colinbrough.pwp.blueyonder.co.uk/rcsi.README.html"
+SRC_URI="http://www.colinbrough.pwp.blueyonder.co.uk/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="sys-apps/sed"
+RDEPEND=">=dev-vcs/rcs-5.7-r2"
+
+S=${WORKDIR}/${PN}
+
+src_compile() {
+ $(tc-getCC) $CFLAGS $LDFLAGS rcsi.c -o rcsi || die "Compile failed"
+}
+
+src_install() {
+ dobin rcsi
+ doman rcsi.1
+ dodoc README
+ dohtml README.html example{1,2}.png
+}
diff --git a/dev-vcs/rsvndump/Manifest b/dev-vcs/rsvndump/Manifest
new file mode 100644
index 000000000000..2ab6c6dd6ccd
--- /dev/null
+++ b/dev-vcs/rsvndump/Manifest
@@ -0,0 +1 @@
+DIST rsvndump-0.6.tar.bz2 220891 SHA256 06512e1fb7bc847d6607cf1ab0339723ef2aa03836c1968eee3440a289327263 SHA512 cadb10b48e66be1ea562fa6b96460b5c864e2f16a1e0d5fbb4be4d31023b6d5dfa978634900b1649530a12335eb712032d9d9cc82f663737581521121d3b2120 WHIRLPOOL 3f2ce2e5ec482d286a4208deed769e910c859fea741678cb5e882d12608b4801e317dc024bbe39c05f1db547341e53bd815025561ace9b90a40f2e2f1b0ec53a
diff --git a/dev-vcs/rsvndump/files/rsvndump-0.5.6-compile-flags.patch b/dev-vcs/rsvndump/files/rsvndump-0.5.6-compile-flags.patch
new file mode 100644
index 000000000000..582580dc01d1
--- /dev/null
+++ b/dev-vcs/rsvndump/files/rsvndump-0.5.6-compile-flags.patch
@@ -0,0 +1,18 @@
+--- rsvndump-0.5.6/configure.ac 2011-07-18 00:56:16.857098428 +0200
++++ rsvndump-0.5.6/configure.ac 2011-07-18 00:57:01.654538381 +0200
+@@ -20,11 +20,11 @@
+ AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [Turn on debugging])], [debug="$enableval"], [debug="no"])
+ AM_CONDITIONAL([DEBUG], [test "x$debug" = "xyes"])
+ if test "x$debug" = "xyes"; then
+- CXXFLAGS="-O0 -g -DDEBUG"
+- CFLAGS="-O0 -g -DDEBUG"
++ CXXFLAGS="${CXXFLAGS} -O0 -g -DDEBUG"
++ CFLAGS="${CFLAGS} -O0 -g -DDEBUG"
+ else
+- CXXFLAGS="-O2 -DNDEBUG"
+- CFLAGS="-O2 -DNDEBUG"
++ CXXFLAGS="-O2 ${CXXFLAGS} -DNDEBUG"
++ CFLAGS="-O2 ${CFLAGS} -DNDEBUG"
+ fi
+
+ # Checks for programs.
diff --git a/dev-vcs/rsvndump/files/rsvndump-disable-man.patch b/dev-vcs/rsvndump/files/rsvndump-disable-man.patch
new file mode 100644
index 000000000000..4df8641973f1
--- /dev/null
+++ b/dev-vcs/rsvndump/files/rsvndump-disable-man.patch
@@ -0,0 +1,12 @@
+diff -auNr rsvndump-0.5.2.orig/configure.ac rsvndump-0.5.2.new/configure.ac
+--- rsvndump-0.5.2.orig/configure.ac 2009-07-17 01:13:04.000000000 +0300
++++ rsvndump-0.5.2.new/configure.ac 2009-08-03 13:21:41.000000000 +0300
+@@ -15,7 +15,7 @@
+
+ # Optional features
+ USE_MAN="no"
+-AC_ARG_ENABLE(man, [ --enable-man generate the man page], USE_MAN="yes", USE_MAN="no")
++AC_ARG_ENABLE(man, [ --enable-man generate the man page], USE_MAN="$enableval", USE_MAN="no")
+ USE_UT="no"
+ AC_ARG_ENABLE(tests, [ --enable-tests enable unit tests], USE_UT="yes", USE_UT="no")
+
diff --git a/dev-vcs/rsvndump/metadata.xml b/dev-vcs/rsvndump/metadata.xml
new file mode 100644
index 000000000000..380bc2359bbb
--- /dev/null
+++ b/dev-vcs/rsvndump/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="sourceforge">rsvndump</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/rsvndump/rsvndump-0.6.ebuild b/dev-vcs/rsvndump/rsvndump-0.6.ebuild
new file mode 100644
index 000000000000..f3315dfaf499
--- /dev/null
+++ b/dev-vcs/rsvndump/rsvndump-0.6.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils
+
+DESCRIPTION="Dump a remote Subversion repository"
+HOMEPAGE="http://rsvndump.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3+ BSD public-domain" # rsvndump, snappy-c, critbit89
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc"
+
+RDEPEND="dev-vcs/subversion
+ dev-libs/apr
+ dev-libs/apr-util
+ sys-devel/gettext"
+DEPEND="${RDEPEND}
+ doc? ( app-text/xmlto
+ >=app-text/asciidoc-8.4 )"
+
+src_configure() {
+ econf \
+ $(use_enable doc man) \
+ $(use_enable debug)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake failed"
+
+ dodoc AUTHORS ChangeLog NEWS README THANKS || die "dodoc failed"
+}
diff --git a/dev-vcs/statcvs/Manifest b/dev-vcs/statcvs/Manifest
new file mode 100644
index 000000000000..4fb9658dfa43
--- /dev/null
+++ b/dev-vcs/statcvs/Manifest
@@ -0,0 +1 @@
+DIST statcvs-0.5.0-source.zip 7720283 SHA256 3f41f6a0fd0948a5c9096a6aa040d56da784e98a6657f4911c5f78817e6985be SHA512 4b711285b5a5d505ca1b63ebfb801ecd1a79339bc98f001ce71f5d8a454303a4dc0b7f5069ec53dcd42b2424bbf718efeca1f7369becf330a1207c49340ce204 WHIRLPOOL 3b9d82add805cf6b1393116ef6432e7064725c68cf0314c5e9f73fa044c7f2f85ef4388e13a88406dbd109a39ec28acf1cac378a9e02c5197b2812083f58c177
diff --git a/dev-vcs/statcvs/files/statcvs-0.4.0-build.xml.patch b/dev-vcs/statcvs/files/statcvs-0.4.0-build.xml.patch
new file mode 100644
index 000000000000..66b8d291dcfc
--- /dev/null
+++ b/dev-vcs/statcvs/files/statcvs-0.4.0-build.xml.patch
@@ -0,0 +1,16 @@
+diff -Nur statcvs-0.4.0/build.xml statcvs-0.4.0_patched/build.xml
+--- statcvs-0.4.0/build.xml 2008-04-21 18:33:32.000000000 +0300
++++ statcvs-0.4.0_patched/build.xml 2008-09-19 22:22:32.000000000 +0300
+@@ -148,11 +148,8 @@
+ </classpath>
+ </java>
+ </target>
+- <target name="jar" depends="test">
++ <target name="jar">
+ <!-- Creates an executable jar file for the project -->
+- <unjar src="${lib}/${jfreechart.jar}" dest="${build}" />
+- <unjar src="${lib}/${jcommon.jar}" dest="${build}" />
+- <unjar src="${lib}/jdom.jar" dest="${build}" />
+ <mkdir dir="${dist}" />
+ <jar jarfile="${dist}/${project.jar}" basedir="${build}">
+ <manifest>
diff --git a/dev-vcs/statcvs/files/statcvs-0.4.0-external-jtreemap.patch b/dev-vcs/statcvs/files/statcvs-0.4.0-external-jtreemap.patch
new file mode 100644
index 000000000000..cd0c5ed773b6
--- /dev/null
+++ b/dev-vcs/statcvs/files/statcvs-0.4.0-external-jtreemap.patch
@@ -0,0 +1,40 @@
+diff -Nur statcvs-0.4.0/src/net/sf/statcvs/output/RepoMapPageMaker.java statcvs-0.4.0_patched/src/net/sf/statcvs/output/RepoMapPageMaker.java
+--- statcvs-0.4.0/src/net/sf/statcvs/output/RepoMapPageMaker.java 2008-04-14 21:35:00.000000000 +0300
++++ statcvs-0.4.0_patched/src/net/sf/statcvs/output/RepoMapPageMaker.java 2008-09-20 20:46:05.000000000 +0300
+@@ -20,7 +20,8 @@
+ package net.sf.statcvs.output;
+
+ import java.io.BufferedWriter;
+-import java.io.File;
++import java.io.File;
++import java.io.FileInputStream;
+ import java.io.FileWriter;
+ import java.io.IOException;
+ import java.io.InputStream;
+@@ -92,7 +93,7 @@
+ }
+
+ private String getApplet() {
+- return "<applet archive=\"./" + Messages.getString("JTREEMAP_JAR") + "\" code=\"net.sf.jtreemap.swing.example.JTreeMapAppletExample\""
++ return "<applet archive=\"./jtreemap.jar\" code=\"net.sf.jtreemap.swing.example.JTreeMapAppletExample\""
+ + " width=\"940\" height=\"600\"><param name=\"dataFile\" value=\"" + REPO_FILE + "\"/>" + "<param name=\"viewTree\" value=\"true\"/>"
+ + "<param name=\"showWeight\" value=\"true\"/>" + "<param name=\"valuePrefix\" value=\"Change:\"/>"
+ + "<param name=\"weightPrefix\" value=\"LOC:\"/>" + "<param name=\"dataFileType\" value=\"xml\"/>"
+@@ -102,7 +103,7 @@
+ private void buildXmlForJTreeMap() {
+ BufferedWriter out = null;
+ try {
+- copyJar(Messages.getString("JTREEMAP_JAR"));
++ copyJar("jtreemap.jar");
+ out = new BufferedWriter(new FileWriter(ConfigurationOptions.getOutputDir() + REPO_FILE));
+ out.write("<?xml version='1.0' encoding='ISO-8859-1'?>\n");
+ // out.append("<!DOCTYPE root SYSTEM \"TreeMap.dtd\" >\n");
+@@ -129,7 +130,7 @@
+ private void copyJar(final String jtreemapJar) throws IOException {
+ InputStream stream = null;
+ try {
+- stream = RepoMapPageMaker.class.getResourceAsStream(WEB_FILE_PATH + jtreemapJar);
++ stream = new FileInputStream("/usr/share/jtreemap/lib/" + jtreemapJar);
+ if (stream != null) {
+ FileUtils.copyFile(stream, new File(ConfigurationOptions.getOutputDir() + jtreemapJar));
+ } else {
diff --git a/dev-vcs/statcvs/files/statcvs-0.4.0-r1-build.xml.patch b/dev-vcs/statcvs/files/statcvs-0.4.0-r1-build.xml.patch
new file mode 100644
index 000000000000..4053feea04aa
--- /dev/null
+++ b/dev-vcs/statcvs/files/statcvs-0.4.0-r1-build.xml.patch
@@ -0,0 +1,24 @@
+diff -Nur statcvs-0.4.0/build.xml statcvs-0.4.0_patched/build.xml
+--- statcvs-0.4.0/build.xml 2008-04-21 18:33:32.000000000 +0300
++++ statcvs-0.4.0_patched/build.xml 2009-01-28 00:21:06.000000000 +0200
+@@ -19,7 +19,6 @@
+ <property name="cvs.log" value="cvs.log" />
+ <property environment="env" />
+ <path id="project.class.path">
+- <pathelement path="${java.class.path}" />
+ <fileset dir="${lib}">
+ <include name="**/*.jar" />
+ </fileset>
+@@ -148,11 +147,8 @@
+ </classpath>
+ </java>
+ </target>
+- <target name="jar" depends="test">
++ <target name="jar">
+ <!-- Creates an executable jar file for the project -->
+- <unjar src="${lib}/${jfreechart.jar}" dest="${build}" />
+- <unjar src="${lib}/${jcommon.jar}" dest="${build}" />
+- <unjar src="${lib}/jdom.jar" dest="${build}" />
+ <mkdir dir="${dist}" />
+ <jar jarfile="${dist}/${project.jar}" basedir="${build}">
+ <manifest>
diff --git a/dev-vcs/statcvs/files/statcvs-0.5.0-build.xml.patch b/dev-vcs/statcvs/files/statcvs-0.5.0-build.xml.patch
new file mode 100644
index 000000000000..c049cdeda9d8
--- /dev/null
+++ b/dev-vcs/statcvs/files/statcvs-0.5.0-build.xml.patch
@@ -0,0 +1,24 @@
+diff -Nur statcvs-0.5.0/build.xml statcvs-0.5.0_patched/build.xml
+--- statcvs-0.5.0/build.xml 2009-05-09 21:33:32.000000000 +0300
++++ statcvs-0.5.0_patched/build.xml 2009-05-11 22:29:19.000000000 +0300
+@@ -19,7 +19,6 @@
+ <property name="cvs.log" value="cvs.log" />
+ <property environment="env" />
+ <path id="project.class.path">
+- <pathelement path="${java.class.path}" />
+ <fileset dir="${lib}">
+ <include name="**/*.jar" />
+ </fileset>
+@@ -149,11 +148,8 @@
+ </java>
+ </target>
+ <target name="release" depends="clean,jar,javadoc,zip,zip.source"/>
+- <target name="jar" depends="test">
++ <target name="jar">
+ <!-- Creates an executable jar file for the project -->
+- <unjar src="${lib}/${jfreechart.jar}" dest="${build}" />
+- <unjar src="${lib}/${jcommon.jar}" dest="${build}" />
+- <unjar src="${lib}/jdom.jar" dest="${build}" />
+ <mkdir dir="${dist}" />
+ <jar jarfile="${dist}/${project.jar}" basedir="${build}">
+ <manifest>
diff --git a/dev-vcs/statcvs/metadata.xml b/dev-vcs/statcvs/metadata.xml
new file mode 100644
index 000000000000..064ac2bacdfc
--- /dev/null
+++ b/dev-vcs/statcvs/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>java</herd>
+ <maintainer>
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">statcvs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/statcvs/statcvs-0.5.0.ebuild b/dev-vcs/statcvs/statcvs-0.5.0.ebuild
new file mode 100644
index 000000000000..7afecc0a116c
--- /dev/null
+++ b/dev-vcs/statcvs/statcvs-0.5.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2
+
+DESCRIPTION="StatCVS generates HTML reports from CVS repository logs"
+HOMEPAGE="http://statcvs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}-source.zip"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+COMMON_DEPEND="
+ dev-java/jcommon:1.0
+ >=dev-java/jfreechart-1.0.11:1.0
+ dev-java/jdom:1.0
+ dev-java/ant-core:0"
+
+DEPEND=">=virtual/jdk-1.4
+ app-arch/unzip
+ test? ( dev-java/ant-junit:0 )
+ ${COMMON_DEPEND}"
+
+RDEPEND=">=virtual/jre-1.4
+ dev-vcs/cvs
+ dev-java/jtreemap:0
+ ${COMMON_DEPEND}"
+
+EANT_BUILD_TARGET="compile copyfiles jar"
+
+java_prepare() {
+ epatch "${FILESDIR}"/${P}-build.xml.patch
+ epatch "${FILESDIR}"/${PN}-0.4.0-external-jtreemap.patch
+
+ einfo "Removing bundled jars."
+ find . -name "*.jar" -print -delete
+
+ cd "${S}"/lib || die
+ java-pkg_jar-from jcommon-1.0 jcommon.jar jcommon-1.0.6.jar
+ java-pkg_jar-from jfreechart-1.0 jfreechart.jar jfreechart-1.0.3.jar
+ java-pkg_jar-from jdom-1.0 jdom.jar
+ java-pkg_jar-from ant-core ant.jar
+}
+
+src_install() {
+ java-pkg_dojar dist/${PN}.jar
+ java-pkg_dolauncher ${PN} --main net.sf.statcvs.Main
+
+ use doc && java-pkg_dohtml -r doc/*
+ use source && java-pkg_dosrc src/net
+}
+
+src_test() {
+ java-pkg_jar-from --into lib junit
+ ANT_TASKS="ant-junit" eant test
+}
+
+pkg_postinst() {
+ elog "For instructions on how to use StatCVS see"
+ elog "http://statcvs.sourceforge.net/manual/"
+ elog "You need to regenerate statistics"
+ elog "if you update dev-java/jtreemap"
+}
diff --git a/dev-vcs/statsvn/Manifest b/dev-vcs/statsvn/Manifest
new file mode 100644
index 000000000000..db064084841b
--- /dev/null
+++ b/dev-vcs/statsvn/Manifest
@@ -0,0 +1 @@
+DIST statsvn-0.5.0-source.zip 14686488 SHA256 af9f36d364a6a348b50ffc5f248fafee5292cde1e39eccc08b8f1b038736e275 SHA512 0f723659ede09ca3770354c8da7ca94237e01068e7743b4bfa3dfcf50d21d04130ad219b0a40f2fcffece85c2c9e9444d7b2e9de7f2048b935223c09864d3cbf WHIRLPOOL 5206d6d946e4d33a6df082f5f527d3af289757e9e970773f537d279f0f610b20f3e789c27e396e93a99917b7aa9ca3c848e6baa8e8e92fe85cdb4e5b1b54c4eb
diff --git a/dev-vcs/statsvn/files/statsvn-0.4.1-build.xml.patch b/dev-vcs/statsvn/files/statsvn-0.4.1-build.xml.patch
new file mode 100644
index 000000000000..48c050eb25db
--- /dev/null
+++ b/dev-vcs/statsvn/files/statsvn-0.4.1-build.xml.patch
@@ -0,0 +1,19 @@
+diff -Nur statsvn-0.4.1/build.xml statsvn-0.4.1_patched/build.xml
+--- statsvn-0.4.1/build.xml 2007-03-14 03:33:20.000000000 +0200
++++ statsvn-0.4.1_patched/build.xml 2008-09-19 05:45:40.000000000 +0300
+@@ -130,15 +130,6 @@
+ </target>
+
+ <target name="dist" depends="compile,copyfiles">
+- <!-- Creates an executable jar file for the project -->
+- <unjar src="${lib}/${statcvs.jar}" dest="${build}" />
+- <!-- Expand and use the concurrent JAR -->
+- <unjar src="${lib}/${concurrent.jar}" dest="${build}" />
+-
+- <!-- Now included in statcvs.jar -->
+- <!--<unjar src="${lib}/${jfreechart.jar}" dest="${build}" />
+- <unjar src="${lib}/${jcommon.jar}" dest="${build}" />-->
+-
+ <mkdir dir="${dist}" />
+ <jar jarfile="${dist}/${project.jar}" basedir="${build}">
+ <manifest>
diff --git a/dev-vcs/statsvn/metadata.xml b/dev-vcs/statsvn/metadata.xml
new file mode 100644
index 000000000000..e927a7d48597
--- /dev/null
+++ b/dev-vcs/statsvn/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>java</herd>
+ <maintainer>
+ <email>java@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">statsvn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/statsvn/statsvn-0.5.0.ebuild b/dev-vcs/statsvn/statsvn-0.5.0.ebuild
new file mode 100644
index 000000000000..a96812d2e95f
--- /dev/null
+++ b/dev-vcs/statsvn/statsvn-0.5.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2
+
+DESCRIPTION="StatSVN generates HTML reports from SVN repository logs"
+HOMEPAGE="http://www.statsvn.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}-source.zip"
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+COMMON_DEPEND="
+ >=dev-vcs/statcvs-0.5:0
+ >=dev-java/backport-util-concurrent-3.1:0
+ dev-java/jcommon:1.0
+ dev-java/jfreechart:1.0"
+
+DEPEND=">=virtual/jdk-1.4
+ app-arch/unzip
+ test? ( dev-java/junit:0 )
+ ${COMMON_DEPEND}"
+
+RDEPEND=">=virtual/jre-1.4
+ >=dev-vcs/subversion-1.3.0
+ dev-java/xerces:2
+ ${COMMON_DEPEND}"
+
+EANT_GENTOO_CLASSPATH="statcvs,backport-util-concurrent,jcommon-1.0,jfreechart-1.0"
+EANT_BUILD_TARGET="dist"
+JAVA_ANT_CLASSPATH_TAGS="javac java javadoc"
+JAVA_ANT_REWRITE_CLASSPATH="true"
+
+java_prepare() {
+ ebegin "Removing bundled jars."
+ find . -name "*.jar" -delete
+ eend
+ ebegin "Removing prebuilt classses."
+ find . -name "*.class" -delete
+ rm -r "${S}"/bin/*
+ eend
+ epatch "${FILESDIR}"/${PN}-0.4.1-build.xml.patch
+}
+
+src_test() {
+ ewarn "Note that the tests require you to be online."
+ eant -Dgentoo.classpath=$(java-pkg_getjars ${EANT_GENTOO_CLASSPATH}):$(java-pkg_getjars --build-only junit) test
+}
+
+src_install() {
+ java-pkg_dojar dist/${PN}.jar
+
+ # jfreechart pulls in gnu-jaxp which doesn't work for statsvn so we need
+ # to force another SAXParserFactory and DocumentBuilderFactory
+ java-pkg_register-dependency xerces-2
+ java-pkg_dolauncher statsvn --main net.sf.statsvn.Main \
+ --java_args '-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl'
+
+ use doc && java-pkg_dojavadoc doc
+ use source && java-pkg_dosrc src/*
+}
+
+pkg_postinst() {
+ elog "For instractions on how to use StatSVN see"
+ elog "http://svn.statsvn.org/statsvnwiki/index.php/Main_Page"
+ elog "You need to regenerate statistics"
+ elog "if you update dev-java/jtreemap"
+}
diff --git a/dev-vcs/stgit/Manifest b/dev-vcs/stgit/Manifest
new file mode 100644
index 000000000000..1c7e0faaf781
--- /dev/null
+++ b/dev-vcs/stgit/Manifest
@@ -0,0 +1,4 @@
+DIST stgit-0.16-missing-patches.tar.gz 1667 SHA256 f105bb417592be3c68d830ad1cf2e212e6e5cb809bf64cdffb516a0f7badd4f4 SHA512 29d4c3e68121654153b4e5142dd70d818737b09bbc8371d644a36dd9d18afaf78fdda91bc16f953c330bcbae19084384d8bcd216cdfe674df784e33165186db1 WHIRLPOOL c7628853e6c1eff498a95ff22ec3eb3bb69b60dfb0c6dcd5895a650b8d3aba966166dfd426a0c728e3d292f0a2ed197325b0af5ccd63fc99011b5b2e841e7194
+DIST stgit-0.16.tar.gz 362687 SHA256 02f1a19350ccf4a26abac1421df8c2d021e78f995c913f9562718a1700318a42 SHA512 782de3d5855aad4f5d040478745990517ebe2b26dc315a3ed41db95399bb46e075d63a70baa0e3aa2ab1012b59e6ad1f5940a904f296ef09d6bca60f66e417dd WHIRLPOOL e2334c041cb260455d549d33b6628fd4f6e1e7da850f2987ba86922504e07aed8177d092550348b52cad8894b0335d20ee1608b855fa1cb6545bdd301a9d38f1
+DIST stgit-0.17.1-upstream-patches-0.tar.xz 5064 SHA256 6e120dd85bcdcbbb64bea98bd5967bb1f01fbc9d3e80b4856d7e328cfcafc31e SHA512 da7b75898466c8be58c48a86aee6209a907f971c7b15b38034940598d353fa6ecb48894b220fbfd8e032e88e746b377c55485c8045c330607e122a082aa0374f WHIRLPOOL aa7b7a5f89703eb35fab26dec0bcf5ceae2e20608b2562c7b6f76e33d43b35113d97282cb6b5f4cdf5da6e11e07faacacb13215cef3f7dac31a862ff809641cb
+DIST stgit-0.17.1.tar.gz 398466 SHA256 d43365a0c22e41a6fb9ba1a86de164d6475e79054e7f33805d6a829eb4056ade SHA512 3efdfb9bc024c3a7c0d74d49e85f157d5d5209c9a2ad0ce63a07138c02fb1580e92ac4a91796e79bbd221e6884317e975f9f44e35db0b484fd916bc67cd61abe WHIRLPOOL a7c4c83cfeace12ced60e846ed9daaffadea3ed201a90e72239e3f8df310164e00ce5a89174df177f89df4a609a66ac35e905f31419ed654081c3ab0c2cba859
diff --git a/dev-vcs/stgit/files/stgit-0.16-asciidoc-compat.patch b/dev-vcs/stgit/files/stgit-0.16-asciidoc-compat.patch
new file mode 100644
index 000000000000..4386953a3ef6
--- /dev/null
+++ b/dev-vcs/stgit/files/stgit-0.16-asciidoc-compat.patch
@@ -0,0 +1,13 @@
+diff -urN stgit-0.16.orig/Documentation/asciidoc.conf stgit-0.16/Documentation/asciidoc.conf
+--- stgit-0.16.orig/Documentation/asciidoc.conf 2012-01-09 13:12:42.000000000 -0800
++++ stgit-0.16/Documentation/asciidoc.conf 2012-07-06 04:31:38.279051055 -0700
+@@ -100,3 +100,9 @@
+ [linkstgsub-inlinemacro]
+ <a href="stg-{target}.html">{target}</a>
+ endif::backend-xhtml11[]
++
++[macros]
++# regexen to match macro templates above
++(?P<name>linkman):(?P<target>\w+)\[(?P<attrlist>\d+)]=
++(?P<name>linkstgsub):(?P<target>\w+)\[]=
++(?P<name>linkstg):(?P<target>\w+)\[]=
diff --git a/dev-vcs/stgit/files/stgit-0.16-man-linkfix.patch b/dev-vcs/stgit/files/stgit-0.16-man-linkfix.patch
new file mode 100644
index 000000000000..83fdb5457879
--- /dev/null
+++ b/dev-vcs/stgit/files/stgit-0.16-man-linkfix.patch
@@ -0,0 +1,11 @@
+--- Documentation/Makefile.old 2012-07-08 23:55:38.958779174 +0200
++++ Documentation/Makefile 2012-07-08 23:56:42.638010483 +0200
+@@ -72,7 +72,7 @@
+ $(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf $(ASCIIDOC_EXTRA) $<
+
+ %.1 : %.xml
+- xmlto -m callouts.xsl man $<
++ xmlto -m callouts.xsl --stringparam man.base.url.for.relative.links=$(htmldir) man $<
+
+ %.xml : %.txt
+ $(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf $<
diff --git a/dev-vcs/stgit/metadata.xml b/dev-vcs/stgit/metadata.xml
new file mode 100644
index 000000000000..6ad69ab1f95c
--- /dev/null
+++ b/dev-vcs/stgit/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>gentoo@necoro.eu</email>
+ <name>René 'Necoro' Neumann</name>
+ <description>Proxy maintainer, assign bugs</description>
+</maintainer>
+<maintainer>
+ <email>dlan@gentoo.org</email>
+ <description>Co maintainer, CC bugs</description>
+</maintainer>
+<maintainer>
+ <email>flameeyes@gentoo.org</email>
+ <description>Proxy/Backup, CC bugs</description>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/stgit/stgit-0.16-r2.ebuild b/dev-vcs/stgit/stgit-0.16-r2.ebuild
new file mode 100644
index 000000000000..e8c311fa9bdb
--- /dev/null
+++ b/dev-vcs/stgit/stgit-0.16-r2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Manage a stack of patches using GIT as a backend"
+HOMEPAGE="http://www.procode.org/stgit/"
+SRC_URI="http://download.gna.org/${PN}/${P}.tar.gz
+ mirror://gentoo/${P}-missing-patches.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND=">=dev-vcs/git-1.6.3.3"
+
+# NOTE: It seems to be quite important which asciidoc version to use.
+# So keep an eye on it for the future.
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ dev-lang/perl
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-asciidoc-compat.patch"
+ "${FILESDIR}/${P}-man-linkfix.patch"
+)
+
+pkg_setup() {
+ if ! use doc; then
+ echo
+ ewarn "Manpages will not be built and installed."
+ ewarn "Enable the 'doc' useflag, if you want them."
+ echo
+ fi
+}
+
+python_prepare_all() {
+ # this will be a noop, as we are working with a tarball,
+ # but throws git errors --> just get rid of it
+ sed -i -e 's/version\.write_builtin_version()//' setup.py || die
+
+ # Workaround hardcoded prefix
+ sed -i -e "/prefix/s|/usr|${EPREFIX}/usr|" setup.cfg || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ emake DESTDIR="${D}" \
+ htmldir="${EPREFIX}/usr/share/doc/${PF}/html/" \
+ mandir="${EPREFIX}/usr/share/man/" \
+ doc
+ fi
+}
+
+python_install_all() {
+ if use doc; then
+ emake DESTDIR="${D}" \
+ htmldir="${EPREFIX}/usr/share/doc/${PF}/html/" \
+ mandir="${EPREFIX}/usr/share/man/" \
+ install-doc install-html
+ fi
+
+ distutils-r1_python_install_all
+
+ newbashcomp stgit-completion.bash 'stg'
+}
diff --git a/dev-vcs/stgit/stgit-0.17.1-r1.ebuild b/dev-vcs/stgit/stgit-0.17.1-r1.ebuild
new file mode 100644
index 000000000000..db043fb1ef70
--- /dev/null
+++ b/dev-vcs/stgit/stgit-0.17.1-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=( python2_7 )
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Manage a stack of patches using GIT as a backend"
+HOMEPAGE="http://www.procode.org/stgit/"
+UPSTREAM_VER=0
+[[ -n ${UPSTREAM_VER} ]] && \
+ UPSTREAM_PATCHSET_URI="http://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+
+SRC_URI="http://download.gna.org/${PN}/${P}.tar.gz
+ ${UPSTREAM_PATCHSET_URI}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+RDEPEND=">=dev-vcs/git-1.6.3.3"
+
+# NOTE: It seems to be quite important which asciidoc version to use.
+# So keep an eye on it for the future.
+DEPEND="${RDEPEND}
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ dev-lang/perl
+ )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.16-man-linkfix.patch"
+)
+
+pkg_setup() {
+ if ! use doc; then
+ echo
+ ewarn "Manpages will not be built and installed."
+ ewarn "Enable the 'doc' useflag, if you want them."
+ echo
+ fi
+}
+
+python_prepare_all() {
+ # Upstream's patchset
+ if [[ -n ${UPSTREAM_VER} ]]; then
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}"/patches-upstream
+ fi
+
+ # this will be a noop, as we are working with a tarball,
+ # but throws git errors --> just get rid of it
+ sed -i -e 's/version\.write_builtin_version()//' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ # bug 526468
+ if use doc; then
+ emake DESTDIR="${D}" \
+ htmldir="${EPREFIX}/usr/share/doc/${PF}/html/" \
+ mandir="${EPREFIX}/usr/share/man/" \
+ doc
+ fi
+}
+
+src_install() {
+ if use doc; then
+ emake DESTDIR="${D}" \
+ htmldir="${EPREFIX}/usr/share/doc/${PF}/html/" \
+ mandir="${EPREFIX}/usr/share/man/" \
+ install-doc install-html
+ fi
+
+ distutils-r1_src_install
+
+ newbashcomp stgit-completion.bash 'stg'
+}
diff --git a/dev-vcs/subversion/Manifest b/dev-vcs/subversion/Manifest
new file mode 100644
index 000000000000..5e33930ac5ff
--- /dev/null
+++ b/dev-vcs/subversion/Manifest
@@ -0,0 +1,5 @@
+DIST subversion-1.7.20.tar.bz2 6014383 SHA256 0d16f62d2ed1a152e26f8194ac3eb889ef9f1a1716959a43115266e8baa50068 SHA512 ea7cdfa0ac489cf62a9c5a05a651d541f383b6487beabe0fb0d972b86888812b25831ac54dda18c4fc37e80168f0c3bc9a5441ed6e94f59691b35dd33ed2631f WHIRLPOOL 7de4efff69ac2f63257d444e92d4f432ac61a6a2be9feb2969fd1b5fd69189dde5566067742d70883a7d40283d131886879e8ebc13c9faf352d1942b4f1d17e9
+DIST subversion-1.7.21.tar.bz2 5996788 SHA256 efeb349c5ba6d529ff8e9730a2abd9cb70f276b249238a6b7f27ba7da1190620 SHA512 d0ba3f0771c523b44efd2f12c1d101d720b7d834bc6bef12b8e47789a2fb76a2d399c041c1cdcd0e04411c29abfb9b2974ca9df6f2389f8a01d82e7738881975 WHIRLPOOL 0d12286ab0e5043f28622529ff5d2af5a1c8a61ef65227cc069cf93de35479bf79433fa201417456499fa16f11b03474127b66547b9c2e2a8c0d209fa2108e59
+DIST subversion-1.8.13.tar.bz2 6863330 SHA256 1099cc68840753b48aedb3a27ebd1e2afbcc84ddb871412e5d500e843d607579 SHA512 5b145888fdd294b871066483f9cc5af811aadd88c537c3859b005b73efaf66bd8d5c7c4dc6562897c00331be2ddfd834688a90eb5c229bc6625ab3c45c02045f WHIRLPOOL d79c71385e21ee3254a798687fd1de3e01a1577287b03d9a0f87e0a31621501e749ee9b37f40c59cb206fc68ba9968132e724f3c4a12c7aa8d5aa59d66a4ade4
+DIST subversion-1.8.14.tar.bz2 6850562 SHA256 7f3883cdfcad4174e06dd94d6e3e8ec91856823268eebe60c924be76f5229a1f SHA512 95e1501494f5355f0c331fbe81422ca8f0b4d69e6d303125f4a5aac5f6fe946e958ca76fc96fe6b096cc0a530634ca103bf35622c12af90489ae17d0b9a9d987 WHIRLPOOL 0323746d40830109e081e002f499f1c73c15fe77acd4f1c9b790ae12440b3361d189f1d5212d49ba6f6c449297aec3513761375f748800686892607705310a56
+DIST subversion-1.9.0.tar.bz2 7743404 SHA256 fcb11db07e132cac6c72a969e222a592f849ef34dd8bd1c2f99fa1ad267a3fe6 SHA512 3f1100802cd11f268a5247f5eebd9be9a8a15488fab3e396c4e0364abbaadd611bbcccc0a5d4c6ca3eee3911e70f2cec0ff660259bb225be47f1909fd6367b3e WHIRLPOOL dc2875ee6fa911babdac86455b67af618056d72a709170666e21e826bb3a465a60f9e5b5df02170107208cbded4aecd49cb7e805d3713c671dabfb884f7abbb7
diff --git a/dev-vcs/subversion/files/47_mod_dav_svn.conf b/dev-vcs/subversion/files/47_mod_dav_svn.conf
new file mode 100644
index 000000000000..52d08b7ab558
--- /dev/null
+++ b/dev-vcs/subversion/files/47_mod_dav_svn.conf
@@ -0,0 +1,16 @@
+<IfDefine SVN>
+LoadModule dav_svn_module modules/mod_dav_svn.so
+<IfDefine SVN_AUTHZ>
+LoadModule authz_svn_module modules/mod_authz_svn.so
+</IfDefine>
+
+# Example configuration:
+#<Location /svn/repos>
+# DAV svn
+# SVNPath ${SVN_REPOS_LOC}/repos
+# AuthType Basic
+# AuthName "Subversion repository"
+# AuthUserFile ${SVN_REPOS_LOC}/conf/svnusers
+# Require valid-user
+#</Location>
+</IfDefine>
diff --git a/dev-vcs/subversion/files/70svn-gentoo.el b/dev-vcs/subversion/files/70svn-gentoo.el
new file mode 100644
index 000000000000..e5721e2480c1
--- /dev/null
+++ b/dev-vcs/subversion/files/70svn-gentoo.el
@@ -0,0 +1,13 @@
+
+;;; subversion site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+(and (< emacs-major-version 22)
+ (add-to-list 'load-path "@SITELISP@/compat"))
+(add-to-list 'vc-handled-backends 'SVN)
+
+(defalias 'svn-examine 'svn-status)
+(autoload 'svn-status "dsvn" "Run `svn status'." t)
+(autoload 'svn-update "dsvn" "Run `svn update'." t)
+(autoload 'svn-status "psvn"
+ "Examine the status of Subversion working copy in directory DIR." t)
diff --git a/dev-vcs/subversion/files/subversion-1.5.4-interix.patch b/dev-vcs/subversion/files/subversion-1.5.4-interix.patch
new file mode 100644
index 000000000000..53ef6960c9f3
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.5.4-interix.patch
@@ -0,0 +1,114 @@
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:22:36 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:52:31 +0100
+@@ -49,6 +49,11 @@
+ # endif
+ #endif
+
++// This is bad, but better than nothing ;)
++#if defined(__INTERIX)
++# define strtoll strtol
++#endif
++
+
+
+ #if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c subversion-1.5.4/subversion/bindings/swig/perl/native/core.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:53:40 +0100
+@@ -1733,7 +1733,10 @@
+ # endif
+ #endif
+
+-
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:54:17 +0100
+@@ -1872,6 +1872,10 @@
+ #endif
+
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:54:28 +0100
+@@ -1745,6 +1745,10 @@
+ #endif
+
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:54:41 +0100
+@@ -1818,6 +1818,10 @@
+ #endif
+
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:54:52 +0100
+@@ -1661,6 +1661,10 @@
+ # endif
+ #endif
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:55:05 +0100
+@@ -1792,6 +1792,10 @@
+ #endif
+
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
+diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c
+--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:22:37 +0100
++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:55:17 +0100
+@@ -1816,6 +1816,10 @@
+ #endif
+
+
++#ifdef __INTERIX
++# define strtoull strtoul
++# define strtoll strtol
++#endif
+
+ SWIGINTERN int
+ SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff --git a/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch b/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch
new file mode 100644
index 000000000000..49c6162d1212
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch
@@ -0,0 +1,21 @@
+On AIX, load shared libraries even when created with full aix-soname support:
+http://lists.gnu.org/archive/html/libtool/2011-01/msg00023.html
+http://lists.gnu.org/archive/html/libtool/2011-02/msg00000.html
+Once there is an agreement on that, this patch eventually is for upstream too.
+
+--- subversion/libsvn_ra/ra_loader.c.orig 2009-04-28 14:53:35 +0200
++++ subversion/libsvn_ra/ra_loader.c 2009-04-28 14:55:37 +0200
+@@ -164,6 +164,13 @@
+
+ /* find/load the specified library */
+ SVN_ERR(svn_dso_load(&dso, libname));
++#ifdef _AIX
++ if (! dso) {
++ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0(shr.o)",
++ ra_name, SVN_VER_MAJOR);
++ SVN_ERR(svn_dso_load(&dso, libname));
++ }
++#endif
+ if (! dso)
+ return SVN_NO_ERROR;
+
diff --git a/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch b/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch
new file mode 100644
index 000000000000..f9739bef3061
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch
@@ -0,0 +1,16 @@
+--- subversion/libsvn_ra/ra_loader.c.orig 2009-07-20 14:46:02 +0200
++++ subversion/libsvn_ra/ra_loader.c 2009-07-20 14:50:02 +0200
+@@ -154,8 +154,13 @@
+ const char *compat_funcname;
+ apr_status_t status;
+
++#if defined(__hpux) && defined(__hppa)
++ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.sl.0",
++ ra_name, SVN_VER_MAJOR);
++#else
+ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0",
+ ra_name, SVN_VER_MAJOR);
++#endif
+ funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name);
+ compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name);
+
diff --git a/dev-vcs/subversion/files/subversion-1.8.0-hpux-dso.patch b/dev-vcs/subversion/files/subversion-1.8.0-hpux-dso.patch
new file mode 100644
index 000000000000..80e5563672c7
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.8.0-hpux-dso.patch
@@ -0,0 +1,16 @@
+--- subversion-1.8.0/subversion/libsvn_ra/ra_loader.c
++++ subversion-1.8.0/subversion/libsvn_ra/ra_loader.c
+@@ -141,8 +141,13 @@
+ const char *compat_funcname;
+ apr_status_t status;
+
++#if defined(__hpux) && defined(__hppa)
++ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.sl.%d",
++ ra_name, SVN_VER_MAJOR, SVN_SOVERSION);
++#else
+ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.%d",
+ ra_name, SVN_VER_MAJOR, SVN_SOVERSION);
++#endif
+ funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name);
+ compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name);
+
diff --git a/dev-vcs/subversion/files/subversion-1.8.1-revert_bdb6check.patch b/dev-vcs/subversion/files/subversion-1.8.1-revert_bdb6check.patch
new file mode 100644
index 000000000000..158c08233165
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.8.1-revert_bdb6check.patch
@@ -0,0 +1,85 @@
+--- subversion-1.8.1/build/ac-macros/berkeley-db.m4
++++ subversion-1.8.1/build/ac-macros/berkeley-db.m4
+@@ -48,7 +48,7 @@
+ AC_ARG_WITH(berkeley-db, [AS_HELP_STRING(
+ [[--with-berkeley-db[=HEADER:INCLUDES:LIB_SEARCH_DIRS:LIBS]]], [
+ The Subversion Berkeley DB based filesystem library
+- requires Berkeley DB $db_version or $db_alt_version. If you
++ requires Berkeley DB $db_version or newer. If you
+ specify `--without-berkeley-db', that library will
+ not be built. If you omit the argument of this option
+ completely, the configure script will use Berkeley DB
+@@ -126,35 +126,22 @@
+ svn_lib_berkeley_db=no
+ else
+ AC_MSG_CHECKING([for availability of Berkeley DB])
+- AC_ARG_ENABLE(bdb6,
+- AS_HELP_STRING([--enable-bdb6],
+- [Allow building against BDB 6+.
+- See --with-berkeley-db for specifying the location of
+- the Berkeley DB installation. Using BDB 6 will fail if
+- this option is not used.]),
+- [enable_bdb6=$enableval],[enable_bdb6=unspecified])
+-
+- SVN_LIB_BERKELEY_DB_TRY($1, $2, $3, $enable_bdb6)
++ SVN_LIB_BERKELEY_DB_TRY($1, $2, $3)
+ if test "$svn_have_berkeley_db" = "yes"; then
+ AC_MSG_RESULT([yes])
+ svn_lib_berkeley_db=yes
+ else
+- if test "$svn_have_berkeley_db" = "no6"; then
+- AC_MSG_RESULT([no (found version 6, but --enable-bdb6 not specified)])
+- # A warning will be printed at the end of configure.ac.
+- else
+- AC_MSG_RESULT([no])
+- fi
++ AC_MSG_RESULT([no])
+ svn_lib_berkeley_db=no
+ if test "$bdb_status" = "required"; then
+- AC_MSG_ERROR([Berkeley DB $db_version or $db_alt_version wasn't found.])
++ AC_MSG_ERROR([Berkeley DB $db_version or newer't found.])
+ fi
+ fi
+ fi
+ ])
+
+
+-dnl SVN_LIB_BERKELEY_DB_TRY(major, minor, patch, enable_bdb6)
++dnl SVN_LIB_BERKELEY_DB_TRY(major, minor, patch)
+ dnl
+ dnl A subroutine of SVN_LIB_BERKELEY_DB.
+ dnl
+@@ -187,7 +174,6 @@
+ svn_check_berkeley_db_major=$1
+ svn_check_berkeley_db_minor=$2
+ svn_check_berkeley_db_patch=$3
+- enable_bdb6=$4
+
+ if test -z "$SVN_DB_LIBS"; then
+ # We pass --dbm-libs here since Debian has modified apu-config not
+@@ -245,12 +231,6 @@
+ || patch != DB_VERSION_PATCH)
+ exit (1);
+
+- /* Block Berkeley DB 6, because (a) we haven't tested with it, (b) 6.0.20
+- and newer are under the AGPL, and we want use of AGPL dependencies to be
+- opt-in. */
+- if (major >= 6 && strcmp("$enable_bdb6", "yes"))
+- exit(2);
+-
+ /* Run-time check: ensure the library claims to be the correct version. */
+
+ if (major < $svn_check_berkeley_db_major)
+@@ -270,11 +250,7 @@
+ }
+ ]])],
+ [svn_have_berkeley_db=yes],
+- [rc=$?
+- svn_have_berkeley_db=no
+- if test $rc = 2; then
+- svn_have_berkeley_db=no6
+- fi],
++ [svn_have_berkeley_db=no],
+ [svn_have_berkeley_db=yes]
+ )
+
diff --git a/dev-vcs/subversion/files/subversion-1.8.5-swig-python-no-gnome-keyring.patch b/dev-vcs/subversion/files/subversion-1.8.5-swig-python-no-gnome-keyring.patch
new file mode 100644
index 000000000000..9feccfbe0481
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-1.8.5-swig-python-no-gnome-keyring.patch
@@ -0,0 +1,495 @@
+https://trac.macports.org/browser/trunk/dports/devel/subversion-python27bindings/files/patch-swig-python-core.diff
+
+diff -u -d -b -w -r subversion-1.8.0-orig/subversion/bindings/swig/python/core.c subversion-1.8.0-python/subversion/bindings/swig/python/core.c
+--- subversion/bindings/swig/python/core.c 2013-06-13 05:07:20.000000000 -0400
++++ subversion/bindings/swig/python/core.c 2013-07-12 16:11:05.000000000 -0400
+@@ -2958,140 +2958,139 @@
+ #define SWIGTYPE_p_apr_size_t swig_types[15]
+ #define SWIGTYPE_p_char swig_types[16]
+ #define SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[17]
+-#define SWIGTYPE_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[18]
+-#define SWIGTYPE_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void swig_types[19]
+-#define SWIGTYPE_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[20]
+-#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[21]
+-#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_client_cert_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[22]
+-#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_server_trust_t_p_void_p_q_const__char_apr_uint32_t_p_q_const__svn_auth_ssl_server_cert_info_t_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[23]
+-#define SWIGTYPE_p_f_p_p_svn_auth_cred_username_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[24]
+-#define SWIGTYPE_p_f_p_p_svn_stream_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[25]
+-#define SWIGTYPE_p_f_p_p_void_p_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[26]
+-#define SWIGTYPE_p_f_p_p_void_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[27]
+-#define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__int swig_types[28]
+-#define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void_p_apr_pool_t__int swig_types[29]
+-#define SWIGTYPE_p_f_p_q_const__char_p_void__int swig_types[30]
+-#define SWIGTYPE_p_f_p_q_const__char_p_void_p_apr_pool_t__int swig_types[31]
+-#define SWIGTYPE_p_f_p_q_const__svn_commit_info_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[32]
+-#define SWIGTYPE_p_f_p_svn_boolean_t_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[33]
+-#define SWIGTYPE_p_f_p_svn_boolean_t_p_void_p_q_const__char_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[34]
+-#define SWIGTYPE_p_f_p_svn_boolean_t_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[35]
+-#define SWIGTYPE_p_f_p_svn_location_segment_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[36]
+-#define SWIGTYPE_p_f_p_void__p_svn_error_t swig_types[37]
+-#define SWIGTYPE_p_f_p_void_apr_size_t__p_svn_error_t swig_types[38]
+-#define SWIGTYPE_p_f_p_void_p_apr_hash_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[39]
+-#define SWIGTYPE_p_f_p_void_p_char_p_apr_size_t__p_svn_error_t swig_types[40]
+-#define SWIGTYPE_p_f_p_void_p_p_svn_stream_mark_t_p_apr_pool_t__p_svn_error_t swig_types[41]
+-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_size_t__p_svn_error_t swig_types[42]
+-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__apr_finfo_t_p_apr_pool_t__p_svn_error_t swig_types[43]
+-#define SWIGTYPE_p_f_p_void_p_q_const__svn_stream_mark_t__p_svn_error_t swig_types[44]
+-#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[45]
+-#define SWIGTYPE_p_f_svn_revnum_t_p_q_const__char_p_q_const__char_p_void__p_svn_error_t swig_types[46]
+-#define SWIGTYPE_p_f_void__p_svn_version_t swig_types[47]
+-#define SWIGTYPE_p_int swig_types[48]
+-#define SWIGTYPE_p_long swig_types[49]
+-#define SWIGTYPE_p_p_apr_array_header_t swig_types[50]
+-#define SWIGTYPE_p_p_apr_file_t swig_types[51]
+-#define SWIGTYPE_p_p_apr_hash_t swig_types[52]
+-#define SWIGTYPE_p_p_char swig_types[53]
+-#define SWIGTYPE_p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[54]
+-#define SWIGTYPE_p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void swig_types[55]
+-#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[56]
+-#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[57]
+-#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_client_cert_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[58]
+-#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_server_trust_t_p_void_p_q_const__char_apr_uint32_t_p_q_const__svn_auth_ssl_server_cert_info_t_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[59]
+-#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_username_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[60]
+-#define SWIGTYPE_p_p_f_p_p_svn_stream_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[61]
+-#define SWIGTYPE_p_p_f_p_q_const__char_p_q_const__char_p_void__int swig_types[62]
+-#define SWIGTYPE_p_p_f_p_q_const__char_p_q_const__char_p_void_p_apr_pool_t__int swig_types[63]
+-#define SWIGTYPE_p_p_f_p_q_const__char_p_void__int swig_types[64]
+-#define SWIGTYPE_p_p_f_p_q_const__char_p_void_p_apr_pool_t__int swig_types[65]
+-#define SWIGTYPE_p_p_f_p_q_const__svn_commit_info_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[66]
+-#define SWIGTYPE_p_p_f_p_svn_boolean_t_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[67]
+-#define SWIGTYPE_p_p_f_p_svn_boolean_t_p_void_p_q_const__char_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[68]
+-#define SWIGTYPE_p_p_f_p_svn_location_segment_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[69]
+-#define SWIGTYPE_p_p_f_p_void__p_svn_error_t swig_types[70]
+-#define SWIGTYPE_p_p_f_p_void_apr_size_t__p_svn_error_t swig_types[71]
+-#define SWIGTYPE_p_p_f_p_void_p_apr_hash_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[72]
+-#define SWIGTYPE_p_p_f_p_void_p_char_p_apr_size_t__p_svn_error_t swig_types[73]
+-#define SWIGTYPE_p_p_f_p_void_p_p_svn_stream_mark_t_p_apr_pool_t__p_svn_error_t swig_types[74]
+-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_size_t__p_svn_error_t swig_types[75]
+-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__apr_finfo_t_p_apr_pool_t__p_svn_error_t swig_types[76]
+-#define SWIGTYPE_p_p_f_p_void_p_q_const__svn_stream_mark_t__p_svn_error_t swig_types[77]
+-#define SWIGTYPE_p_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[78]
+-#define SWIGTYPE_p_p_f_svn_revnum_t_p_q_const__char_p_q_const__char_p_void__p_svn_error_t swig_types[79]
+-#define SWIGTYPE_p_p_f_void__p_svn_version_t swig_types[80]
+-#define SWIGTYPE_p_p_svn_auth_baton_t swig_types[81]
+-#define SWIGTYPE_p_p_svn_auth_cred_simple_t swig_types[82]
+-#define SWIGTYPE_p_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[83]
+-#define SWIGTYPE_p_p_svn_auth_cred_ssl_client_cert_t swig_types[84]
+-#define SWIGTYPE_p_p_svn_auth_cred_ssl_server_trust_t swig_types[85]
+-#define SWIGTYPE_p_p_svn_auth_cred_username_t swig_types[86]
+-#define SWIGTYPE_p_p_svn_auth_iterstate_t swig_types[87]
+-#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[88]
+-#define SWIGTYPE_p_p_svn_checksum_t swig_types[89]
+-#define SWIGTYPE_p_p_svn_config_t swig_types[90]
+-#define SWIGTYPE_p_p_svn_io_dirent2_t swig_types[91]
+-#define SWIGTYPE_p_p_svn_stream_mark_t swig_types[92]
+-#define SWIGTYPE_p_p_svn_stream_t swig_types[93]
+-#define SWIGTYPE_p_p_svn_string_t swig_types[94]
+-#define SWIGTYPE_p_p_svn_stringbuf_t swig_types[95]
+-#define SWIGTYPE_p_p_void swig_types[96]
+-#define SWIGTYPE_p_svn_auth_baton_t swig_types[97]
+-#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[98]
+-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[99]
+-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[100]
+-#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[101]
+-#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[102]
+-#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[103]
+-#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[104]
+-#define SWIGTYPE_p_svn_auth_provider_t swig_types[105]
+-#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[106]
+-#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[107]
+-#define SWIGTYPE_p_svn_checksum_kind_t swig_types[108]
+-#define SWIGTYPE_p_svn_checksum_t swig_types[109]
+-#define SWIGTYPE_p_svn_commit_info_t swig_types[110]
+-#define SWIGTYPE_p_svn_config_t swig_types[111]
+-#define SWIGTYPE_p_svn_depth_t swig_types[112]
+-#define SWIGTYPE_p_svn_dirent_t swig_types[113]
+-#define SWIGTYPE_p_svn_errno_t swig_types[114]
+-#define SWIGTYPE_p_svn_error_t swig_types[115]
+-#define SWIGTYPE_p_svn_io_dirent2_t swig_types[116]
+-#define SWIGTYPE_p_svn_io_dirent_t swig_types[117]
+-#define SWIGTYPE_p_svn_io_file_del_t swig_types[118]
+-#define SWIGTYPE_p_svn_location_segment_t swig_types[119]
+-#define SWIGTYPE_p_svn_lock_t swig_types[120]
+-#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[121]
+-#define SWIGTYPE_p_svn_log_changed_path_t swig_types[122]
+-#define SWIGTYPE_p_svn_log_entry_t swig_types[123]
+-#define SWIGTYPE_p_svn_merge_range_t swig_types[124]
+-#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[125]
+-#define SWIGTYPE_p_svn_node_kind_t swig_types[126]
+-#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[127]
+-#define SWIGTYPE_p_svn_opt_revision_t swig_types[128]
+-#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[129]
+-#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[130]
+-#define SWIGTYPE_p_svn_opt_subcommand_desc2_t_desc_overrides swig_types[131]
+-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[132]
+-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[133]
+-#define SWIGTYPE_p_svn_prop_kind swig_types[134]
+-#define SWIGTYPE_p_svn_prop_t swig_types[135]
+-#define SWIGTYPE_p_svn_stream_mark_t swig_types[136]
+-#define SWIGTYPE_p_svn_stream_t swig_types[137]
+-#define SWIGTYPE_p_svn_string_t swig_types[138]
+-#define SWIGTYPE_p_svn_stringbuf_t swig_types[139]
+-#define SWIGTYPE_p_svn_tristate_t swig_types[140]
+-#define SWIGTYPE_p_svn_version_checklist_t swig_types[141]
+-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[142]
+-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[143]
+-#define SWIGTYPE_p_svn_version_extended_t swig_types[144]
+-#define SWIGTYPE_p_svn_version_t swig_types[145]
+-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[146]
+-#define SWIGTYPE_p_unsigned_char swig_types[147]
+-#define SWIGTYPE_p_unsigned_long swig_types[148]
+-#define SWIGTYPE_p_void swig_types[149]
+-static swig_type_info *swig_types[151];
+-static swig_module_info swig_module = {swig_types, 150, 0, 0, 0, 0};
++#define SWIGTYPE_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void swig_types[18]
++#define SWIGTYPE_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[19]
++#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[20]
++#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_client_cert_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[21]
++#define SWIGTYPE_p_f_p_p_svn_auth_cred_ssl_server_trust_t_p_void_p_q_const__char_apr_uint32_t_p_q_const__svn_auth_ssl_server_cert_info_t_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[22]
++#define SWIGTYPE_p_f_p_p_svn_auth_cred_username_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[23]
++#define SWIGTYPE_p_f_p_p_svn_stream_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[24]
++#define SWIGTYPE_p_f_p_p_void_p_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[25]
++#define SWIGTYPE_p_f_p_p_void_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[26]
++#define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__int swig_types[27]
++#define SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void_p_apr_pool_t__int swig_types[28]
++#define SWIGTYPE_p_f_p_q_const__char_p_void__int swig_types[29]
++#define SWIGTYPE_p_f_p_q_const__char_p_void_p_apr_pool_t__int swig_types[30]
++#define SWIGTYPE_p_f_p_q_const__svn_commit_info_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[31]
++#define SWIGTYPE_p_f_p_svn_boolean_t_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[32]
++#define SWIGTYPE_p_f_p_svn_boolean_t_p_void_p_q_const__char_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[33]
++#define SWIGTYPE_p_f_p_svn_boolean_t_p_void_p_void_p_apr_hash_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
++#define SWIGTYPE_p_f_p_svn_location_segment_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[35]
++#define SWIGTYPE_p_f_p_void__p_svn_error_t swig_types[36]
++#define SWIGTYPE_p_f_p_void_apr_size_t__p_svn_error_t swig_types[37]
++#define SWIGTYPE_p_f_p_void_p_apr_hash_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[38]
++#define SWIGTYPE_p_f_p_void_p_char_p_apr_size_t__p_svn_error_t swig_types[39]
++#define SWIGTYPE_p_f_p_void_p_p_svn_stream_mark_t_p_apr_pool_t__p_svn_error_t swig_types[40]
++#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_size_t__p_svn_error_t swig_types[41]
++#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__apr_finfo_t_p_apr_pool_t__p_svn_error_t swig_types[42]
++#define SWIGTYPE_p_f_p_void_p_q_const__svn_stream_mark_t__p_svn_error_t swig_types[43]
++#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[44]
++#define SWIGTYPE_p_f_svn_revnum_t_p_q_const__char_p_q_const__char_p_void__p_svn_error_t swig_types[45]
++#define SWIGTYPE_p_f_void__p_svn_version_t swig_types[46]
++#define SWIGTYPE_p_int swig_types[47]
++#define SWIGTYPE_p_long swig_types[48]
++#define SWIGTYPE_p_p_apr_array_header_t swig_types[49]
++#define SWIGTYPE_p_p_apr_file_t swig_types[50]
++#define SWIGTYPE_p_p_apr_hash_t swig_types[51]
++#define SWIGTYPE_p_p_char swig_types[52]
++#define SWIGTYPE_p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void swig_types[53]
++#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[54]
++#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[55]
++#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_client_cert_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[56]
++#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_ssl_server_trust_t_p_void_p_q_const__char_apr_uint32_t_p_q_const__svn_auth_ssl_server_cert_info_t_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[57]
++#define SWIGTYPE_p_p_f_p_p_svn_auth_cred_username_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[58]
++#define SWIGTYPE_p_p_f_p_p_svn_stream_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[59]
++#define SWIGTYPE_p_p_f_p_q_const__char_p_q_const__char_p_void__int swig_types[60]
++#define SWIGTYPE_p_p_f_p_q_const__char_p_q_const__char_p_void_p_apr_pool_t__int swig_types[61]
++#define SWIGTYPE_p_p_f_p_q_const__char_p_void__int swig_types[62]
++#define SWIGTYPE_p_p_f_p_q_const__char_p_void_p_apr_pool_t__int swig_types[63]
++#define SWIGTYPE_p_p_f_p_q_const__svn_commit_info_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[64]
++#define SWIGTYPE_p_p_f_p_svn_boolean_t_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t swig_types[65]
++#define SWIGTYPE_p_p_f_p_svn_boolean_t_p_void_p_q_const__char_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[66]
++#define SWIGTYPE_p_p_f_p_svn_location_segment_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[67]
++#define SWIGTYPE_p_p_f_p_void__p_svn_error_t swig_types[68]
++#define SWIGTYPE_p_p_f_p_void_apr_size_t__p_svn_error_t swig_types[69]
++#define SWIGTYPE_p_p_f_p_void_p_apr_hash_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[70]
++#define SWIGTYPE_p_p_f_p_void_p_char_p_apr_size_t__p_svn_error_t swig_types[71]
++#define SWIGTYPE_p_p_f_p_void_p_p_svn_stream_mark_t_p_apr_pool_t__p_svn_error_t swig_types[72]
++#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_size_t__p_svn_error_t swig_types[73]
++#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__apr_finfo_t_p_apr_pool_t__p_svn_error_t swig_types[74]
++#define SWIGTYPE_p_p_f_p_void_p_q_const__svn_stream_mark_t__p_svn_error_t swig_types[75]
++#define SWIGTYPE_p_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[76]
++#define SWIGTYPE_p_p_f_svn_revnum_t_p_q_const__char_p_q_const__char_p_void__p_svn_error_t swig_types[77]
++#define SWIGTYPE_p_p_f_void__p_svn_version_t swig_types[78]
++#define SWIGTYPE_p_p_svn_auth_baton_t swig_types[79]
++#define SWIGTYPE_p_p_svn_auth_cred_simple_t swig_types[80]
++#define SWIGTYPE_p_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[81]
++#define SWIGTYPE_p_p_svn_auth_cred_ssl_client_cert_t swig_types[82]
++#define SWIGTYPE_p_p_svn_auth_cred_ssl_server_trust_t swig_types[83]
++#define SWIGTYPE_p_p_svn_auth_cred_username_t swig_types[84]
++#define SWIGTYPE_p_p_svn_auth_iterstate_t swig_types[85]
++#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[86]
++#define SWIGTYPE_p_p_svn_checksum_t swig_types[87]
++#define SWIGTYPE_p_p_svn_config_t swig_types[88]
++#define SWIGTYPE_p_p_svn_io_dirent2_t swig_types[89]
++#define SWIGTYPE_p_p_svn_stream_mark_t swig_types[90]
++#define SWIGTYPE_p_p_svn_stream_t swig_types[91]
++#define SWIGTYPE_p_p_svn_string_t swig_types[92]
++#define SWIGTYPE_p_p_svn_stringbuf_t swig_types[93]
++#define SWIGTYPE_p_p_void swig_types[94]
++#define SWIGTYPE_p_svn_auth_baton_t swig_types[95]
++#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[96]
++#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[97]
++#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[98]
++#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[99]
++#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[100]
++#define SWIGTYPE_p_svn_auth_gnome_keyring_unlock_prompt_func_t swig_types[101]
++#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[102]
++#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[103]
++#define SWIGTYPE_p_svn_auth_provider_t swig_types[104]
++#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[105]
++#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[106]
++#define SWIGTYPE_p_svn_checksum_kind_t swig_types[107]
++#define SWIGTYPE_p_svn_checksum_t swig_types[108]
++#define SWIGTYPE_p_svn_commit_info_t swig_types[109]
++#define SWIGTYPE_p_svn_config_t swig_types[110]
++#define SWIGTYPE_p_svn_depth_t swig_types[111]
++#define SWIGTYPE_p_svn_dirent_t swig_types[112]
++#define SWIGTYPE_p_svn_errno_t swig_types[113]
++#define SWIGTYPE_p_svn_error_t swig_types[114]
++#define SWIGTYPE_p_svn_io_dirent2_t swig_types[115]
++#define SWIGTYPE_p_svn_io_dirent_t swig_types[116]
++#define SWIGTYPE_p_svn_io_file_del_t swig_types[117]
++#define SWIGTYPE_p_svn_location_segment_t swig_types[118]
++#define SWIGTYPE_p_svn_lock_t swig_types[119]
++#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[120]
++#define SWIGTYPE_p_svn_log_changed_path_t swig_types[121]
++#define SWIGTYPE_p_svn_log_entry_t swig_types[122]
++#define SWIGTYPE_p_svn_merge_range_t swig_types[123]
++#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[124]
++#define SWIGTYPE_p_svn_node_kind_t swig_types[125]
++#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[126]
++#define SWIGTYPE_p_svn_opt_revision_t swig_types[127]
++#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[128]
++#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[129]
++#define SWIGTYPE_p_svn_opt_subcommand_desc2_t_desc_overrides swig_types[130]
++#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[131]
++#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[132]
++#define SWIGTYPE_p_svn_prop_kind swig_types[133]
++#define SWIGTYPE_p_svn_prop_t swig_types[134]
++#define SWIGTYPE_p_svn_stream_mark_t swig_types[135]
++#define SWIGTYPE_p_svn_stream_t swig_types[136]
++#define SWIGTYPE_p_svn_string_t swig_types[137]
++#define SWIGTYPE_p_svn_stringbuf_t swig_types[138]
++#define SWIGTYPE_p_svn_tristate_t swig_types[139]
++#define SWIGTYPE_p_svn_version_checklist_t swig_types[140]
++#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[141]
++#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[142]
++#define SWIGTYPE_p_svn_version_extended_t swig_types[143]
++#define SWIGTYPE_p_svn_version_t swig_types[144]
++#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[145]
++#define SWIGTYPE_p_unsigned_char swig_types[146]
++#define SWIGTYPE_p_unsigned_long swig_types[147]
++#define SWIGTYPE_p_void swig_types[148]
++static swig_type_info *swig_types[150];
++static swig_module_info swig_module = {swig_types, 149, 0, 0, 0, 0};
+ #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
+ #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
+
+@@ -3834,29 +3833,6 @@
+
+
+
+-/* Helper function to set the gnome-keyring unlock prompt function. This
+- * C function accepts an auth baton, a function and a prompt baton, but
+- * the below callback_typemap uses both the function and the prompt
+- * baton, so the resulting binding has just two arguments: The auth
+- * baton and the prompt function.
+- * The prompt function should again have two arguments: The keyring name
+- * (string) and a pool (except for the ruby version, which doesn't have
+- * the pool argument). It should return the entered password (string).
+- * This binding generated for this function generates a reference to the
+- * prompt function that was passed into this. The caller should store
+- * that reference somewhere, to prevent the function from being garbage
+- * collected...
+- */
+-static void svn_auth_set_gnome_keyring_unlock_prompt_func(svn_auth_baton_t *ab,
+- svn_auth_gnome_keyring_unlock_prompt_func_t prompt_func,
+- void *prompt_baton) {
+- svn_auth_set_parameter(ab, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
+- prompt_func);
+- svn_auth_set_parameter(ab, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
+- prompt_baton);
+-}
+-
+-
+ static svn_error_t *
+ svn_swig_mergeinfo_merge(apr_hash_t **mergeinfo_inout,
+ apr_hash_t *changes,
+@@ -17674,7 +17650,7 @@
+ SWIGINTERN PyObject *svn_auth_gnome_keyring_unlock_prompt_func_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+- SWIG_TypeNewClientData(SWIGTYPE_p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t, SWIG_NewClientData(obj));
++ SWIG_TypeNewClientData(SWIGTYPE_p_svn_auth_gnome_keyring_unlock_prompt_func_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+ }
+
+@@ -32562,40 +32538,6 @@
+ return SWIG_Py_Void();
+ }
+
+-SWIGINTERN PyObject *_wrap_svn_auth_set_gnome_keyring_unlock_prompt_func(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+- PyObject *resultobj = 0;
+- svn_auth_baton_t *arg1 = (svn_auth_baton_t *) 0 ;
+- svn_auth_gnome_keyring_unlock_prompt_func_t arg2 = (svn_auth_gnome_keyring_unlock_prompt_func_t) 0 ;
+- void *arg3 = (void *) 0 ;
+- PyObject * obj0 = 0 ;
+- PyObject * obj1 = 0 ;
+-
+- if (!PyArg_ParseTuple(args,(char *)"OO:svn_auth_set_gnome_keyring_unlock_prompt_func",&obj0,&obj1)) SWIG_fail;
+- {
+- arg1 = (svn_auth_baton_t *)svn_swig_MustGetPtr(obj0, SWIGTYPE_p_svn_auth_baton_t, svn_argnum_obj0);
+- if (PyErr_Occurred()) {
+- SWIG_fail;
+- }
+- }
+- {
+- arg2 = svn_swig_py_auth_gnome_keyring_unlock_prompt_func;
+- arg3 = obj1;
+- }
+- {
+- svn_swig_py_release_py_lock();
+-
+- svn_auth_set_gnome_keyring_unlock_prompt_func(arg1,arg2,arg3);
+-
+- svn_swig_py_acquire_py_lock();
+-
+- }
+- resultobj = SWIG_Py_Void();
+- return resultobj;
+-fail:
+- return NULL;
+-}
+-
+-
+ SWIGINTERN PyObject *_wrap_svn_swig_py_set_application_pool(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+@@ -33902,7 +33844,6 @@
+ { (char *)"svn_checksum_is_empty_checksum", _wrap_svn_checksum_is_empty_checksum, METH_VARARGS, (char *)"svn_checksum_is_empty_checksum(svn_checksum_t checksum) -> svn_boolean_t"},
+ { (char *)"svn_checksum_mismatch_err", _wrap_svn_checksum_mismatch_err, METH_VARARGS, (char *)"svn_checksum_mismatch_err(svn_checksum_t expected, svn_checksum_t actual, apr_pool_t scratch_pool, char const * fmt) -> svn_error_t"},
+ { (char *)"svn_checksum_ctx_t_swigregister", svn_checksum_ctx_t_swigregister, METH_VARARGS, NULL},
+- { (char *)"svn_auth_set_gnome_keyring_unlock_prompt_func", _wrap_svn_auth_set_gnome_keyring_unlock_prompt_func, METH_VARARGS, (char *)"svn_auth_set_gnome_keyring_unlock_prompt_func(svn_auth_baton_t * ab, svn_auth_gnome_keyring_unlock_prompt_func_t prompt_func)"},
+ { (char *)"svn_swig_py_set_application_pool", _wrap_svn_swig_py_set_application_pool, METH_VARARGS, (char *)"svn_swig_py_set_application_pool(PyObject * py_pool, apr_pool_t pool)"},
+ { (char *)"svn_swig_py_clear_application_pool", _wrap_svn_swig_py_clear_application_pool, METH_VARARGS, (char *)"svn_swig_py_clear_application_pool()"},
+ { (char *)"apr_array_header_t_swigregister", apr_array_header_t_swigregister, METH_VARARGS, NULL},
+@@ -33937,7 +33878,6 @@
+ static swig_type_info _swigt__p_apr_size_t = {"_p_apr_size_t", "apr_size_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t = {"_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t", "svn_opt_subcommand_t *|struct svn_error_t *(*)(apr_getopt_t *,void *,apr_pool_t *)", 0, 0, (void*)0, 0};
+-static swig_type_info _swigt__p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t = {"_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t", "svn_auth_gnome_keyring_unlock_prompt_func_t|struct svn_error_t *(*)(char **,char const *,void *,apr_pool_t *)", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void = {"_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void", "svn_auth_simple_provider_func_t|svn_auth_ssl_client_cert_pw_provider_func_t|void (*)(struct svn_auth_provider_object_t **,apr_pool_t *)", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t", "svn_auth_simple_prompt_func_t|struct svn_error_t *(*)(svn_auth_cred_simple_t **,void *,char const *,char const *,svn_boolean_t,apr_pool_t *)", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t", "svn_auth_ssl_client_cert_pw_prompt_func_t|struct svn_error_t *(*)(svn_auth_cred_ssl_client_cert_pw_t **,void *,char const *,svn_boolean_t,apr_pool_t *)", 0, 0, (void*)0, 0};
+@@ -33973,7 +33913,6 @@
+ static swig_type_info _swigt__p_p_apr_file_t = {"_p_p_apr_file_t", "apr_file_t **", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_p_apr_hash_t = {"_p_p_apr_hash_t", "apr_hash_t **|svn_mergeinfo_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
+-static swig_type_info _swigt__p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(char **,char const *,void *,apr_pool_t *)|svn_auth_gnome_keyring_unlock_prompt_func_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void = {"_p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void", "void (**)(struct svn_auth_provider_object_t **,apr_pool_t *)|svn_auth_simple_provider_func_t *|svn_auth_ssl_client_cert_pw_provider_func_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(svn_auth_cred_simple_t **,void *,char const *,char const *,svn_boolean_t,apr_pool_t *)|svn_auth_simple_prompt_func_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(svn_auth_cred_ssl_client_cert_pw_t **,void *,char const *,svn_boolean_t,apr_pool_t *)|svn_auth_ssl_client_cert_pw_prompt_func_t *", 0, 0, (void*)0, 0};
+@@ -34022,6 +33961,7 @@
+ static swig_type_info _swigt__p_svn_auth_cred_ssl_client_cert_t = {"_p_svn_auth_cred_ssl_client_cert_t", "struct svn_auth_cred_ssl_client_cert_t *|svn_auth_cred_ssl_client_cert_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_svn_auth_cred_ssl_server_trust_t = {"_p_svn_auth_cred_ssl_server_trust_t", "struct svn_auth_cred_ssl_server_trust_t *|svn_auth_cred_ssl_server_trust_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_svn_auth_cred_username_t = {"_p_svn_auth_cred_username_t", "struct svn_auth_cred_username_t *|svn_auth_cred_username_t *", 0, 0, (void*)0, 0};
++static swig_type_info _swigt__p_svn_auth_gnome_keyring_unlock_prompt_func_t = {"_p_svn_auth_gnome_keyring_unlock_prompt_func_t", "svn_auth_gnome_keyring_unlock_prompt_func_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_svn_auth_iterstate_t = {"_p_svn_auth_iterstate_t", "struct svn_auth_iterstate_t *|svn_auth_iterstate_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_svn_auth_provider_object_t = {"_p_svn_auth_provider_object_t", "struct svn_auth_provider_object_t *|svn_auth_provider_object_t *", 0, 0, (void*)0, 0};
+ static swig_type_info _swigt__p_svn_auth_provider_t = {"_p_svn_auth_provider_t", "struct svn_auth_provider_t *|svn_auth_provider_t *", 0, 0, (void*)0, 0};
+@@ -34089,7 +34029,6 @@
+ &_swigt__p_apr_size_t,
+ &_swigt__p_char,
+ &_swigt__p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t,
+- &_swigt__p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void,
+ &_swigt__p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+@@ -34125,7 +34064,6 @@
+ &_swigt__p_p_apr_file_t,
+ &_swigt__p_p_apr_hash_t,
+ &_swigt__p_p_char,
+- &_swigt__p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void,
+ &_swigt__p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+@@ -34174,6 +34112,7 @@
+ &_swigt__p_svn_auth_cred_ssl_client_cert_t,
+ &_swigt__p_svn_auth_cred_ssl_server_trust_t,
+ &_swigt__p_svn_auth_cred_username_t,
++ &_swigt__p_svn_auth_gnome_keyring_unlock_prompt_func_t,
+ &_swigt__p_svn_auth_iterstate_t,
+ &_swigt__p_svn_auth_provider_object_t,
+ &_swigt__p_svn_auth_provider_t,
+@@ -34241,7 +34180,6 @@
+ static swig_cast_info _swigc__p_apr_size_t[] = { {&_swigt__p_apr_size_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+-static swig_cast_info _swigc__p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void[] = { {&_swigt__p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+@@ -34277,7 +34215,6 @@
+ static swig_cast_info _swigc__p_p_apr_file_t[] = { {&_swigt__p_p_apr_file_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_p_apr_hash_t[] = { {&_swigt__p_p_apr_hash_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
+-static swig_cast_info _swigc__p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void[] = { {&_swigt__p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+@@ -34326,6 +34263,7 @@
+ static swig_cast_info _swigc__p_svn_auth_cred_ssl_client_cert_t[] = { {&_swigt__p_svn_auth_cred_ssl_client_cert_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_svn_auth_cred_ssl_server_trust_t[] = { {&_swigt__p_svn_auth_cred_ssl_server_trust_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_svn_auth_cred_username_t[] = { {&_swigt__p_svn_auth_cred_username_t, 0, 0, 0},{0, 0, 0, 0}};
++static swig_cast_info _swigc__p_svn_auth_gnome_keyring_unlock_prompt_func_t[] = { {&_swigt__p_svn_auth_gnome_keyring_unlock_prompt_func_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_svn_auth_iterstate_t[] = { {&_swigt__p_svn_auth_iterstate_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_svn_auth_provider_object_t[] = { {&_swigt__p_svn_auth_provider_object_t, 0, 0, 0},{0, 0, 0, 0}};
+ static swig_cast_info _swigc__p_svn_auth_provider_t[] = { {&_swigt__p_svn_auth_provider_t, 0, 0, 0},{0, 0, 0, 0}};
+@@ -34393,7 +34331,6 @@
+ _swigc__p_apr_size_t,
+ _swigc__p_char,
+ _swigc__p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t,
+- _swigc__p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void,
+ _swigc__p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+@@ -34429,7 +34366,6 @@
+ _swigc__p_p_apr_file_t,
+ _swigc__p_p_apr_hash_t,
+ _swigc__p_p_char,
+- _swigc__p_p_f_p_p_char_p_q_const__char_p_void_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_p_f_p_p_struct_svn_auth_provider_object_t_p_apr_pool_t__void,
+ _swigc__p_p_f_p_p_svn_auth_cred_simple_t_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_p_f_p_p_svn_auth_cred_ssl_client_cert_pw_t_p_void_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
+@@ -34478,6 +34414,7 @@
+ _swigc__p_svn_auth_cred_ssl_client_cert_t,
+ _swigc__p_svn_auth_cred_ssl_server_trust_t,
+ _swigc__p_svn_auth_cred_username_t,
++ _swigc__p_svn_auth_gnome_keyring_unlock_prompt_func_t,
+ _swigc__p_svn_auth_iterstate_t,
+ _swigc__p_svn_auth_provider_object_t,
+ _swigc__p_svn_auth_provider_t,
+@@ -35638,8 +35575,6 @@
+ SWIG_Python_SetConstant(d, "SVN_AUTH_PARAM_CONFIG",SWIG_FromCharPtr("svn:auth:config-category-servers"));
+ SWIG_Python_SetConstant(d, "SVN_AUTH_PARAM_SERVER_GROUP",SWIG_FromCharPtr("svn:auth:server-group"));
+ SWIG_Python_SetConstant(d, "SVN_AUTH_PARAM_CONFIG_DIR",SWIG_FromCharPtr("svn:auth:config-dir"));
+- SWIG_Python_SetConstant(d, "SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC",SWIG_FromCharPtr("gnome-keyring-unlock-prompt-func"));
+- SWIG_Python_SetConstant(d, "SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON",SWIG_FromCharPtr("gnome-keyring-unlock-prompt-baton"));
+ SWIG_Python_SetConstant(d, "SVN_CONFIG_CATEGORY_SERVERS",SWIG_FromCharPtr("servers"));
+ SWIG_Python_SetConstant(d, "SVN_CONFIG_SECTION_GROUPS",SWIG_FromCharPtr("groups"));
+ SWIG_Python_SetConstant(d, "SVN_CONFIG_SECTION_GLOBAL",SWIG_FromCharPtr("global"));
+diff -u -d -b -w -r subversion-1.8.0-orig/subversion/bindings/swig/python/core.py subversion-1.8.0-python/subversion/bindings/swig/python/core.py
+--- subversion/bindings/swig/python/core.py 2013-06-13 05:07:20.000000000 -0400
++++ subversion/bindings/swig/python/core.py 2013-07-12 16:11:04.000000000 -0400
+@@ -3316,8 +3316,6 @@
+ def svn_auth_get_platform_specific_client_providers(*args):
+ """svn_auth_get_platform_specific_client_providers(svn_config_t * config, apr_pool_t pool) -> svn_error_t"""
+ return _core.svn_auth_get_platform_specific_client_providers(*args)
+-SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC = _core.SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC
+-SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON = _core.SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON
+
+ def svn_auth_get_username_provider(*args):
+ """svn_auth_get_username_provider(apr_pool_t pool)"""
+@@ -6336,10 +6334,6 @@
+ svn_checksum_ctx_t_swigregister(svn_checksum_ctx_t)
+
+
+-def svn_auth_set_gnome_keyring_unlock_prompt_func(*args):
+- """svn_auth_set_gnome_keyring_unlock_prompt_func(svn_auth_baton_t * ab, svn_auth_gnome_keyring_unlock_prompt_func_t prompt_func)"""
+- return _core.svn_auth_set_gnome_keyring_unlock_prompt_func(*args)
+-
+ def svn_swig_py_set_application_pool(*args):
+ """svn_swig_py_set_application_pool(PyObject * py_pool, apr_pool_t pool)"""
+ return _core.svn_swig_py_set_application_pool(*args)
diff --git a/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch b/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch
new file mode 100644
index 000000000000..4fab19a66b91
--- /dev/null
+++ b/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch
@@ -0,0 +1,11 @@
+--- Makefile.in 2011-07-16 13:50:53.000000000 +0200
++++ Makefile.in.new 2012-03-11 12:13:57.000000000 +0100
+@@ -732,7 +732,7 @@
+ extraclean-swig-headers: clean-swig-headers
+ $(EXTRACLEAN_SWIG_HEADERS)
+
+-$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
++$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in libsvn_swig_perl
+ ./config.status subversion/bindings/swig/perl/native/Makefile.PL
+
+ $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
diff --git a/dev-vcs/subversion/files/svnserve.confd b/dev-vcs/subversion/files/svnserve.confd
new file mode 100644
index 000000000000..83997ce92719
--- /dev/null
+++ b/dev-vcs/subversion/files/svnserve.confd
@@ -0,0 +1,10 @@
+# The commented variables in this file are the defaults that are used
+# in the init-script. You don't need to uncomment them except to
+# customize them to different values.
+
+# Options for svnserve
+#SVNSERVE_OPTS="--root=/var/svn"
+
+# User and group as which to run svnserve
+#SVNSERVE_USER="svn"
+#SVNSERVE_GROUP="svnusers"
diff --git a/dev-vcs/subversion/files/svnserve.initd2 b/dev-vcs/subversion/files/svnserve.initd2
new file mode 100644
index 000000000000..79f1411070b2
--- /dev/null
+++ b/dev-vcs/subversion/files/svnserve.initd2
@@ -0,0 +1,26 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting svnserve"
+ # Ensure that we run from a readable working dir, and that we do not
+ # lock filesystems when being run from such a location.
+ cd /
+ start-stop-daemon --start --quiet --background --make-pidfile \
+ --pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve \
+ --user ${SVNSERVE_USER:-apache} --group ${SVNSERVE_GROUP:-apache} -- \
+ --foreground --daemon ${SVNSERVE_OPTS:---root=/var/svn}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping svnserve"
+ start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
+ eend $?
+}
diff --git a/dev-vcs/subversion/files/svnserve.initd3 b/dev-vcs/subversion/files/svnserve.initd3
new file mode 100644
index 000000000000..1236cf56b1c9
--- /dev/null
+++ b/dev-vcs/subversion/files/svnserve.initd3
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+description="svn server"
+pidfile="/var/run/svnserve.pid"
+command="/usr/bin/svnserve"
+command_args="--foreground --daemon ${SVNSERVE_OPTS:---root=/var/svn}"
+command_background="true"
+start_stop_daemon_args="-u ${SVNSERVE_USER:-apache} -g ${SVNSERVE_GROUP:-apache}"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ # Ensure that we run from a readable working dir, and that we do not
+ # lock filesystems when being run from such a location.
+ cd /
+}
diff --git a/dev-vcs/subversion/files/svnserve.xinetd b/dev-vcs/subversion/files/svnserve.xinetd
new file mode 100644
index 000000000000..e29f906b5096
--- /dev/null
+++ b/dev-vcs/subversion/files/svnserve.xinetd
@@ -0,0 +1,14 @@
+service svn
+{
+ socket_type = stream
+ wait = no
+ user = apache
+ group = apache
+ umask = 002
+ protocol = tcp
+ log_on_failure += USERID HOST
+ port = 3690
+ server = /usr/bin/svnserve
+ server_args = -i
+ disable = yes
+}
diff --git a/dev-vcs/subversion/metadata.xml b/dev-vcs/subversion/metadata.xml
new file mode 100644
index 000000000000..88aaac09a39c
--- /dev/null
+++ b/dev-vcs/subversion/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>tommy@gentoo.org</email>
+ <name>Thomas Sachau</name>
+ </maintainer>
+ <maintainer restrict="&gt;=dev-vcs/subversion-1.8.0">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <use>
+ <flag name="ctypes-python">Build and install Ctypes Python bindings</flag>
+ <flag name="dso">Enable runtime module search</flag>
+ <flag name="extras">Install extra scripts (examples, tools, hooks)</flag>
+ <flag name="http">Enable http support using <pkg>net-libs/serf</pkg></flag>
+ <flag name="webdav-neon">Enable WebDAV support using <pkg>net-libs/neon</pkg></flag>
+ <flag name="webdav-serf">Enable WebDAV support using <pkg>net-libs/serf</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-vcs/subversion/subversion-1.7.20.ebuild b/dev-vcs/subversion/subversion-1.7.20.ebuild
new file mode 100644
index 000000000000..5b585c87c7a7
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.7.20.ebuild
@@ -0,0 +1,473 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+MY_P="${P/_/-}"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring java kde nls perl python ruby sasl test vim-syntax +webdav-neon webdav-serf"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.6.18[threadsafe(+)]
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-libs/zlib
+ berkdb? ( >=sys-libs/db-4.0.14 )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-1.8.2:1.8
+ dev-ruby/rubygems[ruby_targets_ruby18] )
+ sasl? ( dev-libs/cyrus-sasl )
+ webdav-neon? ( >=net-libs/neon-0.28 )
+ webdav-serf? ( >=net-libs/serf-0.3.0 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ test? ( ${PYTHON_DEPS} )
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ webdav-neon? ( virtual/pkgconfig )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( ${PYTHON_REQUIRED_USE} )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]]; then
+ if [[ -n "${apu_bdb_version}" ]]; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use webdav-neon && ! use webdav-serf; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling one of the following USE-flags:"
+ ewarn " webdav-neon webdav-serf"
+ echo -ne "\a"
+ fi
+
+ if use debug; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.6.3-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python; then
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java; then
+ myconf+=" --without-junit"
+ fi
+
+ if use kde || use nls; then
+ myconf+=" --enable-nls"
+ else
+ myconf+=" --disable-nls"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #workaround for bug 387057
+ has_version =dev-vcs/subversion-1.6* && myconf+=" --disable-disallowing-of-undefined-references"
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ #force ruby-1.8 for bug 399105
+ #allow overriding Python include directory
+ ac_cv_path_RUBY="${EPREFIX}"/usr/bin/ruby18 ac_cv_path_RDOC="${EPREFIX}"/usr/bin/rdoc18 \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_with sasl) \
+ $(use_with webdav-neon neon) \
+ $(use_with webdav-serf serf "${EPREFIX}/usr") \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-neon-version-check \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl; then
+ emake swig-pl
+ fi
+
+ if use ruby; then
+ emake swig-rb
+ fi
+
+ if use java; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras; then
+ emake tools
+ fi
+
+ if use doc; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ default
+
+ if use ctypes-python; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion subversion
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd2 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools || die "Installation of tools failed"
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ find "${ED}" '(' -name '*.la' ')' -print0 | xargs -0 rm -f
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]]; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]]; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]]; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]]; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/subversion/subversion-1.7.21.ebuild b/dev-vcs/subversion/subversion-1.7.21.ebuild
new file mode 100644
index 000000000000..24cf571afb53
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.7.21.ebuild
@@ -0,0 +1,473 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+MY_P="${P/_/-}"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring java kde nls perl python ruby sasl test vim-syntax +webdav-neon webdav-serf"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.6.18[threadsafe(+)]
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-libs/zlib
+ berkdb? ( >=sys-libs/db-4.0.14 )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-1.8.2:1.8
+ dev-ruby/rubygems[ruby_targets_ruby18] )
+ sasl? ( dev-libs/cyrus-sasl )
+ webdav-neon? ( >=net-libs/neon-0.28 )
+ webdav-serf? ( >=net-libs/serf-0.3.0 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ test? ( ${PYTHON_DEPS} )
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ webdav-neon? ( virtual/pkgconfig )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( ${PYTHON_REQUIRED_USE} )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]]; then
+ if [[ -n "${apu_bdb_version}" ]]; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use webdav-neon && ! use webdav-serf; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling one of the following USE-flags:"
+ ewarn " webdav-neon webdav-serf"
+ echo -ne "\a"
+ fi
+
+ if use debug; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.6.3-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python; then
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java; then
+ myconf+=" --without-junit"
+ fi
+
+ if use kde || use nls; then
+ myconf+=" --enable-nls"
+ else
+ myconf+=" --disable-nls"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #workaround for bug 387057
+ has_version =dev-vcs/subversion-1.6* && myconf+=" --disable-disallowing-of-undefined-references"
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ #force ruby-1.8 for bug 399105
+ #allow overriding Python include directory
+ ac_cv_path_RUBY="${EPREFIX}"/usr/bin/ruby18 ac_cv_path_RDOC="${EPREFIX}"/usr/bin/rdoc18 \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_with sasl) \
+ $(use_with webdav-neon neon) \
+ $(use_with webdav-serf serf "${EPREFIX}/usr") \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-neon-version-check \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl; then
+ emake swig-pl
+ fi
+
+ if use ruby; then
+ emake swig-rb
+ fi
+
+ if use java; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras; then
+ emake tools
+ fi
+
+ if use doc; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ default
+
+ if use ctypes-python; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion subversion
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd2 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools || die "Installation of tools failed"
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ find "${ED}" '(' -name '*.la' ')' -print0 | xargs -0 rm -f
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]]; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]]; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]]; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]]; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/subversion/subversion-1.8.13-r1.ebuild b/dev-vcs/subversion/subversion-1.8.13-r1.ebuild
new file mode 100644
index 000000000000..c3fb52a4c946
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.8.13-r1.ebuild
@@ -0,0 +1,493 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+MY_P="${P/_/-}"
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring +http java kde nls perl python ruby sasl test vim-syntax"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.7.12
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-apps/file
+ sys-libs/zlib
+ app-arch/bzip2
+ berkdb? ( >=sys-libs/db-4.0.14:= )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-2.0:2.0
+ dev-ruby/rubygems[ruby_targets_ruby20] )
+ sasl? ( dev-libs/cyrus-sasl )
+ http? ( >=net-libs/serf-1.2.1 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ http? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ test? ( ${PYTHON_DEPS} )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? (
+ ${PYTHON_REQUIRED_USE}
+ !dso
+ )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb ; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]] ; then
+ if [[ -n "${apu_bdb_version}" ]] ; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use http ; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling \"http\" USE flag"
+ echo -ne "\a"
+ fi
+
+ if use debug ; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
+ [[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.8.0-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch \
+ "${FILESDIR}"/${PN}-1.8.1-revert_bdb6check.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python ; then
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C20130614113003.GA19257@tarsus.local2%3E
+ # in short, we don't have gnome-keyring stuff here, patch
+ # borrowed from MacPorts
+ epatch "${FILESDIR}"/${PN}-1.8.5-swig-python-no-gnome-keyring.patch
+ fi
+
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java ; then
+ myconf+=" --without-junit"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ if use python && [[ ${CHOST} == *-darwin* ]] ; then
+ export ac_cv_python_link="$(tc-getCC) "'$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_libs='$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_compile="$(tc-getCC)"
+ fi
+
+ # force ruby-2.0
+ # allow overriding Python include directory
+ ac_cv_path_RUBY=$(usex ruby "${EPREFIX}/usr/bin/ruby20" "none") \
+ ac_cv_path_RDOC=$(usex ruby "${EPREFIX}/usr/bin/rdoc20" "none") \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apache-libexecdir) \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_enable nls) \
+ $(use_with sasl) \
+ $(use_with http serf) \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python ; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl ; then
+ emake swig-pl
+ fi
+
+ if use ruby ; then
+ emake swig-rb
+ fi
+
+ if use java ; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras ; then
+ emake tools
+ fi
+
+ if use doc ; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ if has_version ~${CATEGORY}/${P} ; then
+ default
+
+ if use ctypes-python ; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python ; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+ else
+ ewarn "The test suite shows errors when there is an older version of"
+ ewarn "${CATEGORY}/${PN} installed. Please install =${CATEGORY}/${P}*"
+ ewarn "before running the test suite."
+ ewarn "Test suite skipped."
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python ; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl ; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby ; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java ; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2 ; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion svn
+ bashcomp_alias svn svn{admin,dumpfilter,look,sync,version}
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd3 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras ; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc ; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java ; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ prune_libtool_files --all
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]] ; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2 ; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/subversion/subversion-1.8.14-r1.ebuild b/dev-vcs/subversion/subversion-1.8.14-r1.ebuild
new file mode 100644
index 000000000000..655a7eb992d3
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.8.14-r1.ebuild
@@ -0,0 +1,493 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+MY_P="${P/_/-}"
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring +http java kde nls perl python ruby sasl test vim-syntax"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.7.12
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-apps/file
+ sys-libs/zlib
+ app-arch/bzip2
+ berkdb? ( >=sys-libs/db-4.0.14:= )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-2.1:2.1
+ dev-ruby/rubygems[ruby_targets_ruby21] )
+ sasl? ( dev-libs/cyrus-sasl )
+ http? ( >=net-libs/serf-1.2.1 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ http? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ test? ( ${PYTHON_DEPS} )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? (
+ ${PYTHON_REQUIRED_USE}
+ !dso
+ )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb ; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]] ; then
+ if [[ -n "${apu_bdb_version}" ]] ; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use http ; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling \"http\" USE flag"
+ echo -ne "\a"
+ fi
+
+ if use debug ; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
+ [[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.8.0-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch \
+ "${FILESDIR}"/${PN}-1.8.1-revert_bdb6check.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python ; then
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C20130614113003.GA19257@tarsus.local2%3E
+ # in short, we don't have gnome-keyring stuff here, patch
+ # borrowed from MacPorts
+ epatch "${FILESDIR}"/${PN}-1.8.5-swig-python-no-gnome-keyring.patch
+ fi
+
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java ; then
+ myconf+=" --without-junit"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ if use python && [[ ${CHOST} == *-darwin* ]] ; then
+ export ac_cv_python_link="$(tc-getCC) "'$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_libs='$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_compile="$(tc-getCC)"
+ fi
+
+ # force ruby-2.1
+ # allow overriding Python include directory
+ ac_cv_path_RUBY=$(usex ruby "${EPREFIX}/usr/bin/ruby21" "none") \
+ ac_cv_path_RDOC=$(usex ruby "${EPREFIX}/usr/bin/rdoc21" "none") \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apache-libexecdir) \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_enable nls) \
+ $(use_with sasl) \
+ $(use_with http serf) \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python ; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl ; then
+ emake swig-pl
+ fi
+
+ if use ruby ; then
+ emake swig-rb
+ fi
+
+ if use java ; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras ; then
+ emake tools
+ fi
+
+ if use doc ; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ if has_version ~${CATEGORY}/${P} ; then
+ default
+
+ if use ctypes-python ; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python ; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+ else
+ ewarn "The test suite shows errors when there is an older version of"
+ ewarn "${CATEGORY}/${PN} installed. Please install =${CATEGORY}/${P}*"
+ ewarn "before running the test suite."
+ ewarn "Test suite skipped."
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python ; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl ; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby ; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java ; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2 ; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion svn
+ bashcomp_alias svn svn{admin,dumpfilter,look,sync,version}
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd3 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras ; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc ; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java ; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ prune_libtool_files --all
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]] ; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2 ; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/subversion/subversion-1.8.14.ebuild b/dev-vcs/subversion/subversion-1.8.14.ebuild
new file mode 100644
index 000000000000..4f3b9dd3eb4d
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.8.14.ebuild
@@ -0,0 +1,493 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+MY_P="${P/_/-}"
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring +http java kde nls perl python ruby sasl test vim-syntax"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.7.12
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-apps/file
+ sys-libs/zlib
+ app-arch/bzip2
+ berkdb? ( >=sys-libs/db-4.0.14:= )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-2.0:2.0
+ dev-ruby/rubygems[ruby_targets_ruby20] )
+ sasl? ( dev-libs/cyrus-sasl )
+ http? ( >=net-libs/serf-1.2.1 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ http? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ test? ( ${PYTHON_DEPS} )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? (
+ ${PYTHON_REQUIRED_USE}
+ !dso
+ )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb ; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]] ; then
+ if [[ -n "${apu_bdb_version}" ]] ; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use http ; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling \"http\" USE flag"
+ echo -ne "\a"
+ fi
+
+ if use debug ; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
+ [[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.8.0-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch \
+ "${FILESDIR}"/${PN}-1.8.1-revert_bdb6check.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python ; then
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C20130614113003.GA19257@tarsus.local2%3E
+ # in short, we don't have gnome-keyring stuff here, patch
+ # borrowed from MacPorts
+ epatch "${FILESDIR}"/${PN}-1.8.5-swig-python-no-gnome-keyring.patch
+ fi
+
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java ; then
+ myconf+=" --without-junit"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ if use python && [[ ${CHOST} == *-darwin* ]] ; then
+ export ac_cv_python_link="$(tc-getCC) "'$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_libs='$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_compile="$(tc-getCC)"
+ fi
+
+ # force ruby-2.0
+ # allow overriding Python include directory
+ ac_cv_path_RUBY=$(usex ruby "${EPREFIX}/usr/bin/ruby20" "none") \
+ ac_cv_path_RDOC=$(usex ruby "${EPREFIX}/usr/bin/rdoc20" "none") \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apache-libexecdir) \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_enable nls) \
+ $(use_with sasl) \
+ $(use_with http serf) \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python ; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl ; then
+ emake swig-pl
+ fi
+
+ if use ruby ; then
+ emake swig-rb
+ fi
+
+ if use java ; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras ; then
+ emake tools
+ fi
+
+ if use doc ; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ if has_version ~${CATEGORY}/${P} ; then
+ default
+
+ if use ctypes-python ; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python ; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+ else
+ ewarn "The test suite shows errors when there is an older version of"
+ ewarn "${CATEGORY}/${PN} installed. Please install =${CATEGORY}/${P}*"
+ ewarn "before running the test suite."
+ ewarn "Test suite skipped."
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python ; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl ; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby ; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java ; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2 ; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion svn
+ bashcomp_alias svn svn{admin,dumpfilter,look,sync,version}
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd3 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras ; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc ; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java ; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ prune_libtool_files --all
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]] ; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2 ; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/subversion/subversion-1.9.0.ebuild b/dev-vcs/subversion/subversion-1.9.0.ebuild
new file mode 100644
index 000000000000..655a7eb992d3
--- /dev/null
+++ b/dev-vcs/subversion/subversion-1.9.0.ebuild
@@ -0,0 +1,493 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+WANT_AUTOMAKE="none"
+GENTOO_DEPEND_ON_PERL="no"
+
+inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils
+
+MY_P="${P/_/-}"
+DESCRIPTION="Advanced version control system"
+HOMEPAGE="http://subversion.apache.org/"
+SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Subversion GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~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="apache2 berkdb ctypes-python debug doc +dso extras gnome-keyring +http java kde nls perl python ruby sasl test vim-syntax"
+
+COMMON_DEPEND=">=dev-db/sqlite-3.7.12
+ >=dev-libs/apr-1.3:1
+ >=dev-libs/apr-util-1.3:1
+ dev-libs/expat
+ sys-apps/file
+ sys-libs/zlib
+ app-arch/bzip2
+ berkdb? ( >=sys-libs/db-4.0.14:= )
+ ctypes-python? ( ${PYTHON_DEPS} )
+ gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/libgnome-keyring )
+ kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( >=dev-lang/ruby-2.1:2.1
+ dev-ruby/rubygems[ruby_targets_ruby21] )
+ sasl? ( dev-libs/cyrus-sasl )
+ http? ( >=net-libs/serf-1.2.1 )"
+RDEPEND="${COMMON_DEPEND}
+ apache2? ( www-servers/apache[apache2_modules_dav] )
+ java? ( >=virtual/jre-1.5 )
+ kde? ( kde-apps/kwalletd:4 )
+ nls? ( virtual/libintl )
+ perl? ( dev-perl/URI )"
+# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once
+DEPEND="${COMMON_DEPEND}
+ !!<sys-apps/sandbox-1.6
+ ctypes-python? ( dev-python/ctypesgen )
+ doc? ( app-doc/doxygen )
+ gnome-keyring? ( virtual/pkgconfig )
+ http? ( virtual/pkgconfig )
+ java? ( >=virtual/jdk-1.5 )
+ kde? ( virtual/pkgconfig )
+ nls? ( sys-devel/gettext )
+ test? ( ${PYTHON_DEPS} )"
+
+REQUIRED_USE="
+ ctypes-python? ( ${PYTHON_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? (
+ ${PYTHON_REQUIRED_USE}
+ !dso
+ )"
+
+want_apache
+
+pkg_setup() {
+ if use berkdb ; then
+ local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
+ | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
+ | sed 's:.*b::')"
+ einfo
+ if [[ -z "${SVN_BDB_VERSION}" ]] ; then
+ if [[ -n "${apu_bdb_version}" ]] ; then
+ SVN_BDB_VERSION="${apu_bdb_version}"
+ einfo "Matching db version to apr-util"
+ else
+ SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
+ einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
+ fi
+ fi
+ einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
+ einfo
+
+ if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
+ eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
+ eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
+ eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
+ eerror "Aborting to avoid possible run-time crashes."
+ die "Berkeley DB version mismatch"
+ fi
+ fi
+
+ depend.apache_pkg_setup
+
+ java-pkg-opt-2_pkg_setup
+
+ if ! use http ; then
+ ewarn "WebDAV support is disabled. You need WebDAV to"
+ ewarn "access repositories through the HTTP protocol."
+ ewarn "Consider enabling \"http\" USE flag"
+ echo -ne "\a"
+ fi
+
+ if use debug ; then
+ append-cppflags -DSVN_DEBUG -DAP_DEBUG
+ fi
+
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C51C42014.3060700@wandisco.com%3E
+ [[ ${CHOST} == *-solaris2* ]] && append-cppflags -D__EXTENSIONS__
+
+ # Allow for custom repository locations.
+ SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \
+ "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \
+ "${FILESDIR}"/${PN}-1.8.0-hpux-dso.patch \
+ "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch \
+ "${FILESDIR}"/${PN}-1.8.1-revert_bdb6check.patch
+ epatch_user
+
+ fperms +x build/transform_libtool_scripts.sh
+
+ sed -i \
+ -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
+ -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
+
+ # this bites us in particular on Solaris
+ sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
+ die "/bin/sh is not POSIX shell!"
+
+ eautoconf
+ elibtoolize
+
+ sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \
+ -i build-outputs.mk || die "sed failed"
+
+ if use python ; then
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://mail-archives.apache.org/mod_mbox/subversion-dev/201306.mbox/%3C20130614113003.GA19257@tarsus.local2%3E
+ # in short, we don't have gnome-keyring stuff here, patch
+ # borrowed from MacPorts
+ epatch "${FILESDIR}"/${PN}-1.8.5-swig-python-no-gnome-keyring.patch
+ fi
+
+ # XXX: make python_copy_sources accept path
+ S=${S}/subversion/bindings/swig/python python_copy_sources
+ rm -r "${S}"/subversion/bindings/swig/python || die
+ fi
+}
+
+src_configure() {
+ local myconf
+
+ if use python || use perl || use ruby; then
+ myconf+=" --with-swig"
+ else
+ myconf+=" --without-swig"
+ fi
+
+ if use java ; then
+ myconf+=" --without-junit"
+ fi
+
+ case ${CHOST} in
+ *-aix*)
+ # avoid recording immediate path to sharedlibs into executables
+ append-ldflags -Wl,-bnoipath
+ ;;
+ *-interix*)
+ # loader crashes on the LD_PRELOADs...
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-solaris*)
+ # need -lintl to link
+ use nls && append-libs intl
+ # this breaks installation, on x64 echo replacement is 32-bits
+ myconf+=" --disable-local-library-preloading"
+ ;;
+ *-mint*)
+ myconf+=" --enable-all-static --disable-local-library-preloading"
+ ;;
+ *)
+ # inject LD_PRELOAD entries for easy in-tree development
+ myconf+=" --enable-local-library-preloading"
+ ;;
+ esac
+
+ #version 1.7.7 again tries to link against the older installed version and fails, when trying to
+ #compile for x86 on amd64, so workaround this issue again
+ #check newer versions, if this is still/again needed
+ myconf+=" --disable-disallowing-of-undefined-references"
+
+ # for build-time scripts
+ if use ctypes-python || use python || use test; then
+ python_export_best
+ fi
+
+ if use python && [[ ${CHOST} == *-darwin* ]] ; then
+ export ac_cv_python_link="$(tc-getCC) "'$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_libs='$(PYTHON_CFLAGS) -bundle -undefined dynamic_lookup $(PYTHON_LIBS)'
+ export ac_cv_python_compile="$(tc-getCC)"
+ fi
+
+ # force ruby-2.1
+ # allow overriding Python include directory
+ ac_cv_path_RUBY=$(usex ruby "${EPREFIX}/usr/bin/ruby21" "none") \
+ ac_cv_path_RDOC=$(usex ruby "${EPREFIX}/usr/bin/rdoc21" "none") \
+ ac_cv_python_includes='-I$(PYTHON_INCLUDEDIR)' \
+ econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ $(use_with apache2 apache-libexecdir) \
+ $(use_with apache2 apxs "${APXS}") \
+ $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
+ $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
+ $(use_enable dso runtime-module-search) \
+ $(use_with gnome-keyring) \
+ $(use_enable java javahl) \
+ $(use_with java jdk "${JAVA_HOME}") \
+ $(use_with kde kwallet) \
+ $(use_enable nls) \
+ $(use_with sasl) \
+ $(use_with http serf) \
+ ${myconf} \
+ --with-apr="${EPREFIX}/usr/bin/apr-1-config" \
+ --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
+ --disable-experimental-libtool \
+ --without-jikes \
+ --disable-mod-activation \
+ --disable-static
+}
+
+src_compile() {
+ emake local-all
+
+ if use ctypes-python ; then
+ # pre-generate .py files
+ use ctypes-python && emake ctypes-python
+
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_compile() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ python_export PYTHON_INCLUDEDIR
+ emake swig-py \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn"
+ }
+
+ # this will give us proper BUILD_DIR for symlinking
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_compile
+ fi
+
+ if use perl ; then
+ emake swig-pl
+ fi
+
+ if use ruby ; then
+ emake swig-rb
+ fi
+
+ if use java ; then
+ emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl
+ fi
+
+ if use extras ; then
+ emake tools
+ fi
+
+ if use doc ; then
+ doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
+
+ if use java; then
+ emake doc-javahl
+ fi
+ fi
+}
+
+src_test() {
+ if has_version ~${CATEGORY}/${P} ; then
+ default
+
+ if use ctypes-python ; then
+ python_test() {
+ "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \
+ || die "ctypes-python tests fail with ${EPYTHON}"
+ }
+
+ distutils-r1_src_test
+ fi
+
+ if use python ; then
+ swig_py_test() {
+ pushd "${BUILD_DIR}" >/dev/null || die
+ "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}"
+ popd >/dev/null || die
+ }
+
+ BUILD_DIR=subversion/bindings/swig/python \
+ python_foreach_impl swig_py_test
+ fi
+ else
+ ewarn "The test suite shows errors when there is an older version of"
+ ewarn "${CATEGORY}/${PN} installed. Please install =${CATEGORY}/${P}*"
+ ewarn "before running the test suite."
+ ewarn "Test suite skipped."
+ fi
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" local-install
+
+ if use ctypes-python ; then
+ pushd subversion/bindings/ctypes-python >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ if use python ; then
+ swig_py_install() {
+ local p=subversion/bindings/swig/python
+ rm -f ${p} || die
+ ln -s "${BUILD_DIR}" ${p} || die
+
+ emake \
+ DESTDIR="${D}" \
+ swig_pydir="$(python_get_sitedir)/libsvn" \
+ swig_pydir_extra="$(python_get_sitedir)/svn" \
+ install-swig-py
+ }
+
+ BUILD_DIR=python \
+ python_foreach_impl swig_py_install
+ fi
+
+ if use perl ; then
+ emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl
+ perl_delete_localpod
+ find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete
+ fi
+
+ if use ruby ; then
+ emake DESTDIR="${D}" install-swig-rb
+ fi
+
+ if use java ; then
+ emake DESTDIR="${D}" install-javahl
+ java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname)
+ java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
+ rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
+ fi
+
+ # Install Apache module configuration.
+ if use apache2 ; then
+ keepdir "${APACHE_MODULES_CONFDIR}"
+ insinto "${APACHE_MODULES_CONFDIR}"
+ doins "${FILESDIR}/47_mod_dav_svn.conf"
+ fi
+
+ # Install Bash Completion, bug 43179.
+ newbashcomp tools/client-side/bash_completion svn
+ bashcomp_alias svn svn{admin,dumpfilter,look,sync,version}
+ rm -f tools/client-side/bash_completion
+
+ # Install hot backup script, bug 54304.
+ newbin tools/backup/hot-backup.py svn-hot-backup
+ rm -fr tools/backup
+
+ # Install svnserve init-script and xinet.d snippet, bug 43245.
+ newinitd "${FILESDIR}"/svnserve.initd3 svnserve
+ newconfd "${FILESDIR}"/svnserve.confd svnserve
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/svnserve.xinetd svnserve
+
+ #adjust default user and group with disabled apache2 USE flag, bug 381385
+ use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \
+ -e "s\GROUP:-apache\GROUP:-svnusers\g" \
+ -i "${ED}"etc/init.d/svnserve || die
+ use apache2 || sed -e "0,/apache/s//svn/" \
+ -e "s:apache:svnusers:" \
+ -i "${ED}"etc/xinetd.d/svnserve || die
+
+ # Install documentation.
+ dodoc CHANGES COMMITTERS README
+ dodoc tools/xslt/svnindex.{css,xsl}
+ rm -fr tools/xslt
+
+ # Install extra files.
+ if use extras ; then
+ cat << EOF > 80subversion-extras
+PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
+EOF
+ doenvd 80subversion-extras
+
+ emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools
+
+ find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
+ rm -fr tools/client-side/svnmucc
+ rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
+ rm -fr tools/{buildbot,dev,diff,po}
+
+ insinto /usr/share/${PN}
+ find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die
+ doins -r tools
+ fi
+
+ if use doc ; then
+ dohtml -r doc/doxygen/html/*
+
+ if use java ; then
+ java-pkg_dojavadoc doc/javadoc
+ fi
+ fi
+
+ prune_libtool_files --all
+
+ cd "${ED}"usr/share/locale
+ for i in * ; do
+ [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; }
+ done
+}
+
+pkg_preinst() {
+ # Compare versions of Berkeley DB, bug 122877.
+ if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]] ; then
+ OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
+ if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
+ CHANGED_BDB_VERSION="1"
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
+ ewarn "You upgraded from an older version of Berkeley DB and may experience"
+ ewarn "problems with your repository. Run the following commands as root to fix it:"
+ ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
+ ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
+ fi
+
+ ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
+}
+
+pkg_postrm() {
+ :
+}
+
+pkg_config() {
+ # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
+ # already has EPREFIX in it
+ einfo "Initializing the database in ${SVN_REPOS_LOC}..."
+ if [[ -e "${SVN_REPOS_LOC}/repos" ]] ; then
+ echo "A Subversion repository already exists and I will not overwrite it."
+ echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
+ else
+ mkdir -p "${SVN_REPOS_LOC}/conf"
+
+ einfo "Populating repository directory..."
+ # Create initial repository.
+ "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos"
+
+ einfo "Setting repository permissions..."
+ SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
+ SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
+ if use apache2 ; then
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
+ else
+ [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
+ [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
+ fi
+ chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf"
+ chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos"
+ echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\""
+ echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet."
+ echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\""
+ echo "to finish the configuration."
+ fi
+}
diff --git a/dev-vcs/svn2cl/Manifest b/dev-vcs/svn2cl/Manifest
new file mode 100644
index 000000000000..485ddf475425
--- /dev/null
+++ b/dev-vcs/svn2cl/Manifest
@@ -0,0 +1 @@
+DIST svn2cl-0.12.tar.gz 18171 SHA256 abb8976a7862d267eebe98deb1082a9e5a236a63db9dd304794f969ccd777c74 SHA512 c84f0f67b34d615b1732cd03ecbdb6d3bb082677145acf2f32f74518306347eb984d65d4837f2463b369cd7a8a7443d2cfba589c531b46f423870c55b0b48aa2 WHIRLPOOL 9b5b4e7315d6537e0f3a1fbc11f1e7f9e6cff37f4c2d598df853adeab718f7c1f92de81a8c40cd7331544afe1af5fef5b6c60032e7f8818e153455b2e6716883
diff --git a/dev-vcs/svn2cl/files/0.9-wrapper.patch b/dev-vcs/svn2cl/files/0.9-wrapper.patch
new file mode 100644
index 000000000000..478b2a032d2a
--- /dev/null
+++ b/dev-vcs/svn2cl/files/0.9-wrapper.patch
@@ -0,0 +1,20 @@
+--- svn2cl.sh 2006-10-18 23:38:06.000000000 +0200
++++ svn2cl.sh.1 2006-11-12 01:41:05.000000000 +0100
+@@ -234,16 +234,7 @@
+ esac
+ done
+
+-# find the directory that this script resides in
+-prog="$0"
+-while [ -h "$prog" ]
+-do
+- dir=`dirname "$prog"`
+- prog=`ls -ld "$prog" | sed "s/^.*-> \(.*\)/\1/;/^[^/]/s,^,$dir/,"`
+-done
+-dir=`dirname "$prog"`
+-dir=`cd "$dir" && pwd`
+-XSL="$dir/svn2${OUTSTYLE}.xsl"
++XSL="/usr/share/svn2cl/svn2${OUTSTYLE}.xsl"
+
+ # check if the authors file is formatted as a legacy
+ # colon separated file
diff --git a/dev-vcs/svn2cl/metadata.xml b/dev-vcs/svn2cl/metadata.xml
new file mode 100644
index 000000000000..028d1cef3af8
--- /dev/null
+++ b/dev-vcs/svn2cl/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>dev-tools</herd>
+</pkgmetadata>
diff --git a/dev-vcs/svn2cl/svn2cl-0.12.ebuild b/dev-vcs/svn2cl/svn2cl-0.12.ebuild
new file mode 100644
index 000000000000..45820434aaba
--- /dev/null
+++ b/dev-vcs/svn2cl/svn2cl-0.12.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils
+
+DESCRIPTION="Create a GNU-style ChangeLog from subversion's svn log --xml output"
+HOMEPAGE="http://ch.tudelft.nl/~arthur/svn2cl/"
+SRC_URI="${HOMEPAGE}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~mips ~ppc x86"
+IUSE=""
+
+RDEPEND="dev-libs/libxslt
+ dev-vcs/subversion"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ # the wrapper script looks for the xsl files in the
+ # same directory as the script.
+ epatch "${FILESDIR}"/0.9-wrapper.patch
+}
+
+src_install() {
+ newbin svn2cl.sh svn2cl || die "failed to install wrapper script"
+ insinto /usr/share/svn2cl
+ doins svn2cl.xsl svn2html.xsl || die
+ dodoc README NEWS TODO ChangeLog authors.xml svn2html.css || die
+ doman svn2cl.1 || die
+}
+
+pkg_postinst() {
+ einfo "You can find samples of svn2html.css and authors.xml in"
+ einfo "/usr/share/doc/${PF}/"
+ einfo "Read man page for details."
+}
diff --git a/dev-vcs/svn2git/Manifest b/dev-vcs/svn2git/Manifest
new file mode 100644
index 000000000000..f244ecc95eeb
--- /dev/null
+++ b/dev-vcs/svn2git/Manifest
@@ -0,0 +1,12 @@
+DIST svn2git-0_pre20100303.tar.gz 16351 SHA256 e33bf51e13daa19d9389c9f4aac6bb968562bbb64b1015a7e97b45f6fe0c35c8 SHA512 f279937afaa0d2b1e9474c401f48882ac61a83efe86f30ab7e7b89e57676db85fb0e488844307aa33ddc5fa57cff0512d5a9585a0cb1f02c664cbbaacc5c08a5 WHIRLPOOL d5a15472e436ffff2268734b169002f7b29d3150f8a1c9cbb60fa1addc1f44ea9d7e258bfc817557c23926e87cb76a6f77e23eed930bda8dbe0408aab749a56b
+DIST svn2git-0_pre20100324.tar.gz 16467 SHA256 3db1ad47b1d2e8b1e8e658fdd14fa42121845a094b111932bcebe86439d775f7 SHA512 a8033cea3fef356f2b705003d9a70f49e14a3165b04733f3617e848a0be97ec31eaabbee24cbfcca4215297d85a63175fb5f3d87785993b07dc1e66b79d811b1 WHIRLPOOL 116f99266acaebb0a65f4949d2eaa6dd69bc663cba477dbe997d91eca311cfeeec868373142c81a6fa538b39a31b63ff9aad0426a663da5c0a3c2915dee4dfa7
+DIST svn2git-0_pre20100327.tar.gz 16702 SHA256 b8855e708e00e313bf8f6deb2ae9fb1a0e4e51a336d813f672eeb0a571be9bab SHA512 6318c4136a829770e68e5ee76d6a75696a1c18feedc6cf72b9608463ca7faa2ff717a6dcbba6d2b76389e2c48008bf9c154d2e5e77d7358925bbc97237effe14 WHIRLPOOL c6af3ba84ac07d5a15bbd86d2c41c9d3abf332640b81e0d89e7b22efe6227b40a43e93e45598d24186756e61d9c9132be9d5d564ad5c646c2e51f98ee0b91a86
+DIST svn2git-0_pre20101008.tar.gz 22620 SHA256 460425d86e9d07514f70660c9409eacc7c58e0d9a236f421d98bc4b2b858e82d SHA512 a7be70cc6b91ae17732046cd4f29915dee626576a772f796ddeec08c9e8cd3ef2eb7f8713299272f9e8760f4be2ce924421a3594791a357afdb676fc7d2477ef WHIRLPOOL 7291c44a7c58b555171696c8cd5d887b4ebf5c9c0589bc336db897759bd520031474012b2d4a15a4d838bfa559e978965bcd8f7034a23c69fab0c5e97626d9b4
+DIST svn2git-0_pre20101101.tar.gz 22615 SHA256 8af3076b49750e31ec4b6ea821afe38c8859dbf2789a70bbe932ffd00b4e9488 SHA512 bd581fdb2d97329515c3e91393c5c6be2c70e9d5828239fdf71acdf790e4b0b3b596818720827c522b7fe461b83ff40a60ac439c8850fdee7f84edcef413a3be WHIRLPOOL 4cc0fd8baa15d13fdba0fb2db8a74e5c76eec9a17ab0cd555acca890746f243d9f757c18487bcd68ba88bb2e545fdf49ed7d07e155093740fd2a9fe8fd8b0fc4
+DIST svn2git-1.0.10.tar.gz 26667 SHA256 1b1300144e8a0f82485f4046c4585d53deff839a274f70f7cb32d5a5a76ffe61 SHA512 7148721a5470be2537494349a63e02abf2a0a115c1cea51dae7c407c4480b4576ed3f572b4d1cfa2d5af6df37d3941dda3b174d298b6bf5530de68b5b504ed49 WHIRLPOOL c3b1ada8ffc925aef666f095c1b3a8a2323980a777a6e1751cfc02e5510d3d18fc95e68d8e3a275a5061ed0e073cc1eee538279f5a01039e698af135a4b38df1
+DIST svn2git-1.0.2.1.tar.gz 23784 SHA256 94e5def41df26c03e63423aba3ee70d3ee3ce21fdedca3ce3cb93ba576170fa2 SHA512 877458c7be998123e5b4ee1f60991edcb3dc740c3a8780bb56bb354f9937355635c7943421a60fd3d773d5f7ccc3bbb236bd58abf2c7afc7b40b819ce4c6c923 WHIRLPOOL 26f7d729de6888c621de899d591502792b55d410ed340832c53a47546da8586ae17ac85915f69707b6ba3ff424ce8207fd364fda80e951d82b0b82ff2083ba99
+DIST svn2git-1.0.3.tar.gz 24141 SHA256 b465bb64028e641ff426aa1055899b43640d394738d8919b9dd4235bf5842886 SHA512 e9d575777dada2d3f492a7428542744ac38881b3695c048d13ab65156b5f3ebc48ed3983952f59280c4618df0b7f53f154ee914f8f78e743c32fde31bb352356 WHIRLPOOL 4db8551567f4d3e43a4a9ab54953afbc82c7d0d6108fb5fad2581c822de8cef243725dcc3c94e7aba05efd7f0a9dcf1c0305e5a082963587372495136c3488c5
+DIST svn2git-1.0.4.tar.gz 24190 SHA256 7fab1935ea7101c1c39085b3333f9d9eaa88e5d3f7edd9a04728e5031199390f SHA512 9431e9a45c7f578048bb3624cd717f86a97104c0731af4609991c0b428c6183625b8e0a25c483b319a78dd7a7d2cf09b9e02473c29dbb5c628bab50e33a00fd4 WHIRLPOOL 87fa07fee8f0c619c0594e68348475f735ee46b01d080c6b94a4aa88d10af2b1c79f823be24588c189eb47100302b02130aa255ab902b655cef0737d2bb304c2
+DIST svn2git-1.0.5.tar.gz 25677 SHA256 e6f4794f5a22044cbbb89feedaf5b1179d94b6b142df5875cdb2876819e47224 SHA512 594b70651a0c97668822adf456f9ac7f1ce814c53dabcd39efbb2fd85d63d6a4be7e708db3560234078e2dc6084ea99ccf0c4fb363c7b4864d37d4b5fb53d18f WHIRLPOOL 1ec1de336de26fa8d235ccc3b039598b8b5128b95f15af1b04c5fd79ba753ac3b02aa09d8feadf6c7ecfcfaf0fd48bc7e56fdee51d77e29909b1fefe26cfa76f
+DIST svn2git-1.0.6.tar.gz 25791 SHA256 273f2199115414bcfb454d18f2200a7f3d536da11c4ed78f9fbae354af742a7d SHA512 9f887a9085c4a3a5210e4c49cde2a326eaa92e2426ffe0842daf5a05e3b1133c4566a00b719bf04c9e6b8a31d3eaa56e75395ec732a75ce6700bc4d22e6979d7 WHIRLPOOL c6547de760f5097663d8cc3705a156540278b4d1a6892021a7292e7cbfad274cfe144c1eab886c0cae773cfb932ab60b1f6a51294aeaaebaeefb68c1eb1d0ea5
+DIST svn2git-1.0.8.tar.gz 26667 SHA256 ba66e9ad88a23acb65cf56661dd7ca81cfb5b429bb2349278dc8906c0239a4c2 SHA512 a6c5eb87cebf98404f0579f9ca9ab8f565dfd2bac2ca7824f964a73ebcfb362688bc5149a7c2e2d152ff5e28b84cc1b1deb2fdca1bceabbeed25f6d2c27a4a8d WHIRLPOOL c36ac03378048a6117d1c47ada993477f5d2822a40c7a2850e0a356753bfc003fbaef8477a8e9849fc752432cdb369cffacc1c38bbe6d7e0434e8a07a71196a4
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.10-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.10-version.patch
new file mode 100644
index 000000000000..894cf2c2a10e
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.10-version.patch
@@ -0,0 +1,23 @@
+From d8b1c8c774a61666e7c62bf5beb8f0f1b4a3e01a Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Tue, 21 May 2013 23:11:25 +0200
+Subject: [PATCH] Stop using Git SHA1 version string
+
+diff --git a/src/src.pro b/src/src.pro
+index da6d40d..2626a6f 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -6,10 +6,7 @@ SVN_INCLUDE = /usr/include/subversion-1 /usr/local/include/subversion-1
+ APR_INCLUDE = /usr/include/apr-1.0 /usr/include/apr-1 /usr/local/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = $$(SVN_ALL_FAST_EXPORT_VERSION)
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
+--
+1.8.2.1
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.2.1-include-path.patch b/dev-vcs/svn2git/files/svn2git-1.0.2.1-include-path.patch
new file mode 100644
index 000000000000..2349b3080835
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.2.1-include-path.patch
@@ -0,0 +1,13 @@
+--- src/src.pro 2011-01-11 09:02:15.696463807 +0100
++++ src/src.pro 2011-01-11 09:03:59.793959849 +0100
+@@ -3,8 +3,8 @@
+ # Automatically generated by qmake (2.01a) dim. dc. 23 13:49:28 2007
+ ######################################################################
+
+-SVN_INCLUDE = /usr/include/subversion-1 /usr/local/include/subversion-1
+-APR_INCLUDE = /usr/include/apr-1.0 /usr/include/apr-1 /usr/local/include/apr-1
++SVN_INCLUDE = /usr/include/subversion-1
++APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+ VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.2.1-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.2.1-version.patch
new file mode 100644
index 000000000000..0ca442bfc589
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.2.1-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.2-1-gebac099"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.3-backup-refs.patch b/dev-vcs/svn2git/files/svn2git-1.0.3-backup-refs.patch
new file mode 100644
index 000000000000..6241bb765331
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.3-backup-refs.patch
@@ -0,0 +1,45 @@
+From 584005f2e26149282aa12c4a0367d250caaf3918 Mon Sep 17 00:00:00 2001
+From: Jehan Bing <nahor.j@gmail.com>
+Date: Thu, 10 Mar 2011 10:54:52 -0800
+Subject: [PATCH] Create backup reference before deletion of the original branch
+
+Ensure that the backup reference is created before deleting the original
+branch. As it was, the deletion was executed earlier causing the backup
+reference to point to a non-existing branch so was not created.
+---
+ src/repository.cpp | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/repository.cpp b/src/repository.cpp
+index 7de840f..2c70bf3 100644
+--- a/src/repository.cpp
++++ b/src/repository.cpp
+@@ -349,11 +349,12 @@ int Repository::resetBranch(const QString &branch, int revnum, int mark, const Q
+ branchRef.prepend("refs/heads/");
+
+ Branch &br = branches[branch];
++ QByteArray backupCmd;
+ if (br.created && br.created != revnum && !br.marks.isEmpty() && br.marks.last()) {
+ QByteArray backupBranch = "refs/backups/r" + QByteArray::number(revnum) + branchRef.mid(4);
+ qWarning() << "WARN: backing up branch" << branch << "to" << backupBranch;
+
+- resetBranches.append("reset " + backupBranch + "\nfrom " + branchRef + "\n\n");
++ backupCmd = "reset " + backupBranch + "\nfrom " + branchRef + "\n\n";
+ }
+
+ br.created = revnum;
+@@ -365,9 +366,9 @@ int Repository::resetBranch(const QString &branch, int revnum, int mark, const Q
+ + " branch " + branch.toUtf8() + " = :" + QByteArray::number(mark)
+ + " # " + comment + "\n\n";
+ if(comment == "delete")
+- deletedBranches.append(cmd);
++ deletedBranches.append(backupCmd).append(cmd);
+ else
+- resetBranches.append(cmd);
++ resetBranches.append(backupCmd).append(cmd);
+
+ return EXIT_SUCCESS;
+ }
+--
+1.7.4.1
+
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.3_p1-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.3_p1-version.patch
new file mode 100644
index 000000000000..78efb87c5696
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.3_p1-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.3_p1"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.4-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.4-version.patch
new file mode 100644
index 000000000000..e59547ca6c94
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.4-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.4"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.5-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.5-version.patch
new file mode 100644
index 000000000000..7247f4b96e7a
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.5-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.5"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.6-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.6-version.patch
new file mode 100644
index 000000000000..00d67733a4f9
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.6-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.6"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.8-compile.patch b/dev-vcs/svn2git/files/svn2git-1.0.8-compile.patch
new file mode 100644
index 000000000000..730c51c9fb3f
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.8-compile.patch
@@ -0,0 +1,26 @@
+From b5c3d3aa55621c44db439e4a73884e0d0bf9612c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ulrich=20Sp=C3=B6rlein?= <uqs@spoerlein.net>
+Date: Wed, 28 Nov 2012 21:58:44 +0100
+Subject: [PATCH] Fix compilation, the last rebase/merge went wrong.
+
+Noticed by: Andy Pilate
+---
+ src/svn.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/svn.cpp b/src/svn.cpp
+index 1aadce9..b2fe2a2 100644
+--- a/src/svn.cpp
++++ b/src/svn.cpp
+@@ -896,7 +896,7 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
+ rev_from, changes, current, *match, matchRules, dirpool) == EXIT_FAILURE)
+ return EXIT_FAILURE;
+ } else {
+- if (dirent->kind == svn_node_dir) {
++ if (i.value() == svn_node_dir) {
+ qDebug() << current << "rev" << revnum
+ << "did not match any rules; auto-recursing";
+ if (recurse(entry, change, entryFrom.isNull() ? 0 : entryFrom.constData(),
+--
+1.7.1
+
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.8-utf8-author-names.patch b/dev-vcs/svn2git/files/svn2git-1.0.8-utf8-author-names.patch
new file mode 100644
index 000000000000..a5a94a1d8a78
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.8-utf8-author-names.patch
@@ -0,0 +1,51 @@
+From 6f931cd4535ba3e0d4dda31a0a5ab4a7f33b3221 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Thu, 9 May 2013 00:45:27 +0200
+Subject: [PATCH] Stop unintended re-encoding of author names from UTF-8 to
+ ASCII
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+To see the bug in action, use an author map with umlauts, e.g.
+
+ nickname = Hällo Wörld from UTF-8 <mail@example.org>
+
+and check "git log" after the conversion.
+
+What is happening?
+QByteArray "author" is first decoded as UTF-8 into a QString.
+That QString is passed to QByteArray::append(const QString &)
+which internally encodes the QString to ASCII byte data using
+QString::toAscii(). "git fast-import" expects UTF-8 input
+from us, so the original QByteArray with UTF-8 content is just
+what we need.
+---
+ src/repository.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/repository.cpp b/src/repository.cpp
+index 779dd28..f3b06e8 100644
+--- a/src/repository.cpp
++++ b/src/repository.cpp
+@@ -685,7 +685,7 @@ void Repository::Transaction::commitNote(const QByteArray &noteText, bool append
+ QByteArray s("");
+ s.append("commit refs/notes/commits\n");
+ s.append("mark :" + QByteArray::number(maxMark + 1) + "\n");
+- s.append("committer " + QString::fromUtf8(author) + " " + QString::number(datetime) + " +0000" + "\n");
++ s.append("committer " + author + " " + QString::number(datetime).toUtf8() + " +0000" + "\n");
+ s.append("data " + QString::number(message.length()) + "\n");
+ s.append(message + "\n");
+ s.append("N inline " + commitRef + "\n");
+@@ -736,7 +736,7 @@ void Repository::Transaction::commit()
+ QByteArray s("");
+ s.append("commit " + branchRef + "\n");
+ s.append("mark :" + QByteArray::number(mark) + "\n");
+- s.append("committer " + QString::fromUtf8(author) + " " + QString::number(datetime) + " +0000" + "\n");
++ s.append("committer " + author + " " + QString::number(datetime).toUtf8() + " +0000" + "\n");
+ s.append("data " + QString::number(message.length()) + "\n");
+ s.append(message + "\n");
+ repository->fastImport.write(s);
+--
+1.8.2.1
+
diff --git a/dev-vcs/svn2git/files/svn2git-1.0.8-version.patch b/dev-vcs/svn2git/files/svn2git-1.0.8-version.patch
new file mode 100644
index 000000000000..3eed1cb5bbcc
--- /dev/null
+++ b/dev-vcs/svn2git/files/svn2git-1.0.8-version.patch
@@ -0,0 +1,14 @@
+--- src/src.pro 2011-01-11 09:27:21.530166986 +0100
++++ src/src.pro 2011-01-11 09:30:55.743128934 +0100
+@@ -7,10 +7,7 @@
+ APR_INCLUDE = /usr/include/apr-1
+ exists(local-config.pri):include(local-config.pri)
+
+-VERSION = $$system(git --no-pager show --pretty=oneline --no-notes | head -1 | cut -b-40)
+- !isEmpty(VERSION){
+- VERSION = $${VERSION}
+- }
++VERSION = "1.0.8"
+
+ VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string
+ DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string
diff --git a/dev-vcs/svn2git/metadata.xml b/dev-vcs/svn2git/metadata.xml
new file mode 100644
index 000000000000..7d845b67aac8
--- /dev/null
+++ b/dev-vcs/svn2git/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">svn-all-fast-export/svn2git</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/svn2git/svn2git-0_pre20100303.ebuild b/dev-vcs/svn2git/svn2git-0_pre20100303.ebuild
new file mode 100644
index 000000000000..795ae1400327
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-0_pre20100303.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Importer for one time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ sed -i 's|^\(APR_INCLUDE = /usr/include/apr-1\)\.0|\1|' "${S}"/src/src.pro
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-0_pre20100324.ebuild b/dev-vcs/svn2git/svn2git-0_pre20100324.ebuild
new file mode 100644
index 000000000000..795ae1400327
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-0_pre20100324.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Importer for one time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ sed -i 's|^\(APR_INCLUDE = /usr/include/apr-1\)\.0|\1|' "${S}"/src/src.pro
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-0_pre20100327.ebuild b/dev-vcs/svn2git/svn2git-0_pre20100327.ebuild
new file mode 100644
index 000000000000..795ae1400327
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-0_pre20100327.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Importer for one time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ sed -i 's|^\(APR_INCLUDE = /usr/include/apr-1\)\.0|\1|' "${S}"/src/src.pro
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-0_pre20101008.ebuild b/dev-vcs/svn2git/svn2git-0_pre20101008.ebuild
new file mode 100644
index 000000000000..795ae1400327
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-0_pre20101008.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Importer for one time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ sed -i 's|^\(APR_INCLUDE = /usr/include/apr-1\)\.0|\1|' "${S}"/src/src.pro
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-0_pre20101101.ebuild b/dev-vcs/svn2git/svn2git-0_pre20101101.ebuild
new file mode 100644
index 000000000000..795ae1400327
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-0_pre20101101.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Importer for one time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ sed -i 's|^\(APR_INCLUDE = /usr/include/apr-1\)\.0|\1|' "${S}"/src/src.pro
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.10.ebuild b/dev-vcs/svn2git/svn2git-1.0.10.ebuild
new file mode 100644
index 000000000000..18b2cd8d682c
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.10.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${PN}-1.0.10-version.patch
+ export SVN_ALL_FAST_EXPORT_VERSION=${PVR} # for src_compile
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.2.1.ebuild b/dev-vcs/svn2git/svn2git-1.0.2.1.ebuild
new file mode 100644
index 000000000000..004f5532ca0f
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.2.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+MY_PV="1.0.2-1-gebac099"
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ [ "$PV" != "9999" ] && epatch "${FILESDIR}"/${PN}-1.0.2.1-version.patch
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.3_p1.ebuild b/dev-vcs/svn2git/svn2git-1.0.3_p1.ebuild
new file mode 100644
index 000000000000..c003040118b3
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.3_p1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit versionator eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+MY_PV=$(get_version_component_range 1-3)
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${PN}-1.0.3_p1-version.patch
+ epatch "${FILESDIR}"/${PN}-1.0.3-backup-refs.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.4.ebuild b/dev-vcs/svn2git/svn2git-1.0.4.ebuild
new file mode 100644
index 000000000000..ba6331fb687a
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.4.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${PN}-1.0.4-version.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.5.ebuild b/dev-vcs/svn2git/svn2git-1.0.5.ebuild
new file mode 100644
index 000000000000..bd17728959e9
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.5.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${P}-version.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.6.ebuild b/dev-vcs/svn2git/svn2git-1.0.6.ebuild
new file mode 100644
index 000000000000..bd17728959e9
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.6.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${P}-version.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-1.0.8-r1.ebuild b/dev-vcs/svn2git/svn2git-1.0.8-r1.ebuild
new file mode 100644
index 000000000000..c556034f5696
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-1.0.8-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${P}-version.patch
+ fi
+ epatch "${FILESDIR}"/${P}-compile.patch
+ epatch "${FILESDIR}"/${P}-utf8-author-names.patch
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svn2git/svn2git-9999.ebuild b/dev-vcs/svn2git/svn2git-9999.ebuild
new file mode 100644
index 000000000000..b3d76ddee440
--- /dev/null
+++ b/dev-vcs/svn2git/svn2git-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils qt4-r2
+[ "$PV" == "9999" ] && inherit git-2
+
+DESCRIPTION="Tool for one-time conversion from svn to git"
+HOMEPAGE="https://github.com/svn-all-fast-export/svn2git"
+if [ "$PV" == "9999" ]; then
+ EGIT_REPO_URI="https://github.com/svn-all-fast-export/svn2git.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://www.hartwork.org/public/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+# KEYWORDS way up
+
+DEPEND="dev-vcs/subversion
+ dev-qt/qtcore:4"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+S=${WORKDIR}/${PN}-${PN}
+
+src_prepare() {
+ # Note: patching order matters
+ epatch "${FILESDIR}"/${PN}-1.0.2.1-include-path.patch
+ if [[ "$PV" != "9999" ]]; then
+ epatch "${FILESDIR}"/${P}-version.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ insinto /usr/share/${PN}/samples
+ doins samples/*.rules || die 'doins failed'
+ dobin svn-all-fast-export || die 'dobin failed'
+ dosym svn-all-fast-export /usr/bin/svn2git || die 'dosym failed'
+}
diff --git a/dev-vcs/svneverever/Manifest b/dev-vcs/svneverever/Manifest
new file mode 100644
index 000000000000..77ba576bf59f
--- /dev/null
+++ b/dev-vcs/svneverever/Manifest
@@ -0,0 +1,2 @@
+DIST svneverever-1.2.2.tar.gz 3920 SHA256 a0c9904f7f53c17192e3ee34c5b23f79eb940670d13e22301fe2452668ed2bdb SHA512 b77c258b2846663cd108bd7a7f3b763693e40b15210ba0908138b039702accab22c2575c7dbe330451043488b2ad69ca0230ccf39716055d1d0fc93cfa1cc6f3 WHIRLPOOL 558f3f2f7734c16ce25ec0ec1646fd8cf54d19ece2994e7e3f972b5c32bb14b2569fb5644e8858e61ace629ac70b7b9914b02cb470e93d1f3fbd46f1f27ff695
+DIST svneverever-1.3.0.tar.gz 6006 SHA256 3542d4ca06fb80e3927e3cb0719ea86eef64d4fa637cd3350a610462a30617d4 SHA512 dfc5f8e96808d95ce387b2c0d2ea34c4cae81851dc5813b05eeec719ae7cbfb69ff33f38a88429b1caab2873af676072ce3d76592d8fac5dd186f18454bade10 WHIRLPOOL 075baecc430890b5802849f30980dd80a7311305023be341e83710fd7dbd3f1c56db8467ebbd586add6eff350b63912921044d8827371b0cfe0cf5cf13c9d571
diff --git a/dev-vcs/svneverever/metadata.xml b/dev-vcs/svneverever/metadata.xml
new file mode 100644
index 000000000000..ca154c757e21
--- /dev/null
+++ b/dev-vcs/svneverever/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">hartwork/svneverever</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/svneverever/svneverever-1.2.2-r1.ebuild b/dev-vcs/svneverever/svneverever-1.2.2-r1.ebuild
new file mode 100644
index 000000000000..2d7daa70aa71
--- /dev/null
+++ b/dev-vcs/svneverever/svneverever-1.2.2-r1.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="Tool collecting path entries across SVN history"
+HOMEPAGE="https://github.com/hartwork/svneverever"
+SRC_URI="http://www.hartwork.org/public/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-python/pysvn[${PYTHON_USEDEP}]"
diff --git a/dev-vcs/svneverever/svneverever-1.3.0.ebuild b/dev-vcs/svneverever/svneverever-1.3.0.ebuild
new file mode 100644
index 000000000000..ed38f70177d1
--- /dev/null
+++ b/dev-vcs/svneverever/svneverever-1.3.0.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="Tool collecting path entries across SVN history"
+HOMEPAGE="https://github.com/hartwork/svneverever"
+SRC_URI="https://github.com/hartwork/svneverever/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-python/pysvn[${PYTHON_USEDEP}]"
diff --git a/dev-vcs/svnmailer/Manifest b/dev-vcs/svnmailer/Manifest
new file mode 100644
index 000000000000..ee97eb2ceca5
--- /dev/null
+++ b/dev-vcs/svnmailer/Manifest
@@ -0,0 +1 @@
+DIST svnmailer-1.0.9.tar.bz2 354935 SHA256 bb4cc681a8486bfb80a29f4f1470ccfe6eb804a12ea53c231decd96c2c003217 SHA512 2dae9b123e3f511f022cf4d0db75b30b7fad33719382a7ab57897726ababc73bf24bb838cd92258ee5573996e1fef9805f8afbe958694e7cb4682433dba9a6e0 WHIRLPOOL 31d871a2deda48f56ea8c55b9095cf6b62547385358d5b03687a4e7b4c223a88019bfa67dfed0f67129c649b6222b765e02059f6df201eb816034575c5d440d8
diff --git a/dev-vcs/svnmailer/metadata.xml b/dev-vcs/svnmailer/metadata.xml
new file mode 100644
index 000000000000..91f4e72fb544
--- /dev/null
+++ b/dev-vcs/svnmailer/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/dev-vcs/svnmailer/svnmailer-1.0.9-r1.ebuild b/dev-vcs/svnmailer/svnmailer-1.0.9-r1.ebuild
new file mode 100644
index 000000000000..72ba6a2f95bd
--- /dev/null
+++ b/dev-vcs/svnmailer/svnmailer-1.0.9-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="A subversion commit notifier written in Python"
+HOMEPAGE="http://opensource.perlig.de/svnmailer/"
+SRC_URI="http://storage.perlig.de/svnmailer/${P}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="${DEPEND}
+ dev-vcs/subversion[python,${PYTHON_USEDEP}]
+ virtual/mta"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+python_prepare_all() {
+ sed -i -e "s:man/man1:share/&:" setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-vcs/tig/Manifest b/dev-vcs/tig/Manifest
new file mode 100644
index 000000000000..ca4a5d525dfd
--- /dev/null
+++ b/dev-vcs/tig/Manifest
@@ -0,0 +1,2 @@
+DIST tig-2.0.3.tar.gz 605513 SHA256 faac0fd80cb771cf34ae0aa9b2fedba1cc0f8aa70731d400661660c8d48f96c4 SHA512 0d16c4ec68d7b846b8cb990756ff683584eaf7eea89f9853d3803c86ef7544e2b80e1376a0e441082d7d23a2496fb7bcf8b5d987fe026b3d85e777064351fa15 WHIRLPOOL 6e63b1622aa593e7ee30db5356f438ef536f428a30f917b1bce43204a4c27b7b21b3268b5c97fde5c6518b4a1fd81a85f2168138e94aab7b8673176c01b0265f
+DIST tig-2.1.tar.gz 635114 SHA256 306287f684f57563a53abf1cf46149e0d30c6b500fbc0c39e9bc059506373cb0 SHA512 d21d263b62675721467aca35cf2f7fbe41e0042ac295516bd67e348039030df53de30f5dea3059c4b13188e450921972920c014f0381729826c727dcdd7f6804 WHIRLPOOL 9a5ea63fd985764c0d06660bc58d3ffe11bb9242ab92ec8dc7d638e1e5f5693e342577fc1bceb7e899386f96baaa467506bfb9a3fc5ff52231c24f317c9cb68d
diff --git a/dev-vcs/tig/metadata.xml b/dev-vcs/tig/metadata.xml
new file mode 100644
index 000000000000..34b1ad2e28c1
--- /dev/null
+++ b/dev-vcs/tig/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <maintainer>
+ <email>gregkh@gentoo.org</email>
+ <name>Greg Kroah-Hartman</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/tig/tig-2.0.3.ebuild b/dev-vcs/tig/tig-2.0.3.ebuild
new file mode 100644
index 000000000000..3547f5b30677
--- /dev/null
+++ b/dev-vcs/tig/tig-2.0.3.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit bash-completion-r1 toolchain-funcs
+
+DESCRIPTION="Tig: text mode interface for git"
+HOMEPAGE="http://jonas.nitro.dk/tig/"
+SRC_URI="http://jonas.nitro.dk/tig/releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="unicode"
+
+DEPEND="sys-libs/ncurses[unicode?]
+ sys-libs/readline:0"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ # pre-generated manpages are in the root directory
+ sed -i '/^MANDOC/s#doc/##g' Makefile || die
+}
+
+src_configure() {
+ econf $(use_with unicode ncursesw)
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_test() {
+ # workaround parallel test failures
+ emake -j1 test
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-doc-man
+ dohtml manual.html README.html NEWS.html
+ newbashcomp contrib/tig-completion.bash ${PN}
+}
diff --git a/dev-vcs/tig/tig-2.1.ebuild b/dev-vcs/tig/tig-2.1.ebuild
new file mode 100644
index 000000000000..7c5983a2f38b
--- /dev/null
+++ b/dev-vcs/tig/tig-2.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit bash-completion-r1 toolchain-funcs
+
+DESCRIPTION="Tig: text mode interface for git"
+HOMEPAGE="http://jonas.nitro.dk/tig/"
+SRC_URI="http://jonas.nitro.dk/tig/releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="unicode"
+
+DEPEND="sys-libs/ncurses[unicode?]
+ sys-libs/readline:0"
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+
+src_prepare() {
+ # pre-generated manpages are in the root directory
+ sed -i '/^MANDOC/s#doc/##g' Makefile || die
+}
+
+src_configure() {
+ econf $(use_with unicode ncursesw)
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_test() {
+ # workaround parallel test failures
+ emake -j1 test
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-doc-man
+ dohtml manual.html README.html NEWS.html
+ newbashcomp contrib/tig-completion.bash ${PN}
+
+ docinto examples
+ dodoc contrib/*.tigrc
+}
diff --git a/dev-vcs/tkcvs/Manifest b/dev-vcs/tkcvs/Manifest
new file mode 100644
index 000000000000..0a28b3099c1b
--- /dev/null
+++ b/dev-vcs/tkcvs/Manifest
@@ -0,0 +1,2 @@
+DIST tkcvs-8.2.3.tar.gz 570910 SHA256 4bfb29dd9ffbbbc1e6e611e1c772af745d742d336e797bf056dbf70116b8e32a SHA512 42fb03acf6367e02f6f7b3e1ad66232be4825f152b3e4d123080e0ce7d2f53b5eacb71ac95fbc15224fb4c4c2cae979b612dbb11d0cd0b8fc4a0222a8cd40c8a WHIRLPOOL b5c8edb97099c094e1e3c1a04f76dc48dcca12ac036cf3236576dc00ba6ad9ddd696f38e74c715352199884fc7a17ddb3cb909be74a1fdb8509c053c8b9e2140
+DIST tkcvs_8_2_2.tar.gz 1183853 SHA256 d03cfa701ba4c3e360c6590ea546f9eb1ef8dbff037e62d82f750535b142385c SHA512 7a3f76f8157601a9359382597746e7ee4ed491f94d4ba5992848d48b8c5de1c81c91e8245a88b17c68af6898f269fcd3bf6ba9c920bb083190c849ec13e7bf9f WHIRLPOOL 75b8fe05628b353c01effaf64d20a58f45365c4616300313bad56016e408b2f473186d9cce0b00e3dcd78f7a2292a1e4024840a6a6dfe6bb9b1a3989a96ad35f
diff --git a/dev-vcs/tkcvs/metadata.xml b/dev-vcs/tkcvs/metadata.xml
new file mode 100644
index 000000000000..815cc916f2b6
--- /dev/null
+++ b/dev-vcs/tkcvs/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>tcltk</herd>
+</pkgmetadata>
diff --git a/dev-vcs/tkcvs/tkcvs-8.2.2.ebuild b/dev-vcs/tkcvs/tkcvs-8.2.2.ebuild
new file mode 100644
index 000000000000..890b8b4ddc17
--- /dev/null
+++ b/dev-vcs/tkcvs/tkcvs-8.2.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils multilib
+
+MY_P=${PN}_${PV//./_}
+
+DESCRIPTION="Tcl/Tk-based graphical interface to CVS with Subversion support"
+HOMEPAGE="http://www.twobarleycorns.net/tkcvs.html"
+SRC_URI="http://www.twobarleycorns.net/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-lang/tk"
+RDEPEND="${DEPEND}
+ dev-vcs/cvs
+ dev-vcs/subversion
+ sys-apps/diffutils
+ dev-util/tkdiff"
+
+S="${WORKDIR}"/${MY_P}
+
+src_prepare() {
+ sed \
+ -e "/set MANDIR/s/man man1/share man man1/" \
+ -e "/set LIBDIR/s/lib/$(get_libdir)/" \
+ -i doinstall.tcl || die
+}
+
+src_install() {
+ # bug 66030
+ unset DISPLAY
+ ./doinstall.tcl -nox "${D}"/usr || die
+
+ # dev-tcktk/tkdiff
+ rm "${D}"/usr/bin/tkdiff
+
+ # Add docs...this is important
+ dodoc CHANGELOG FAQ
+}
diff --git a/dev-vcs/tkcvs/tkcvs-8.2.3.ebuild b/dev-vcs/tkcvs/tkcvs-8.2.3.ebuild
new file mode 100644
index 000000000000..bf062eb54f51
--- /dev/null
+++ b/dev-vcs/tkcvs/tkcvs-8.2.3.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils multilib
+
+DESCRIPTION="Tcl/Tk-based graphical interface to CVS with Subversion support"
+HOMEPAGE="http://www.twobarleycorns.net/tkcvs.html"
+SRC_URI="http://www.twobarleycorns.net/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND="dev-lang/tk"
+RDEPEND="${DEPEND}
+ dev-vcs/cvs
+ dev-vcs/subversion
+ sys-apps/diffutils
+ dev-util/tkdiff"
+
+src_prepare() {
+ sed \
+ -e "/set MANDIR/s/man man1/share man man1/" \
+ -e "/set LIBDIR/s/lib/$(get_libdir)/" \
+ -i doinstall.tcl || die
+}
+
+src_install() {
+ # bug 66030
+ unset DISPLAY
+ ./doinstall.tcl -nox "${D}"/usr || die
+
+ # dev-tcktk/tkdiff
+ rm "${D}"/usr/bin/tkdiff
+
+ # Add docs...this is important
+ dodoc {CHANGELOG,FAQ}.txt
+
+ make_desktop_entry ${PN} TkCVS "${EPREFIX}"/usr/$(get_libdir)/tkcvs/bitmaps/ticklefish_med.gif
+}
diff --git a/dev-vcs/topgit/Manifest b/dev-vcs/topgit/Manifest
new file mode 100644
index 000000000000..2cd5b6494e3b
--- /dev/null
+++ b/dev-vcs/topgit/Manifest
@@ -0,0 +1 @@
+DIST topgit-0.9.tar.gz 37025 SHA256 24b55f666e8d88ebf092a1df365492a659210a750c0793acb0c8560694203dfd SHA512 15b4ec44fb1711273155350924806f9ddce330251d3f300f5d2ecf445f4822c40b5c7309429876746ed8226c00f74292956f51f9126c8c359c3f4d589c73791c WHIRLPOOL 4a281723d518d5ea7326703187401870dc05a8fb84d23ab5cebf9b1edc70f0bf5770a9d032f5df67ff55c645750d848763aab503eec6dd9cd6d4c23f1cc8ec69
diff --git a/dev-vcs/topgit/metadata.xml b/dev-vcs/topgit/metadata.xml
new file mode 100644
index 000000000000..182cfab3c7a7
--- /dev/null
+++ b/dev-vcs/topgit/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>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">greenrd/topgit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/topgit/topgit-0.9.ebuild b/dev-vcs/topgit/topgit-0.9.ebuild
new file mode 100644
index 000000000000..2e44c817849f
--- /dev/null
+++ b/dev-vcs/topgit/topgit-0.9.ebuild
@@ -0,0 +1,34 @@
+# 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 different patch queue manager"
+HOMEPAGE="https://github.com/greenrd/topgit"
+SRC_URI="https://github.com/greenrd/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="sys-apps/sed
+ virtual/awk"
+RDEPEND="dev-vcs/git"
+
+S="${WORKDIR}/${PN}-${P}"
+
+src_compile() {
+ # Needed because of "hardcoded" paths
+ emake prefix="/usr" sharedir="/usr/share/doc/${PF}"
+}
+
+src_install() {
+ emake prefix="${D}/usr" sharedir="${D}/usr/share/doc/${PF}" install
+
+ newbashcomp contrib/tg-completion.bash tg
+ dodoc README
+}
diff --git a/dev-vcs/tortoisehg/Manifest b/dev-vcs/tortoisehg/Manifest
new file mode 100644
index 000000000000..06e55d776a6f
--- /dev/null
+++ b/dev-vcs/tortoisehg/Manifest
@@ -0,0 +1,4 @@
+DIST tortoisehg-3.3.2.tar.gz 8226128 SHA256 779beb06588897d1c42fc463fecc4b61498f7cac76681fe1c1f017ecd811719a SHA512 4b7e1422731507aa8947b0e8e7746a6daa004186833db200122927c4e5a2f2cb1fbbf12f89089e3ee82d1a22fdb3c7745465188cbf3e14d73d831b953f2b2d9f WHIRLPOOL 34fce6c6383ae94eb4d6fbca854068535ac39b50746dbcc3ee9460976231dc68c3c5f824dc31082838505bdaeaf3620306ceea867d8ac5571d00ee1f1192e867
+DIST tortoisehg-3.3.3.tar.gz 8230380 SHA256 a22ec794b0152b25b085447a253594dde27f71863149b9471ec70669687fb47f SHA512 ed15a2ce76647f6c2d9df2daebc62f983eec6a27ea15a808060d83968cfee2c22f643b2ed6fb48bf06dd5d7cb9f4178e756e539eec2ca43e74fe4c8cfc7da4cf WHIRLPOOL d069dbe4ca109aaf2ebf9dd73f2d87343c2c71a8d5a894a5b7278a5edc878aa7eda56f9d53dca8968d1e730eea94a9f814a5cd76fb4af522a506753a5342cb47
+DIST tortoisehg-3.4.1.tar.gz 8236037 SHA256 0b85e92b76ef14eba2ea4a2476ef16f561711680089c3e4148e185a51bfb81b4 SHA512 06379ce04d6074a91f69cca6b56d081b57d21239aa7e1cf8368d25f76f04dfd09d00bcc67999380ef7539ff404cee0a0586131ad99722382e077b4f11aff2b14 WHIRLPOOL 8702417b63826d6fede4cac379a137cf912c5073ea4d83260a3d35e0b02dc7150df004c9b6716861c2b045d82e9aeffc26cebc4d2c7ba8ae28ef4542fc46ca88
+DIST tortoisehg-3.4.2.tar.gz 8205349 SHA256 d22692166dc6ff61c9d12bfe5ceb77fbf87e7dd52222c956976e7987d84145a1 SHA512 f771536508f1c72c15b1fe7fbf5b3ef6dafbb14314db45776632231dd2d74b46b862476fe78505a08b2271c2ce6419926e6090a2e0a6451da60314ba154fe9f4 WHIRLPOOL cfe0db33da10b2fcafff3e831937488a276924420cfff8a50396e0109c3edef7fb182036d38b72ff8fbf6aafae714eb1b6c4caf109938361babf04eed3addce4
diff --git a/dev-vcs/tortoisehg/metadata.xml b/dev-vcs/tortoisehg/metadata.xml
new file mode 100644
index 000000000000..c9169515bdf5
--- /dev/null
+++ b/dev-vcs/tortoisehg/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>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/tortoisehg/tortoisehg-3.3.2.ebuild b/dev-vcs/tortoisehg/tortoisehg-3.3.2.ebuild
new file mode 100644
index 000000000000..483558f5a7ba
--- /dev/null
+++ b/dev-vcs/tortoisehg/tortoisehg-3.3.2.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="amd64 x86"
+ SRC_URI="https://www.bitbucket.org/${PN}/targz/downloads/${P}.tar.gz"
+ HG_DEPEND=">=dev-vcs/mercurial-3.2 <dev-vcs/mercurial-3.4"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/tortoisehg/thg"
+ EHG_REVISION="stable"
+ KEYWORDS=""
+ SRC_URI=""
+ HG_DEPEND="dev-vcs/mercurial"
+fi
+
+DESCRIPTION="Set of graphical tools for Mercurial"
+HOMEPAGE="http://tortoisehg.bitbucket.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="${HG_DEPEND}
+ dev-python/iniparse[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/PyQt4[svg,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.3 )"
+
+# Workaround race condition in build_qt
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ if [[ ${LINGUAS+set} ]]; then
+ cd i18n/tortoisehg || die
+ local x y keep
+ for x in *.po; do
+ keep=false
+ for y in ${LINGUAS}; do
+ if [[ ${y} == ${x%.po}* ]]; then
+ keep=true
+ break
+ fi
+ done
+ ${keep} || rm "${x}" || die
+ done
+ cd "${S}" || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/ReadMe*.txt doc/TODO contrib/mergetools.rc
+ if use doc ; then
+ dohtml -r doc/build/html/
+ fi
+ newicon -s scalable icons/scalable/apps/thg-logo.svg thg_logo.svg
+ domenu contrib/thg.desktop
+}
+
+pkg_postinst() {
+ elog "When startup of ${PN} fails with an API version mismatch error"
+ elog "between dev-python/sip and dev-python/PyQt4 please rebuild"
+ elog "dev-python/qscintilla-python."
+}
diff --git a/dev-vcs/tortoisehg/tortoisehg-3.3.3.ebuild b/dev-vcs/tortoisehg/tortoisehg-3.3.3.ebuild
new file mode 100644
index 000000000000..deb4e2f79023
--- /dev/null
+++ b/dev-vcs/tortoisehg/tortoisehg-3.3.3.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://www.bitbucket.org/${PN}/targz/downloads/${P}.tar.gz"
+ HG_DEPEND=">=dev-vcs/mercurial-3.2 <dev-vcs/mercurial-3.4"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/tortoisehg/thg"
+ EHG_REVISION="stable"
+ KEYWORDS=""
+ SRC_URI=""
+ HG_DEPEND="dev-vcs/mercurial"
+fi
+
+DESCRIPTION="Set of graphical tools for Mercurial"
+HOMEPAGE="http://tortoisehg.bitbucket.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="${HG_DEPEND}
+ dev-python/iniparse[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/PyQt4[svg,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.3 )"
+
+# Workaround race condition in build_qt
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ if [[ ${LINGUAS+set} ]]; then
+ cd i18n/tortoisehg || die
+ local x y keep
+ for x in *.po; do
+ keep=false
+ for y in ${LINGUAS}; do
+ if [[ ${y} == ${x%.po}* ]]; then
+ keep=true
+ break
+ fi
+ done
+ ${keep} || rm "${x}" || die
+ done
+ cd "${S}" || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/ReadMe*.txt doc/TODO contrib/mergetools.rc
+ if use doc ; then
+ dohtml -r doc/build/html/
+ fi
+ newicon -s scalable icons/scalable/apps/thg-logo.svg thg_logo.svg
+ domenu contrib/thg.desktop
+}
+
+pkg_postinst() {
+ elog "When startup of ${PN} fails with an API version mismatch error"
+ elog "between dev-python/sip and dev-python/PyQt4 please rebuild"
+ elog "dev-python/qscintilla-python."
+}
diff --git a/dev-vcs/tortoisehg/tortoisehg-3.4.1.ebuild b/dev-vcs/tortoisehg/tortoisehg-3.4.1.ebuild
new file mode 100644
index 000000000000..377dc9d90775
--- /dev/null
+++ b/dev-vcs/tortoisehg/tortoisehg-3.4.1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://www.bitbucket.org/${PN}/targz/downloads/${P}.tar.gz"
+ HG_DEPEND=">=dev-vcs/mercurial-3.3 <dev-vcs/mercurial-3.5"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/tortoisehg/thg"
+ EHG_REVISION="stable"
+ KEYWORDS=""
+ SRC_URI=""
+ HG_DEPEND="dev-vcs/mercurial"
+fi
+
+DESCRIPTION="Set of graphical tools for Mercurial"
+HOMEPAGE="http://tortoisehg.bitbucket.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="${HG_DEPEND}
+ dev-python/iniparse[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/PyQt4[svg,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.3 )"
+
+# Workaround race condition in build_qt
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ if [[ ${LINGUAS+set} ]]; then
+ cd i18n/tortoisehg || die
+ local x y keep
+ for x in *.po; do
+ keep=false
+ for y in ${LINGUAS}; do
+ if [[ ${y} == ${x%.po}* ]]; then
+ keep=true
+ break
+ fi
+ done
+ ${keep} || rm "${x}" || die
+ done
+ cd "${S}" || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/ReadMe*.txt doc/TODO contrib/mergetools.rc
+ if use doc ; then
+ dohtml -r doc/build/html/
+ fi
+ newicon -s scalable icons/scalable/apps/thg-logo.svg thg_logo.svg
+ domenu contrib/thg.desktop
+}
+
+pkg_postinst() {
+ elog "When startup of ${PN} fails with an API version mismatch error"
+ elog "between dev-python/sip and dev-python/PyQt4 please rebuild"
+ elog "dev-python/qscintilla-python."
+}
diff --git a/dev-vcs/tortoisehg/tortoisehg-3.4.2.ebuild b/dev-vcs/tortoisehg/tortoisehg-3.4.2.ebuild
new file mode 100644
index 000000000000..377dc9d90775
--- /dev/null
+++ b/dev-vcs/tortoisehg/tortoisehg-3.4.2.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://www.bitbucket.org/${PN}/targz/downloads/${P}.tar.gz"
+ HG_DEPEND=">=dev-vcs/mercurial-3.3 <dev-vcs/mercurial-3.5"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/tortoisehg/thg"
+ EHG_REVISION="stable"
+ KEYWORDS=""
+ SRC_URI=""
+ HG_DEPEND="dev-vcs/mercurial"
+fi
+
+DESCRIPTION="Set of graphical tools for Mercurial"
+HOMEPAGE="http://tortoisehg.bitbucket.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="${HG_DEPEND}
+ dev-python/iniparse[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/PyQt4[svg,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.3 )"
+
+# Workaround race condition in build_qt
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ if [[ ${LINGUAS+set} ]]; then
+ cd i18n/tortoisehg || die
+ local x y keep
+ for x in *.po; do
+ keep=false
+ for y in ${LINGUAS}; do
+ if [[ ${y} == ${x%.po}* ]]; then
+ keep=true
+ break
+ fi
+ done
+ ${keep} || rm "${x}" || die
+ done
+ cd "${S}" || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/ReadMe*.txt doc/TODO contrib/mergetools.rc
+ if use doc ; then
+ dohtml -r doc/build/html/
+ fi
+ newicon -s scalable icons/scalable/apps/thg-logo.svg thg_logo.svg
+ domenu contrib/thg.desktop
+}
+
+pkg_postinst() {
+ elog "When startup of ${PN} fails with an API version mismatch error"
+ elog "between dev-python/sip and dev-python/PyQt4 please rebuild"
+ elog "dev-python/qscintilla-python."
+}
diff --git a/dev-vcs/tortoisehg/tortoisehg-9999.ebuild b/dev-vcs/tortoisehg/tortoisehg-9999.ebuild
new file mode 100644
index 000000000000..c5bb89d2d70a
--- /dev/null
+++ b/dev-vcs/tortoisehg/tortoisehg-9999.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1 eutils
+
+if [[ ${PV} != *9999* ]]; then
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://www.bitbucket.org/${PN}/targz/downloads/${P}.tar.gz"
+ HG_DEPEND=">=dev-vcs/mercurial-2.5 <dev-vcs/mercurial-2.7"
+else
+ inherit mercurial
+ EHG_REPO_URI="https://bitbucket.org/tortoisehg/thg"
+ EHG_REVISION="stable"
+ KEYWORDS=""
+ SRC_URI=""
+ HG_DEPEND="dev-vcs/mercurial"
+fi
+
+DESCRIPTION="Set of graphical tools for Mercurial"
+HOMEPAGE="http://tortoisehg.bitbucket.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="${HG_DEPEND}
+ dev-python/iniparse[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/PyQt4[svg,${PYTHON_USEDEP}]
+ dev-python/qscintilla-python[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( >=dev-python/sphinx-1.0.3 )"
+
+# Workaround race condition in build_qt
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ if [[ ${LINGUAS+set} ]]; then
+ cd i18n/tortoisehg || die
+ local x y keep
+ for x in *.po; do
+ keep=false
+ for y in ${LINGUAS}; do
+ if [[ ${y} == ${x%.po}* ]]; then
+ keep=true
+ break
+ fi
+ done
+ ${keep} || rm "${x}" || die
+ done
+ cd "${S}" || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ dodoc doc/ReadMe*.txt doc/TODO contrib/mergetools.rc
+ if use doc ; then
+ dohtml -r doc/build/html/
+ fi
+ newicon -s scalable icons/scalable/apps/thg-logo.svg thg_logo.svg
+ domenu contrib/${PN}.desktop
+}
+
+pkg_postinst() {
+ elog "When startup of ${PN} fails with an API version mismatch error"
+ elog "between dev-python/sip and dev-python/PyQt4 please rebuild"
+ elog "dev-python/qscintilla-python."
+}
diff --git a/dev-vcs/vcsh/Manifest b/dev-vcs/vcsh/Manifest
new file mode 100644
index 000000000000..6542ff7d2c44
--- /dev/null
+++ b/dev-vcs/vcsh/Manifest
@@ -0,0 +1,3 @@
+DIST vcsh-1.20140508-manpage-static.tar.gz 28573 SHA256 1d4d9fe459071da3fffa392c7e62ce1386bc4b24a641e23633494dc2299598e3 SHA512 d9f5ba701e05f14d63c6e3ceebb75190fe30c663d12b5346d7cf19ed0b3e75e96a2676fdca3b86e59516efd21da383ea99ba783a77c0531cd9c980f63ee802ca WHIRLPOOL 8a49b63acbfbe99272e2169613fa3e5564b6b55077b775a43f3d77f212c44d79858889144cc890d10f1bfebab3e9c107ada7565469c7785abe3e61f943415d7b
+DIST vcsh-1.20141026-manpage-static.tar.gz 32248 SHA256 07737a52b7a4165981e05e07ecbc4023fe07a964247f177f6a2aa39f823d15a2 SHA512 7358fe738cbacb5a0bf1709a62422b7722c324c5fe9792a4f2266484b17aa70566ec0606227142eb5645e27fa3bf5d84d1551f8ffccf168b7944a8e552137803 WHIRLPOOL 32ea56edeed05e9ca5b33678d695b8366a676fa44a1deaa8a82c3513f4f41c632151afc47278b561a4a20186a01a71169c7548f4e597e160097a848fd72983e6
+DIST vcsh-1.20150502.tar.gz 33813 SHA256 127c7f35e9b097b722917d42f9652375033b12f14b6702a08621cb16205d253f SHA512 54306b424bbef145f1231b88823a6959b6263c11b677200a2d3914e0cdfd0595902e6193cd9acfa53c3c5c3aff18d2e9a974373e70da4516b0237005d95d5630 WHIRLPOOL 51f6a51e625e39e17143dd7ba8d51800bcd17d06849dbce4c35ee3f277b10a575d117cc68be2ffa042085e223c0dc7d1e5aee61ed6921438cc0088ba90295a5f
diff --git a/dev-vcs/vcsh/metadata.xml b/dev-vcs/vcsh/metadata.xml
new file mode 100644
index 000000000000..6114ad489fd0
--- /dev/null
+++ b/dev-vcs/vcsh/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>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">RichiH/vcsh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-vcs/vcsh/vcsh-1.20140508-r2.ebuild b/dev-vcs/vcsh/vcsh-1.20140508-r2.ebuild
new file mode 100644
index 000000000000..899fba1bf242
--- /dev/null
+++ b/dev-vcs/vcsh/vcsh-1.20140508-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION='Manage config files in $HOME via fake bare git repositories'
+HOMEPAGE="https://github.com/RichiH/vcsh/"
+SRC_URI="http://github.com/RichiH/vcsh/archive/v${PV}-manpage-static.tar.gz -> ${P}-manpage-static.tar.gz"
+
+LICENSE="|| ( GPL-3 GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+DEPEND=""
+
+DOCS=( changelog README.md CONTRIBUTORS )
+
+S=${S}-manpage-static
+
+src_prepare() {
+ default
+ sed -i \
+ -e 's,vendor-completions,site-functions,' \
+ -e "s,\(\$(DOCDIR_PREFIX)\)/\$(self),\1/${PF}," \
+ Makefile || die
+}
+
+src_install() {
+ default
+ dodoc -r doc/sample_hooks
+}
diff --git a/dev-vcs/vcsh/vcsh-1.20141026.ebuild b/dev-vcs/vcsh/vcsh-1.20141026.ebuild
new file mode 100644
index 000000000000..899fba1bf242
--- /dev/null
+++ b/dev-vcs/vcsh/vcsh-1.20141026.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION='Manage config files in $HOME via fake bare git repositories'
+HOMEPAGE="https://github.com/RichiH/vcsh/"
+SRC_URI="http://github.com/RichiH/vcsh/archive/v${PV}-manpage-static.tar.gz -> ${P}-manpage-static.tar.gz"
+
+LICENSE="|| ( GPL-3 GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+DEPEND=""
+
+DOCS=( changelog README.md CONTRIBUTORS )
+
+S=${S}-manpage-static
+
+src_prepare() {
+ default
+ sed -i \
+ -e 's,vendor-completions,site-functions,' \
+ -e "s,\(\$(DOCDIR_PREFIX)\)/\$(self),\1/${PF}," \
+ Makefile || die
+}
+
+src_install() {
+ default
+ dodoc -r doc/sample_hooks
+}
diff --git a/dev-vcs/vcsh/vcsh-1.20150502.ebuild b/dev-vcs/vcsh/vcsh-1.20150502.ebuild
new file mode 100644
index 000000000000..45c6bb509472
--- /dev/null
+++ b/dev-vcs/vcsh/vcsh-1.20150502.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='Manage config files in $HOME via fake bare git repositories'
+HOMEPAGE="https://github.com/RichiH/vcsh/"
+SRC_URI="http://github.com/RichiH/vcsh/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( GPL-3 GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-vcs/git"
+DEPEND=""
+
+DOCS=( changelog README.md CONTRIBUTORS )
+
+src_prepare() {
+ default
+ sed -i \
+ -e 's,vendor-completions,site-functions,' \
+ -e "s,\(\$(DOCDIR_PREFIX)\)/\$(self),\1/${PF}," \
+ Makefile || die "sed failed"
+
+ # remove dysfunctional tests
+ sed -i -e 's,install: all,install:,' \
+ Makefile || die "sed failed"
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ default
+ dodoc -r doc/sample_hooks
+}
diff --git a/dev-vcs/veracity/Manifest b/dev-vcs/veracity/Manifest
new file mode 100644
index 000000000000..690cbeaead7a
--- /dev/null
+++ b/dev-vcs/veracity/Manifest
@@ -0,0 +1,3 @@
+DIST js-1.8.0-rc1.tar.gz 1310344 SHA256 374398699ac3fd802d98d642486cf6b0edc082a119c9c9c499945a0bc73e3413 SHA512 b6e851d96cc3b5a10c3fc531922e8ba59c28e587c72365b63c3a0ab65a400cb24a217310dc9891387c02b79eb5f159e9b3d9bab36ce138257815b11d0524d5ba WHIRLPOOL 918e11fd7dfb9de6c7f8274761963109a72551a5b5606e5c22fa476975f47f51f64a6d3f4f9cb07818e5a6216c2fb2f0181c5e0efd2930cf01abc9ba6d22e370
+DIST veracity-source-1.0.0.10517.tar.gz 5211043 SHA256 2f9d1e3108229a85adff01d713abaea9eeaf873de5f651db60271efb7f517321 SHA512 c1f5e5a4231763ea75d779922c355de0f925de5e7a92a579d63191612d9f576e3105152be3d55a24e93589c7651b95e5fb7749bc488e777b9c6be030ebfb2b27 WHIRLPOOL efd4800f5095214a03fff12e1fae5276589d40c1e66790b9a455f1771f6778b86c218a52b9d0b193eb3c8f710ba3d1075fb983d4ec3e7e9270cb594958265624
+DIST veracity-source-1.1.0.10565.tar.gz 5377948 SHA256 2d129005ec1c62b78307a08899edce3a036e75a4a22be4e0dfed02c3fe17a16b SHA512 b26a34bdd6e71e460c878622114ee317f27dce594f6de4588dbb1cce8f0df9ac5d3679b0f8f31f9fd3afe2aa81218fe026ede0ae3c1a4cd3f47d09b584a02de9 WHIRLPOOL 7774359f38be43d97f1ed6aedc4c92d994fc0695cee481c0f7dedcd7a9456f8bdf9b885052c10d0e5895e5dd8010affb1335adcc69c33cc0d2db3c791c4dd1de
diff --git a/dev-vcs/veracity/files/veracity-1.0.0.10517-spidermonkey-as-needed.patch b/dev-vcs/veracity/files/veracity-1.0.0.10517-spidermonkey-as-needed.patch
new file mode 100644
index 000000000000..31964feb310d
--- /dev/null
+++ b/dev-vcs/veracity/files/veracity-1.0.0.10517-spidermonkey-as-needed.patch
@@ -0,0 +1,32 @@
+# HG changeset patch
+# User Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
+# Date 1315717091 0
+# Node ID 30297b7085c3a1ea1ecd390330ff291761128bae
+# Parent b44ad1bfbdbefb74cf53502ee6d0e5e7a5f97da5
+The embedded spidermonkey libjs.a needs nspr, fix -Wl,--as-needed.
+
+diff -r b44ad1bfbdbe -r 30297b7085c3 common-CMakeLists.txt
+--- a/common-CMakeLists.txt Thu Sep 01 12:09:41 2011 +0000
++++ b/common-CMakeLists.txt Sun Sep 11 04:58:11 2011 +0000
+@@ -297,10 +297,6 @@
+ INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
+ set(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${CURL_LIBRARIES})
+
+-FIND_LIBRARY(NSPR_LIB NAMES nspr4 libnspr4)
+-set(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${NSPR_LIB})
+-MARK_AS_ADVANCED(NSPR_LIB)
+-
+ FIND_PACKAGE(PkgConfig REQUIRED)
+ PKG_CHECK_MODULES(SQLITE REQUIRED sqlite3)
+ SET(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${SQLITE_LDFLAGS})
+@@ -321,6 +317,10 @@
+ MARK_AS_ADVANCED(SPIDERMONKEY_LIB)
+ set(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${SPIDERMONKEY_LIB})
+
++FIND_LIBRARY(NSPR_LIB NAMES nspr4 libnspr4)
++set(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${NSPR_LIB})
++MARK_AS_ADVANCED(NSPR_LIB)
++
+ SET(CMAKE_DATA_DIR "share/veracity" CACHE STRING "Install location for data (relative to prefix).")
+ SET(CMAKE_DOC_DIR "share/veracity" CACHE STRING "Install location for documentation (relative to prefix).")
+ SET(CMAKE_MAN_DIR "man" CACHE STRING "Install location for man pages (relative to prefix).")
diff --git a/dev-vcs/veracity/files/veracity-1.0.0.10517-system-sqlite.patch b/dev-vcs/veracity/files/veracity-1.0.0.10517-system-sqlite.patch
new file mode 100644
index 000000000000..5252dc0e3693
--- /dev/null
+++ b/dev-vcs/veracity/files/veracity-1.0.0.10517-system-sqlite.patch
@@ -0,0 +1,45 @@
+# HG changeset patch
+# User Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
+# Date 1314878981 0
+# Node ID 91ac9ba6484c95748fef02086619f9edeff7d434
+# Parent 6769293155a7f4f8f7744f38ba1a24e38a77128c
+Use system sqlite3 instead of bundled.
+
+diff -r 6769293155a7 -r 91ac9ba6484c common-CMakeLists.txt
+--- a/common-CMakeLists.txt Thu Sep 01 04:07:58 2011 +0000
++++ b/common-CMakeLists.txt Thu Sep 01 12:09:41 2011 +0000
+@@ -291,6 +291,11 @@
+ set(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${NSPR_LIB})
+ MARK_AS_ADVANCED(NSPR_LIB)
+
++FIND_PACKAGE(PkgConfig REQUIRED)
++PKG_CHECK_MODULES(SQLITE REQUIRED sqlite3)
++SET(SG_THIRDPARTY_LIBRARIES ${SG_THIRDPARTY_LIBRARIES} ${SQLITE_LDFLAGS})
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SQLITE_CFLAGS}")
++
+ # Only look for libuuid on Linux. OSX and Windows have this built in
+ IF("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+ FIND_PACKAGE(UUID REQUIRED)
+diff -r 6769293155a7 -r 91ac9ba6484c src/CMakeLists.txt
+--- a/src/CMakeLists.txt Thu Sep 01 04:07:58 2011 +0000
++++ b/src/CMakeLists.txt Thu Sep 01 12:09:41 2011 +0000
+@@ -33,8 +33,6 @@
+ add_subdirectory(winsync)
+ endif () # WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC
+
+-add_subdirectory(thirdparty)
+-
+ INSTALL(
+ DIRECTORY server_files
+ DESTINATION "${Veracity_DATA_DEST}"
+diff -r 6769293155a7 -r 91ac9ba6484c src/libraries/ut/CMakeLists.txt
+--- a/src/libraries/ut/CMakeLists.txt Thu Sep 01 04:07:58 2011 +0000
++++ b/src/libraries/ut/CMakeLists.txt Thu Sep 01 12:09:41 2011 +0000
+@@ -161,6 +161,6 @@
+ source_group("Header Files" FILES ${HEADERS})
+
+ add_library(sglib STATIC ${ALL_SOURCE})
+-target_link_libraries(sglib sghash sgtemplates sqlite3 ${SG_THIRDPARTY_LIBRARIES} ${SG_OS_LIBS})
++target_link_libraries(sglib sghash sgtemplates ${SG_THIRDPARTY_LIBRARIES} ${SG_OS_LIBS})
+
+ set_target_properties(sglib PROPERTIES FOLDER "Libraries")
diff --git a/dev-vcs/veracity/files/veracity-1.0.0.10517-werror.patch b/dev-vcs/veracity/files/veracity-1.0.0.10517-werror.patch
new file mode 100644
index 000000000000..7e622a7d1014
--- /dev/null
+++ b/dev-vcs/veracity/files/veracity-1.0.0.10517-werror.patch
@@ -0,0 +1,19 @@
+# HG changeset patch
+# User Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
+# Date 1314847280 0
+# Node ID 0646c94f7b47befbd5acc814ef1219b09f03fa71
+# Parent 368b57a9e1f890c4521d92c8d8c0e7abba7cfccc
+Fix -Werror (by removing it and letting the user specify CFLAGS).
+
+diff -r 368b57a9e1f8 -r 0646c94f7b47 common-CMakeLists.txt
+--- a/common-CMakeLists.txt Thu Sep 01 03:20:54 2011 +0000
++++ b/common-CMakeLists.txt Thu Sep 01 03:21:20 2011 +0000
+@@ -128,8 +128,6 @@
+ # TODO but gcc on the Mac is at version 4.0 and this
+ # TODO option was added in some later version.
+
+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wdeclaration-after-statement -Werror -Wstrict-prototypes")
+-
+ # the apple_unicode code violates the strict-aliasing rules
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
+
diff --git a/dev-vcs/veracity/metadata.xml b/dev-vcs/veracity/metadata.xml
new file mode 100644
index 000000000000..2455d09b90c7
--- /dev/null
+++ b/dev-vcs/veracity/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>binki@gentoo.org</email>
+ <name>Nathan Phillip Brink</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/veracity/veracity-1.0.0.10517.ebuild b/dev-vcs/veracity/veracity-1.0.0.10517.ebuild
new file mode 100644
index 000000000000..f75dac8403e7
--- /dev/null
+++ b/dev-vcs/veracity/veracity-1.0.0.10517.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils cmake-utils
+
+JS_P=js-1.8.0-rc1
+
+DESCRIPTION="A modern and featureful DVCS (distributed version control system)"
+HOMEPAGE="http://veracity-scm.com/"
+SRC_URI="http://download.sourcegear.com/Veracity/release/${PV}/${PN}-source-${PV}.tar.gz
+
+ ftp://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz
+ http://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+IUSE="test"
+
+S=${WORKDIR}/${PN}
+
+# Tests fail in 1.0.0.10517.
+RESTRICT=test
+
+# Veracity can only use the API from spidermonkey-1.8.0 which isn't
+# available in gentoo-x86. It seems that spidermonkey needs to be
+# SLOTed... because Veracity needs differing amounts of nontrivial work
+# to support spidermonkey-1.8.2 or any newer spidermonkey.
+#
+# || ( >=dev-lang/spidermonkey-1.8[threadsafe] >=dev-lang/spidermonkey-1.8.5 )
+RDEPEND="
+ dev-libs/icu
+ net-misc/curl
+ dev-libs/nspr
+ sys-apps/util-linux
+ dev-db/sqlite:3
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( app-arch/unzip )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-werror.patch
+ epatch "${FILESDIR}"/${P}-system-sqlite.patch
+ epatch "${FILESDIR}"/${P}-spidermonkey-as-needed.patch
+
+ rm -rf src/thirdparty || die
+
+ pushd "${WORKDIR}"/js || die
+ (
+ EPATCH_OPTS+=" -p8"
+ epatch "${S}"/thirdparty/patches/js-1.8.0-rc1__{jsapi.c,jscntxt.{c,h}}.patch
+ )
+}
+
+src_configure() {
+ # Convince cmake scripts that spidermonkey has been prepared.
+ mkdir -p thirdparty/{include/spidermonkey,lib} || die
+
+ local mycmakeargs=(
+ -DVVTHIRDPARTY="${S}"/thirdparty
+ -DSPIDERMONKEY_INCDIR="${S}"/thirdparty/include
+ -DSPIDERMONKEY_LIB="${S}"/thirdparty/lib/libjs.a
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ einfo "Compiling embedded spidermonkey (${JS_P})."
+ # Based on thirdparty/build_linux.sh.
+ emake -j1 \
+ -C "${WORKDIR}"/js/src \
+ JS_DIST="${EPREFIX}"/usr \
+ JS_THREADSAFE=1 \
+ BUILD_OPT=1 \
+ -f Makefile.ref
+ cp "${WORKDIR}"/js/src/{*.{h,msg,tbl},Linux_All_OPT.OBJ/*.h} thirdparty/include/spidermonkey/ \
+ || die "Preparing embedded spidermonkey."
+ cp "${WORKDIR}"/js/src/Linux_All_OPT.OBJ/libjs.a thirdparty/lib/ \
+ || die "Preparing embedded spidermonkey."
+
+ einfo "Compiling ${P}."
+ cmake-utils_src_compile
+}
diff --git a/dev-vcs/veracity/veracity-1.1.0.10565.ebuild b/dev-vcs/veracity/veracity-1.1.0.10565.ebuild
new file mode 100644
index 000000000000..3375539038cb
--- /dev/null
+++ b/dev-vcs/veracity/veracity-1.1.0.10565.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit bash-completion-r1 eutils cmake-utils
+
+JS_P=js-1.8.0-rc1
+
+DESCRIPTION="A modern and featureful DVCS (distributed version control system)"
+HOMEPAGE="http://veracity-scm.com/"
+SRC_URI="http://download.sourcegear.com/Veracity/release/${PV}/${PN}-source-${PV}.tar.gz
+
+ ftp://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz
+ http://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+IUSE="test"
+
+S=${WORKDIR}/${PN}
+
+# Tests fail in 1.0.0.10517.
+RESTRICT=test
+
+# Veracity can only use the API from spidermonkey-1.8.0 which isn't
+# available in gentoo-x86. It seems that spidermonkey needs to be
+# SLOTed... because Veracity needs differing amounts of nontrivial work
+# to support spidermonkey-1.8.2 or any newer spidermonkey.
+#
+# || ( >=dev-lang/spidermonkey-1.8[threadsafe] >=dev-lang/spidermonkey-1.8.5 )
+RDEPEND="
+ dev-libs/icu
+ net-misc/curl
+ dev-libs/nspr
+ sys-apps/util-linux
+ dev-db/sqlite:3
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( app-arch/unzip )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.0.0.10517-werror.patch
+ epatch "${FILESDIR}"/${PN}-1.0.0.10517-system-sqlite.patch
+ epatch "${FILESDIR}"/${PN}-1.0.0.10517-spidermonkey-as-needed.patch
+
+ rm -rf src/thirdparty || die
+
+ pushd "${WORKDIR}"/js || die
+ (
+ EPATCH_OPTS+=" -p8"
+ epatch "${S}"/thirdparty/patches/js-1.8.0-rc1__{jsapi.c,jscntxt.{c,h}}.patch
+ )
+}
+
+src_configure() {
+ # Convince cmake scripts that spidermonkey has been prepared.
+ mkdir -p thirdparty/{include/spidermonkey,lib} || die
+
+ local mycmakeargs=(
+ -DVVTHIRDPARTY="${S}"/thirdparty
+ -DSPIDERMONKEY_INCDIR="${S}"/thirdparty/include
+ -DSPIDERMONKEY_LIB="${S}"/thirdparty/lib/libjs.a
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ einfo "Compiling embedded spidermonkey (${JS_P})."
+ # Based on thirdparty/build_linux.sh.
+ emake -j1 \
+ -C "${WORKDIR}"/js/src \
+ JS_DIST="${EPREFIX}"/usr \
+ JS_THREADSAFE=1 \
+ BUILD_OPT=1 \
+ -f Makefile.ref
+ cp "${WORKDIR}"/js/src/{*.{h,msg,tbl},Linux_All_OPT.OBJ/*.h} thirdparty/include/spidermonkey/ \
+ || die "Preparing embedded spidermonkey."
+ cp "${WORKDIR}"/js/src/Linux_All_OPT.OBJ/libjs.a thirdparty/lib/ \
+ || die "Preparing embedded spidermonkey."
+
+ einfo "Compiling ${P}."
+ cmake-utils_src_compile
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ rm -f "${D}"/etc/bash-completion.d || die
+ newbashcomp src/cmd/vv.bash_completion vv
+}