# Contributor: Ɓukasz Jendrysik # Maintainer: Natanael Copa pkgname=git pkgver=2.7.4 pkgrel=0 pkgdesc="A distributed version control system" url="https://www.git-scm.com/" arch="all" license="GPL2+" depends= replaces="git-perl" # note that order matters subpackages="$pkgname-doc $pkgname-bash-completion:completion perl-$pkgname-svn:_perl_git_svn perl-$pkgname:_perl_git $pkgname-svn $pkgname-email $pkgname-cvs $pkgname-p4 $pkgname-daemon $pkgname-gitweb $pkgname-subtree $pkgname-subtree-doc:subtree_doc $pkgname-perl:_git_perl $pkgname-gui $pkgname-gitk " # we need tcl and tk to be built before git due to git-gui and gitk makedepends="zlib-dev openssl-dev curl-dev expat-dev perl-dev python-dev pcre-dev asciidoc xmlto perl-error tcl tk" source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz bb-tar.patch git-daemon.initd git-daemon.confd " _makeopts=" NO_GETTEXT=YesPlease NO_NSEC=YesPlease NO_SVN_TESTS=YesPlease USE_LIBPCRE=1" _gitcoredir=/usr/libexec/git-core _builddir="$srcdir"/$pkgname-$pkgver build() { cd "$_builddir" make prefix=/usr DESTDIR="$pkgdir" $_makeopts || return 1 } package() { cd "$_builddir" make prefix=/usr \ DESTDIR="$pkgdir" \ INSTALLDIRS=vendor \ $_makeopts install || return 1 mkdir -p "$pkgdir"/var/git install -Dm755 "$srcdir"/git-daemon.initd \ "$pkgdir"/etc/init.d/git-daemon || return 1 install -Dm644 "$srcdir"/git-daemon.confd \ "$pkgdir"/etc/conf.d/git-daemon || return 1 make prefix=/usr DESTDIR="$pkgdir" install-man || return 1 } _perl_git_svn() { pkgdesc="Perl interface to Git::SVN" depends="git=$pkgver-r$pkgrel" arch="noarch" replaces="git-perl" eval local `perl -V:vendorlib` mkdir -p "$subpkgdir"/$vendorlib/Git mv "$pkgdir"/$vendorlib/Git/SVN* "$subpkgdir"/$vendorlib/Git/ } _perl_git() { pkgdesc="Perl interface to Git" depends="git=$pkgver-r$pkgrel perl-error" arch="noarch" replaces="git-perl" eval local `perl -V:vendorlib` eval local `perl -V:vendorarch` for i in $vendorlib $vendorarch; do mkdir -p "$subpkgdir"/${i%/*} || return 1 mv "$pkgdir"/$i "$subpkgdir"/$i || return 1 done } email() { depends="perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl" pkgdesc="Git tools for sending email" arch="noarch" replaces="git" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/*email* "$subpkgdir"/$_gitcoredir } svn() { depends="perl perl-git-svn=$pkgver-r$pkgrel perl-subversion perl-term-readkey" pkgdesc="Subversion support for git" arch="noarch" replaces="" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/git-svn "$subpkgdir"/$_gitcoredir/ } cvs() { pkgdesc="Git tools for importing CVS repositories" depends="perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite" arch="noarch" replaces="git-perl" mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_gitcoredir mv "$pkgdir"/usr/bin/git-cvs* "$subpkgdir"/usr/bin/ || return 1 mv "$pkgdir"/$_gitcoredir/*cvs* "$subpkgdir"/$_gitcoredir \ || return 1 } p4() { pkgdesc="Git tools for working with Perforce depots" depends="git=$pkgver-r$pkgrel" arch="noarch" replaces="git" mkdir -p "$subpkgdir"/$_gitcoredir/mergetools mv "$pkgdir"/$_gitcoredir/*p4* "$subpkgdir"/$_gitcoredir/ || return 1 mv "$pkgdir"/$_gitcoredir/mergetools/*p4* \ "$subpkgdir"/$_gitcoredir/mergetools/ || return 1 } daemon() { pkgdesc="Git protocol daemon" depends="git=$pkgver-r$pkgrel" replaces="git" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/git-daemon "$subpkgdir"/$_gitcoredir \ || return 1 mv "$pkgdir"/etc "$subpkgdir"/ || return 1 } gitweb() { pkgdesc="Simple web interface to git repositories" depends="git=$pkgver-r$pkgrel perl" arch="noarch" replaces="git" mkdir -p "$subpkgdir"/usr/share mv "$pkgdir"/usr/share/gitweb "$subpkgdir"/usr/share/ } completion() { pkgdesc="Bash completion for $pkgname" depends="" arch="noarch" replaces="" install_if="$pkgname=$pkgver-r$pkgrel bash-completion" install -Dm644 "$_builddir"/contrib/completion/git-completion.bash \ "$subpkgdir"/usr/share/bash-completion/completions/git } subtree() { depends="git=$pkgver-r$pkgrel" pkgdesc="Split git repository into subtrees" arch="noarch" replaces="" cd "$_builddir"/contrib/subtree make prefix=/usr DESTDIR="$pkgdir" || return 1 make install prefix=/usr DESTDIR="$subpkgdir" } subtree_doc() { depends="" pkgdesc="Split git repository into subtrees (documentation)" arch="noarch" replaces="" cd "$_builddir"/contrib/subtree make install-man prefix=/usr DESTDIR="$subpkgdir" || return 1 gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1 } gui() { depends="git=$pkgver-r$pkgrel tcl tk" pkgdesc="GUI interface for git" arch="noarch" replaces="" mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/libexec/git-core mv "$pkgdir"/usr/share/git-gui "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/libexec/git-core/git-citool \ "$pkgdir"/usr/libexec/git-core/git-gui \ "$pkgdir"/usr/libexec/git-core/git-gui--askpass \ "$subpkgdir"/usr/libexec/git-core/ } gitk() { depends="git=$pkgver-r$pkgrel tcl tk" pkgdesc="Gitk interface for git" arch="noarch" replaces="" mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/bin mv "$pkgdir"/usr/share/gitk "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/bin/gitk "$subpkgdir"/usr/bin/ } # catch-the-rest of stuff that needs perl _git_perl() { depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel perl" pkgdesc="Additional Git commands that requires perl" arch="noarch" replaces="" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/perl* "$subpkgdir"/usr/lib/ cd "$pkgdir" find -type f | xargs file --mime-type | grep perl | cut -d: -f1| while read f; do mkdir -p "$subpkgdir"/${f%/*} mv "$f" "$subpkgdir"/${f%/*} done find "$subpkgdir" -name perllocal.pod -delete } md5sums="b0219fcb6d73104361f4fbdba3741d00 git-2.7.4.tar.xz 0549894076c2081d886fa5ee44c20e23 bb-tar.patch 75b9d8f33fbec38a8e0e06baf5165b19 git-daemon.initd 2258e95d389ccc6de0b5111d53d9eed6 git-daemon.confd" sha256sums="dee574defbe05ec7356a0842ddbda51315926f2fa7e39c2539f2c3dcc52e457b git-2.7.4.tar.xz 968e996a306dab643970c5ce1ac40926146b01b9c38a8fe81c74340a0302dbc7 bb-tar.patch 7918837f77b4cebce70b600b2f6da00e4c0df6b946f4ff5671c797c37b2ffc4f git-daemon.initd aaa80bd059db549dadf4c4e27a9aa41a4b5def844f8e563c493bc8513dcd981e git-daemon.confd" sha512sums="82a646140834e909bf1748a017e86f37f0711c759fe0a6ad03529beb57c79742cb7bf77c2dba29ccd84fcf3d5f18ad9c85c00f002d3b257be42e058750423da7 git-2.7.4.tar.xz 85767b5e03137008d6a96199e769e3979f75d83603ac8cb13a3481a915005637409a4fd94e0720da2ec6cd1124f35eba7cf20109a94816c4b4898a81fbc46bd2 bb-tar.patch 1e707250d133d56100f0311e7c2610920d6d81809c425ebf3e6acb4a289b958707a90dc38e1c17720da6dc2758dd84bf957fe6aed3854eacea79226eb616e885 git-daemon.initd 9640f8078d68ed2678e5249da3f946fc21f50e858b94127a4221de73c6132101afcd46bc1fe33861e9a7f731c0dc9591915b8ebf376b8e690cd7135703966509 git-daemon.confd"