diff options
-rw-r--r-- | testing/proftpd/APKBUILD | 183 | ||||
-rw-r--r-- | testing/proftpd/fix-autoconf.patch | 22 | ||||
-rw-r--r-- | testing/proftpd/mod_delay.conf | 3 | ||||
-rw-r--r-- | testing/proftpd/mod_load.conf | 3 | ||||
-rw-r--r-- | testing/proftpd/mod_sftp.conf | 16 | ||||
-rw-r--r-- | testing/proftpd/mod_tls_shmcache.conf | 2 | ||||
-rw-r--r-- | testing/proftpd/openssl-1.1.1.patch | 22 | ||||
-rw-r--r-- | testing/proftpd/proftpd.conf | 87 |
8 files changed, 223 insertions, 115 deletions
diff --git a/testing/proftpd/APKBUILD b/testing/proftpd/APKBUILD index 789a71cdf8..37888182c3 100644 --- a/testing/proftpd/APKBUILD +++ b/testing/proftpd/APKBUILD @@ -3,86 +3,105 @@ # Contributor: Valery Kartel <valery.kartel@gmail.com> # Maintainer: Valery Kartel <valery.kartel@gmail.com> pkgname=proftpd -pkgver=1.3.6 -pkgrel=7 -_pkgver=${pkgver/_rc/rc} +pkgver=1.3.7_rc3 +_pkgver=${pkgver/_/} +pkgrel=0 pkgdesc="Highly configurable FTP server software" -url="http://www.proftpd.org/" +url="https://github.com/proftpd/proftpd" pkgusers=$pkgname pkggroups=$pkgname arch="all" -license="GPL" -options="!check" -depends="" -depends_dev="perl" -makedepends="$depends_dev bash file 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" +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="auth_file auth_otp:sftp ban copy ctrls_admin deflate delay dnsbl dynmasq exec geoip - facl facts ident ifsession:=zz ifversion lang ldap load log_forensic memcache qos - quotatab:-- quotatab_file:quotatab quotatab_ldap:quotatab quotatab_radius:quotatab - quotatab_sql:quotatab,sql radius ratio readme redis rewrite sftp_sql:sftp,sql site_misc - shaper sql:-- sql_passwd:sql sql_sqlite:sql sql_mysql:sql sql_odbc:sql sql_postgres:sql - statcache tls tls_fscache:tls tls_memcache:tls tls_redis:tls tls_shmcache:tls unique_id - wrap2:-- wrap2_file:wrap2 wrap2_redis:wrap2,redis wrap2_sql:wrap2,sql" -for _module in $_modules; do - [ -z "${_module##*:*}" ] && eval _load_mod_${_module%:*}=${_module#*:} - subpackages="$subpackages $pkgname-mod_${_module%:*}:_module" - _shared_mods="${_shared_mods:+$_shared_mods:}mod_${_module%:*}" + +_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 -subpackages="$pkgname-dev $pkgname-doc $pkgname-utils - $pkgname-mod_sftp $pkgname-mod_snmp $subpackages - " -source="ftp://ftp.proftpd.org/distrib/source/$pkgname-$_pkgver.tar.gz - openssl-1.1.1.patch + +source="$pkgname-$_pkgver.tar.gz::https://github.com/proftpd/proftpd/archive/v$_pkgver.tar.gz + fix-autoconf.patch + $pkgname.logrotate $pkgname.initd - mod_delay.conf - mod_load.conf + $pkgname.conf mod_sftp.conf - mod_tls_shmcache.conf - " -builddir="$srcdir/$pkgname-$_pkgver" + mod_tls_shmcache.conf" + +builddir="$srcdir/$pkgname-$_pkgver/" + prepare() { default_prepare update_config_guess + autoreconf -f +} + +check() { + make check } build() { - cd "$builddir" ./configure \ + --build=$CBUILD \ + --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc/$pkgname \ --localstatedir=/run/$pkgname \ --libexecdir=/usr/lib/$pkgname \ - --disable-strip \ - --disable-pam \ - --disable-wtmp \ - --enable-dso \ + --disable-static \ + --enable-sendfile \ --enable-facl \ - --enable-pcre \ - --enable-ipv6 \ + --enable-dso \ + --enable-autoshadow \ --enable-ctrls \ + --enable-ipv6 \ + --enable-pcre \ + --disable-strip \ + --disable-wtmp \ + --disable-auth-pam \ --enable-openssl \ - --with-shared=mod_sftp:mod_snmp:$_shared_mods + --with-shared=$_modules make } package() { - make -C "$builddir" DESTDIR="$pkgdir" install - sed -i -e "5 a Include /etc/$pkgname/modules.d/*.conf" \ - -e "5 a Include /etc/$pkgname/conf.d/*.conf\n" \ - -e "s/nobody/$pkgname/" \ - -e "s/nogroup/$pkgname/" \ - "$pkgdir"/etc/$pkgname/$pkgname.conf + 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/sbin/in.$pkgname \ + "$pkgdir"/usr/lib/pkgconfig \ + "$pkgdir"/usr/include } dev() { @@ -103,7 +122,7 @@ doc() { utils() { pkgdesc="$pkgdesc (utilities)" - depends="$pkgname perl perl-mail-sendmail" + depends="$pkgname perl-mail-sendmail" mkdir -p "$subpkgdir"/usr/sbin mv "$pkgdir"/usr/sbin/ftpscrub \ "$pkgdir"/usr/sbin/ftpshut \ @@ -113,53 +132,61 @@ utils() { _module() { local name=${subpkgname#$pkgname-} - local load=$(eval echo \$_load_$name) + 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 - [ -f "$srcdir"/$name.conf ] && install -Dm644 "$srcdir"/$name.conf \ - "$subpkgdir"/etc/$pkgname/conf.d/${name#mod_}.conf - if [ "$load" != "--" ]; then - local file="$subpkgdir"/etc/$pkgname/modules.d/${name#mod_}.conf - if [ -z "${load##=*}" ]; then - file="$subpkgdir"/etc/$pkgname/modules.d/${load#=}${name#mod_}.conf - load="" - fi - mkdir -p ${file%/*} - echo "<IfModule !$name.c>" > $file - local dep; for dep in $(echo $load | tr "," " "); do - depends="$depends $pkgname-mod_$dep" - echo " <IfModule !mod_$dep.c>" >> $file - echo " LoadModule mod_$dep.c" >> $file - echo " </IfModule>" >> $file - done - echo " LoadModule $name.c" >> $file - echo "</IfModule>" >> $file + 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 } -mod_snmp() { - _module +_post_mod_snmp() { mkdir -p "$subpkgdir"/usr/share/snmp/mibs mv "$pkgdir"/etc/$pkgname/PROFTPD-MIB.txt \ "$subpkgdir"/usr/share/snmp/mibs } -mod_sftp() { - _module +_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="2a3ca76a0c35ba31e9d79f7f652f4f35768262f5039c5dc04ef83ac9218f624645ac6cee445af4ec6a8c59a9bdad1e7b48e0e90cd13934cbe7c3e77a2f6013c0 proftpd-1.3.6.tar.gz -9ef193a2b3f84103775c8df7636da2d4e7d1937f15c745005a99a4dcfd9db96d45c81490aeba04251bb975cdceb1be8015162a957fcd0a6f3dcd3054f6293a1a openssl-1.1.1.patch +sha512sums="cab3ffee0ce6b921596cafc5fd2e0059c59a03f790791973b502e6384d45f0880b94e0d0961c3b230541a1785e9b0afa3d80276c82f4720696a46ea6594d744f proftpd-1.3.7rc3.tar.gz +d127ffe52df1d0130cc838eaf8aaf2e2980704cd840afd7e2ee30b1c0cd40440a1552b652c7e47b13306accd0cabdf35b8ab78e04141f2a83d60c310bcfbf311 fix-autoconf.patch 142f8ba096844eb48883cdd3890fa3c0c4c8f73f7ce4f2acd5fb742053f8a3605b3f6ca5d5ab6c62c673d76eb60885d796af55bd7b53950794c4e7e2837973b8 proftpd.logrotate a03124a88c0c9f3981762804c62aa479f36227f24408a60437bf737c1e783c539a2d2c0aed0b1d95e56a587bdb5c372f6d670c298cdb7433ecd1f64d4bef7c42 proftpd.initd -e918e9fdf42e46953faeb55f5a8e7e7afc8951b861059182993f45b7ca870b9bdfa261fc893923772060bf500c44f98503d44878473dce7534f0825a7ff87831 mod_delay.conf -06c149f4c1b8e0deb8102a0ddbe5314354d53cb70934c9315968ab69b9d2b1e16c33bf652aba05472eac4ca44137ce18c93214bb1257fad6c6e2e9b0728cf556 mod_load.conf -557cbf2c1ca3a724216837f98c0f86b7d14df5f91564e1aceef721389c4774562edbd584d3ce2611ea4b2853c50acd569c33302f534e6e60452cf12b4b997ece mod_sftp.conf -768ce1e63b44eafb9033212655c9a5a9aa65a6f7e1b97b11210ccc0e49caf5c32dd2514dba10a098a4ab2c8bd5f3ad5167f337f5fa0a1cdd5efa4e37c980f6e5 mod_tls_shmcache.conf" +c6c6b6c32dd00d31fc1e328e989c77944aac993818747da05794c9560a270630e9bc7e09ac29215b57bcc709299d3720ae9009d3e2a94a0aef8cc5729fae1d0b proftpd.conf +8c810838219dd0663d3a7390c4e3a31739c1389238f92f856a4c74cd5a71317e1cae0dcfecc4e43cc3057f8c4132539e87511e06620debb2f166694a15adc13e mod_sftp.conf +2b5beaa4e01588b6d936b7ffda790e270fcba1e337eb43af11a1ad9c615d443d627c4bf66fe2b7946e57c65f5b1075568ab32df3c982e7e7d263b39d422693cd mod_tls_shmcache.conf" diff --git a/testing/proftpd/fix-autoconf.patch b/testing/proftpd/fix-autoconf.patch new file mode 100644 index 0000000000..cd4782f666 --- /dev/null +++ b/testing/proftpd/fix-autoconf.patch @@ -0,0 +1,22 @@ +--- old/lib/libltdl/Makefile.am ++++ new/lib/libltdl/Makefile.am +@@ -50,19 +50,7 @@ + LTDL_VERSION_INFO = -version-info 9:0:2 + + noinst_LTLIBRARIES += $(LT_DLLOADERS) +- +-if INSTALL_LTDL +-ltdlincludedir = $(includedir)/libltdl +-ltdlinclude_HEADERS = libltdl/lt_system.h \ +- libltdl/lt_error.h \ +- libltdl/lt_dlloader.h +-include_HEADERS += ltdl.h +-lib_LTLIBRARIES += libltdl.la +-endif +- +-if CONVENIENCE_LTDL + noinst_LTLIBRARIES += libltdlc.la +-endif + + libltdl_la_SOURCES = libltdl/lt__alloc.h \ + libltdl/lt__dirent.h \ diff --git a/testing/proftpd/mod_delay.conf b/testing/proftpd/mod_delay.conf deleted file mode 100644 index 80b3c714e2..0000000000 --- a/testing/proftpd/mod_delay.conf +++ /dev/null @@ -1,3 +0,0 @@ -<IfModule mod_delay.c> - DelayEngine on -</IfModule> diff --git a/testing/proftpd/mod_load.conf b/testing/proftpd/mod_load.conf deleted file mode 100644 index 946d04eff8..0000000000 --- a/testing/proftpd/mod_load.conf +++ /dev/null @@ -1,3 +0,0 @@ -<IfModule mod_load.c> - MaxLoad 10.0 "Server busy, seek elsewhere" -</IfModule> diff --git a/testing/proftpd/mod_sftp.conf b/testing/proftpd/mod_sftp.conf index 0ecd1f629a..e4329cd09b 100644 --- a/testing/proftpd/mod_sftp.conf +++ b/testing/proftpd/mod_sftp.conf @@ -1,10 +1,10 @@ <IfModule mod_sftp.c> - SFTPEngine on - Port 2222 - SFTPLog /var/log/proftpd/sftp.log - SFTPHostKey /etc/ssh/ssh_host_rsa_key - SFTPHostKey /etc/ssh/ssh_host_dsa_key - SFTPAuthMethods publickey - SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u - SFTPCompression delayed +# SFTPEngine on +# Port 2222 +# SFTPLog /var/log/proftpd/sftp.log +# SFTPHostKey /etc/ssh/ssh_host_rsa_key +# SFTPHostKey /etc/ssh/ssh_host_dsa_key +# SFTPAuthMethods publickey +# SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u +# SFTPCompression delayed </IfModule> diff --git a/testing/proftpd/mod_tls_shmcache.conf b/testing/proftpd/mod_tls_shmcache.conf index dece4cb619..25de2abf11 100644 --- a/testing/proftpd/mod_tls_shmcache.conf +++ b/testing/proftpd/mod_tls_shmcache.conf @@ -1,3 +1,3 @@ <IfModule mod_tls_shmcache.c> - TLSSessionCache shm:/file=/run/proftpd/sesscache +# TLSSessionCache shm:/file=/run/proftpd/sesscache </IfModule> diff --git a/testing/proftpd/openssl-1.1.1.patch b/testing/proftpd/openssl-1.1.1.patch deleted file mode 100644 index 4bb864f458..0000000000 --- a/testing/proftpd/openssl-1.1.1.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/contrib/mod_auth_otp/crypto.c b/contrib/mod_auth_otp/crypto.c -index c479d56..9a6ccc1 100644 ---- a/contrib/mod_auth_otp/crypto.c -+++ b/contrib/mod_auth_otp/crypto.c -@@ -50,17 +50,7 @@ void auth_otp_crypto_free(int flags) { - ERR_free_strings(); - - #if OPENSSL_VERSION_NUMBER >= 0x10000001L --# if OPENSSL_VERSION_NUMBER >= 0x10100000L && \ -- !defined(HAVE_LIBRESSL) -- ERR_remove_thread_state(); --# else -- /* The ERR_remove_state(0) usage is deprecated due to thread ID -- * differences among platforms; see the OpenSSL-1.0.0c CHANGES file -- * for details. So for new enough OpenSSL installations, use the -- * proper way to clear the error queue state. -- */ - ERR_remove_thread_state(NULL); --# endif /* OpenSSL-1.1.x and later */ - #else - ERR_remove_state(0); - #endif /* OpenSSL prior to 1.0.0-beta1 */ diff --git a/testing/proftpd/proftpd.conf b/testing/proftpd/proftpd.conf new file mode 100644 index 0000000000..a7d91ca6d0 --- /dev/null +++ b/testing/proftpd/proftpd.conf @@ -0,0 +1,87 @@ +# This is a basic ProFTPD configuration file (rename it to +# 'proftpd.conf' for actual use. It establishes a single server +# and a single anonymous login. It assumes that you have a user/group +# "proftpd" and "ftp" for normal operation and anon. + +# This is the directory where DSO modules reside +ModulePath /usr/lib/proftpd + +# Allow only user root to load and unload modules, but allow everyone +# to see which modules have been loaded +ModuleControlsACLs insmod,rmmod allow user root +ModuleControlsACLs lsmod allow user * + +Include /etc/proftpd/modules.d/ + +ServerName "ProFTPD Default Installation" +ServerType standalone +#DefaultServer on + +# Port 21 is the standard FTP port. +Port 21 + +# Don't use IPv6 support by default. +UseIPv6 off + +# Umask 022 is a good standard umask to prevent new dirs and files +# from being group and world writable. +Umask 022 + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# in standalone mode, in inetd mode you should use an inetd server +# that allows you to limit maximum number of processes per service +# (such as xinetd). +MaxInstances 30 + +# Set the user and group under which the server will run. +User proftpd +Group proftpd + +# To cause every FTP user to be "jailed" (chrooted) into their home +# directory, uncomment this line. +#DefaultRoot ~ + +# Normally, we want files to be overwriteable. +AllowOverwrite on + +MultilineRFC2228 on +DefaultServer on +ShowSymlinks on + +TimeoutNoTransfer 600 +TimeoutStalled 600 +TimeoutIdle 1200 + +DisplayLogin welcome.msg +DisplayChdir .message true +ListOptions "-l" + +DenyFilter \*.*/ + +# A basic anonymous configuration, no upload directories. If you do not +# want anonymous users, simply delete this entire <Anonymous> section. +#<Anonymous ~ftp> +# User ftp +# Group ftp +# +# # We want clients to be able to login with "anonymous" as well as "ftp" +# UserAlias anonymous ftp +# +# # Limit the maximum number of anonymous logins +# MaxClients 10 +# +# # We want 'welcome.msg' displayed at login, and '.message' displayed +# # in each newly chdired directory. +# DisplayLogin welcome.msg +# DisplayChdir .message +# +# # Limit WRITE everywhere in the anonymous chroot +# <Limit WRITE> +# DenyAll +# </Limit> +#</Anonymous> + +Include /etc/proftpd/conf.d/ + |