diff options
-rw-r--r-- | var/spack/repos/builtin/packages/git/package.py | 16 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/git/patch/relocatable.patch | 42 |
2 files changed, 58 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py index 8828d68238..1692317f9d 100644 --- a/var/spack/repos/builtin/packages/git/package.py +++ b/var/spack/repos/builtin/packages/git/package.py @@ -185,6 +185,16 @@ class Git(AutotoolsPackage): depends_on('m4', type='build') 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. def patch(self): filter_file(r'^EXTLIBS =$', @@ -209,6 +219,12 @@ class Git(AutotoolsPackage): spack_env.append_flags('CFLAGS', '-I{0}'.format( 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): spec = self.spec diff --git a/var/spack/repos/builtin/packages/git/patch/relocatable.patch b/var/spack/repos/builtin/packages/git/patch/relocatable.patch new file mode 100644 index 0000000000..9d698cb7d8 --- /dev/null +++ b/var/spack/repos/builtin/packages/git/patch/relocatable.patch @@ -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; + } + |