165 lines
5.0 KiB
Bash
165 lines
5.0 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-scm: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 {} \;
|
|
}
|