aboutsummaryrefslogtreecommitdiffstats
path: root/testing/proftpd/APKBUILD
blob: 788a2da93f797980cf01240ae28f318301fa2518 (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
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
# Contributor: Pedro Filipe <pedrofilipe64@gmail.com>
# Contributor: Elizabeth Jennifer Myers <elizabeth@sporksirc.net>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=proftpd
pkgver=1.3.7_rc3
_pkgver=${pkgver/_/}
pkgrel=1
pkgdesc="Highly configurable FTP server software"
url="https://github.com/proftpd/proftpd"
pkgusers=$pkgname
pkggroups=$pkgname
arch="all"
license="GPL-2.0-or-later"
options="!check" # almost all checks fail, disbled for now
makedepends="autoconf
	automake
	pcre-dev
	libmemcached-dev
	openssl-dev
	sqlite-dev
	mariadb-connector-c-dev
	hiredis-dev
	unixodbc-dev
	postgresql-dev
	openldap-dev
	geoip-dev
	net-snmp-dev"
install="$pkgname.pre-install"

_modules=
_modules="$_modules:mod_unique_id:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_sqlite:mod_sql_odbc:mod_dynmasq"
_modules="$_modules:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap2:mod_wrap2_file"
_modules="$_modules:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_copy:mod_deflate:mod_ifversion"
_modules="$_modules:mod_geoip:mod_exec:mod_sftp:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession:mod_auth_otp:mod_tls_redis"
_modules="$_modules:mod_wrap2_redis:mod_redis:mod_memcache:mod_tls_memcache:mod_readme:mod_snmp:mod_tls_shmcache"

subpackages="$pkgname-doc
	$pkgname-utils
	$pkgname-openrc"

for _module in ${_modules//:/ };  do
	subpackages="$subpackages $pkgname-$_module:_module"
done

source="$pkgname-$_pkgver.tar.gz::https://github.com/proftpd/proftpd/archive/v$_pkgver.tar.gz
	fix-autoconf.patch

	$pkgname.logrotate
	$pkgname.initd
	$pkgname.conf
	mod_sftp.conf
	mod_tls_shmcache.conf"

builddir="$srcdir/$pkgname-$_pkgver/"

prepare() {
	default_prepare
	update_config_guess
	autoreconf -f
}

check() {
	make check
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc/$pkgname \
		--localstatedir=/run/$pkgname \
		--libexecdir=/usr/lib/$pkgname \
		--disable-static \
		--enable-sendfile \
		--enable-facl \
		--enable-dso \
		--enable-autoshadow \
		--enable-ctrls \
		--enable-ipv6 \
		--enable-pcre \
		--disable-strip \
		--disable-wtmp \
		--disable-auth-pam \
		--enable-openssl \
		--with-shared=$_modules
	make
}

package() {
	make DESTDIR="$pkgdir" install
	mkdir -p "$pkgdir"/var/log/$pkgname \
		"$pkgdir"/etc/$pkgname/conf.d \
		"$pkgdir"/etc/$pkgname/modules.d

	install -Dm644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname/$pkgname.conf
	install -dm750 -o ftp -g ftp "$pkgdir"/var/lib/ftp
	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -Dm644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname

	rm -fr "$pkgdir"/run "$pkgdir"/usr/share/locale \
		"$pkgdir"/usr/sbin/in.$pkgname \
		"$pkgdir"/usr/lib/pkgconfig \
		"$pkgdir"/usr/include
}

dev() {
	default_dev
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/prxs "$subpkgdir"/usr/bin
}

doc() {
	default_doc
	mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
	cd "$builddir"
	cp -r RELEASE_NOTES doc/* contrib/README* \
		contrib/mod_quotatab_ldap.ldif \
		contrib/mod_quotatab_ldap.schema \
		"$subpkgdir"/usr/share/doc/$pkgname
}

utils() {
	pkgdesc="$pkgdesc (utilities)"
	depends="$pkgname perl-mail-sendmail"
	mkdir -p "$subpkgdir"/usr/sbin
	mv "$pkgdir"/usr/sbin/ftpscrub \
		"$pkgdir"/usr/sbin/ftpshut \
		"$subpkgdir"/usr/sbin
	mv "$pkgdir"/usr/bin "$subpkgdir"/usr
}

_module() {
	local name=${subpkgname#$pkgname-}
	local module_name=${name#mod_}
	local module_dep=${module_name%%_*}

	pkgdesc="ProFTPd module: $name"
	depends="$pkgname"
	mkdir -p "$subpkgdir"/usr/lib/$pkgname
	mv "$pkgdir"/usr/lib/$pkgname/$name.so "$subpkgdir"/usr/lib/$pkgname
	if [ -f "$srcdir"/$name.conf ]; then
		install -Dm644 "$srcdir"/$name.conf \
			"$subpkgdir"/etc/$pkgname/conf.d/$module_name.conf
	fi

	local file="$subpkgdir"/etc/$pkgname/modules.d/$module_name.conf
	mkdir -p ${file%/*}
	{
		echo "<IfModule !$name.c>"
		if [ "$module_name" != "$module_dep" ]; then
			depends="$depends $pkgname-mod_$module_dep"
			echo "  <IfModule !mod_$module_dep.c>"
			echo "    LoadModule mod_$module_dep.c"
			echo "  </IfModule>"
		fi
		echo "  LoadModule $name.c"
		echo "</IfModule>"
	} >$file

	# thats fine
	# shellcheck disable=2015
	type -q _post_$name && eval _post_$name || true
}

_post_mod_snmp() {
	mkdir -p "$subpkgdir"/usr/share/snmp/mibs
	mv "$pkgdir"/etc/$pkgname/PROFTPD-MIB.txt \
		"$subpkgdir"/usr/share/snmp/mibs
}

_post_mod_ldap() {
	mkdir -p "$subpkgdir"/etc/$pkgname
	cp "$builddir"/contrib/mod_quotatab_ldap.ldif \
		"$builddir"/contrib/mod_quotatab_ldap.schema \
		"$subpkgdir"/etc/$pkgname
}

_post_mod_sftp() {
	mkdir -p "$subpkgdir"/etc/$pkgname/authorized_keys
	mv "$pkgdir"/etc/$pkgname/dhparams.pem \
		"$pkgdir"/etc/$pkgname/blacklist.dat \
		"$subpkgdir"/etc/$pkgname/
}

sha512sums="cab3ffee0ce6b921596cafc5fd2e0059c59a03f790791973b502e6384d45f0880b94e0d0961c3b230541a1785e9b0afa3d80276c82f4720696a46ea6594d744f  proftpd-1.3.7rc3.tar.gz
d127ffe52df1d0130cc838eaf8aaf2e2980704cd840afd7e2ee30b1c0cd40440a1552b652c7e47b13306accd0cabdf35b8ab78e04141f2a83d60c310bcfbf311  fix-autoconf.patch
142f8ba096844eb48883cdd3890fa3c0c4c8f73f7ce4f2acd5fb742053f8a3605b3f6ca5d5ab6c62c673d76eb60885d796af55bd7b53950794c4e7e2837973b8  proftpd.logrotate
a03124a88c0c9f3981762804c62aa479f36227f24408a60437bf737c1e783c539a2d2c0aed0b1d95e56a587bdb5c372f6d670c298cdb7433ecd1f64d4bef7c42  proftpd.initd
c6c6b6c32dd00d31fc1e328e989c77944aac993818747da05794c9560a270630e9bc7e09ac29215b57bcc709299d3720ae9009d3e2a94a0aef8cc5729fae1d0b  proftpd.conf
8c810838219dd0663d3a7390c4e3a31739c1389238f92f856a4c74cd5a71317e1cae0dcfecc4e43cc3057f8c4132539e87511e06620debb2f166694a15adc13e  mod_sftp.conf
2b5beaa4e01588b6d936b7ffda790e270fcba1e337eb43af11a1ad9c615d443d627c4bf66fe2b7946e57c65f5b1075568ab32df3c982e7e7d263b39d422693cd  mod_tls_shmcache.conf"