aboutsummaryrefslogtreecommitdiff
path: root/ftp/pure-ftpd/Makefile
blob: 096589390ec720b0d000a4d2a0301cd9ac4f37c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Created by: Frank DENIS

PORTNAME=	pure-ftpd
PORTVERSION=	1.0.49
PORTREVISION=	1
CATEGORIES=	ftp
MASTER_SITES=	https://github.com/jedisct1/pure-ftpd/releases/download/${PORTVERSION}/ \
		https://download.pureftpd.org/pub/pure-ftpd/releases/ \
		ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/

MAINTAINER=	sunpoet@FreeBSD.org
COMMENT=	Small, easy to set up, fast, and secure FTP server

LICENSE=	ISCL
LICENSE_FILE=	${WRKSRC}/COPYING

USES=		cpe perl5 tar:bzip2
USE_PERL5=	run

CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc \
		--with-altlog --with-cookie --with-diraliases \
		--with-everything --with-extauth --with-ftpwho \
		--with-language=${LANGUAGE} --with-paranoidmsg --with-puredb \
		--with-quotas --with-ratios
GNU_CONFIGURE=	yes
USE_RC_SUBR=	pure-ftpd

SUB_FILES=	pkg-message

CPE_VENDOR=	pureftpd

LANGUAGE?=	english

OPTIONS_DEFINE=	ANONDELETE ANONRENAME ANONRESUME DOCS EXAMPLES LARGEFILE LDAP \
		MYSQL PAM PERUSERLIMITS PGSQL PRIVSEP SCRYPT SENDFILE \
		THROTTLING TLS UPLOADSCRIPT VIRTUALCHROOT
OPTIONS_DEFAULT=PAM PRIVSEP SENDFILE SCRYPT TLS VIRTUALCHROOT
ANONDELETE_DESC=	Allow anonymous user to delete files
ANONRENAME_DESC=	Allow anonymous user to rename files
ANONRESUME_DESC=	Allow anonymous user to resume file upload
LARGEFILE_DESC=		2GB+ file download
LDAP_DESC=		User accounts in LDAP directories
MYSQL_DESC=		User accounts in MySQL database
PAM_DESC=		PAM authentication
PGSQL_DESC=		User accounts in PostgreSQL database
PERUSERLIMITS_DESC=	Per-user concurrency limits
PRIVSEP_DESC=		Privilege separation (recommended)
SCRYPT_DESC=		Hash passwords in PureDB with scrypt
SENDFILE_DESC=		Sendfile syscall
THROTTLING_DESC=	Bandwidth throttling
UPLOADSCRIPT_DESC=	Uploadscript daemon support
VIRTUALCHROOT_DESC=	Follow symlinks outside a chroot jail

ANONDELETE_CPPFLAGS=	-DANON_CAN_DELETE
ANONRENAME_CPPFLAGS=	-DANON_CAN_RENAME
ANONRESUME_CPPFLAGS=	-DANON_CAN_RESUME
LARGEFILE_CONFIGURE_ENABLE=	largefile
LDAP_CONFIGURE_WITH=	ldap
LDAP_USE=		OPENLDAP=yes
MYSQL_CONFIGURE_WITH=	mysql
MYSQL_USES=		mysql
PAM_CONFIGURE_WITH=	pam
PERUSERLIMITS_CONFIGURE_WITH=	peruserlimits
PGSQL_CONFIGURE_WITH=	pgsql
PGSQL_USES=		pgsql
PRIVSEP_CONFIGURE_WITH=	privsep
SCRYPT_LIB_DEPENDS=	libsodium.so:security/libsodium
SENDFILE_CONFIGURE_WITH=sendfile
THROTTLING_CONFIGURE_WITH=	throttling
TLS_CONFIGURE_WITH=	tls
TLS_CPPFLAGS=		-I${OPENSSLINC}
TLS_LDFLAGS=		-L${OPENSSLLIB}
TLS_USES=		ssl
UPLOADSCRIPT_CONFIGURE_WITH=	uploadscript
VIRTUALCHROOT_CONFIGURE_WITH=	virtualchroot

pre-fetch:
	@${ECHO_MSG} "You can use the following additional options:"
	@${ECHO_MSG} ""
	@${ECHO_MSG} "LANGUAGE=lang (default: english)"
	@${ECHO_MSG} "- Enable compilation of one language support"
	@${ECHO_MSG} "  available lang: albanian, brazilian-portuguese, catalan, czech, danish, dutch,"
	@${ECHO_MSG} "  english, french, german, hungarian, italian, korean, norwegian, polish,"
	@${ECHO_MSG} "  romanian, russian, simplified-chinese, slovak, spanish, swedish,"
	@${ECHO_MSG} "  traditional-chinese."
	@${ECHO_MSG} ""

post-install:
	${MV} ${STAGEDIR}${PREFIX}/etc/pure-ftpd.conf ${STAGEDIR}${PREFIX}/etc/pure-ftpd.conf.sample
	${INSTALL_DATA} ${WRKSRC}/pureftpd-ldap.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-ldap.conf.sample
	${INSTALL_DATA} ${WRKSRC}/pureftpd-mysql.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-mysql.conf.sample
	${INSTALL_DATA} ${WRKSRC}/pureftpd-pgsql.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-pgsql.conf.sample
	${INSTALL_SCRIPT} ${FILESDIR}/pure-alwaysfail ${STAGEDIR}${PREFIX}/sbin/

post-install-DOCS-on:
	${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}/

post-install-EXAMPLES-on:
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/pam.d/
	${INSTALL_DATA} ${FILESDIR}/pam.conf.5 ${STAGEDIR}${EXAMPLESDIR}/pam.d/pure-ftpd

.include <bsd.port.mk>