# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-ftp/proftpd/proftpd-1.2.10-r7.ebuild,v 1.12 2006/09/23 19:07:05 chtekk Exp $ inherit eutils flag-o-matic toolchain-funcs KEYWORDS="alpha amd64 hppa ~mips ppc ppc64 sparc x86" IUSE="authfile hardened ipv6 ldap mysql ncurses noauthunix pam postgres selinux sendfile shaper softquota ssl tcpd xinetd" SHAPER_VER="0.5.5" DESCRIPTION="An advanced and very configurable FTP server." SRC_URI="ftp://ftp.proftpd.org/distrib/source/${P}.tar.bz2 shaper? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-shaper-${SHAPER_VER}.tar.gz )" HOMEPAGE="http://www.proftpd.org/ http://www.castaglia.org/proftpd/" SLOT="0" LICENSE="GPL-2" DEPEND="ldap? ( >=net-nds/openldap-1.2.11 ) mysql? ( >=dev-db/mysql-3.23.26 ) ncurses? ( sys-libs/ncurses ) pam? ( virtual/pam ) postgres? ( >=dev-db/postgresql-7.3 ) ssl? ( >=dev-libs/openssl-0.9.6f ) tcpd? ( >=sys-apps/tcp-wrappers-7.6-r3 ) xinetd? ( sys-apps/xinetd )" RDEPEND="${DEPEND} net-ftp/ftpbase selinux? ( sec-policy/selinux-ftpd )" pkg_setup() { # Add the proftpd user to make the default config # work out-of-the-box enewgroup proftpd enewuser proftpd -1 -1 -1 proftpd } src_unpack() { unpack ${P}.tar.bz2 cd "${S}" # Fix stripping of files sed -e "s| @INSTALL_STRIP@||g" -i Make* if use shaper ; then unpack ${PN}-mod-shaper-${SHAPER_VER}.tar.gz cp -f mod_shaper/mod_shaper.c contrib/ fi # Fix ftpshut and SqlShowInfo, bug #100364 epatch "${FILESDIR}/${P}-ftpshut.patch" epatch "${FILESDIR}/${P}-sqlshowinfo.patch" # Fix gcc4 compile errors, bug #145940 epatch "${FILESDIR}/${P}-gcc4_mod_quotatab_sql.patch" # Fix OpenSSL 0.9.8 compile errors, bug #146534 epatch "${FILESDIR}/${P}-openssl_0.9.8.patch" } src_compile() { addpredict /etc/krb5.conf local modules myconf modules="mod_ratio:mod_readme" use pam && modules="${modules}:mod_auth_pam" use shaper && modules="${modules}:mod_shaper" use ssl && modules="${modules}:mod_tls" use tcpd && modules="${modules}:mod_wrap" if use ldap ; then modules="${modules}:mod_ldap" append-ldflags "-lresolv" fi if use mysql && use postgres ; then ewarn "ProFTPD only supports either the MySQL or PostgreSQL modules." ewarn "Presently this ebuild defaults to mysql. If you would like to" ewarn "change the default behaviour, merge ProFTPD with:" ewarn "USE='-mysql postgres' emerge proftpd" epause 5 fi if use mysql ; then modules="${modules}:mod_sql:mod_sql_mysql" myconf="${myconf} --with-includes=/usr/include/mysql" elif use postgres ; then modules="${modules}:mod_sql:mod_sql_postgres" myconf="${myconf} --with-includes=/usr/include/postgresql" fi if use softquota ; then modules="${modules}:mod_quotatab" if use mysql || use postgres ; then modules="${modules}:mod_quotatab_sql" fi if use ldap ; then modules="${modules}:mod_quotatab_file:mod_quotatab_ldap" else modules="${modules}:mod_quotatab_file" fi fi # bug #30359 use hardened && echo > lib/libcap/cap_sys.c gcc-specs-pie && echo > lib/libcap/cap_sys.c if use noauthunix ; then myconf="${myconf} --disable-auth-unix" else myconf="${myconf} --enable-auth-unix" fi econf \ --sbindir=/usr/sbin \ --localstatedir=/var/run \ --sysconfdir=/etc/proftpd \ --enable-shadow \ --enable-autoshadow \ --enable-ctrls \ --with-modules=${modules} \ $(use_enable authfile auth-file) \ $(use_enable ipv6) \ $(use_enable ncurses) \ $(use_with sendfile) \ ${myconf} || die "econf failed" emake || die "emake failed" } src_install() { # Note rundir needs to be specified to avoid sandbox violation # on initial install. See Make.rules emake DESTDIR="${D}" install || die "emake install failed" keepdir /var/run/proftpd dodoc contrib/UPGRADE.mod_sql "${FILESDIR}/proftpd.conf" \ COPYING CREDITS ChangeLog NEWS README* \ doc/{license.txt,GetConf} dohtml doc/*.html use shaper && dohtml mod_shaper/mod_shaper.html docinto rfc dodoc doc/rfc/*.txt mv -f "${D}/etc/proftpd/proftpd.conf" "${D}/etc/proftpd/proftpd.conf.distrib" insinto /etc/proftpd newins "${FILESDIR}/proftpd.conf" proftpd.conf.sample if use xinetd ; then insinto /etc/xinetd.d newins "${FILESDIR}/proftpd.xinetd" proftpd fi newinitd "${FILESDIR}/proftpd.rc6" proftpd } pkg_postinst() { einfo einfo "You can find the config files in /etc/proftpd" einfo einfo "mod_delay has been causing more bad than good and has been removed." einfo ewarn "With the introduction of net-ftp/ftpbase the ftp user is now ftp." ewarn "Remember to change that in the configuration file." einfo }