aboutsummaryrefslogtreecommitdiffstats
path: root/main/git/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/git/APKBUILD')
-rw-r--r--main/git/APKBUILD216
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