-
Notifications
You must be signed in to change notification settings - Fork 692
/
APKBUILD
393 lines (328 loc) · 8.96 KB
/
APKBUILD
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
#
# secfixes:
# 2.45.1-r0:
# - CVE-2024-32002
# - CVE-2024-32004
# - CVE-2024-32020
# - CVE-2024-32021
# - CVE-2024-32465
# 2.40.1-r0:
# - CVE-2023-25652
# - CVE-2023-25815
# - CVE-2023-29007
# 2.39.2-r0:
# - CVE-2023-22490
# - CVE-2023-23946
# 2.39.1-r0:
# - CVE-2022-41903
# - CVE-2022-23521
# 2.38.1-r0:
# - CVE-2022-39253
# - CVE-2022-39260
# 2.37.1-r0:
# - CVE-2022-29187
# 2.35.2-r0:
# - CVE-2022-24765
# 2.30.2-r0:
# - CVE-2021-21300
# 2.26.2-r0:
# - CVE-2020-11008
# 2.26.1-r0:
# - CVE-2020-5260
# 2.24.1-r0:
# - CVE-2019-1348
# - CVE-2019-1349
# - CVE-2019-1350
# - CVE-2019-1351
# - CVE-2019-1352
# - CVE-2019-1353
# - CVE-2019-1354
# - CVE-2019-1387
# - CVE-2019-19604
# 2.19.1-r0:
# - CVE-2018-17456
# 2.17.1-r0:
# - CVE-2018-11233
# - CVE-2018-11235
# 2.14.1-r0:
# - CVE-2017-1000117
# 0:
# - CVE-2021-29468
# - CVE-2021-46101
pkgname=git
pkgver=2.46.2
pkgrel=0
pkgdesc="Distributed version control system"
url="https://www.git-scm.com/"
arch="all"
license="GPL-2.0-only"
makedepends="
curl-dev
expat-dev
file
openssl-dev>3
pcre2-dev
perl-dev
perl-error
xmlto
zlib-dev
"
# note that order matters
subpackages="
$pkgname-dbg
$pkgname-bash-completion
$pkgname-prompt::noarch
perl-$pkgname-svn:_perl_git_svn:noarch
perl-$pkgname:_perl_git:noarch
$pkgname-svn::noarch
$pkgname-email
$pkgname-fast-import:_fast_import:noarch
$pkgname-cvs::noarch
$pkgname-daemon
$pkgname-daemon-openrc:daemon_openrc
$pkgname-scalar
$pkgname-gitweb::noarch
$pkgname-subtree::noarch
$pkgname-diff-highlight:diff_highlight:noarch
$pkgname-perl:_git_perl:noarch
$pkgname-init-template:_init_template:noarch
"
source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz
git-daemon.initd
git-daemon.confd
fix-t4219-with-sticky-bit.patch
"
options="$options !check" # a few need updated for perl 5.38
_gitcoredir=/usr/libexec/git-core
if [ -z "$BOOTSTRAP" ] && [ -z "$APORTS_BOOTSTRAP" ]; then
# we need tcl and tk to be built before git due to git-gui and gitk
makedepends="$makedepends asciidoc python3-dev tcl tk libsecret-dev glib-dev"
subpackages="$subpackages
$pkgname-doc
$pkgname-p4::noarch
$pkgname-gui::noarch
$pkgname-gitk::noarch
$pkgname-subtree-doc:subtree_doc:noarch
$pkgname-credential-libsecret:credential_libsecret
"
_full_build=1
fi
case "$CARCH" in
s390x)
# todo: they fail with strange between-test email mismatches
options="$options !check"
;;
esac
prepare() {
default_prepare
cat >> config.mak <<-EOF
NO_GETTEXT=YesPlease
NO_SVN_TESTS=YesPlease
NO_REGEX=YesPlease
NO_SYS_POLL_H=1
ICONV_OMITS_BOM=Yes
INSTALL_SYMLINKS=1
CC=${CC:-cc}
CXX=${CC:-c++}
CFLAGS=$CFLAGS -flto=auto
LDFLAGS=$LDFLAGS -flto=auto
USE_LIBPCRE2=YesPlease
PYTHON_PATH=/usr/bin/python3
EOF
if [ -z "$_full_build" ]; then
cat >> config.mak <<-EOF
NO_PYTHON=YesPlease
NO_TCLTK=YesPlease
EOF
fi
}
build() {
make prefix=/usr \
DESTDIR="$pkgdir" \
perllibdir="$(_perl_config vendorlib)" \
all
make -C contrib/subtree prefix=/usr DESTDIR="$pkgdir"
make -C contrib/diff-highlight prefix=/usr DESTDIR="$pkgdir"
if [ -n "$_full_build" ]; then
# generate manpages outside of package()
make prefix=/usr man
make prefix=/usr -C contrib/credential/libsecret
fi
}
check() {
make -C t prefix=/usr DESTDIR="$pkgdir" \
perlibdir="$(_perl_config vendorlib)" \
all
}
package() {
if [ -n "$_full_build" ]; then
local install_man=install-man
fi
make prefix=/usr \
DESTDIR="$pkgdir" \
INSTALLDIRS=vendor \
perllibdir="$(_perl_config vendorlib)" \
install \
$install_man
make -C contrib/subtree install prefix=/usr DESTDIR="$pkgdir"
mkdir -p "$pkgdir"/var/git
install -Dm755 "$srcdir"/git-daemon.initd "$pkgdir"/etc/init.d/git-daemon
install -Dm644 "$srcdir"/git-daemon.confd "$pkgdir"/etc/conf.d/git-daemon
install -Dm755 contrib/diff-highlight/diff-highlight -t "$pkgdir"/usr/bin/
install -Dm644 contrib/completion/git-completion.bash \
"$pkgdir"/usr/share/bash-completion/completions/git
install -Dm644 contrib/completion/git-prompt.sh \
"$pkgdir"/usr/share/git-core/git-prompt.sh
if [ -n "$_full_build" ]; then
install -Dm755 contrib/credential/libsecret/git-credential-libsecret "$pkgdir"/usr/libexec/git-core
fi
}
prompt() {
pkgdesc="bash and zsh prompt integration for Git"
depends="git=$pkgver-r$pkgrel"
amove usr/share/git-core/git-prompt.sh
}
_perl_git_svn() {
pkgdesc="Perl interface to Git::SVN"
depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel"
local vendorlib=$(_perl_config vendorlib)
amove $vendorlib/Git/SVN*
}
_perl_git() {
pkgdesc="Perl interface to Git"
depends="git=$pkgver-r$pkgrel perl-error"
local i
for i in "$(_perl_config vendorlib)" "$(_perl_config vendorarch)"; do
[ -d "$pkgdir/$i" ] || continue
amove $i
done
}
email() {
pkgdesc="Git tools for sending email"
depends="perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl"
amove $_gitcoredir/*email*
amove $_gitcoredir/*imap*
}
svn() {
pkgdesc="Subversion support for git"
depends="
perl
perl-git-svn=$pkgver-r$pkgrel
perl-subversion
perl-term-readkey
"
amove $_gitcoredir/git-svn
}
cvs() {
pkgdesc="Git tools for importing CVS repositories"
depends="perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite"
amove usr/bin/git-cvs*
amove $_gitcoredir/*cvs*
}
_fast_import() {
pkgdesc="Git backend for fast Git data importers"
depends="git=$pkgver-r$pkgrel"
amove $_gitcoredir/git-fast-import
}
p4() {
pkgdesc="Git tools for working with Perforce depots"
depends="git=$pkgver-r$pkgrel git-fast-import=$pkgver-r$pkgrel"
amove $_gitcoredir/*p4*
amove $_gitcoredir/mergetools/*p4*
}
daemon() {
pkgdesc="Git protocol daemon"
depends="git=$pkgver-r$pkgrel"
amove $_gitcoredir/git-daemon
amove $_gitcoredir/git-http-backend
amove $_gitcoredir/git-shell
amove var/git
}
daemon_openrc() {
pkgdesc="Git protocol daemon"
default_openrc
depends="git-daemon=$pkgver-r$pkgrel $depends_openrc"
install_if="openrc $pkgname-daemon=$pkgver-r$pkgrel"
}
gitweb() {
pkgdesc="Simple web interface to git repositories"
depends="git=$pkgver-r$pkgrel perl"
amove $_gitcoredir/git-instaweb
amove usr/share/gitweb
}
subtree() {
depends="git=$pkgver-r$pkgrel"
pkgdesc="Split git repository into subtrees"
amove $_gitcoredir/git-subtree
}
subtree_doc() {
pkgdesc="Split git repository into subtrees (documentation)"
depends=""
install_if="docs git-subtree=$pkgver-r$pkgrel"
cd "$builddir"/contrib/subtree
make install-man prefix=/usr DESTDIR="$subpkgdir"
gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1
}
gui() {
pkgdesc="GUI interface for git"
depends="git=$pkgver-r$pkgrel tcl tk"
amove usr/share/git-gui
amove $_gitcoredir/git-citool
amove $_gitcoredir/git-gui
amove $_gitcoredir/git-gui--askpass
}
gitk() {
pkgdesc="Gitk interface for git"
depends="git=$pkgver-r$pkgrel tcl tk"
amove usr/share/gitk
amove usr/bin/gitk
}
diff_highlight() {
pkgdesc="diff highlight for git"
depends="git=$pkgver-r$pkgrel perl"
amove usr/bin/diff-highlight
}
credential_libsecret() {
pkgdesc="libsecret-based credential helper"
depends="git=$pkgver-r$pkgrel"
amove usr/libexec/git-core/git-credential-libsecret
}
scalar() {
pkgdesc="Git scalar monorepo tool"
depends="git=$pkgver-r$pkgrel"
amove usr/bin/scalar
amove usr/libexec/git-core/scalar
}
# catch-the-rest of stuff that needs perl
_git_perl() {
pkgdesc="Additional Git commands that requires perl"
depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel perl"
install_if="git=$pkgver-r$pkgrel perl"
mkdir -p "$subpkgdir"/usr/lib
cd "$pkgdir"
find . -type f -print0 | xargs -0 file --mime-type | grep perl | cut -d: -f1 | while read -r f; do
amove "$f"
done
find "$subpkgdir" -name perllocal.pod -delete
}
# Prints values of the Config.pm variable $1.
_perl_config() {
perl -e "use Config; print \$Config{$1};"
}
_init_template() {
pkgdesc="Git init template directory"
# Some scripts expect file from the template to exist. Installing
# them by default for compatibility
install_if="git=$pkgver-r$pkgrel"
# leave empty directory to prevent git warning
mkdir -p -- "$subpkgdir"/usr/share/git-core/templates
mv -- "$pkgdir"/usr/share/git-core/templates/* "$subpkgdir"/usr/share/git-core/templates
}
sha512sums="
d8d1cec9a4ddc7b1892b7f5b3c808d235bcd4bfb1714ce0ce0e721242acc94f9ae7c2ae3181311feb5b458b04e89cd32acd3e9c90adbc4e86e05e7d5589d8a00 git-2.46.2.tar.xz
89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd
fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd
be5d568fc5b8b84c9afb97b31e471e41f32ccfe188eba0588ea0ef98b2d96c2ce4b2c1a3d70e88205aa4f6667f850b3f32c13bbb149ecddbf670344c162a4e25 fix-t4219-with-sticky-bit.patch
"