#
-# Conditional build
-%bcond_without doc # don't build documentation
-%bcond_without tc # don't build tc program (it breaks static linkage)
-%bcond_with uClibc # do some hacks to build with uClibc
+# TODO:
+# - fix build @ uClibc
+# - fix iface_descr patch
#
-Summary: Utility to control Networking behavior in 2.2.X kernels
-Summary(es): Herramientas para encaminamiento avanzado y configuración de interfaces de red
-Summary(pl): Narzêdzie do kontrolowania Sieci w kernelach 2.2
-Summary(pt_BR): Ferramentas para roteamento avançado e configuração de interfaces de rede
+# Conditional build
+%bcond_without doc # don't build documentation
+%bcond_without tc # don't build tc program (it breaks static linkage)
+%bcond_without atm # don't required ATM.
+%bcond_with uClibc # do some hacks to build with uClibc
+%bcond_with iface_descr # build with interface description support
+
+Summary: Advanced IP routing and network device configuration tools
+Summary(es.UTF-8): Herramientas para encaminamiento avanzado y configuración de interfaces de red
+Summary(pl.UTF-8): Narzędzie do kontrolowania Sieci w kernelach
+Summary(pt_BR.UTF-8): Ferramentas para roteamento avançado e configuração de interfaces de rede
Name: iproute2
-%define mainver 2.4.7
-%define snapshot ss020116
-Version: %{mainver}.%{snapshot}
-Release: 17
+# do not use ,,2.6.X'' as version here, put whole number like 2.6.8
+Version: 2.6.37
+Release: 1
License: GPL
-Vendor: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Group: Networking/Admin
-Source0: ftp://ftp.inr.ac.ru/ip-routing/%{name}-%{mainver}-now-%{snapshot}.tar.gz
-# Source0-md5: 2c7e5f3a10e703745ecdc613f7a7d187
-Source1: %{name}-owl-man.tar.bz2
-# Source1-md5: cd4425df972a4ab001db31a5eb1c5da5
-Patch0: %{name}-llh.patch
-Patch1: %{name}-Makefile.patch
-Patch2: %{name}-diffserv-config.patch
-Patch3: %{name}-netlink.patch
-Patch4: %{name}-ipaddress.patch
-Patch5: %{name}-iprule.patch
-# uClibc hacks
-Patch6: %{name}-uClibc.patch
+Source0: http://devresources.linux-foundation.org/dev/iproute2/download/%{name}-%{version}.tar.bz2
+# Source0-md5: 9774ff9d74ebd301bf56bd8d74473786
+Source1: libnetlink.3
+Patch0: %{name}-build.patch
+Patch1: %{name}-arp.patch
+Patch3: %{name}-iptables.patch
+Patch4: %{name}-iptables64.patch
+Patch5: %{name}-LDFLAGS.patch
# extensions
-Patch10: %{name}-htb3.6_tc.patch
-Patch11: %{name}-2.2.4-wrr.patch
-Patch12: %{name}-2.2.4-esfq.patch
-Patch13: %{name}-hfsc.patch
+Patch10: %{name}-2.2.4-wrr.patch
+Patch11: esfq-%{name}.patch
+Patch12: 001-net-dev-iface-descr-0.1.diff
+Patch13: %{name}-q_atm_c.patch
+Patch14: %{name}-q_srr.v0.4.patch
+Patch15: %{name}-ip_route_get.patch
+URL: http://linux-net.osdl.org/index.php/Iproute2
BuildRequires: bison
-BuildRequires: linux-libc-headers >= 7:2.6.5.1-4
+BuildRequires: db-devel
+BuildRequires: flex
+BuildRequires: iptables-devel >= 0:1.4.3
+%if %{with atm}
+BuildRequires: linux-atm-devel
+%endif
+BuildRequires: linux-libc-headers >= 7:2.6.12.0-15
%if %{with doc}
BuildRequires: psutils
BuildRequires: sgml-tools
+%if "%{pld_release}" != "th"
BuildRequires: tetex-dvips
-BuildRequires: tetex-latex
+BuildRequires: tetex-fonts-jknappen
+BuildRequires: tetex-format-latex
+BuildRequires: tetex-metafont
BuildRequires: tetex-tex-babel
+%else
+BuildRequires: texlive-dvips
+BuildRequires: texlive-fonts-cmsuper
+BuildRequires: texlive-fonts-jknappen
+BuildRequires: texlive-latex
+BuildRequires: texlive-tex-babel
%endif
+%endif
+Obsoletes: ifstat
Obsoletes: iproute
-Conflicts: ifstat
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sbindir /sbin
%define _sysconfdir /etc/iproute2
%description
-Linux 2.2 maintains compatibility with the basic configuration
-utilities of the network (ifconfig, route) but a new utility is
-required to exploit the new characteristics and features of the
-kernel. This package includes the new utilities.
-
-%description -l es
-Linux mantiene compatibilidad con los utilitarios estándares de
-configuración de la red, pero se necesitan nuevos utilitarios para
-usar los recursos y características del nuevo núcleo. Este paquete
+The iproute package contains networking utilities (ip and rtmon, for
+example) which are designed to use the advanced networking
+capabilities of the Linux 2.4.x and 2.6.x kernel.
+
+%description -l es.UTF-8
+Linux mantiene compatibilidad con los utilitarios estándares de
+configuración de la red, pero se necesitan nuevos utilitarios para
+usar los recursos y características del nuevo núcleo. Este paquete
incluye los nuevos utilitarios.
-%description -l pl
-Ten pakiet zawiera programy pozwalaj±ce na kontrolê routingu i innych
-aspektów dotycz±cych sieci.
+%description -l pl.UTF-8
+Ten pakiet zawiera programy pozwalające na kontrolę routingu i innych
+aspektów dotyczących sieci.
-%description -l pt_BR
-O Linux mantém compatibilidade com os utilitários padrão de
-configuração da rede, mas novos utilitários são necessários para fazer
-uso das características e recursos da nova kernel. This package
+%description -l pt_BR.UTF-8
+O Linux mantém compatibilidade com os utilitários padrão de
+configuração da rede, mas novos utilitários são necessários para fazer
+uso das características e recursos da nova kernel. This package
includes the new utilities.
%package -n libnetlink-devel
Summary: Library for the netlink interface
-Summary(pl): Biblioteka do interfejsu netlink
+Summary(pl.UTF-8): Biblioteka do interfejsu netlink
Group: Development/Libraries
%description -n libnetlink-devel
This library provides an interface for kernel-user netlink interface.
-%description -n libnetlink-devel -l pl
-Ta biblioteka udostêpnia interfejs do interfejsu netlink miêdzy j±drem
-a przestrzeni± u¿ytkownika.
+%description -n libnetlink-devel -l pl.UTF-8
+Ta biblioteka udostępnia interfejs do interfejsu netlink między jądrem
+a przestrzenią użytkownika.
+
+%package doc
+Summary: ip and tc documentation with examples
+License: GPL v2+
+Group: Applications/System
+
+%description doc
+The iproute documentation contains howtos and examples of settings.
%prep
-%setup -q -n %{name} -a1
-rm -rf include-glibc
+%setup -q
+#rm -rf include/linux
%patch0 -p1
%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+
+%if "%{_lib}" == "lib64"
%patch4 -p1
+%else
+%patch3 -p1
+%endif
%patch5 -p1
-%{?with_uClibc:%patch6 -p1}
+
+# extensions:
%patch10 -p1
%patch11 -p1
-%patch12 -p1
-%patch13 -p1
+%{?with_iface_descr:%patch12 -p1}
+%patch13 -p0
+%patch14 -p1
+%patch15 -p1
%build
%{__make} \
+%if %{with uClibc}
+ CC="%{_target_cpu}-uclibc-gcc" \
+ LD="%{_target_cpu}-uclibc-gcc" \
+%else
CC="%{__cc}" \
- OPT="%{rpmcflags}" \
- %{!?with_tc:SUBDIRS="lib ip misc" LDFLAGS="%{rpmldflags}"}
+ LD="%{__cc}" \
+%endif
+ HOSTCC="%{__cc}" \
+ OPT="%{rpmcflags} %{rpmcppflags}" \
+ LDFLAGS="%{rpmldflags} -Wl,-export-dynamic" \
+ LIBDIR=%{_libdir} \
+ %{!?with_tc:SUBDIRS="lib ip misc"}
%{?with_doc:%{__make} -C doc}
+# make sure we don't produce broken ip binary
+./ip/ip link add type vlan help 2>&1 | grep -q "VLANID :=" || exit 1
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir},%{_mandir}/man8,%{_libdir},%{_includedir}}
+install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir},%{_mandir}/man{3,8},%{_libdir},%{_includedir},%{?with_tc:%{_libdir}/tc}}
-install ip/{ip,rtmon,routel} %{?with_tc:tc/tc} misc/{rtacct,rtstat,ss,ifstat} $RPM_BUILD_ROOT%{_sbindir}
-install etc/iproute2/rt_protos \
+install -p ip/{ip,rtmon,routel} %{?with_tc:tc/tc} misc/{ifstat,lnstat,nstat,rtacct,ss} $RPM_BUILD_ROOT%{_sbindir}
+cp -a etc/iproute2/rt_protos \
etc/iproute2/rt_realms \
etc/iproute2/rt_scopes \
etc/iproute2/rt_tables \
$RPM_BUILD_ROOT%{_sysconfdir}
-install man/* $RPM_BUILD_ROOT%{_mandir}/man8
-install lib/libnetlink.a $RPM_BUILD_ROOT%{_libdir}
-install include/libnetlink.h $RPM_BUILD_ROOT%{_includedir}
+
+cp -a man/man8/* $RPM_BUILD_ROOT%{_mandir}/man8
+echo ".so tc-pbfifo.8" > $RPM_BUILD_ROOT%{_mandir}/man8/tc-bfifo.8
+echo ".so tc-pbfifo.8" > $RPM_BUILD_ROOT%{_mandir}/man8/tc-pfifo.8
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man3
+
+cp -a lib/libnetlink.a $RPM_BUILD_ROOT%{_libdir}
+cp -a include/libnetlink.h $RPM_BUILD_ROOT%{_includedir}
+%{?with_tc:install -p tc/*.so $RPM_BUILD_ROOT%{_libdir}/tc}
+
+%if %{with doc}
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README README.iproute2+tc RELNOTES %{?with_doc:doc/*.ps}
-%attr(755,root,root) %{_sbindir}/*
+%doc README README.decnet README.iproute2+tc README.distribution README.lnstat
+%doc ChangeLog
+%attr(755,root,root) %{_sbindir}/ifstat
+%attr(755,root,root) %{_sbindir}/ip
+%attr(755,root,root) %{_sbindir}/lnstat
+%attr(755,root,root) %{_sbindir}/nstat
+%attr(755,root,root) %{_sbindir}/routel
+%attr(755,root,root) %{_sbindir}/rtacct
+%attr(755,root,root) %{_sbindir}/rtmon
+%attr(755,root,root) %{_sbindir}/ss
+%attr(755,root,root) %{_sbindir}/tc
%dir %{_sysconfdir}
-%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/*
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rt_protos
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rt_realms
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rt_scopes
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rt_tables
%{_mandir}/man8/*
+%if %{with tc}
+%dir %{_libdir}/tc
+%attr(755,root,root) %{_libdir}/tc/*.so
+%endif
%files -n libnetlink-devel
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
-%{_includedir}/*.h
+%{_libdir}/libnetlink.a
+%{_includedir}/libnetlink.h
+%{_mandir}/man3/libnetlink.3*
+
+%if %{with doc}
+%files doc
+%defattr(644,root,root,755)
+%doc doc/*.ps
+%doc RELNOTES
+%{_examplesdir}/%{name}-%{version}
+%endif