summaryrefslogtreecommitdiff
blob: cf071c876dc63c05ee681c49e0833bf400f6da3d (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-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/iproute2/iproute2-2.6.7.20040608-r1.ebuild,v 1.6 2005/05/16 02:29:44 vapier Exp $

inherit eutils toolchain-funcs

MY_PV="${PV:0:5}"
SNAP="${PV:${#PV}-6}"
DESCRIPTION="kernel routing and traffic control utilities"
HOMEPAGE="http://developer.osdl.org/dev/iproute2/"
SRC_URI="http://developer.osdl.org/dev/iproute2/download/${PN}-${MY_PV}-ss${SNAP}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sparc x86"
IUSE="atm minimal"

RDEPEND="virtual/libc
	!minimal? ( sys-libs/db )
	atm? ( net-dialup/linux-atm )"
DEPEND="${RDEPEND}
	>=virtual/os-headers-2.4.21
	>=sys-apps/sed-4"

S=${WORKDIR}/${PN}-${MY_PV}

pkg_setup() {
	SUBDIRS="lib ip tc misc"
	use minimal && SUBDIRS="lib tc"
}

src_unpack() {
	unpack ${A}
	cd ${S}

	# Enable HFSC scheduler #45274
	if [ ! -z "`grep tc_service_curve ${ROOT}/usr/include/linux/pkt_sched.h`" ] ; then
		epatch ${FILESDIR}/2.4.7.20020116-hfsc.patch
	else
		ewarn "Your linux-headers in /usr/include/linux are too old to"
		ewarn "support the HFSC scheduler.  It has been disabled."
		echo
	fi
	# Disable q_delay if need be
	if [ -z "`grep tc_dly_qopt ${ROOT}/usr/include/linux/pkt_sched.h`" ] ; then
		ewarn "Your linux-headers in /usr/include/linux are too old to"
		ewarn "support the DELAY scheduler.  It has been disabled."
		echo
		sed -i '/q_delay/s:.*::' tc/Makefile
	fi

	# Add a few debian fixes
	epatch ${FILESDIR}/${PV}-misc-deb-fixes.patch
	epatch ${FILESDIR}/${PV}-misc-gentoo-fixes.patch

	# Fix cflags and db code
	sed -i \
		-e 's:-I/usr/include/db3::g' \
		-e "s:-O2:${CFLAGS}:g" \
		Makefile || die "sed Makefile failed"
	sed -i 's:-ldb-4\.1:-ldb:' misc/Makefile || die "sed misc/Makefile failed"
	sed -i 's:db41/db_185:db_185:' misc/arpd.c || die "sed misc/arpd.c failed"

	# Enable diffserv/atm support
	if use atm ; then
		sed -i 's:=n$:=y:' Config || die "sed Config failed"
	fi
}

src_compile() {
	emake CC="$(tc-getCC)" KERNEL_INCLUDE=${ROOT}/usr/include SUBDIRS="${SUBDIRS}" || die
}

src_install() {
	if use minimal; then
		into /
		dosbin tc/tc
		return 0
	fi
	make install DESTDIR=${D} DOCDIR=/usr/share/doc/${PF} || die "make install failed"

	into /
	dosbin ip/{ifcfg,rtpr} || die "dosbin failed"

	doman man/*/*
}