aboutsummaryrefslogtreecommitdiff
path: root/srcpkgs/git/template
blob: 571fc6dc6df8491f803325bd09029c44f2e00bf9 (plain) (blame)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Template file for 'git'
pkgname=git
version=2.32.0
revision=1
hostmakedepends="asciidoc gettext perl pkg-config tk xmlto"
makedepends="libglib-devel libcurl-devel libsecret-devel pcre2-devel tk-devel"
# Required by https://
depends="ca-certificates perl-Authen-SASL perl-MIME-tools perl-Net-SMTP-SSL"
checkdepends="tar cvs cvsps2 perl-DBD-SQLite subversion subversion-perl
 perl-Term-ReadKey tzdata"
short_desc="Git Tree History Storage Tool"
maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
license="GPL-2.0-only"
homepage="https://git-scm.com/"
changelog="https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/${version}.txt"
distfiles="https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"
checksum=68a841da3c4389847ecd3301c25eb7e4a51d07edf5f0168615ad6179e3a83623
replaces="git-perl>=0"
register_shell=/usr/bin/git-shell
python_version=3

subpackages="git-cvs git-svn gitk git-gui git-all git-libsecret git-netrc"

do_configure() {
	cat <<-EOF >config.mak
	prefix = /usr
	CC = $CC
	AR = $AR
	TAR = bsdtar
	CFLAGS = $CFLAGS
	LDFLAGS = $LDFLAGS
	USE_LIBPCRE2=Yes
	NO_INSTALL_HARDLINKS=Yes
	INSTALLDIRS=vendor
	perllibdir=/usr/share/perl5/vendor_perl
	PYTHON_PATH=/usr/bin/python3
	DEFAULT_TEST_TARGET = prove
	GIT_PROVE_OPTS = $makejobs
	EOF

	if [ "$XBPS_TARGET_LIBC" = musl ]; then
		cat <<-EOF >>config.mak
		ICONV_OMITS_BOM = Yes
		NO_REGEX = Yes
		# TZ=CST6CDT date --iso-8601=seconds -d"2005-01-31 18:00:00 -0600"
		export GIT_SKIP_TESTS=t9604.2
		EOF
	fi
}

do_build() {
	make ${makejobs}
	make ${makejobs} -C Documentation man
	make ${makejobs} -C contrib/contacts all git-contacts.1
	make ${makejobs} -C contrib/diff-highlight all
	make ${makejobs} -C contrib/subtree all man
	make ${makejobs} -C contrib/credential/libsecret
	make ${makejobs} -C contrib/credential/netrc
}

do_check() {
	make test
	make -C contrib/diff-highlight test
	make -C contrib/subtree test
	make -C contrib/credential/netrc test
}

do_install() {
	make DESTDIR=${DESTDIR} install install-doc
	vinstall contrib/completion/git-completion.bash 644 \
		usr/share/bash-completion/completions git
	vinstall contrib/completion/git-prompt.sh 644 usr/share/git
	make -C contrib/contacts DESTDIR=${DESTDIR} install install-man
	vbin contrib/diff-highlight/diff-highlight
	vdoc contrib/diff-highlight/README diff-highlight
	vinstall contrib/git-jump/git-jump 755 usr/libexec/git-core
	vdoc contrib/git-jump/README git-jump
	make -C contrib/subtree DESTDIR=${DESTDIR} install install-man
	vinstall contrib/credential/libsecret/git-credential-libsecret 755 \
		usr/libexec/git-core
	make -C contrib/credential/netrc DESTDIR=${DESTDIR} install
}

git-cvs_package() {
	depends="${sourcepkg}-${version}_${revision} cvs cvsps2 perl-DBD-SQLite"
	short_desc+=" - CVS support"
	pkg_install() {
		vmove usr/bin/git-cvsserver
		vmove usr/libexec/git-core/git-cvsexportcommit
		vmove usr/libexec/git-core/git-cvsimport
		vmove usr/libexec/git-core/git-cvsserver
		vmove usr/share/man/man1/git-cvsexportcommit.1
		vmove usr/share/man/man1/git-cvsimport.1
		vmove usr/share/man/man1/git-cvsserver.1
		vmove usr/share/man/man7/gitcvs-migration.7
	}
}

git-svn_package() {
	depends="${sourcepkg}-${version}_${revision} subversion-perl perl-Term-ReadKey"
	short_desc+=" - Subversion support"
	pkg_install() {
		vmove "usr/share/perl5/vendor_perl/Git/SVN*"
		vmove usr/libexec/git-core/git-svn
		vmove usr/share/man/man1/git-svn.1
	}
}

gitk_package() {
	depends="git-${version}_${revision} tk"
	short_desc="Git repository browser"
	license="GPL-2.0-or-later"
	pkg_install() {
		vmove usr/bin/gitk
		vmove usr/share/gitk
		vmove usr/share/man/man1/gitk.1
	}
}

git-gui_package() {
	depends="git-${version}_${revision} tk"
	short_desc+=" - GUI tool"
	license="GPL-2.0-or-later"
	pkg_install() {
		vmove usr/libexec/git-core/git-gui--askpass
		vmove usr/libexec/git-core/git-gui
		vmove usr/libexec/git-core/git-citool
		vmove usr/share/man/man1/git-gui.1
		vmove usr/share/man/man1/git-citool.1
		vmove usr/share/git-gui
	}
}

git-all_package() {
	build_style=meta
	depends="${subpackages/git-all/}"
	short_desc+=" - meta-package for complete Git installation"
}

git-libsecret_package() {
	depends="git-${version}_${revision}"
	short_desc+=" - libsecret credential helper"
	license="GPL-2.0-or-later"
	pkg_install() {
		vmove usr/libexec/git-core/git-credential-libsecret
	}
}

git-netrc_package() {
	depends="git-${version}_${revision}"
	short_desc+=" - netrc credential helper"
	pkg_install() {
		vmove usr/libexec/git-core/git-credential-netrc
	}
}