1################################################################################
2#
3# vsftpd
4#
5################################################################################
6
7VSFTPD_VERSION = 3.0.5
8VSFTPD_SITE = https://security.appspot.com/downloads
9VSFTPD_LIBS = -lcrypt
10VSFTPD_LICENSE = GPL-2.0
11VSFTPD_LICENSE_FILES = COPYING
12VSFTPD_CPE_ID_VALID = YES
13VSFTPD_SELINUX_MODULES = ftp
14
15define VSFTPD_DISABLE_UTMPX
16	$(SED) 's/.*VSF_BUILD_UTMPX/#undef VSF_BUILD_UTMPX/' $(@D)/builddefs.h
17endef
18
19define VSFTPD_ENABLE_SSL
20	$(SED) 's/.*VSF_BUILD_SSL/#define VSF_BUILD_SSL/' $(@D)/builddefs.h
21endef
22
23ifeq ($(BR2_PACKAGE_VSFTPD_UTMPX),)
24VSFTPD_POST_CONFIGURE_HOOKS += VSFTPD_DISABLE_UTMPX
25endif
26
27ifeq ($(BR2_PACKAGE_OPENSSL),y)
28VSFTPD_DEPENDENCIES += openssl host-pkgconf
29VSFTPD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libssl libcrypto`
30VSFTPD_POST_CONFIGURE_HOOKS += VSFTPD_ENABLE_SSL
31endif
32
33ifeq ($(BR2_PACKAGE_LIBCAP),y)
34VSFTPD_DEPENDENCIES += libcap
35VSFTPD_LIBS += -lcap
36endif
37
38ifeq ($(BR2_PACKAGE_LIBXCRYPT),y)
39VSFTPD_DEPENDENCIES += libxcrypt
40endif
41
42ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
43VSFTPD_DEPENDENCIES += linux-pam
44VSFTPD_LIBS += -lpam
45endif
46
47define VSFTPD_BUILD_CMDS
48	$(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
49		LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(VSFTPD_LIBS)" -C $(@D)
50endef
51
52define VSFTPD_USERS
53	ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User
54endef
55
56define VSFTPD_INSTALL_INIT_SYSTEMD
57	$(INSTALL) -D -m 0644 package/vsftpd/vsftpd.service \
58		$(TARGET_DIR)/usr/lib/systemd/system/vsftpd.service
59endef
60
61define VSFTPD_INSTALL_INIT_SYSV
62	$(INSTALL) -D -m 755 package/vsftpd/S70vsftpd $(TARGET_DIR)/etc/init.d/S70vsftpd
63endef
64
65# vsftpd won't work if the jail directory is writable, it has to be
66# readable only otherwise you get the following error:
67# 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
68# That's why we have to adjust the permissions of /home/ftp
69define VSFTPD_INSTALL_TARGET_CMDS
70	$(INSTALL) -D -m 755 $(@D)/vsftpd $(TARGET_DIR)/usr/sbin/vsftpd
71	test -f $(TARGET_DIR)/etc/vsftpd.conf || \
72		$(INSTALL) -D -m 644 $(@D)/vsftpd.conf \
73			$(TARGET_DIR)/etc/vsftpd.conf
74	$(INSTALL) -d -m 700 $(TARGET_DIR)/usr/share/empty
75	$(INSTALL) -d -m 555 $(TARGET_DIR)/home/ftp
76endef
77
78$(eval $(generic-package))
79