# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=2 inherit perl-app DESCRIPTION="Single Packet Authorization and Port Knocking" SRC_URI="http://www.cipherdyne.org/fwknop/download/${PN}-nodeps-${PV}.tar.gz" HOMEPAGE="http://www.cipherdyne.org/fwknop" SLOT="0" LICENSE="GPL-2" KEYWORDS="~x86" IUSE="gpg +server" RDEPEND=" dev-perl/Class-MethodMaker dev-perl/crypt-cbc dev-perl/Crypt-Rijndael dev-perl/TermReadKey dev-perl/Net-RawIP dev-perl/Net-IPv4Addr virtual/perl-Digest-SHA virtual/perl-net-ping server? ( dev-perl/IPTables-Parse dev-perl/IPTables-ChainMgr dev-perl/Net-Pcap dev-perl/Unix-Syslog net-firewall/iptables net-misc/whois virtual/logger virtual/mailx ) gpg? ( dev-perl/GnuPG-Interface )" src_install() { # install client binary dobin fwknop if use server; then # install daemons insinto /usr dosbin fwknop_serv fwknopd knopmd knoptm knopwatchd # fix config fix_conf # install configs insinto /etc/fwknop doins *.conf fperms 600 /etc/fwknop/access.conf # init.d newinitd init-scripts/fwknop-init.gentoo fwknop # create (and keep) dirs for the daemons keepdir /var/log/fwknop /var/run/fwknop # install manpages doman *.8 else # only install the client manpage doman fwknop.8 fi dodoc CREDITS Change* README README.* VERSION } pkg_postinst() { if use server; then echo elog "Please be sure to edit /etc/fwknop/fwknop.conf to reflect your system's" elog "configuration or it may not work correctly or start up. Specifically, check" elog "the validity of the HOSTNAME setting and EMAIL_ADDRESSES" echo elog "You must edit /etc/fwknop/access.conf for fwknop to work correctly." fi } fix_conf() { cp fwknop.conf fwknop.conf.orig # Ditch the _CHANGEME_ for hostname, substituting in our real hostname sed -i "s:HOSTNAME\(.\+\)\_CHANGEME\_;:HOSTNAME\1$(hostname --fqdn);:" fwknop.conf || die "fix_conf failed" # Fix up paths sed -i "s:/sbin/syslogd:/usr/sbin/syslogd:g" fwknop.conf || die "fix_conf failed" sed -i "s:/sbin/syslog-ng:/usr/sbin/syslog-ng:g" fwknop.conf || die "fix_conf failed" sed -i "s:/usr/bin/whois_psad:/usr/bin/whois:g" fwknop.conf || die "fix_conf failed" }