Git: patch to make git relocatable with buildcache. (#11596)
* Apply patch to git to make it search for config files from its current location instead of the locations hard coded at install. * Add provenance info for patch * Pass needed flags to make * Environment variables need because of relocation
This commit is contained in:
parent
88473a8da3
commit
30ec13f375
@ -185,6 +185,16 @@ class Git(AutotoolsPackage):
|
|||||||
depends_on('m4', type='build')
|
depends_on('m4', type='build')
|
||||||
depends_on('tk', type=('build', 'link'), when='+tcltk')
|
depends_on('tk', type=('build', 'link'), when='+tcltk')
|
||||||
|
|
||||||
|
patch('patch/relocatable.patch', 0)
|
||||||
|
|
||||||
|
build_targets = ['NO_INSTALL_HARDLINKS=1',
|
||||||
|
'ETC_GITATTRIBUTES=config',
|
||||||
|
'ETC_GITCONFIG=config']
|
||||||
|
install_targets = ['NO_INSTALL_HARDLINKS=1',
|
||||||
|
'ETC_GITATTRIBUTES=config',
|
||||||
|
'ETC_GITCONFIG=config',
|
||||||
|
'install']
|
||||||
|
|
||||||
# See the comment in setup_environment re EXTLIBS.
|
# See the comment in setup_environment re EXTLIBS.
|
||||||
def patch(self):
|
def patch(self):
|
||||||
filter_file(r'^EXTLIBS =$',
|
filter_file(r'^EXTLIBS =$',
|
||||||
@ -209,6 +219,12 @@ def setup_environment(self, spack_env, run_env):
|
|||||||
spack_env.append_flags('CFLAGS', '-I{0}'.format(
|
spack_env.append_flags('CFLAGS', '-I{0}'.format(
|
||||||
self.spec['gettext'].prefix.include))
|
self.spec['gettext'].prefix.include))
|
||||||
|
|
||||||
|
run_env.set('GIT_EXEC_PATH', '%s/git-core' % self.spec.prefix.libexec)
|
||||||
|
run_env.set('GIT_TEMPLATE_DIR', '%s/git-core/templates' %
|
||||||
|
self.spec.prefix.share)
|
||||||
|
run_env.set('GIT_HOME', '%s' % self.spec.prefix)
|
||||||
|
run_env.set('GITPERLLIB', '%s/perl5' % self.spec.prefix.share)
|
||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
|
||||||
|
42
var/spack/repos/builtin/packages/git/patch/relocatable.patch
Normal file
42
var/spack/repos/builtin/packages/git/patch/relocatable.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# Copied from https://cdcvs.fnal.gov/redmine/projects/build-framework/repository/git-ssi-build/revisions/master/entry/patch/git.patch
|
||||||
|
# curl -o relocatable.patch https://cdcvs.fnal.gov/redmine/projects/build-framework/repository/git-ssi-build/revisions/master/raw/patch/git.patch
|
||||||
|
diff -Naur config.c config.c
|
||||||
|
--- config.c 2015-07-15 14:31:07.000000000 -0500
|
||||||
|
+++ config.c 2015-07-17 10:33:34.966072446 -0500
|
||||||
|
@@ -1153,7 +1153,15 @@
|
||||||
|
{
|
||||||
|
static const char *system_wide;
|
||||||
|
if (!system_wide)
|
||||||
|
- system_wide = system_path(ETC_GITCONFIG);
|
||||||
|
+ /* system_wide = system_path(ETC_GITCONFIG); */
|
||||||
|
+ system_wide = ETC_GITCONFIG;
|
||||||
|
+ if (!is_absolute_path(system_wide)) {
|
||||||
|
+ /* interpret path relative to exec-dir */
|
||||||
|
+ const char *exec_path = git_exec_path();
|
||||||
|
+ system_wide = prefix_path(exec_path, strlen(exec_path),
|
||||||
|
+ system_wide);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return system_wide;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -Naur attr.c attr.c
|
||||||
|
--- attr.c 2015-07-15 14:31:07.000000000 -0500
|
||||||
|
+++ attr.c 2015-07-17 10:33:34.966072446 -0500
|
||||||
|
@@ -479,7 +479,15 @@
|
||||||
|
{
|
||||||
|
static const char *system_wide;
|
||||||
|
if (!system_wide)
|
||||||
|
- system_wide = system_path(ETC_GITATTRIBUTES);
|
||||||
|
+ /* system_wide = system_path(ETC_GITATTRIBUTES); */
|
||||||
|
+ system_wide = ETC_GITATTRIBUTES;
|
||||||
|
+ if (!is_absolute_path(system_wide)) {
|
||||||
|
+ /* interpret path relative to exec-dir */
|
||||||
|
+ const char *exec_path = git_exec_path();
|
||||||
|
+ system_wide = prefix_path(exec_path, strlen(exec_path),
|
||||||
|
+ system_wide);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return system_wide;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user