summaryrefslogtreecommitdiff
blob: 6c5a10a9167cf4c3143316161749251adeaa4f17 (plain)
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
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/tcp-wrappers/tcp-wrappers-7.6.22.ebuild,v 1.1 2012/01/01 09:18:48 vapier Exp $

EAPI="4"

inherit eutils toolchain-funcs versionator flag-o-matic

MY_PV=$(get_version_component_range 1-2)
DEB_PV=$(get_version_component_range 3)
MY_P="${PN//-/_}_${MY_PV}"
DESCRIPTION="TCP Wrappers"
HOMEPAGE="ftp://ftp.porcupine.org/pub/security/index.html"
SRC_URI="ftp://ftp.porcupine.org/pub/security/${MY_P}.tar.gz
	mirror://debian/pool/main/t/${PN}/${PN}_${MY_PV}.q-${DEB_PV}.debian.tar.gz"

LICENSE="tcp_wrappers_license"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
IUSE="ipv6 netgroups static-libs"

S=${WORKDIR}/${MY_P}

src_prepare() {
	EPATCH_OPTS="-p1" \
	epatch $(sed -e 's:^:../debian/patches/:' ../debian/patches/series)
	epatch "${FILESDIR}"/${PN}-7.6-headers.patch
	epatch "${FILESDIR}"/${PN}-7.6-redhat-bug11881.patch
}

temake() {
	emake \
		REAL_DAEMON_DIR=/usr/sbin \
		TLI= VSYSLOG= PARANOID= BUGS= \
		AUTH="-DALWAYS_RFC931" \
		AUX_OBJ="weak_symbols.o" \
		DOT="-DAPPEND_DOT" \
		HOSTNAME="-DALWAYS_HOSTNAME" \
		NETGROUP=$(usex netgroups -DNETGROUPS "") \
		STYLE="-DPROCESS_OPTIONS" \
		LIBS=$(usex netgroups -lnsl "") \
		LIB=$(usex static-libs libwrap.a "") \
		AR="$(tc-getAR)" ARFLAGS=rc \
		CC="$(tc-getCC)" \
		RANLIB="$(tc-getRANLIB)" \
		COPTS="${CFLAGS} ${CPPFLAGS}" \
		LDFLAGS="${LDFLAGS}" \
		"$@" || die
}

src_configure() {
	tc-export AR CC RANLIB
	append-cppflags -DHAVE_WEAKSYMS -DHAVE_STRERROR -DSYS_ERRLIST_DEFINED
	use ipv6 && append-cppflags -DINET6=1 -Dss_family=__ss_family -Dss_len=__ss_len
	temake config-check
}

src_compile() {
	temake all
}

src_install() {
	dosbin tcpd tcpdchk tcpdmatch safe_finger try-from || die

	doman *.[358]
	dosym hosts_access.5 /usr/share/man/man5/hosts.allow.5
	dosym hosts_access.5 /usr/share/man/man5/hosts.deny.5

	insinto /etc
	newins "${FILESDIR}"/hosts.allow.example hosts.allow

	insinto /usr/include
	doins tcpd.h

	into /usr
	use static-libs && dolib.a libwrap.a
	dolib.so shared/libwrap.so*
	gen_usr_ldscript -a wrap

	dodoc BLURB CHANGES DISCLAIMER README*
}

pkg_preinst() {
	# don't clobber people with our default example config
	[[ -e ${ROOT}/etc/hosts.allow ]] && cp -pP "${ROOT}"/etc/hosts.allow "${D}"/etc/hosts.allow
}