xref: /OK3568_Linux_fs/buildroot/package/vsftpd/vsftpd.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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_VENDOR = vsftpd_project
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_LINUX_PAM),y)
39VSFTPD_DEPENDENCIES += linux-pam
40VSFTPD_LIBS += -lpam
41endif
42
43define VSFTPD_BUILD_CMDS
44	$(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
45		LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(VSFTPD_LIBS)" -C $(@D)
46endef
47
48define VSFTPD_USERS
49	ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User
50endef
51
52define VSFTPD_INSTALL_INIT_SYSTEMD
53	$(INSTALL) -D -m 0644 package/vsftpd/vsftpd.service \
54		$(TARGET_DIR)/usr/lib/systemd/system/vsftpd.service
55endef
56
57define VSFTPD_INSTALL_INIT_SYSV
58	$(INSTALL) -D -m 755 package/vsftpd/S70vsftpd $(TARGET_DIR)/etc/init.d/S70vsftpd
59endef
60
61# vsftpd won't work if the jail directory is writable, it has to be
62# readable only otherwise you get the following error:
63# 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
64# That's why we have to adjust the permissions of /home/ftp
65define VSFTPD_INSTALL_TARGET_CMDS
66	$(INSTALL) -D -m 755 $(@D)/vsftpd $(TARGET_DIR)/usr/sbin/vsftpd
67	test -f $(TARGET_DIR)/etc/vsftpd.conf || \
68		$(INSTALL) -D -m 644 $(@D)/vsftpd.conf \
69			$(TARGET_DIR)/etc/vsftpd.conf
70	$(INSTALL) -d -m 700 $(TARGET_DIR)/usr/share/empty
71	$(INSTALL) -d -m 555 $(TARGET_DIR)/home/ftp
72endef
73
74$(eval $(generic-package))
75