123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- SUMMARY = "Very Secure FTP server"
- HOMEPAGE = "https://security.appspot.com/vsftpd.html"
- SECTION = "net"
- LICENSE = "GPL-2.0-only"
- LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271"
- DEPENDS = "libcap openssl"
- SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \
- file://makefile-destdir.patch \
- file://makefile-libs.patch \
- file://makefile-strip.patch \
- file://init \
- file://vsftpd.conf \
- file://vsftpd.user_list \
- file://vsftpd.ftpusers \
- file://change-secure_chroot_dir.patch \
- file://volatiles.99_vsftpd \
- file://vsftpd.service \
- file://vsftpd-2.1.0-filter.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \
- file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \
- "
- UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/"
- UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
- LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \
- file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \
- file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb"
- SRC_URI[sha256sum] = "26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3"
- PACKAGECONFIG ??= "tcp-wrappers"
- PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers"
- DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
- RDEPENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"
- PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}"
- WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}"
- NOPAM_SRC = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}"
- inherit update-rc.d useradd systemd
- CONFFILES:${PN} = "${sysconfdir}/vsftpd.conf"
- LDFLAGS:append = " -lcrypt -lcap"
- CFLAGS:append:libc-musl = " -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -include fcntl.h"
- EXTRA_OEMAKE = "-e MAKEFLAGS="
- do_configure() {
- # Fix hardcoded /usr, /etc, /var mess.
- cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \
- |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new
- mv tunables.c.new tunables.c
- }
- do_compile() {
- oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}"
- }
- do_install() {
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man8
- install -d ${D}${mandir}/man5
- oe_runmake 'DESTDIR=${D}' install
- install -d ${D}${sysconfdir}
- install -m 600 ${UNPACKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
- install -d ${D}${sysconfdir}/init.d/
- install -m 755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
- install -d ${D}/${sysconfdir}/default/volatiles
- install -m 644 ${UNPACKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd
- install -m 600 ${UNPACKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
- install -m 600 ${UNPACKDIR}/vsftpd.user_list ${D}${sysconfdir}/
- if ! test -z "${PAMLIB}" ; then
- install -d ${D}${sysconfdir}/pam.d/
- cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
- sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd
- sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/run/vsftpd/empty 0755 root root -" \
- > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- fi
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${UNPACKDIR}/vsftpd.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service
- }
- INITSCRIPT_PACKAGES = "${PN}"
- INITSCRIPT_NAME:${PN} = "vsftpd"
- INITSCRIPT_PARAMS:${PN} = "defaults 80"
- USERADD_PACKAGES = "${PN}"
- USERADD_PARAM:${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \
- --shell /bin/false ftp "
- GROUPADD_PARAM:${PN} = "-r ftp"
- SYSTEMD_SERVICE:${PN} = "vsftpd.service"
- pkg_postinst:${PN}() {
- if [ -z "$D" ]; then
- if type systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
- }
|