git: Install perl files and update to 2.7.4
Installing perl files allows things using perl such as 'git add -p' to work. Installing the git perl files is a bit messy when cross-compiling git. We patch the install path to use a private folder for these instead of messing with the system perl. Note that git does not depend on perl, since that is a relatively big dependency which many won't be using anyway.
This commit is contained in:
parent
a5be048988
commit
2a86d5d9e2
|
@ -2,20 +2,30 @@ TERMUX_PKG_HOMEPAGE=http://git-scm.com/
|
||||||
TERMUX_PKG_DESCRIPTION="Distributed version control system designed to handle everything from small to very large projects with speed and efficiency"
|
TERMUX_PKG_DESCRIPTION="Distributed version control system designed to handle everything from small to very large projects with speed and efficiency"
|
||||||
# less is required as a pager for git log, and the busybox less does not handle used escape sequences.
|
# less is required as a pager for git log, and the busybox less does not handle used escape sequences.
|
||||||
TERMUX_PKG_DEPENDS="libcurl, less"
|
TERMUX_PKG_DEPENDS="libcurl, less"
|
||||||
TERMUX_PKG_VERSION=2.7.2
|
TERMUX_PKG_VERSION=2.7.4
|
||||||
TERMUX_PKG_SRCURL=https://www.kernel.org/pub/software/scm/git/git-${TERMUX_PKG_VERSION}.tar.xz
|
TERMUX_PKG_SRCURL=https://www.kernel.org/pub/software/scm/git/git-${TERMUX_PKG_VERSION}.tar.xz
|
||||||
## This requires a working $TERMUX_PREFIX/bin/sh on the host building:
|
## This requires a working $TERMUX_PREFIX/bin/sh on the host building:
|
||||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-tcltk --with-curl --with-shell=$TERMUX_PREFIX/bin/sh ac_cv_header_libintl_h=no ac_cv_fread_reads_directories=yes ac_cv_snprintf_returns_bogus=yes"
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-tcltk --with-curl --with-shell=$TERMUX_PREFIX/bin/sh ac_cv_header_libintl_h=no ac_cv_fread_reads_directories=yes ac_cv_snprintf_returns_bogus=yes"
|
||||||
# expat is only used by git-http-push for remote lock management over DAV, so disable:
|
# expat is only used by git-http-push for remote lock management over DAV, so disable:
|
||||||
# NO_INSTALL_HARDLINKS to use symlinks instead of hardlinks (which does not work on Android M):
|
# NO_INSTALL_HARDLINKS to use symlinks instead of hardlinks (which does not work on Android M):
|
||||||
TERMUX_PKG_EXTRA_MAKE_ARGS="NO_NSEC=1 NO_PERL=1 NO_GETTEXT=1 NO_EXPAT=1 NO_INSTALL_HARDLINKS=1 PERL_PATH=$TERMUX_PREFIX/bin/perl"
|
TERMUX_PKG_EXTRA_MAKE_ARGS="NO_NSEC=1 NO_GETTEXT=1 NO_EXPAT=1 NO_INSTALL_HARDLINKS=1 PERL_PATH=$TERMUX_PREFIX/bin/perl"
|
||||||
TERMUX_PKG_BUILD_IN_SRC="yes"
|
TERMUX_PKG_BUILD_IN_SRC="yes"
|
||||||
|
|
||||||
# Things to remove to save space:
|
# Things to remove to save space:
|
||||||
# bin/git-cvsserver - server emulating CVS
|
# bin/git-cvsserver - server emulating CVS
|
||||||
# bin/git-shell - restricted login shell for Git-only SSH access
|
# bin/git-shell - restricted login shell for Git-only SSH access
|
||||||
# lib/perl5 - perl scripts
|
TERMUX_PKG_RM_AFTER_INSTALL="bin/git-cvsserver bin/git-shell Library"
|
||||||
TERMUX_PKG_RM_AFTER_INSTALL="bin/git-cvsserver bin/git-shell lib/perl5 Library"
|
|
||||||
|
termux_step_pre_configure () {
|
||||||
|
# Setup perl so that the build process can execute it:
|
||||||
|
rm -f $TERMUX_PREFIX/bin/perl
|
||||||
|
ln -s `which perl` $TERMUX_PREFIX/bin/perl
|
||||||
|
|
||||||
|
# Force fresh perl files (otherwise files from earlier builds
|
||||||
|
# remains without bumped modification times, so are not picked
|
||||||
|
# up by the package):
|
||||||
|
rm -Rf $TERMUX_PREFIX/share/git-perl
|
||||||
|
}
|
||||||
|
|
||||||
termux_step_post_make_install () {
|
termux_step_post_make_install () {
|
||||||
# Installing man requires asciidoc and xmlto, so git uses separate make targets for man pages
|
# Installing man requires asciidoc and xmlto, so git uses separate make targets for man pages
|
||||||
|
@ -24,6 +34,12 @@ termux_step_post_make_install () {
|
||||||
mkdir -p $TERMUX_PREFIX/etc/bash_completion.d/
|
mkdir -p $TERMUX_PREFIX/etc/bash_completion.d/
|
||||||
cp $TERMUX_PKG_SRCDIR/contrib/completion/git-completion.bash \
|
cp $TERMUX_PKG_SRCDIR/contrib/completion/git-completion.bash \
|
||||||
$TERMUX_PREFIX/etc/bash_completion.d/
|
$TERMUX_PREFIX/etc/bash_completion.d/
|
||||||
|
|
||||||
|
# Remove the build machine perl setup in termux_step_pre_configure to avoid it being packaged:
|
||||||
|
rm $TERMUX_PREFIX/bin/perl
|
||||||
|
|
||||||
|
# Remove clutter:
|
||||||
|
rm -Rf $TERMUX_PREFIX/lib/*-linux*/perl
|
||||||
}
|
}
|
||||||
|
|
||||||
termux_step_post_massage () {
|
termux_step_post_massage () {
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
diff -u -r ../git-2.5.0/Makefile ./Makefile
|
The librt functionality is built into libc on Android.
|
||||||
--- ../git-2.5.0/Makefile 2015-07-27 16:34:56.000000000 -0400
|
|
||||||
+++ ./Makefile 2015-07-30 03:43:04.011455306 -0400
|
The Termux git package installs git perl files to $PREFIX/share/git-perl
|
||||||
@@ -1431,7 +1431,6 @@
|
by patching perl/Makefile.PL, so setup that path when building perl
|
||||||
|
files in this Makefile.
|
||||||
|
|
||||||
|
diff -u -r ../git-2.7.4/Makefile ./Makefile
|
||||||
|
--- ../git-2.7.4/Makefile 2016-03-17 16:47:59.000000000 -0400
|
||||||
|
+++ ./Makefile 2016-03-24 22:46:20.335193973 -0400
|
||||||
|
@@ -1455,7 +1455,6 @@
|
||||||
|
|
||||||
ifdef HAVE_CLOCK_GETTIME
|
ifdef HAVE_CLOCK_GETTIME
|
||||||
BASIC_CFLAGS += -DHAVE_CLOCK_GETTIME
|
BASIC_CFLAGS += -DHAVE_CLOCK_GETTIME
|
||||||
|
@ -9,3 +15,12 @@ diff -u -r ../git-2.5.0/Makefile ./Makefile
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef HAVE_CLOCK_MONOTONIC
|
ifdef HAVE_CLOCK_MONOTONIC
|
||||||
|
@@ -1789,7 +1788,7 @@
|
||||||
|
sed -e '1{' \
|
||||||
|
-e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
|
||||||
|
-e ' h' \
|
||||||
|
- -e ' s=.*=use lib (split(/$(pathsep)/, $$ENV{GITPERLLIB} || "'"$$INSTLIBDIR"'"));=' \
|
||||||
|
+ -e ' s=.*=use lib (split(/$(pathsep)/, $$ENV{GITPERLLIB} || "'"@TERMUX_PREFIX@/share/git-perl"'"));=' \
|
||||||
|
-e ' H' \
|
||||||
|
-e ' x' \
|
||||||
|
-e '}' \
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
Install git perl files to a local git-specific folder and
|
||||||
|
be sure to bring the private Error.pm copy with it.
|
||||||
|
|
||||||
|
diff -u -r ../git-2.7.4/perl/Makefile.PL ./perl/Makefile.PL
|
||||||
|
--- ../git-2.7.4/perl/Makefile.PL 2016-03-17 16:47:59.000000000 -0400
|
||||||
|
+++ ./perl/Makefile.PL 2016-03-24 22:38:12.222059955 -0400
|
||||||
|
@@ -38,15 +38,13 @@
|
||||||
|
my $pm_path = $File::Find::name;
|
||||||
|
$pm_path =~ s{^\./}{};
|
||||||
|
|
||||||
|
- $pm{$pm_path} = '$(INST_LIBDIR)/'.$pm_path;
|
||||||
|
+ $pm{$pm_path} = '@TERMUX_PREFIX@/share/git-perl/'.$pm_path;
|
||||||
|
}, "Git", "Git.pm";
|
||||||
|
|
||||||
|
|
||||||
|
# We come with our own bundled Error.pm. It's not in the set of default
|
||||||
|
# Perl modules so install it if it's not available on the system yet.
|
||||||
|
-if ( !eval { require Error } || $Error::VERSION < 0.15009) {
|
||||||
|
- $pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
|
||||||
|
-}
|
||||||
|
+ $pm{'private-Error.pm'} = '@TERMUX_PREFIX@/share/git-perl/Error.pm';
|
||||||
|
|
||||||
|
# redirect stdout, otherwise the message "Writing perl.mak for Git"
|
||||||
|
# disrupts the output for the target 'instlibdir'
|
Loading…
Reference in New Issue