--- /dev/null
+#
+# Copyright (C) 2006-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=vsftpd
+PKG_VERSION:=3.0.2
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://security.appspot.com/downloads/
+PKG_MD5SUM:=8b00c749719089401315bd3c44dddbb2
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/vsftpd/Default
+ SUBMENU:=File Transfer
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=A fast and secure FTP server
+ URL:=http://vsftpd.beasts.org/
+endef
+
+
+define Package/vsftpd
+$(call Package/vsftpd/Default)
+ VARIANT:=notls
+ TITLE+= (no TLS)
+endef
+
+define Package/vsftpd-tls
+$(call Package/vsftpd/Default)
+ VARIANT:=tls
+ TITLE+= (TLS)
+ DEPENDS+=+libopenssl
+endef
+
+define Package/vsftpd/conffiles
+/etc/vsftpd.conf
+endef
+
+Package/vsftpd-tls/conffiles=$(Package/vsftpd/conffiles)
+
+ifeq ($(BUILD_VARIANT),notls)
+ define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ vsftpd
+ endef
+endif
+
+ifeq ($(BUILD_VARIANT),tls)
+ define Build/Compile
+ $(SED) 's/#undef VSF_BUILD_SSL/#define VSF_BUILD_SSL/' $(PKG_BUILD_DIR)/builddefs.h
+ $(SED) 's/-lcrypt -lnsl/-lcrypt -lnsl -lssl -lcrypto/' $(PKG_BUILD_DIR)/Makefile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ vsftpd
+ endef
+endif
+
+define Package/vsftpd/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_CONF) ./files/$(PKG_NAME).conf $(1)/etc/$(PKG_NAME).conf
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
+endef
+
+Package/vsftpd-tls/install=$(Package/vsftpd/install)
+
+$(eval $(call BuildPackage,vsftpd))
+$(eval $(call BuildPackage,vsftpd-tls))
--- /dev/null
+background=YES
+listen=YES
+anonymous_enable=NO
+local_enable=YES
+write_enable=YES
+local_umask=022
+check_shell=NO
+#dirmessage_enable=YES
+#ftpd_banner=Welcome to blah FTP service.
+session_support=NO
+#syslog_enable=YES
+#userlist_enable=YES
+#userlist_deny=NO
+#userlist_file=/etc/vsftpd.users
+#xferlog_enable=YES
+#xferlog_file=/var/log/vsftpd.log
+#xferlog_std_format=YES
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2011 OpenWrt.org
+
+START=50
+
+start() {
+ mkdir -m 0755 -p /var/run/vsftpd
+ service_start /usr/sbin/vsftpd
+}
+
+stop() {
+ service_stop /usr/sbin/vsftpd
+}
--- /dev/null
+--- a/Makefile
++++ b/Makefile
+@@ -22,6 +22,8 @@ OBJS = main.o utility.o prelogin.o ftpcm
+ seccompsandbox.o
+
+
++DESTDIR =
++
+ .c.o:
+ $(CC) -c $*.c $(CFLAGS) $(IFLAGS)
+
+@@ -29,21 +31,20 @@ vsftpd: $(OBJS)
+ $(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS)
+
+ install:
+- if [ -x /usr/local/sbin ]; then \
+- $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
+- else \
+- $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
+- if [ -x /usr/local/man ]; then \
+- $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
+- $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
+- elif [ -x /usr/share/man ]; then \
+- $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
+- $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
+- else \
+- $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
+- $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
+- if [ -x /etc/xinetd.d ]; then \
+- $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
++ mkdir -p $(DESTDIR)/usr/sbin
++ $(INSTALL) -m 755 vsftpd $(DESTDIR)/usr/sbin/
++ mkdir -p $(DESTDIR)/usr/share/man/man8
++ $(INSTALL) -m 644 vsftpd.8 $(DESTDIR)/usr/share/man/man8/
++ mkdir -p $(DESTDIR)/usr/share/man/man5
++ $(INSTALL) -m 644 vsftpd.conf.5 $(DESTDIR)/usr/share/man/man5/
++ mkdir -p $(DESTDIR)/etc/xinetd.d
++ $(INSTALL) -m 644 xinetd.d/vsftpd $(DESTDIR)/etc/xinetd.d/
++
++uninstall:
++ rm -f $(DESTDIR)/usr/sbin/vsftpd
++ rm -f $(DESTDIR)/usr/share/man/man8/vsftpd.8
++ rm -f $(DESTDIR)/usr/share/man/man5/vsftpd.conf.5
++ rm -f $(DESTDIR)/etc/xinetd.d/vsftpd
+
+ clean:
+ rm -f *.o *.swp vsftpd
--- /dev/null
+--- a/Makefile
++++ b/Makefile
+@@ -8,8 +8,8 @@ CFLAGS = -O2 -fPIE -fstack-protector --p
+ -D_FORTIFY_SOURCE=2 \
+ #-pedantic -Wconversion
+
+-LIBS = `./vsf_findlibs.sh`
+-LINK = -Wl,-s
++LIBS = -lcrypt -lnsl
++LINK =
+ LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
+
+ OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
--- /dev/null
+--- a/tunables.c
++++ b/tunables.c
+@@ -254,7 +254,7 @@ tunables_load_defaults()
+ /* -rw------- */
+ tunable_chown_upload_mode = 0600;
+
+- install_str_setting("/usr/share/empty", &tunable_secure_chroot_dir);
++ install_str_setting("/var/run/vsftpd", &tunable_secure_chroot_dir);
+ install_str_setting("ftp", &tunable_ftp_username);
+ install_str_setting("root", &tunable_chown_username);
+ install_str_setting("/var/log/xferlog", &tunable_xferlog_file);
--- /dev/null
+--- a/sysdeputil.c
++++ b/sysdeputil.c
+@@ -165,6 +165,9 @@
+ #endif
+ /* END config */
+
++#undef VSF_SYSDEP_HAVE_CAPABILITIES
++#undef VSF_SYSDEP_HAVE_LIBCAP
++
+ /* PAM support - we include our own dummy version if the system lacks this */
+ #include <security/pam_appl.h>
+
--- /dev/null
+--- a/builddefs.h
++++ b/builddefs.h
+@@ -2,7 +2,7 @@
+ #define VSF_BUILDDEFS_H
+
+ #undef VSF_BUILD_TCPWRAPPERS
+-#define VSF_BUILD_PAM
++#undef VSF_BUILD_PAM
+ #undef VSF_BUILD_SSL
+
+ #endif /* VSF_BUILDDEFS_H */