vsftpd.mk 2.1 KB

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