git: Update from 2.11.1 to 2.12.0
[termux-packages] / packages / git / build.sh
1 TERMUX_PKG_HOMEPAGE=https://git-scm.com/
2 TERMUX_PKG_DESCRIPTION="Distributed version control system designed to handle everything from small to very large projects with speed and efficiency"
3 # less is required as a pager for git log, and the busybox less does not handle used escape sequences.
4 TERMUX_PKG_DEPENDS="libcurl, less"
5 TERMUX_PKG_VERSION=2.12.0
6 TERMUX_PKG_SRCURL=https://www.kernel.org/pub/software/scm/git/git-${TERMUX_PKG_VERSION}.tar.xz
7 TERMUX_PKG_SHA256=1821766479062d052cc1897d0ded95212e81e5c7f1039786bc4aec2225a32027
8 ## This requires a working $TERMUX_PREFIX/bin/sh on the host building:
9 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
10 ac_cv_fread_reads_directories=yes
11 ac_cv_header_libintl_h=no
12 ac_cv_snprintf_returns_bogus=no
13 --with-curl
14 --without-tcltk
15 --with-shell=$TERMUX_PREFIX/bin/sh
16 "
17 # expat is only used by git-http-push for remote lock management over DAV, so disable:
18 # NO_INSTALL_HARDLINKS to use symlinks instead of hardlinks (which does not work on Android M):
19 TERMUX_PKG_EXTRA_MAKE_ARGS="NO_NSEC=1 NO_GETTEXT=1 NO_EXPAT=1 NO_INSTALL_HARDLINKS=1 PERL_PATH=$TERMUX_PREFIX/bin/perl"
20 TERMUX_PKG_BUILD_IN_SRC="yes"
21
22 # Things to remove to save space:
23 # bin/git-cvsserver - server emulating CVS
24 # bin/git-shell - restricted login shell for Git-only SSH access
25 TERMUX_PKG_RM_AFTER_INSTALL="
26 bin/git-cvsserver
27 bin/git-shell
28 libexec/git-core/git-shell
29 libexec/git-core/git-cvsserver
30 share/man/man1/git-cvsserver.1
31 share/man/man1/git-shell.1
32 "
33
34 termux_step_pre_configure () {
35 # Setup perl so that the build process can execute it:
36 rm -f $TERMUX_PREFIX/bin/perl
37 ln -s `which perl` $TERMUX_PREFIX/bin/perl
38
39 # Force fresh perl files (otherwise files from earlier builds
40 # remains without bumped modification times, so are not picked
41 # up by the package):
42 rm -Rf $TERMUX_PREFIX/share/git-perl
43 }
44
45 termux_step_post_make_install () {
46 # Installing man requires asciidoc and xmlto, so git uses separate make targets for man pages
47 make install-man
48
49 mkdir -p $TERMUX_PREFIX/etc/bash_completion.d/
50 cp $TERMUX_PKG_SRCDIR/contrib/completion/git-completion.bash \
51 $TERMUX_PREFIX/etc/bash_completion.d/
52
53 # Remove the build machine perl setup in termux_step_pre_configure to avoid it being packaged:
54 rm $TERMUX_PREFIX/bin/perl
55
56 # Remove clutter:
57 rm -Rf $TERMUX_PREFIX/lib/*-linux*/perl
58
59 # Remove duplicated binaries in bin/ with symlink to the one in libexec/git-core:
60 (cd $TERMUX_PREFIX/bin; ln -s -f ../libexec/git-core/git git)
61 (cd $TERMUX_PREFIX/bin; ln -s -f ../libexec/git-core/git-upload-pack git-upload-pack)
62 }
63
64 termux_step_post_massage () {
65 if [ ! -f libexec/git-core/git-remote-https ]; then
66 echo "ERROR: Built without https support"
67 exit 1
68 fi
69 }