From d6b556670c7a96f341d2efc2c24fca1d0a1fe8a1 Mon Sep 17 00:00:00 2001 From: Wade Berrier Date: Mon, 6 Oct 2008 22:46:41 +0000 Subject: [PATCH] vsftpd: -Patch to build against newer kernel headers ( vsftpd-2.0.7-uclibc.patch , based on idea from http://www.bitshrine.org/gpp/vsftpd-2.0.5-syscall2.patch ) -new basic init script (no config yet) -Update version (2.0.7) -openssl fixes -cleanup makefile deps so it doesn't get built when things don't change --- package/vsftpd/vsftpd-2.0.7-uclibc.patch | 15 +++++++++++ package/vsftpd/vsftpd-init | 33 ++++++++++++++++++++++++ package/vsftpd/vsftpd.mk | 18 ++++++++----- 3 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 package/vsftpd/vsftpd-2.0.7-uclibc.patch create mode 100755 package/vsftpd/vsftpd-init diff --git a/package/vsftpd/vsftpd-2.0.7-uclibc.patch b/package/vsftpd/vsftpd-2.0.7-uclibc.patch new file mode 100644 index 0000000000..43b6ccc26d --- /dev/null +++ b/package/vsftpd/vsftpd-2.0.7-uclibc.patch @@ -0,0 +1,15 @@ +--- vsftpd-2.0.5/sysdeputil.c.orig 2008-10-06 15:24:42.000000000 -0600 ++++ vsftpd-2.0.5/sysdeputil.c 2008-10-06 15:35:35.000000000 -0600 +@@ -159,7 +159,12 @@ + #include + #include + #include ++/* try to handle kernel header versions correctly (2.4 and >= 2.6.18) */ ++#ifndef capset ++#define capset(head,data) syscall(__NR_capset,head,data) ++#else + _syscall2(int, capset, cap_user_header_t, header, const cap_user_data_t, data) ++#endif /* capset */ + /* Gross HACK to avoid warnings - linux headers overlap glibc headers */ + #undef __NFDBITS + #undef __FDMASK diff --git a/package/vsftpd/vsftpd-init b/package/vsftpd/vsftpd-init new file mode 100755 index 0000000000..6048907f60 --- /dev/null +++ b/package/vsftpd/vsftpd-init @@ -0,0 +1,33 @@ +#! /bin/sh + +set -e + +DESC="vsftpd" +NAME=vsftpd +DAEMON=/usr/sbin/$NAME + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon -S -b -x $NAME + echo "OK" + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon -K -x $NAME + echo "OK" + ;; + restart|force-reload) + echo "Restarting $DESC: " + $0 stop + sleep 1 + $0 start + echo "" + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/package/vsftpd/vsftpd.mk b/package/vsftpd/vsftpd.mk index 0bceca6653..9fc3370e89 100644 --- a/package/vsftpd/vsftpd.mk +++ b/package/vsftpd/vsftpd.mk @@ -3,7 +3,7 @@ # vsftpd # ############################################################# -VSFTPD_VERSION:=2.0.5 +VSFTPD_VERSION:=2.0.7 VSFTPD_SOURCE:=vsftpd-$(VSFTPD_VERSION).tar.gz VSFTPD_SITE:=ftp://vsftpd.beasts.org/users/cevans VSFTPD_DIR:=$(BUILD_DIR)/vsftpd-$(VSFTPD_VERSION) @@ -12,7 +12,6 @@ VSFTPD_BINARY:=vsftpd VSFTPD_TARGET_BINARY:=usr/sbin/vsftpd ifeq ($(BR2_PACKAGE_OPENSSL),y) -VSFTPF_PREREQ:=openssl VSFTPD_LIBS:=-lcrypt -lssl else VSFTPD_LIBS:=-lcrypt @@ -26,7 +25,7 @@ vsftpd-source: $(DL_DIR)/$(VSFTPD_SOURCE) $(VSFTPD_DIR)/.unpacked: $(DL_DIR)/$(VSFTPD_SOURCE) $(VSFTPD_CAT) $(DL_DIR)/$(VSFTPD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - toolchain/patch-kernel.sh $(VSFTPD_DIR) package/vsftpd/ vsftpd\*.patch - touch $(VSFTPD_DIR)/.unpacked + touch $@ $(VSFTPD_DIR)/.configured: $(VSFTPD_DIR)/.unpacked ifeq ($(BR2_PACKAGE_OPENSSL),y) @@ -45,17 +44,22 @@ else # not uclibc endif -$(VSFTPD_DIR)/$(VSFTPD_BINARY): $(VSFTPF_PREREQ) $(VSFTPD_DIR)/.configured +$(VSFTPD_DIR)/$(VSFTPD_BINARY): $(VSFTPD_DIR)/.configured $(MAKE) CC=$(TARGET_CC) CFLAGS="$(TARGET_CFLAGS)" LIBS="$(VSFTPD_LIBS)" -C $(VSFTPD_DIR) -$(TARGET_DIR)/usr/sbin/$(VSFTPD_BINARY): $(VSFTPD_DIR)/$(VSFTPD_BINARY) +$(TARGET_DIR)/$(VSFTPD_TARGET_BINARY): $(VSFTPD_DIR)/$(VSFTPD_BINARY) cp -dpf $< $@ + $(INSTALL) -D -m 0755 package/vsftpd/vsftpd-init $(TARGET_DIR)/etc/init.d/S70vsftpd -vsftpd: uclibc libgmp $(TARGET_DIR)/$(VSFTPD_TARGET_BINARY) +ifeq ($(BR2_PACKAGE_OPENSSL),y) +vsftpd: uclibc openssl $(TARGET_DIR)/$(VSFTPD_TARGET_BINARY) +else +vsftpd: uclibc $(TARGET_DIR)/$(VSFTPD_TARGET_BINARY) +endif vsftpd-clean: -$(MAKE) -C $(VSFTPD_DIR) clean - rm -f $(TARGET_DIR)/usr/sbin/$(VSFTPD_BINARY) + rm -f $(TARGET_DIR)/$(VSFTPD_TARGET_BINARY) vsftpd-dirclean: rm -rf $(VSFTPD_DIR) -- 2.30.2