-# _without_embed - don't build uClibc version
+#
+# Conditional build
+# _without_tetex - don't build documentation
+# _without_tc - don't build tc program (it breaks static linkage)
+# _without_tc_esfq - build tc without esfq support (requires patched headers)
+#
+%define _kernel24 %(echo %{_kernel_ver} | grep -q '2\.[012]\.' ; echo $?)
+
%define mainver 2.4.7
-%define snapshot ss010803
+%define snapshot ss020116
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
Name: iproute2
Version: %{mainver}.%{snapshot}
-Release: 4
-Vendor: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
+%define _rel 12
+Release: %{_rel}@%{_kernel_ver_str}
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}-make.patch
Patch1: %{name}-uClibc.patch
Patch2: %{name}-fix-2_2.patch
Patch3: %{name}-label.patch
Patch4: %{name}-latest.patch
Patch5: %{name}-htb2_tc.patch
-BuildRequires: tetex-dvips
-BuildRequires: tetex-latex
-BuildRequires: psutils
-%if %{!?_without_embed:1}%{?_without_embed:0}
-BuildRequires: uClibc-devel
-BuildRequires: uClibc-static
-%endif
+Patch6: wrr-iproute2-2.2.4.patch
+Patch7: htb3.6_tc.patch
+Patch8: %{name}-no_libresolv.patch
+Patch9: %{name}-2.2.4-now-ss001007-esfq.diff
+Patch10: %{name}-stats.patch
+Patch11: %{name}-disable_arpd.patch
+Patch12: %{name}-uspace.patch
+Patch13: %{name}-diffserv-config.patch
+
+BuildRequires: bison
+%{!?_without_tetex:BuildRequires: latex2html}
+%{!?_without_tetex:BuildRequires: psutils}
+%{!?_without_tetex:BuildRequires: sgml-tools}
+%{!?_without_tetex:BuildRequires: tetex-dvips}
+%{!?_without_tetex:BuildRequires: tetex-latex}
+%{!?_without_tetex:BuildRequires: tetex-tex-babel}
Obsoletes: iproute
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _sbindir /sbin
-%define _sysconfdir /etc/iproute2
-
-%define embed_path /usr/lib/embed
-%define embed_cc %{_arch}-uclibc-cc
-%define embed_cflags %{rpmcflags} -Os
-%define uclibc_prefix /usr/%{_arch}-linux-uclibc
+%define _sbindir /sbin
+%define _sysconfdir /etc/iproute2
%description
-This package contains the ip, tc and the rtmon tool that allow control
-of routing and other aspects of networking.
+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
+incluye los nuevos utilitarios.
%description -l pl
Ten pakiet zawiera programy pozwalaj±ce na kontrolê routingu i innych
aspektów dotycz±cych sieci.
-%package embed
-Summary: Utility to control Networking behavior in 2.2.X kernels
-Summary(pl): Narzêdzie do kontrolowania Sieci w kernelach 2.2
-Group: Networking/Admin
+%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
+includes the new utilities.
-%description embed
-Embedded iproute2.
+%package -n libnetlink-devel
+Summary: Library for the netlink interface
+Summary(pl): Biblioteka do interfejsu netlink
+Group: Development/Libraries
-%description embed -l pl
-iproute2 dla systemów osadzonych.
+%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.
%prep
-%setup -q -n %{name}
+%setup -q -n %{name} -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
-%patch4 -p1
+#%%patch3 -p1
+#%%patch4 -p1
+%if %{_kernel24}
+%patch7 -p1
+%patch10 -p1
+%else
%patch5 -p1
+%endif
+%patch6 -p1
+%patch8 -p1
+%{!?_without_tc_esfq:%patch9 -p1}
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
%build
-
-%if %{!?_without_embed:1}%{?_without_embed:0}
-%{__make} \
- OPT="%{embed_cflags}" GLIBCFIX="" \
- KERNEL_INCLUDE="%{_kernelsrcdir}/include" \
- CC=%{embed_cc} \
- ADDLIB="inet_ntop.o inet_pton.o dnet_ntop.o dnet_pton.o ipx_ntop.o ipx_pton.o" \
- SUBDIRS="lib ip"
-# someday we might also need rtmon and rtacct, but not today ;)
-mv -f ip/ip ip-embed-shared
-
-%{__make} \
- OPT="%{embed_cflags}" GLIBCFIX="" \
- KERNEL_INCLUDE="%{_kernelsrcdir}/include" \
- LDFLAGS="-static" \
- CC=%{embed_cc} \
- ADDLIB="inet_ntop.o inet_pton.o dnet_ntop.o dnet_pton.o ipx_ntop.o ipx_pton.o" \
- SUBDIRS="lib ip"
-
-mv -f ip/ip ip-embed-static
-%{__make} clean
-%endif
+WRRDEF=""
+grep -q tc_wrr_class_weight %{_kernelsrcdir}/include/linux/pkt_sched.h || WRRDEF="-DNEED_WRR_DEFS"
%{__make} \
CC="%{__cc}" \
- OPT="%{rpmcflags}" \
- KERNEL_INCLUDE="%{_kernelsrcdir}/include"
-%{__make} -C doc
+ OPT="%{rpmcflags} ${WRRDEF}" \
+ KERNEL_INCLUDE="%{_kernelsrcdir}/include" \
+ LDFLAGS="%{rpmldflags}" \
+ %{?_without_tc:SUBDIRS="lib ip misc"}
+%{!?_without_tetex:%{__make} -C doc}
%install
rm -rf $RPM_BUILD_ROOT
-%if %{!?_without_embed:1}%{?_without_embed:0}
-install -d $RPM_BUILD_ROOT%{embed_path}/{shared,static}
-install ip-embed-shared $RPM_BUILD_ROOT%{embed_path}/shared/ip
-install ip-embed-static $RPM_BUILD_ROOT%{embed_path}/static/ip
-%endif
+install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir},%{_mandir}/man8,%{_libdir},%{_includedir}}
-install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}}
-install ip/{ip,rtmon,rtacct,routel} tc/tc $RPM_BUILD_ROOT%{_sbindir}
+install ip/{ip,rtmon,routel} %{!?_without_tc:tc/tc} misc/{rtacct,rtstat} $RPM_BUILD_ROOT%{_sbindir}
install etc/iproute2/rt_protos \
etc/iproute2/rt_realms \
etc/iproute2/rt_scopes \
etc/iproute2/rt_tables \
$RPM_BUILD_ROOT%{_sysconfdir}
-
-gzip -9nf READ* RELNOTES doc/*.ps
+install man/* $RPM_BUILD_ROOT%{_mandir}/man8
+install lib/libnetlink.a $RPM_BUILD_ROOT%{_libdir}
+install include/libnetlink.h $RPM_BUILD_ROOT%{_includedir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc {README,README.iproute2+tc,RELNOTES}.gz
-%doc doc/*.ps.gz
+%doc README README.iproute2+tc RELNOTES %{!?_without_tetex:doc/*.ps}
%attr(755,root,root) %{_sbindir}/*
%dir %{_sysconfdir}
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/*
+%{_mandir}/man8/*
-%if %{!?_without_embed:1}%{?_without_embed:0}
-%files embed
+%files -n libnetlink-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{embed_path}/*/*
-%endif
+%{_libdir}/lib*.a
+%{_includedir}/*.h