MSYS2-packages/git/PKGBUILD
Christoph Reiter e8f4f9baa3 more CPEs
2024-03-26 09:46:25 +01:00

167 lines
5.1 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Maintainer: Ray Donnelly <mingw.android@gmail.com>
pkgname=git
pkgver=2.44.0
pkgrel=1
pkgdesc="The fast distributed version control system"
arch=('i686' 'x86_64')
url="https://git-scm.com/"
msys2_repository_url="https://git.kernel.org/pub/scm/git/git.git"
msys2_references=(
"cpe: cpe:/a:git:git"
"cpe: cpe:/a:git-scm:git"
"cpe: cpe:/a:git_project:git"
)
license=('GPL2')
groups=('VCS')
depends=('curl'
#'info'
'libpcre2_8'
'libexpat'
'libintl'
'nano'
'openssh'
'openssl'
'perl-Error'
'perl>=5.14.0'
'perl-Authen-SASL'
'perl-libwww'
'perl-MIME-tools'
'perl-Net-SMTP-SSL'
'perl-TermReadKey')
makedepends=('asciidoc'
'autotools'
'docbook-xml'
'docbook-xsl'
#'docbook2x'
'gcc'
'less'
'libexpat-devel'
'libcurl-devel'
'libiconv-devel'
'gettext-devel'
'pcre2-devel'
'python'
'rsync'
#'texinfo'
'xmlto')
optdepends=(#'tk: gitk and git gui'
'python: various helper scripts'
'subversion: git svn'
#'cvsps: git cvsimport'
)
replaces=('git-core')
provides=('git-core')
#options=('debug' '!strip')
source=("${pkgname}-${pkgver}.tar.gz"::https://github.com/git/git/archive/v${pkgver}.tar.gz
1.7.9-cygwin.patch
git-1.8.4-msys2.patch
git-2.3.5-mingw-pwd.patch
git-2.8.2-Cygwin-Allow-DOS-paths.patch
git-tcsh-completion-fixes.patch
git-2.43.0-git-gui.patch)
sha256sums=('318b9234cb188628c773e021bdfc5cf23e9963e29eb940b05cefd71bfc8d9a1a'
'32baa705d76789d82316a1325e61c9a261114eaa9814dca9c05683bf63069dea'
'9bc4da5022c5004c4c5b45417b25c6636ddf0ac338574a624c2c775d4394546d'
'336159815092f503e0254ebbbea2b637ffc09a36217c4c644167b86852568272'
'148a2c45de2c8bb2dfffc96bd40523f860a4b13f4e661609636158b7b3bc930b'
'6f25aae9e92469d5e284dcf372e15ee0e57ff91531e691e7391f9bfb78f73626'
'fa2ef1371c0903e3bcf18458b242192f8d53cf26cfe8d9de89c1d3742b7e1930')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _fname in "$@"
do
msg2 "Applying ${_fname}"
patch -Nbp1 -i "${srcdir}"/${_fname}
done
}
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
rm -f compat/win32/git.manifest compat/win32/resource.rc
apply_patch_with_msg \
git-1.8.4-msys2.patch \
git-2.3.5-mingw-pwd.patch \
git-2.8.2-Cygwin-Allow-DOS-paths.patch \
git-tcsh-completion-fixes.patch
# git-gui works with git4win + native tcl/tk, or cygwin git + cygwin tcl/tk.
# We have a mix where git is cygwin but tcl/tk is native, so we need to adjust
# a few things, so git-gui works in the mingw environments at least.
apply_patch_with_msg git-2.43.0-git-gui.patch
make configure
}
build() {
export PYTHON_PATH='/usr/bin/python'
cd "${srcdir}/${pkgname}-${pkgver}"
local CYGWIN_CHOST="${CHOST/-msys/-cygwin}"
./configure \
--build=${CYGWIN_CHOST} \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
--with-libpcre2 \
--with-editor=nano \
--htmldir=/usr/share/doc/git/html \
--mandir=/usr/share/man
make INSTALLDIRS=vendor all
make -j1 man
#make -j1 info
make -C contrib/subtree prefix=/usr all
}
check() {
export PYTHON_PATH='/usr/bin/python'
cd "${srcdir}/${pkgname}-${pkgver}"
local jobs
jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*')
mkdir -p /tmp/git-test
# We used to use this, but silly git regressions:
#GIT_TEST_OPTS="--root=/dev/shm/" \
# https://comments.gmane.org/gmane.comp.version-control.git/202020
make \
NO_SVN_TESTS=y \
DEFAULT_TEST_TARGET=prove \
GIT_PROVE_OPTS="$jobs -Q" \
GIT_TEST_OPTS="--root=/tmp/git-test" \
test
}
package() {
export PYTHON_PATH='/usr/bin/python'
cd "${srcdir}/${pkgname}-${pkgver}"
make INSTALLDIRS=vendor DESTDIR="$pkgdir" install
make INSTALLDIRS=vendor DESTDIR="${pkgdir}" install-man
#make INSTALLDIRS=vendor DESTDIR="${pkgdir}" install-info
# bash completion
mkdir -p "${pkgdir}"/usr/share/bash-completion/completions/
install -m644 ./contrib/completion/git-completion.bash "${pkgdir}"/usr/share/bash-completion/completions/git
# fancy git prompt
mkdir -p "${pkgdir}"/usr/share/git/
install -m644 ./contrib/completion/git-prompt.sh "${pkgdir}"/usr/share/git/git-prompt.sh
# subtree installation
sed "s|libexec/git-core|lib/git-core|" -i contrib/subtree/Makefile
make -C contrib/subtree prefix=/usr DESTDIR="${pkgdir}" install
# the rest of the contrib stuff
cp -a ./contrib/* ${pkgdir}/usr/share/git/
# scripts are for python
sed -i 's|#![ ]*/usr/bin/env python$|#!/usr/bin/python|' \
$(find "${pkgdir}" -name '*.py') \
"${pkgdir}"/usr/lib/git-core/git-p4 \
"${pkgdir}"/usr/share/git/remote-helpers/git-remote-bzr \
"${pkgdir}"/usr/share/git/remote-helpers/git-remote-hg
# Remove *.orig files
find "${pkgdir}/usr" -type f -name "*.orig" -exec rm -f {} \;
}