aboutsummaryrefslogtreecommitdiffstats
path: root/main/subversion/APKBUILD
blob: 207cf611c2764c8e271ae7447d5ba19ce5536fb5 (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
# Contributor: Ɓukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=subversion
pkgver=1.13.0
pkgrel=2
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/$pkgname-$pkgver.tar.bz2
	subversion-1.7.0-deplibs.patch
	subversion-perl-deplibs.patch
	subversion-1.12.0-linking.patch
	svnserve.confd
	svnserve.initd"

# secfixes:
#   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-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="36f390b412bf772bf894efc2aadc247f12ca30ac407e04f664c14411c3519e1bb242d1239f2f44cbcb86eafc7c413efc8eadbfe1d1e75118235a7b7adc6c85b2  subversion-1.13.0.tar.bz2
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"