diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/git/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/git/package.py | 89 |
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')) |