1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# Copyright 2013-2022 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)
import re
from spack import *
class GitLfs(MakefilePackage):
"""Git LFS is a system for managing and versioning large files in
association with a Git repository. Instead of storing the large files
within the Git repository as blobs, Git LFS stores special "pointer
files" in the repository, while storing the actual file contents on a
Git LFS server."""
homepage = "https://git-lfs.github.com"
url = "https://github.com/git-lfs/git-lfs/archive/v2.6.1.tar.gz"
tags = ['build-tools']
executables = ['^git-lfs$']
maintainers = ['sethrj']
version('3.1.2', sha256='5c9bc449068d0104ea124c25f596af16da85e7b5bf256bc544d8ce5f4fe231f2')
version('2.13.3', sha256='f8bd7a06e61e47417eb54c3a0db809ea864a9322629b5544b78661edab17b950')
version('2.12.1', sha256='2b2e70f1233f7efe9a010771510391a07527ec7c0af721ecf8edabac5d60f62b')
version('2.11.0', sha256='8183c4cbef8cf9c2e86b0c0a9822451e2df272f89ceb357c498bfdf0ff1b36c7')
version('2.10.0', sha256='07fd5c57a1039d5717dc192affbe3268ec2fd03accdca462cb504c0b4194cd23')
version('2.9.0', sha256='f1963ad88747577ffeeb854649aeacaa741c59be74683da4d46b129a72d111b7')
version('2.8.0', sha256='10b476bb8862ebceddc6f0a55f5fb63e2c1e5bed6554f6e3b207dd0155a196ad')
version('2.7.2', sha256='e65659f12ec557ae8c778c01ca62d921413221864b68bd93cfa41399028ae67f')
version('2.7.1', sha256='af60c2370d135ab13724d302a0b1c226ec9fb0ee6d29ecc335e9add4c86497b4')
version('2.7.0', sha256='1c829ddd163be2206a44edb366bd7f6d84c5afae3496687405ca9d2a5f3af07b')
version('2.6.1', sha256='e17cd9d4e66d1116be32f7ddc7e660c7f8fabbf510bc01b01ec15a22dd934ead')
depends_on('go@1.17:', type='build', when='@2.13:')
depends_on('go@1.5:', type='build', when='@:2.12')
depends_on('git@1.8.2:', type='run')
patch('patches/issue-10702.patch', when='@2.7.0:2.7.1')
# Mysterious syscall failures of old versions on new systems
conflicts('os=bigsur', when='@:2.11')
conflicts('os=monterey', when='@:2.11')
parallel = False
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('--version', output=str, error=str)
match = re.search(r'git-lfs/(\S+)', output)
return match.group(1) if match else None
# Git-lfs does not provide an 'install' target in the Makefile
def install(self, spec, prefix):
mkdirp(prefix.bin)
install(join_path('bin', 'git-lfs'), prefix.bin)
|