1SUMMARY = "Very Secure FTP server" 2HOMEPAGE = "https://security.appspot.com/vsftpd.html" 3SECTION = "net" 4LICENSE = "GPL-2.0-only" 5LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271" 6 7DEPENDS = "libcap openssl" 8 9SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ 10 file://makefile-destdir.patch \ 11 file://makefile-libs.patch \ 12 file://makefile-strip.patch \ 13 file://init \ 14 file://vsftpd.conf \ 15 file://vsftpd.user_list \ 16 file://vsftpd.ftpusers \ 17 file://change-secure_chroot_dir.patch \ 18 file://volatiles.99_vsftpd \ 19 file://vsftpd.service \ 20 file://vsftpd-2.1.0-filter.patch \ 21 ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \ 22 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \ 23 file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \ 24 " 25 26UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/" 27UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar" 28 29LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ 30 file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ 31 file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb" 32SRC_URI[sha256sum] = "26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3" 33 34 35PACKAGECONFIG ??= "tcp-wrappers" 36PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers" 37 38DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" 39RDEPENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}" 40PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}" 41WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}" 42NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}" 43 44inherit update-rc.d useradd systemd 45 46CONFFILES:${PN} = "${sysconfdir}/vsftpd.conf" 47LDFLAGS:append =" -lcrypt -lcap" 48CFLAGS:append:libc-musl = " -D_GNU_SOURCE -include fcntl.h" 49EXTRA_OEMAKE = "-e MAKEFLAGS=" 50 51do_configure() { 52 # Fix hardcoded /usr, /etc, /var mess. 53 cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \ 54 |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new 55 mv tunables.c.new tunables.c 56} 57 58do_compile() { 59 oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}" 60} 61 62do_install() { 63 install -d ${D}${sbindir} 64 install -d ${D}${mandir}/man8 65 install -d ${D}${mandir}/man5 66 oe_runmake 'DESTDIR=${D}' install 67 install -d ${D}${sysconfdir} 68 install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf 69 install -d ${D}${sysconfdir}/init.d/ 70 install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd 71 install -d ${D}/${sysconfdir}/default/volatiles 72 install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd 73 74 install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/ 75 install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/ 76 if ! test -z "${PAMLIB}" ; then 77 install -d ${D}${sysconfdir}/pam.d/ 78 cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd 79 sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd 80 sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd 81 fi 82 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 83 install -d ${D}${sysconfdir}/tmpfiles.d 84 echo "d /var/run/vsftpd/empty 0755 root root -" \ 85 > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf 86 fi 87 88 # Install systemd unit files 89 install -d ${D}${systemd_unitdir}/system 90 install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system 91 sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service 92} 93 94INITSCRIPT_PACKAGES = "${PN}" 95INITSCRIPT_NAME:${PN} = "vsftpd" 96INITSCRIPT_PARAMS:${PN} = "defaults 80" 97 98USERADD_PACKAGES = "${PN}" 99USERADD_PARAM:${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \ 100 --shell /bin/false ftp " 101GROUPADD_PARAM:${PN} = "-r ftp" 102 103SYSTEMD_SERVICE:${PN} = "vsftpd.service" 104 105pkg_postinst:${PN}() { 106 if [ -z "$D" ]; then 107 if type systemd-tmpfiles >/dev/null; then 108 systemd-tmpfiles --create 109 elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then 110 ${sysconfdir}/init.d/populate-volatile.sh update 111 fi 112 fi 113} 114