summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/git/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/git/package.py')
-rw-r--r--var/spack/repos/builtin/packages/git/package.py89
1 files changed, 81 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index d356b5f8ae..bf6bc61080 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,26 @@ class Git(AutotoolsPackage):
# You can find the source here: https://mirrors.edge.kernel.org/pub/software/scm/git/sha256sums.asc
releases = [
{
+ 'version': '2.31.1',
+ 'sha256': '46d37c229e9d786510e0c53b60065704ce92d5aedc16f2c5111e3ed35093bfa7',
+ 'sha256_manpages': 'd330498aaaea6928b0abbbbb896f6f605efd8d35f23cbbb2de38c87a737d4543'
+ },
+ {
+ 'version': '2.31.0',
+ 'sha256': 'bc6168777883562569144d536e8a855b12d25d46870d95188a3064260d7784ee',
+ 'sha256_manpages': 'a51b760c36be19113756839a9110b328a09abfff0d57f1c93ddac3974ccbc238'
+ },
+ {
+ 'version': '2.30.1',
+ 'sha256': '23a3e53f0d2dd3e62a8147b24a1a91d6ffe95b92123ef4dbae04e9a6205e71c0',
+ 'sha256_manpages': 'db323e1b242e9d0337363b1e538c8b879e4c46eedbf94d3bee9e65dab6d49138'
+ },
+ {
+ 'version': '2.30.0',
+ 'sha256': 'd24c4fa2a658318c2e66e25ab67cc30038a35696d2d39e6b12ceccf024de1e5e',
+ 'sha256_manpages': 'e23035ae232c9a5eda57db258bc3b7f1c1060cfd66920f92c7d388b6439773a6'
+ },
+ {
'version': '2.29.0',
'sha256': 'fa08dc8424ef80c0f9bf307877f9e2e49f1a6049e873530d6747c2be770742ff',
'sha256_manpages': '8f3bf70ddb515674ce2e19572920a39b1be96af12032b77f1dd57898981fb151'
@@ -53,6 +73,16 @@ class Git(AutotoolsPackage):
'sha256_manpages': '22b2380842ef75e9006c0358de250ead449e1376d7e5138070b9a3073ef61d44'
},
{
+ 'version': '2.23.0',
+ 'sha256': 'e3396c90888111a01bf607346db09b0fbf49a95bc83faf9506b61195936f0cfe',
+ 'sha256_manpages': 'a5b0998f95c2290386d191d34780d145ea67e527fac98541e0350749bf76be75'
+ },
+ {
+ 'version': '2.22.0',
+ 'sha256': 'a4b7e4365bee43caa12a38d646d2c93743d755d1cea5eab448ffb40906c9da0b',
+ 'sha256_manpages': 'f6a5750dfc4a0aa5ec0c0cc495d4995d1f36ed47591c3941be9756c1c3a1aa0a'
+ },
+ {
'version': '2.21.0',
'sha256': '85eca51c7404da75e353eba587f87fea9481ba41e162206a6f70ad8118147bee',
'sha256_manpages': '14c76ebb4e31f9e55cf5338a04fd3a13bced0323cd51794ccf45fc74bd0c1080'
@@ -192,20 +222,28 @@ class Git(AutotoolsPackage):
release['version']),
sha256=release['sha256_manpages'],
placement='git-manpages',
- when='@{0}'.format(release['version']))
+ when='@{0} +man'.format(release['version']))
variant('tcltk', default=False,
description='Gitk: provide Tcl/Tk in the run environment')
+ variant('svn', default=False,
+ description='Provide SVN Perl dependency in run environment')
+ variant('perl', default=True,
+ description='Do not use Perl scripts or libraries at all')
+ variant('nls', default=True,
+ description='Enable native language support')
+ variant('man', default=True,
+ description='Install manual pages')
depends_on('curl')
depends_on('expat')
- depends_on('gettext')
+ depends_on('gettext', when='+nls')
depends_on('iconv')
depends_on('libidn2')
depends_on('openssl')
depends_on('pcre', when='@:2.13')
depends_on('pcre2', when='@2.14:')
- depends_on('perl')
+ depends_on('perl', when='+perl')
depends_on('zlib')
depends_on('openssh', type='run')
@@ -214,6 +252,9 @@ class Git(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('tk', type=('build', 'link'), when='+tcltk')
+ depends_on('perl-alien-svn', type='run', when='+svn')
+
+ conflicts('+svn', when='~perl')
@classmethod
def determine_version(cls, exe):
@@ -249,12 +290,16 @@ class Git(AutotoolsPackage):
# The test avoids failures when git is an external package.
# In that case the node in the DAG gets truncated and git DOES NOT
# have a gettext dependency.
- if 'gettext' in self.spec:
- env.append_flags('EXTLIBS', '-L{0} -lintl'.format(
- self.spec['gettext'].prefix.lib))
+ if '+nls' in self.spec:
+ if 'intl' in self.spec['gettext'].libs.names:
+ env.append_flags('EXTLIBS', '-L{0} -lintl'.format(
+ self.spec['gettext'].prefix.lib))
env.append_flags('CFLAGS', '-I{0}'.format(
self.spec['gettext'].prefix.include))
+ if '~perl' in self.spec:
+ env.append_flags('NO_PERL', '1')
+
def configure_args(self):
spec = self.spec
@@ -263,10 +308,12 @@ class Git(AutotoolsPackage):
'--with-expat={0}'.format(spec['expat'].prefix),
'--with-iconv={0}'.format(spec['iconv'].prefix),
'--with-openssl={0}'.format(spec['openssl'].prefix),
- '--with-perl={0}'.format(spec['perl'].command.path),
'--with-zlib={0}'.format(spec['zlib'].prefix),
]
+ if '+perl' in self.spec:
+ configure_args.append('--with-perl={0}'.format(spec['perl'].command.path))
+
if '^pcre' in self.spec:
configure_args.append('--with-libpcre={0}'.format(
spec['pcre'].prefix))
@@ -290,15 +337,41 @@ class Git(AutotoolsPackage):
def check(self):
make('test')
+ def build(self, spec, prefix):
+ args = []
+ if '~nls' in self.spec:
+ args.append('NO_GETTEXT=1')
+ make(*args)
+
+ def install(self, spec, prefix):
+ args = ["install"]
+ if '~nls' in self.spec:
+ args.append('NO_GETTEXT=1')
+ make(*args)
+
@run_after('install')
def install_completions(self):
install_tree('contrib/completion', self.prefix.share)
@run_after('install')
def install_manpages(self):
+ if '~man' in self.spec:
+ return
+
prefix = self.prefix
with working_dir('git-manpages'):
install_tree('man1', prefix.share.man.man1)
install_tree('man5', prefix.share.man.man5)
install_tree('man7', prefix.share.man.man7)
+
+ def setup_run_environment(self, env):
+ # Setup run environment if using SVN extension
+ # Libs from perl-alien-svn and apr-util are required in
+ # LD_LIBRARY_PATH
+ # TODO: extend to other platforms
+ if "+svn platform=linux" in self.spec:
+ perl_svn = self.spec['perl-alien-svn']
+ env.prepend_path('LD_LIBRARY_PATH', join_path(
+ perl_svn.prefix, 'lib', 'perl5', 'x86_64-linux-thread-multi',
+ 'Alien', 'SVN'))