Date: Thu, 8 Jul 2021 10:15:59 GMT From: Alexey Dokuchaev <danfe@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 08f9c9628a8b - main - ftp/wzdftpd: resurrect^Wreadd previously deleted port Message-ID: <202107081015.168AFx0u082809@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by danfe: URL: https://cgit.FreeBSD.org/ports/commit/?id=08f9c9628a8bb915eebda553dde944d3dd01c465 commit 08f9c9628a8bb915eebda553dde944d3dd01c465 Author: Alexey Dokuchaev <danfe@FreeBSD.org> AuthorDate: 2021-07-08 10:14:36 +0000 Commit: Alexey Dokuchaev <danfe@FreeBSD.org> CommitDate: 2021-07-08 10:14:37 +0000 ftp/wzdftpd: resurrect^Wreadd previously deleted port Despite that original author stopped working on the project, it has its userbase and remains fairly popular and demanded, known for its versatility and capabilities, so: - Bring back from the attic and fix the build with -fno-common - Mark OPENSSL option as BROKEN for the time being - Expand the default options a bit to get more useful package - Tighten one regex (escape the dot) and kill stray backslash - Fix a typo and adjust WWW line in the port description text - Submitter assumes maintainership of the port (thanks!) PR: 256840 Submitted by: Robert Clausecker --- MOVED | 1 - ftp/Makefile | 1 + ftp/wzdftpd/Makefile | 94 ++++++++++++++++++ ftp/wzdftpd/distinfo | 3 + ftp/wzdftpd/files/patch-ac-helpers__tls.m4 | 11 +++ ftp/wzdftpd/files/patch-libwzd-core_wzd_tls.c | 52 ++++++++++ ftp/wzdftpd/files/wzdftpd.in | 25 +++++ ftp/wzdftpd/pkg-descr | 19 ++++ ftp/wzdftpd/pkg-plist | 131 ++++++++++++++++++++++++++ 9 files changed, 336 insertions(+), 1 deletion(-) diff --git a/MOVED b/MOVED index ea9ffff7949e..3b8c7a62506a 100644 --- a/MOVED +++ b/MOVED @@ -16195,7 +16195,6 @@ textproc/elasticsearch5-search-guard||2021-04-06|Has expired: textproc/elasticse multimedia/gnome-subtitles||2021-04-06|Has expired: outdated, depends on deprecated library www/gtkhtml3 net/libproxy-mozjs||2021-04-06|Has expired: Uses EOL Python 2.7 via lang/spidermonkey52 lang/spidermonkey52|lang/spidermonkey78|2021-04-06|Has expired: Uses Python 2.7 which is EOLed upstream -ftp/wzdftpd||2021-04-07|Has expired: Unmaintained and dead upstream, does not build with -fno-common (llvm 11) astro/roadmap||2021-04-07|Has expired: Unmaintained and dead upstream, does not build with -fno-common (llvm 11) games/cosmo||2021-04-07|Has expired: Unmaintained and dead upstream, does not build with -fno-common (llvm 11) games/bomberinstinct||2021-04-07|Has expired: Unmaintained and dead upstream, does not build with -fno-common (llvm 11) diff --git a/ftp/Makefile b/ftp/Makefile index 984e2b57e3bc..73d4bf20066d 100644 --- a/ftp/Makefile +++ b/ftp/Makefile @@ -93,6 +93,7 @@ SUBDIR += wmget SUBDIR += wput SUBDIR += wxdfast + SUBDIR += wzdftpd SUBDIR += yafc .include <bsd.port.subdir.mk> diff --git a/ftp/wzdftpd/Makefile b/ftp/wzdftpd/Makefile new file mode 100644 index 000000000000..63eec6fcd56b --- /dev/null +++ b/ftp/wzdftpd/Makefile @@ -0,0 +1,94 @@ +# Created by: Roman Bogorodskiy + +PORTNAME= wzdftpd +PORTVERSION= 0.8.3 +PORTREVISION= 7 +CATEGORIES= ftp +MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-sources/${PORTNAME}-${PORTVERSION:R} + +MAINTAINER= fuz@fuz.su +COMMENT= Modular FTP server configurable online using SITE commands + +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= autoreconf gettext-tools libtool localbase pkgconfig +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --sysconfdir=${ETCDIR} --without-pam --disable-bonjour +INSTALL_TARGET= install-strip +USE_LDCONFIG= yes + +USE_RC_SUBR= wzdftpd + +OPTIONS_DEFINE= AVAHI ICONV IPV6 MYSQL PERL PGSQL SQLITE TCL DOCS +OPTIONS_RADIO= TLS +OPTIONS_RADIO_TLS= GNUTLS OPENSSL +OPTIONS_DEFAULT= AVAHI GNUTLS ICONV PERL SQLITE +OPTIONS_SUB= yes + +ICONV_CONFIGURE_ON= ${ICONV_CONFIGURE_ARG} +ICONV_CONFIGURE_OFF= --disable-utf8 +ICONV_USES= iconv + +TCL_CONFIGURE_ON= --with-tcl=${TCL_LIBDIR} +TCL_CONFIGURE_OFF= --without-tcl +TCL_USES= tcl + +OPENSSL_CONFIGURE_ENABLE= openssl +OPENSSL_USES= ssl +OPENSSL_BROKEN= wzd_tls.c:300:42: error: use of undeclared identifier 'STACK' + +GNUTLS_CONFIGURE_ENABLE= gnutls +GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls + +IPV6_CONFIGURE_ENABLE= ipv6 + +PERL_CONFIGURE_ENABLE= perl +PERL_USES= perl5 + +MYSQL_CONFIGURE_ENABLE= mysql +MYSQL_USES= mysql + +PGSQL_CONFIGURE_ON= --with-pgsql=${LOCALBASE} +PGSQL_CONFIGURE_OFF= --disable-pgsql +PGSQL_USES= pgsql + +SQLITE_CONFIGURE_ENABLE= sqlite3 +SQLITE_USES= sqlite:3 + +AVAHI_CONFIGURE_ON= --with-zeroconf --enable-avahi +AVAHI_LIB_DEPENDS= libdbus-1.so:devel/dbus \ + libavahi-core.so:net/avahi-app + +post-patch: + @${TOUCH} ${WRKSRC}/config.rpath + @${ECHO_CMD} "ACLOCAL_AMFLAGS= -I ac-helpers" >> ${WRKSRC}/Makefile.am + @${REINPLACE_CMD} -e \ + '/LDFLAGS/s|@PTHREAD_CFLAGS@|@LTLIBICONV@|' \ + ${WRKSRC}/libwzd-core/Makefile.am + @${REINPLACE_CMD} -e \ + 's|INSTALLDIRS=vendor|INSTALLPRIVLIB=$${prefix}/lib| ; \ + /MAKE/s| install| pure_install|' \ + ${WRKSRC}/libwzd-perl/Makefile.am +.for i in backends modules + @${FIND} ${WRKSRC}/${i} -name "Makefile.am" | ${XARGS} \ + ${REINPLACE_CMD} -e \ + '/^libdir/s|$${pkgdatadir}|$${prefix}/lib/wzdftpd|' +.endfor + @${FIND} ${WRKSRC} -name "*_tls.c" | ${XARGS} ${REINPLACE_CMD} -e \ + '/<gcrypt\.h>/d ; /gcry_control/d' + @${REINPLACE_CMD} -e \ + 's|^wzd_sfv_config SfvConfig|extern &|' \ + ${WRKSRC}/modules/sfv/libwzd_sfv_main.h + +post-install: + ${INSTALL_DATA} ${WRKSRC}/*.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} +.for i in AUTHORS ChangeLog NEWS Permissions.ReadMeFirst README \ + TLS.ReadMeFirst UPGRADING wzd_tls.cnf + ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} +.endfor + +.include <bsd.port.mk> diff --git a/ftp/wzdftpd/distinfo b/ftp/wzdftpd/distinfo new file mode 100644 index 000000000000..e3e1b7dbc01c --- /dev/null +++ b/ftp/wzdftpd/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1193576054 +SHA256 (wzdftpd-0.8.3.tar.gz) = 14b958739bfe8f2c9e665b036ea627f7830332a43a32000feb1b6e632c18ec5d +SIZE (wzdftpd-0.8.3.tar.gz) = 850981 diff --git a/ftp/wzdftpd/files/patch-ac-helpers__tls.m4 b/ftp/wzdftpd/files/patch-ac-helpers__tls.m4 new file mode 100644 index 000000000000..86f9dd704ec5 --- /dev/null +++ b/ftp/wzdftpd/files/patch-ac-helpers__tls.m4 @@ -0,0 +1,11 @@ +--- ac-helpers/tls.m4.orig ++++ ac-helpers/tls.m4 +@@ -22,7 +22,7 @@ + ) + + if test "$gnutls" = "yes"; then +-AM_PATH_LIBGNUTLS(0.9.8,wzd_have_gnutls=yes) ++PKG_CHECK_MODULES(LIBGNUTLS, [gnutls], [wzd_have_gnutls=yes], [wzd_have_gnutls=no]) + fi + + # openssl is checked only if gnutls was not found or disabled diff --git a/ftp/wzdftpd/files/patch-libwzd-core_wzd_tls.c b/ftp/wzdftpd/files/patch-libwzd-core_wzd_tls.c new file mode 100644 index 000000000000..6c755286c6e3 --- /dev/null +++ b/ftp/wzdftpd/files/patch-libwzd-core_wzd_tls.c @@ -0,0 +1,52 @@ +--- libwzd-core/wzd_tls.c.orig 2007-10-25 17:25:33 UTC ++++ libwzd-core/wzd_tls.c +@@ -946,19 +946,13 @@ int tls_exit(void) + + static gnutls_session initialize_tls_session(gnutls_connection_end con_end) + { +- /* Allow connections to servers that have OpenPGP keys as well. +- */ +- const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 }; +- + gnutls_session session; + + gnutls_init(&session, con_end); + +- /* avoid calling all the priority functions, since the defaults +- * are adequate. ++ /* Allow connections to servers that have OpenPGP keys as well. + */ +- gnutls_set_default_priority(session); +- gnutls_certificate_type_set_priority(session, cert_type_priority); ++ gnutls_priority_set_direct(session, "NORMAL:+CTYPE-OPENPGP", NULL); + + gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred); + +@@ -1001,27 +995,6 @@ int tls_auth (const char *type, wzd_cont + } + + /** \todo XXX parse TLS cipher names */ +- { +- /** Note that the priority is set on the client. The server does not use +- * the algorithm's priority except for disabling algorithms that were not +- * specified. +- */ +- const int cipherPriority[] = +- { +- GNUTLS_CIPHER_ARCFOUR_128, +- GNUTLS_CIPHER_3DES_CBC, +- GNUTLS_CIPHER_AES_128_CBC, +- GNUTLS_CIPHER_AES_256_CBC, +- GNUTLS_CIPHER_ARCFOUR_40, +-#if ( (LIBGNUTLS_VERSION_MAJOR > 1) || (LIBGNUTLS_VERSION_MINOR >= 3) ) +- GNUTLS_CIPHER_RC2_40_CBC, +- GNUTLS_CIPHER_DES_CBC, +-#endif +- 0 +- }; +- +- gnutls_cipher_set_priority(session, cipherPriority); +- } + + /* ensure socket is non-blocking */ + #if defined(_MSC_VER) || (defined(__CYGWIN__) && defined(WINSOCK_SUPPORT)) diff --git a/ftp/wzdftpd/files/wzdftpd.in b/ftp/wzdftpd/files/wzdftpd.in new file mode 100644 index 000000000000..2be8e0ee1fca --- /dev/null +++ b/ftp/wzdftpd/files/wzdftpd.in @@ -0,0 +1,25 @@ +#!/bin/sh + +# Start or stop wzdftpd + +# PROVIDE: wzdftpd +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown +# + +# Add the following lines to /etc/rc.conf to enable wzdftpd +# wzdftpd_enable="YES" +# wzdftpd_flags="<set as needed>" + +wzdftpd_enable=${wzdftpd_enable:-"NO"} # Enable wzdftpd + +. /etc/rc.subr + +name="wzdftpd" +rcvar=wzdftpd_enable +command="%%PREFIX%%/sbin/${name}" +required_files="%%PREFIX%%/etc/wzdftpd/wzd.cfg" + +load_rc_config $name +run_rc_command "$1" diff --git a/ftp/wzdftpd/pkg-descr b/ftp/wzdftpd/pkg-descr new file mode 100644 index 000000000000..cb2eab5245a2 --- /dev/null +++ b/ftp/wzdftpd/pkg-descr @@ -0,0 +1,19 @@ +wzdftpd is a ftp server designed to be modular and entirely configurable online +using SITE commands. + +wzdftpd offers the following features: +- Simple configuration file, supporting inclusions +- Online administration, using SITE commands +- Backends to store users/groups in different structures +- Modules: internal, using shared libraries, or external + (scripts/applications) +- Users are virtual: you do not need to create users in system +- SSL/TLS support +- Server is designed to run as a non-privileged user to enforce security +- Server can detect ip changes (dynamic ips) and set ip and passive ip + accordingly +- Cross devices operations (copy/move) (though can be slow) +- Logging support (compatible with the wu-ftpd standard) +- Designed for high performances: coded with C, multithreaded + +WWW: https://sourceforge.net/projects/wzdftpd/ diff --git a/ftp/wzdftpd/pkg-plist b/ftp/wzdftpd/pkg-plist new file mode 100644 index 000000000000..58b8bb9b5802 --- /dev/null +++ b/ftp/wzdftpd/pkg-plist @@ -0,0 +1,131 @@ +bin/siteconfig +bin/siteuptime +bin/sitewho +bin/wzd-config +man/man1/siteconfig.1.gz +man/man1/siteuptime.1.gz +man/man1/sitewho.1.gz +man/man1/wzd-config.1.gz +man/man8/wzdftpd.8.gz +%%ETCDIR%%/file_ginfo.txt +%%ETCDIR%%/file_group.txt +%%ETCDIR%%/file_groups.txt +%%ETCDIR%%/file_help.txt +%%ETCDIR%%/file_rules.txt +%%ETCDIR%%/file_swho.txt +%%ETCDIR%%/file_user.txt +%%ETCDIR%%/file_users.txt +%%ETCDIR%%/file_vfs.txt +%%ETCDIR%%/file_who.txt +%%ETCDIR%%/users.sample +%%ETCDIR%%/wzd.cfg.sample +%%ETCDIR%%/wzd.pem +include/wzdftpd/libwzd-auth/wzd_auth.h +include/wzdftpd/libwzd-auth/wzd_base64.h +include/wzdftpd/libwzd-auth/wzd_crypt.h +include/wzdftpd/libwzd-auth/wzd_krb5.h +include/wzdftpd/libwzd-auth/wzd_md5.h +include/wzdftpd/libwzd-auth/wzd_md5crypt.h +include/wzdftpd/libwzd-auth/wzd_pam.h +include/wzdftpd/libwzd-auth/wzd_sha1.h +include/wzdftpd/libwzd-auth/wzd_tls.h +include/wzdftpd/libwzd-base/dlist.h +include/wzdftpd/libwzd-base/hash.h +include/wzdftpd/libwzd-base/list.h +include/wzdftpd/libwzd-base/stack.h +include/wzdftpd/libwzd-base/strpcpy.h +include/wzdftpd/libwzd-base/wzd_strlcat.h +include/wzdftpd/libwzd-base/wzd_strtok_r.h +include/wzdftpd/libwzd-core/arch/bsd.h +include/wzdftpd/libwzd-core/arch/win32.h +include/wzdftpd/libwzd-core/wzd_ClientThread.h +include/wzdftpd/libwzd-core/wzd_action.h +include/wzdftpd/libwzd-core/wzd_all.h +include/wzdftpd/libwzd-core/wzd_backend.h +include/wzdftpd/libwzd-core/wzd_cache.h +include/wzdftpd/libwzd-core/wzd_commands.h +include/wzdftpd/libwzd-core/wzd_configfile.h +include/wzdftpd/libwzd-core/wzd_configloader.h +include/wzdftpd/libwzd-core/wzd_crc32.h +include/wzdftpd/libwzd-core/wzd_crontab.h +include/wzdftpd/libwzd-core/wzd_data.h +include/wzdftpd/libwzd-core/wzd_debug.h +include/wzdftpd/libwzd-core/wzd_dir.h +include/wzdftpd/libwzd-core/wzd_events.h +include/wzdftpd/libwzd-core/wzd_file.h +include/wzdftpd/libwzd-core/wzd_fs.h +include/wzdftpd/libwzd-core/wzd_group.h +include/wzdftpd/libwzd-core/wzd_hardlimits.h +include/wzdftpd/libwzd-core/wzd_ip.h +include/wzdftpd/libwzd-core/wzd_libmain.h +include/wzdftpd/libwzd-core/wzd_list.h +include/wzdftpd/libwzd-core/wzd_log.h +include/wzdftpd/libwzd-core/wzd_login.h +include/wzdftpd/libwzd-core/wzd_messages.h +include/wzdftpd/libwzd-core/wzd_misc.h +include/wzdftpd/libwzd-core/wzd_mod.h +include/wzdftpd/libwzd-core/wzd_mutex.h +include/wzdftpd/libwzd-core/wzd_perm.h +include/wzdftpd/libwzd-core/wzd_protocol.h +include/wzdftpd/libwzd-core/wzd_ratio.h +include/wzdftpd/libwzd-core/wzd_section.h +include/wzdftpd/libwzd-core/wzd_shm.h +include/wzdftpd/libwzd-core/wzd_site.h +include/wzdftpd/libwzd-core/wzd_site_group.h +include/wzdftpd/libwzd-core/wzd_site_user.h +include/wzdftpd/libwzd-core/wzd_socket.h +include/wzdftpd/libwzd-core/wzd_string.h +include/wzdftpd/libwzd-core/wzd_structs.h +include/wzdftpd/libwzd-core/wzd_threads.h +include/wzdftpd/libwzd-core/wzd_tls.h +include/wzdftpd/libwzd-core/wzd_types.h +include/wzdftpd/libwzd-core/wzd_user.h +include/wzdftpd/libwzd-core/wzd_utf8.h +include/wzdftpd/libwzd-core/wzd_vars.h +include/wzdftpd/libwzd-core/wzd_vfs.h +include/wzdftpd/libwzd.h +include/wzdftpd/libwzd_codes.h +include/wzdftpd/libwzd_err.h +include/wzdftpd/libwzd_pv.h +include/wzdftpd/libwzd_socket.h +include/wzdftpd/libwzd_tls.h +lib/libwzd.a +lib/libwzd.so +lib/libwzd.so.0 +lib/libwzd.so.0.801.1 +lib/libwzd_core.a +lib/libwzd_core.so +lib/libwzd_core.so.0 +lib/libwzd_core.so.0.801.1 +%%PERL%%%%SITE_ARCH%%/auto/wzdftpd/wzdftpd.so +%%PERL%%%%SITE_ARCH%%/wzdftpd.pm +%%MYSQL%%lib/wzdftpd/backends/libwzdmysql.a +%%MYSQL%%lib/wzdftpd/backends/libwzdmysql.so +%%PGSQL%%lib/wzdftpd/backends/libwzdpgsql.a +%%PGSQL%%lib/wzdftpd/backends/libwzdpgsql.so +lib/wzdftpd/backends/libwzdplaintext.a +lib/wzdftpd/backends/libwzdplaintext.so +%%SQLITE%%lib/wzdftpd/backends/libwzdsqlite.a +%%SQLITE%%lib/wzdftpd/backends/libwzdsqlite.so +lib/wzdftpd/modules/libwzd_debug.a +lib/wzdftpd/modules/libwzd_debug.so +%%PERL%%lib/wzdftpd/modules/libwzd_perl.a +%%PERL%%lib/wzdftpd/modules/libwzd_perl.so +%%PERL%%%%PERL5_MAN3%%/wzdftpd.3.gz +lib/wzdftpd/modules/libwzd_sfv.a +lib/wzdftpd/modules/libwzd_sfv.so +%%TCL%%lib/wzdftpd/modules/libwzd_tcl.a +%%TCL%%lib/wzdftpd/modules/libwzd_tcl.so +%%AVAHI%%lib/wzdftpd/modules/libwzd_zeroconf.a +%%AVAHI%%lib/wzdftpd/modules/libwzd_zeroconf.so +libdata/pkgconfig/wzdftpd.pc +%%PORTDOCS%%%%DOCSDIR%%/AUTHORS +%%PORTDOCS%%%%DOCSDIR%%/ChangeLog +%%PORTDOCS%%%%DOCSDIR%%/NEWS +%%PORTDOCS%%%%DOCSDIR%%/Permissions.ReadMeFirst +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/TLS.ReadMeFirst +%%PORTDOCS%%%%DOCSDIR%%/UPGRADING +%%PORTDOCS%%%%DOCSDIR%%/wzd_tls.cnf +sbin/wzdftpd +share/aclocal/wzd.m4
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107081015.168AFx0u082809>