@ -0,0 +1,85 @@ | |||
# | |||
# 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/ | |||
MAINTAINER:=Cezary Jackiewicz <cezary@eko.one.pl> | |||
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)) |
@ -0,0 +1,17 @@ | |||
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 |
@ -0,0 +1,13 @@ | |||
#!/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 | |||
} |
@ -0,0 +1,47 @@ | |||
--- 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 |
@ -0,0 +1,13 @@ | |||
--- 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 \ |
@ -0,0 +1,11 @@ | |||
--- 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); |
@ -0,0 +1,12 @@ | |||
--- 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> | |||
@ -0,0 +1,11 @@ | |||
--- 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 */ |