aboutsummaryrefslogtreecommitdiffstats
path: root/main/subversion/APKBUILD
blob: 4666f2648258633ebebcce7a5fed595787b8b3f4 (plain)
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
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=subversion
pkgver=1.14.1
pkgrel=6
_py3c_ver=1.1
pkgdesc="Replacement for CVS, another versioning system (svn)"
url="https://subversion.apache.org/"
arch="all"
license="Apache-2.0 BSD"
makedepends="apache2-dev apr-util-dev autoconf automake e2fsprogs-dev libtool
	lz4-dev neon-dev perl-dev python3-dev serf-dev swig boost-dev"
install="$pkgname.pre-install"
subpackages="$pkgname-dev $pkgname-doc mod_dav_svn
	$pkgname-bash-completion:bashcomp:noarch
	perl-$pkgname:pl py3-$pkgname:py $pkgname-libs
	$pkgname-openrc"
source="https://archive.apache.org/dist/subversion/subversion-$pkgver.tar.bz2
	py3c-$_py3c_ver.tar.gz::https://github.com/encukou/py3c/archive/v$_py3c_ver.tar.gz
	subversion-1.7.0-deplibs.patch
	subversion-perl-deplibs.patch
	subversion-1.12.0-linking.patch
	svnserve.confd
	svnserve.initd"

# secfixes:
#   1.14.1-r0:
#     - CVE-2020-17525
#   1.12.2-r0:
#     - CVE-2019-0203
#     - CVE-2018-11782
#   1.11.1-r0:
#     - CVE-2018-11803
#   1.9.7-r0:
#     - CVE-2017-9800

prepare() {
	default_prepare
	mv build-outputs.mk build-outputs.mk.old
	PYTHON=python3 LIBTOOL_CONFIG=/usr/share/libtool/build-aux ./autogen.sh --release
	# fix shebangs
	sed -i -e 's|/usr/bin/env perl -w|/usr/bin/perl -w|' tools/hook-scripts/*.pl.in
	sed -e 's|/usr/bin/env python.*|/usr/bin/python3|' subversion/tests/cmdline/svneditor.py
}

build() {
	local _pydir=$(python3 -c "import sysconfig;print(sysconfig.get_path('stdlib'))")
	unset CPPFLAGS
	export PYTHON=python3
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--disable-nls \
		--with-apxs \
		--with-apache-libexecdir \
		--with-py3c=../py3c-$_py3c_ver \
		--with-swig \
		--disable-javahl \
		--disable-static \
		--enable-disallowing-of-undefined-references \
		--without-jdk \
		--with-serf \
		--with-utf8proc=internal
	make all
	make swig-pl-lib
	(cd subversion/bindings/swig/perl/native ; perl Makefile.PL)
	# need override LD_RUN_PATH with something valid, otherwise we get
	# empty rpath which is not a good idea.
	make -j1 -C subversion/bindings/swig/perl/native \
		LD_RUN_PATH="/usr/lib" EXTRALIBS="-lapr-1"
	# SWIG 3.x does not support Python comments
	grep -Ev "^ +#" subversion/bindings/swig/include/proxy.swg > \
		subversion/bindings/swig/include/proxy.swg.tmp
	mv subversion/bindings/swig/include/proxy.swg.tmp \
		subversion/bindings/swig/include/proxy.swg
	make swig-py swig-py-lib \
		swig_pydir="$_pydir/libsvn"\
		swig_pydir_extra="$_pydir/svn"
}

check() {
	make test
}

package() {
	local _pydir=$(python3 -c "import sysconfig;print(sysconfig.get_path('stdlib'))")
	make -j1 DESTDIR="$pkgdir" \
		swig_pydir="$_pydir/libsvn"\
		swig_pydir_extra="$_pydir/svn" \
		install install-swig-pl-lib install-swig-py
	make pure_vendor_install -C subversion/bindings/swig/perl/native \
		PERL_INSTALL_ROOT="$pkgdir"
	find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete

	install -Dm755 "$srcdir"/svnserve.initd "$pkgdir"/etc/init.d/svnserve
	install -Dm644 "$srcdir"/svnserve.confd "$pkgdir"/etc/conf.d/svnserve

	mkdir -p "pkgdir"/usr/lib
	mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
}

mod_dav_svn() {
	pkgdesc="Apache httpd module for $pkgname server"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/apache2 "$subpkgdir"/usr/lib/
}

bashcomp() {
	depends=""
	pkgdesc="Bash completion for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"

	install -Dm644 "$builddir"/tools/client-side/bash_completion \
		"$subpkgdir"/usr/share/bash-completion/completions/$pkgname
	cd "$subpkgdir"/usr/share/bash-completion/completions
	local i; for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do
		ln -sf $pkgname $i
	done
}

pl() {
	pkgdesc="Perl bindings to $pkgname"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*perl* "$subpkgdir"/usr/lib/
}

py() {
	pkgdesc="Python bindings to $pkgname"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/lib*swig*py* \
		"$pkgdir"/usr/lib/python* \
		"$subpkgdir"/usr/lib/
}

sha512sums="0a70c7152b77cdbcb810a029263e4b3240b6ef41d1c19714e793594088d3cca758d40dfbc05622a806b06463becb73207df249393924ce591026b749b875fcdd  subversion-1.14.1.tar.bz2
aa95bbe1a80eec9e32d3dab4b0771a35fc467052757077fa17b42ceba78a5fe7fb1fa99079240aeeea5538abff778518b706f3bf16dbce2cd4f7dc1900c61b24  py3c-1.1.tar.gz
fb219c45b80602d919176cc191394df09f90d0f5c7d24e6a36b166bd92777ecae67eeac1e49c0ffbb0e724396b3d2094dbb0bef17d01dc87d418b1cd554bd7c4  subversion-1.7.0-deplibs.patch
fd6e5f45cff4d3cf0d885a34c822b32141b13b199d99ad8e1b04d641c9c1ee27e73f5c556a4ad54a900b6d39cc14afad17b6738d8af44c76758f1a27b4d49f9a  subversion-perl-deplibs.patch
7d46f2ee0bbba53b6dc9312b35000b1433a46edb09f61030da1ff66951bc204fc90598e5b07ce2554d46508d5a9e8193152131ae21050901c7b40cb034fb5cc3  subversion-1.12.0-linking.patch
7fe993443d4d3ef5e1e75f60e85036ee0b2bb2636c2c830210e64f525f95ae4c10ca1dc4504fc36915ec9391815becbe7cbf5f589c28609386d8d079ed02c630  svnserve.confd
f6392193cc65aaceee9b6e5e66f80af4b095ba4007e8536e8b1c4e8b2c75610d7f5596b83e5edd504672f021c074887fc6464cf4fc1dfe9446741105f11cd855  svnserve.initd"