diff options
Diffstat (limited to 'main/git/APKBUILD')
-rw-r--r-- | main/git/APKBUILD | 216 |
1 files changed, 138 insertions, 78 deletions
diff --git a/main/git/APKBUILD b/main/git/APKBUILD index 6b68f39299c..ae7059b4487 100644 --- a/main/git/APKBUILD +++ b/main/git/APKBUILD @@ -2,6 +2,21 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> # # secfixes: +# 2.40.1-r0: +# - CVE-2023-25652 +# - CVE-2023-25815 +# - CVE-2023-29007 +# 2.39.2-r0: +# - CVE-2023-22490 +# - CVE-2023-23946 +# 2.39.1-r0: +# - CVE-2022-41903 +# - CVE-2022-23521 +# 2.38.1-r0: +# - CVE-2022-39253 +# - CVE-2022-39260 +# 2.37.1-r0: +# - CVE-2022-29187 # 2.35.2-r0: # - CVE-2022-24765 # 2.30.2-r0: @@ -32,41 +47,54 @@ # - CVE-2021-46101 pkgname=git -pkgver=2.36.1 -pkgrel=0 +pkgver=2.44.0 +pkgrel=2 pkgdesc="Distributed version control system" url="https://www.git-scm.com/" arch="all" -license="GPL-2.0-or-later" -# we need tcl and tk to be built before git due to git-gui and gitk -makedepends="zlib-dev openssl1.1-compat-dev curl-dev expat-dev perl-dev - pcre2-dev xmlto perl-error" +license="GPL-2.0-only" +makedepends=" + curl-dev + expat-dev + file + openssl-dev>3 + pcre2-dev + perl-dev + perl-error + xmlto + zlib-dev + " # note that order matters -subpackages="$pkgname-dbg +subpackages=" + $pkgname-dbg $pkgname-bash-completion + $pkgname-prompt::noarch perl-$pkgname-svn:_perl_git_svn:noarch perl-$pkgname:_perl_git:noarch $pkgname-svn::noarch $pkgname-email - $pkgname-fast-import:_fast_import + $pkgname-fast-import:_fast_import:noarch $pkgname-cvs::noarch $pkgname-daemon $pkgname-daemon-openrc:daemon_openrc + $pkgname-scalar $pkgname-gitweb::noarch $pkgname-subtree::noarch - $pkgname-perl:_git_perl:noarch $pkgname-diff-highlight:diff_highlight:noarch + $pkgname-perl:_git_perl:noarch + $pkgname-init-template:_init_template:noarch " - source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz git-daemon.initd git-daemon.confd fix-t4219-with-sticky-bit.patch " +options="$options !check" # a few need updated for perl 5.38 _gitcoredir=/usr/libexec/git-core if [ -z "$BOOTSTRAP" ]; then + # we need tcl and tk to be built before git due to git-gui and gitk makedepends="$makedepends asciidoc python3-dev tcl tk libsecret-dev glib-dev" subpackages="$subpackages $pkgname-doc @@ -78,6 +106,13 @@ if [ -z "$BOOTSTRAP" ]; then " fi +case "$CARCH" in +s390x) + # todo: they fail with strange between-test email mismatches + options="$options !check" + ;; +esac + prepare() { default_prepare @@ -85,10 +120,14 @@ prepare() { NO_GETTEXT=YesPlease NO_SVN_TESTS=YesPlease NO_REGEX=YesPlease - USE_LIBPCRE2=YesPlease NO_SYS_POLL_H=1 - CFLAGS=$CFLAGS ICONV_OMITS_BOM=Yes + INSTALL_SYMLINKS=1 + CC=${CC:-cc} + CXX=${CC:-c++} + CFLAGS=$CFLAGS -flto=auto + LDFLAGS=$LDFLAGS -flto=auto + USE_LIBPCRE2=YesPlease PYTHON_PATH=/usr/bin/python3 EOF @@ -101,55 +140,74 @@ prepare() { } build() { - make prefix=/usr DESTDIR="$pkgdir" perllibdir=$(_perl_config vendorlib) + make prefix=/usr \ + DESTDIR="$pkgdir" \ + perllibdir="$(_perl_config vendorlib)" \ + all + + make -C contrib/subtree prefix=/usr DESTDIR="$pkgdir" + make -C contrib/diff-highlight prefix=/usr DESTDIR="$pkgdir" if [ -z "$BOOTSTRAP" ]; then # generate manpages outside of package() make prefix=/usr man - cd "$builddir"/contrib/credential/libsecret - make prefix=/usr + + make prefix=/usr -C contrib/credential/libsecret fi } check() { - make prefix=/usr DESTDIR="$pkgdir" \ - perlibdir=$(_perl_config vendorlib) \ - test + make -C t prefix=/usr DESTDIR="$pkgdir" \ + perlibdir="$(_perl_config vendorlib)" \ + all } package() { - local install_man - install_man=install-man - if [ -n "$BOOTSTRAP" ]; then - install_man="" + if [ -z "$BOOTSTRAP" ]; then + local install_man=install-man fi - make prefix=/usr DESTDIR="$pkgdir" INSTALLDIRS=vendor \ - perllibdir=$(_perl_config vendorlib) \ - install $install_man + make prefix=/usr \ + DESTDIR="$pkgdir" \ + INSTALLDIRS=vendor \ + perllibdir="$(_perl_config vendorlib)" \ + install \ + $install_man + + make -C contrib/subtree install prefix=/usr DESTDIR="$pkgdir" 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 + install -Dm755 contrib/diff-highlight/diff-highlight -t "$pkgdir"/usr/bin/ + install -Dm644 contrib/completion/git-completion.bash \ "$pkgdir"/usr/share/bash-completion/completions/git + install -Dm644 contrib/completion/git-prompt.sh \ + "$pkgdir"/usr/share/git-core/git-prompt.sh + if [ -z "$BOOTSTRAP" ]; then install -Dm755 contrib/credential/libsecret/git-credential-libsecret "$pkgdir"/usr/libexec/git-core fi } +prompt() { + pkgdesc="bash and zsh prompt integration for Git" + depends="git=$pkgver-r$pkgrel" + + amove usr/share/git-core/git-prompt.sh +} + _perl_git_svn() { pkgdesc="Perl interface to Git::SVN" depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel" - local vendorlib - vendorlib=$(_perl_config vendorlib) + local vendorlib=$(_perl_config vendorlib) - mkdir -p "$subpkgdir"/$vendorlib/Git - mv "$pkgdir"/$vendorlib/Git/SVN* "$subpkgdir"/$vendorlib/Git/ + amove $vendorlib/Git/SVN* } _perl_git() { @@ -159,8 +217,7 @@ _perl_git() { local i for i in "$(_perl_config vendorlib)" "$(_perl_config vendorarch)"; do [ -d "$pkgdir/$i" ] || continue - mkdir -p "$subpkgdir"/${i%/*} - mv "$pkgdir"/$i "$subpkgdir"/$i + amove $i done } @@ -168,57 +225,53 @@ email() { pkgdesc="Git tools for sending email" depends="perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl" - mkdir -p "$subpkgdir"/$_gitcoredir - mv "$pkgdir"/$_gitcoredir/*email* "$pkgdir"/$_gitcoredir/*imap* \ - "$subpkgdir"/$_gitcoredir + amove $_gitcoredir/*email* + amove $_gitcoredir/*imap* } svn() { pkgdesc="Subversion support for git" - depends="perl perl-git-svn=$pkgver-r$pkgrel perl-subversion - perl-term-readkey" + depends=" + perl + perl-git-svn=$pkgver-r$pkgrel + perl-subversion + perl-term-readkey + " - mkdir -p "$subpkgdir"/$_gitcoredir - mv "$pkgdir"/$_gitcoredir/git-svn \ - "$subpkgdir"/$_gitcoredir/ + amove $_gitcoredir/git-svn } cvs() { pkgdesc="Git tools for importing CVS repositories" depends="perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite" - mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_gitcoredir - mv "$pkgdir"/usr/bin/git-cvs* "$subpkgdir"/usr/bin/ - mv "$pkgdir"/$_gitcoredir/*cvs* "$subpkgdir"/$_gitcoredir + amove usr/bin/git-cvs* + amove $_gitcoredir/*cvs* } _fast_import() { pkgdesc="Git backend for fast Git data importers" depends="git=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir"/$_gitcoredir - mv "$pkgdir"/$_gitcoredir/git-fast-import "$subpkgdir"/$_gitcoredir/ + amove $_gitcoredir/git-fast-import } p4() { pkgdesc="Git tools for working with Perforce depots" depends="git=$pkgver-r$pkgrel git-fast-import=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir"/$_gitcoredir/mergetools - mv "$pkgdir"/$_gitcoredir/*p4* "$subpkgdir"/$_gitcoredir/ - mv "$pkgdir"/$_gitcoredir/mergetools/*p4* \ - "$subpkgdir"/$_gitcoredir/mergetools/ + amove $_gitcoredir/*p4* + amove $_gitcoredir/mergetools/*p4* } daemon() { pkgdesc="Git protocol daemon" depends="git=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir"/$_gitcoredir - mv "$pkgdir"/$_gitcoredir/git-daemon \ - "$pkgdir"/$_gitcoredir/git-http-backend \ - "$pkgdir"/$_gitcoredir/git-shell \ - "$subpkgdir"/$_gitcoredir/ + amove $_gitcoredir/git-daemon + amove $_gitcoredir/git-http-backend + amove $_gitcoredir/git-shell + amove var/git } daemon_openrc() { @@ -234,18 +287,15 @@ gitweb() { pkgdesc="Simple web interface to git repositories" depends="git=$pkgver-r$pkgrel perl" - mkdir -p "$subpkgdir"/usr/share "$subpkgdir"$_gitcoredir - mv "$pkgdir"/usr/share/gitweb "$subpkgdir"/usr/share/ - mv "$pkgdir"/$_gitcoredir/git-instaweb "$subpkgdir"$_gitcoredir/ + amove $_gitcoredir/git-instaweb + amove usr/share/gitweb } subtree() { depends="git=$pkgver-r$pkgrel" pkgdesc="Split git repository into subtrees" - cd "$builddir"/contrib/subtree - make prefix=/usr DESTDIR="$pkgdir" - make install prefix=/usr DESTDIR="$subpkgdir" + amove $_gitcoredir/git-subtree } subtree_doc() { @@ -262,33 +312,25 @@ gui() { pkgdesc="GUI interface for git" depends="git=$pkgver-r$pkgrel tcl tk" - 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/ + amove usr/share/git-gui + amove $_gitcoredir/git-citool + amove $_gitcoredir/git-gui + amove $_gitcoredir/git-gui--askpass } gitk() { pkgdesc="Gitk interface for git" depends="git=$pkgver-r$pkgrel tcl tk" - mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/share/gitk "$subpkgdir"/usr/share/ - mv "$pkgdir"/usr/bin/gitk "$subpkgdir"/usr/bin/ + amove usr/share/gitk + amove usr/bin/gitk } diff_highlight() { pkgdesc="diff highlight for git" depends="git=$pkgver-r$pkgrel perl" - cd "$builddir"/contrib/diff-highlight - - make prefix=/usr DESTDIR="$subpkgdir" - - mkdir -p "$subpkgdir"/usr/bin - install -Dm755 diff-highlight "$subpkgdir"/usr/bin/ + amove usr/bin/diff-highlight } credential_libsecret() { @@ -298,6 +340,14 @@ credential_libsecret() { amove usr/libexec/git-core/git-credential-libsecret } +scalar() { + pkgdesc="Git scalar monorepo tool" + depends="git=$pkgver-r$pkgrel" + + amove usr/bin/scalar + amove usr/libexec/git-core/scalar +} + # catch-the-rest of stuff that needs perl _git_perl() { pkgdesc="Additional Git commands that requires perl" @@ -306,9 +356,8 @@ _git_perl() { mkdir -p "$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%/*} + find . -type f -print0 | xargs -0 file --mime-type | grep perl | cut -d: -f1 | while read -r f; do + amove "$f" done find "$subpkgdir" -name perllocal.pod -delete } @@ -318,8 +367,19 @@ _perl_config() { perl -e "use Config; print \$Config{$1};" } +_init_template() { + pkgdesc="Git init template directory" + # Some scripts expect file from the template to exist. Installing + # them by default for compatibility + install_if="git=$pkgver-r$pkgrel" + + # leave empty directory to prevent git warning + mkdir -p -- "$subpkgdir"/usr/share/git-core/templates + mv -- "$pkgdir"/usr/share/git-core/templates/* "$subpkgdir"/usr/share/git-core/templates +} + sha512sums=" -459432bd0c1d5a87c828a6fbf6d3473f14bf6b95783b3f27ea4f3af1ba9fd0e712a96a41276a16c6ebeb7ac3583a5f445eedd0a9e19fe160c2c8e309ec58818e git-2.36.1.tar.xz +9e4b9c8a8e28cd50c0db75a93eae8a3423aa7e51c4312af1e1cdaf408e93f306c23aa747f0a97f27c11ab0e2f5e6283e52c8b61c9fe6be5b9b18673a43ce1780 git-2.44.0.tar.xz 89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd be5d568fc5b8b84c9afb97b31e471e41f32ccfe188eba0588ea0ef98b2d96c2ce4b2c1a3d70e88205aa4f6667f850b3f32c13bbb149ecddbf670344c162a4e25 fix-t4219-with-sticky-bit.patch |