# Contributor: Ɓukasz Jendrysik # Maintainer: Natanael Copa setvar pkgname = 'git' setvar pkgver = '2.14.2' setvar pkgrel = '0' setvar pkgdesc = ""A distributed version control system"" setvar url = ""https://www.git-scm.com/"" setvar arch = ""all"" setvar license = ""GPL2+"" setvar depends = '' setvar replaces = ""git-perl"" # secfixes: # 2.14.1: # - CVE-2017-1000117 # note that order matters setvar subpackages = ""$pkgname-doc $pkgname-bash-completion:completion:noarch perl-$pkgname-svn:_perl_git_svn:noarch perl-$pkgname:_perl_git:noarch $pkgname-svn $pkgname-email $pkgname-fast-import:_fast_import $pkgname-cvs::noarch $pkgname-p4::noarch $pkgname-daemon $pkgname-gitweb $pkgname-subtree::noarch $pkgname-subtree-doc:subtree_doc:noarch $pkgname-perl:_git_perl:noarch $pkgname-gui::noarch $pkgname-gitk::noarch "" # we need tcl and tk to be built before git due to git-gui and gitk setvar makedepends = ""zlib-dev libressl-dev curl-dev expat-dev perl-dev python2-dev pcre2-dev asciidoc xmlto perl-error tcl tk"" setvar source = ""https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz bb-tar.patch git-daemon.initd git-daemon.confd "" setvar _gitcoredir = "/usr/libexec/git-core" setvar builddir = ""$srcdir"/$pkgname-$pkgver" proc prepare { default_prepare cat >> config.mak <<< """ NO_GETTEXT=YesPlease NO_SVN_TESTS=YesPlease NO_REGEX=YesPlease USE_LIBPCRE2=YesPlease NO_NSEC=YesPlease NO_SYS_POLL_H=1 CFLAGS=$CFLAGS """ } proc build { cd $builddir make -j1 prefix=/usr DESTDIR="$pkgdir" perl/perl.mak make prefix=/usr DESTDIR="$pkgdir" } proc package { cd $builddir make -j1 prefix=/usr \ DESTDIR="$pkgdir" \ INSTALLDIRS=vendor \ install mkdir -p "$pkgdir"/var/git install -Dm755 "$srcdir"/git-daemon.initd \ "$pkgdir"/etc/init.d/git-daemon install -Dm644 "$srcdir"/git-daemon.confd \ "$pkgdir"/etc/conf.d/git-daemon make prefix=/usr DESTDIR="$pkgdir" install-man } proc _perl_git_svn { setvar pkgdesc = ""Perl interface to Git::SVN"" setvar depends = ""git=$pkgver-r$pkgrel"" setvar replaces = ""git-perl"" eval local $(perl -V:vendorlib) mkdir -p "$subpkgdir"/$vendorlib/Git mv "$pkgdir"/$vendorlib/Git/SVN* "$subpkgdir"/$vendorlib/Git/ } proc _perl_git { setvar pkgdesc = ""Perl interface to Git"" setvar depends = ""git=$pkgver-r$pkgrel perl-error"" setvar replaces = ""git-perl"" eval local $(perl -V:vendorlib) eval local $(perl -V:vendorarch) for i in $vendorlib $vendorarch { mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/$i "$subpkgdir"/$i } } proc email { setvar depends = ""perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl"" setvar pkgdesc = ""Git tools for sending email"" setvar replaces = ""git"" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/*email* "$pkgdir"/$_gitcoredir/*imap* \ "$subpkgdir"/$_gitcoredir } proc svn { setvar depends = ""perl perl-git-svn=$pkgver-r$pkgrel perl-subversion perl-term-readkey"" setvar pkgdesc = ""Subversion support for git"" setvar replaces = """" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/git-svn \ "$pkgdir"$_gitcoredir/git-remote-testsvn \ "$subpkgdir"/$_gitcoredir/ } proc cvs { setvar pkgdesc = ""Git tools for importing CVS repositories"" setvar depends = ""perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite"" setvar replaces = ""git-perl"" mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_gitcoredir mv "$pkgdir"/usr/bin/git-cvs* "$subpkgdir"/usr/bin/ mv "$pkgdir"/$_gitcoredir/*cvs* "$subpkgdir"/$_gitcoredir \ } proc _fast_import { setvar pkgdesc = ""Git backend for fast Git data importers"" setvar depends = ""git=$pkgver-r$pkgrel"" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/git-fast-import "$subpkgdir"/$_gitcoredir/ } proc p4 { setvar pkgdesc = ""Git tools for working with Perforce depots"" setvar depends = ""git=$pkgver-r$pkgrel git-fast-import=$pkgver-r$pkgrel"" setvar replaces = ""git"" mkdir -p "$subpkgdir"/$_gitcoredir/mergetools mv "$pkgdir"/$_gitcoredir/*p4* "$subpkgdir"/$_gitcoredir/ mv "$pkgdir"/$_gitcoredir/mergetools/*p4* \ "$subpkgdir"/$_gitcoredir/mergetools/ } proc daemon { setvar pkgdesc = ""Git protocol daemon"" setvar depends = ""git=$pkgver-r$pkgrel"" setvar replaces = ""git"" mkdir -p "$subpkgdir"/$_gitcoredir mv "$pkgdir"/$_gitcoredir/git-daemon \ "$pkgdir"/$_gitcoredir/git-http-backend \ "$pkgdir"/$_gitcoredir/git-shell \ "$subpkgdir"/$_gitcoredir \ mv "$pkgdir"/etc "$subpkgdir"/ } proc gitweb { setvar pkgdesc = ""Simple web interface to git repositories"" setvar depends = ""git=$pkgver-r$pkgrel perl"" setvar replaces = ""git"" mkdir -p "$subpkgdir"/usr/share "$subpkgdir"$_gitcoredir mv "$pkgdir"/usr/share/gitweb "$subpkgdir"/usr/share/ mv "$pkgdir"/$_gitcoredir/git-instaweb "$subpkgdir"$_gitcoredir } proc completion { setvar pkgdesc = ""Bash completion for $pkgname"" setvar depends = """" setvar replaces = """" setvar install_if = ""$pkgname=$pkgver-r$pkgrel bash-completion"" install -Dm644 "$builddir"/contrib/completion/git-completion.bash \ "$subpkgdir"/usr/share/bash-completion/completions/git } proc subtree { setvar depends = ""git=$pkgver-r$pkgrel"" setvar pkgdesc = ""Split git repository into subtrees"" setvar replaces = """" cd "$builddir"/contrib/subtree make prefix=/usr DESTDIR="$pkgdir" make install prefix=/usr DESTDIR="$subpkgdir" } proc subtree_doc { setvar depends = """" setvar pkgdesc = ""Split git repository into subtrees (documentation)"" setvar replaces = """" cd "$builddir"/contrib/subtree make install-man prefix=/usr DESTDIR="$subpkgdir" gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1 } proc gui { setvar depends = ""git=$pkgver-r$pkgrel tcl tk"" setvar pkgdesc = ""GUI interface for git"" setvar 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/ } proc gitk { setvar depends = ""git=$pkgver-r$pkgrel tcl tk"" setvar pkgdesc = ""Gitk interface for git"" setvar 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 proc _git_perl { setvar depends = ""git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel perl"" setvar pkgdesc = ""Additional Git commands that requires perl"" setvar 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 { mkdir -p "$subpkgdir"/${f%/*} mv $f "$subpkgdir"/${f%/*} } find $subpkgdir -name perllocal.pod -delete } setvar sha512sums = ""fe99486e0aef8d73dace3081bbd62bc6d08bc13868b98c905f7833458fdfc464eea504ae2961f4a2f38892cb0e76b533a50a2cacdf07c9ad9f8106e7ac1c353c git-2.14.2.tar.xz 85767b5e03137008d6a96199e769e3979f75d83603ac8cb13a3481a915005637409a4fd94e0720da2ec6cd1124f35eba7cf20109a94816c4b4898a81fbc46bd2 bb-tar.patch 89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd""