+# TODO
+# - package or remove:
+# %{_datadir}/snmp/snmp_perl.pl
#
# Conditional build:
%bcond_without autodeps # don't BR packages only for deps resolving
%bcond_without lm_sensors # don't include sensors support
%bcond_without perl # don't include Perl modules and utils
%bcond_without python # don't include Python modules
+%bcond_without static_libs # don't build static library
#
%include /usr/lib/rpm/macros.perl
Summary: A collection of SNMP protocol tools
Summary(ru.UTF-8): Набор утилит для протокола SNMP от UC-Davis
Summary(uk.UTF-8): Набір утиліт для протоколу SNMP від UC-Davis
Name: net-snmp
-Version: 5.4.1
-Release: 1
+Version: 5.4.2.1
+Release: 6
License: BSD-like
Group: Networking/Daemons
Source0: http://dl.sourceforge.net/net-snmp/%{name}-%{version}.tar.gz
-# Source0-md5: 6c974df7a5a5b1579f72115e6b045bda
+# Source0-md5: 984932520143f0c8bf7b7ce1fc9e1da1
Source1: %{name}d.init
Source2: %{name}d.conf
Source3: %{name}d.sysconfig
Patch7: %{name}-rpmpath.patch
Patch8: %{name}-snmpksm.patch
Patch9: %{name}-python.patch
+Patch10: %{name}-lvalue.patch
+Patch11: %{name}-defaultconfig.patch
+Patch12: %{name}-use-rpm-hrmib.patch
+Patch14: %{name}-lm_sensors_3.patch
+Patch15: %{name}-subcontainer.patch
+Patch16: %{name}-netlink.patch
+Patch17: %{name}-TCP_STATS_CACHE_TIMEOUT.patch
URL: http://www.net-snmp.org/
+# http://net-snmp.svn.sourceforge.net/viewvc/net-snmp?view=rev&revision=17367
+BuildRequires: security(CVE-2008-6123)
BuildRequires: autoconf >= 2.61-3
BuildRequires: automake
BuildRequires: elfutils-devel
%{?with_kerberos5:BuildRequires: krb5-devel}
+BuildRequires: libnl-devel >= 1:1.1
BuildRequires: libtool >= 1.4
BuildRequires: libwrap-devel
-%{?with_lm_sensors:BuildRequires: lm_sensors-devel}
+%{?with_lm_sensors:BuildRequires: lm_sensors-devel >= 3.0.1}
BuildRequires: openssl-devel >= 0.9.7d
%{?with_autodeps:BuildRequires: perl-Term-ReadKey}
BuildRequires: perl-devel >= 1:5.8.0
%if %{with python}
-BuildRequires: python-devel >= 1:2.5
+BuildRequires: python-devel
BuildRequires: python-setuptools
%endif
%if %{with rpm}
-BuildRequires: rpm-devel >= 4.0
+BuildRequires: rpm
BuildRequires: rpm-perlprov >= 3.0.3-16
%endif
-BuildRequires: rpmbuild(macros) >= 1.176
BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-mibs = %{version}-%{release}
Requires: /usr/bin/setsid
Requires: rc-scripts >= 0.2.0
Provides: snmpd
Obsoletes: cmu-snmp
Obsoletes: snmpd
Obsoletes: ucd-snmp
+Conflicts: rpm < 4.4.9-43.11
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# linking libraries is ugly in this package
+%define no_install_post_check_so 1
+
%define logfile /var/log/snmpd.log
-%define filterout_ld -Wl,--as-needed
%description
SNMP (Simple Network Management Protocol) is a protocol used for
Summary: NET SNMP libraries
Summary(pl.UTF-8): Biblioteki SNMP
Group: Libraries
-Requires: %{name}-mibs = %{version}-%{release}
+Requires: %{name}-mibs
Obsoletes: net-snmp-compat-libs
Obsoletes: ucd-snmp-libs
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: elfutils-devel
+%{?with_kerberos5:Requires: krb5-devel}
Requires: libwrap-devel
-%{?with_lm_sensors:Requires: lm_sensors-devel}
+%{?with_lm_sensors:Requires: lm_sensors-devel >= 3.0.1}
Requires: openssl-devel >= 0.9.7c
-%{?with_rpm:Requires: rpm-devel}
Obsoletes: ucd-snmp-devel
%description devel
Summary(uk.UTF-8): Утиліти керування мережею по SNMP з проекту NET-SNMP
Group: Applications/System
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-mibs = %{version}-%{release}
Obsoletes: cmu-snmp-utils
Obsoletes: ucd-snmp-utils
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch14 -p0
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
%build
%{__libtoolize}
%{__aclocal}
%{__autoconf}
%{__autoheader}
+cp -f /usr/share/automake/config.sub .
%configure \
--disable-debugging \
--enable-as-needed \
+ %{!?with_static_libs:--disable-static} \
--with-cflags="%{rpmcflags} -I/usr/include/et" \
--with-ldflags="%{rpmldflags}" \
--with-defaults \
--with-logfile="%{logfile}" \
--with-zlib=%{_prefix} \
--with-bzip2=%{_prefix} \
- --with%{!?with_rpm:out}-perl-modules \
- --with%{!?with_rpm:out}-python-modules \
+ --with%{!?with_perl:out}-perl-modules \
+ --with%{!?with_python:out}-python-modules \
+ --enable-local-smux \
--with-mib-modules="host agentx smux mibII/mta_sendmail \
%ifarch %{ix86} %{x8664}
-%if %{with sensors}
- ucd-snmp/lmSensors \
+%if %{with lm_sensors}
+ ucd-snmp/lmsensorsMib \
%endif
%endif
disman/event disman/schedule ucd-snmp/diskio \
%{?with_kerberos5:--with-security-modules="ksm"} \
--with-sys-contact="root@localhost" \
--with-sys-location="Unknown" \
- --with-transports="UDP UDPIPv6 TCP TCPIPv6 Unix Callback " \
+ --with-transports="UDP UDPIPv6 TCP TCPIPv6 Unix Callback" \
--with-persistent-directory="/var/lib/net-snmp" \
--enable-ucd-snmp-compatibility \
--enable-ipv6 \
--with%{!?with_rpm:out}-rpm
-# build this subdir first. it's causing STRANGE compile failures # otherwise (for me at least). glen
-%{__make} -C agent/mibgroup
-%{__make}
+%{__make} -j1
cd perl
# IP-Filter (non-Linux)
rm -f $RPM_BUILD_ROOT%{_bindir}/ipf-mod.pl
+rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/Bundle/Makefile.subs.pl
+rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Bundle/NetSNMP/.packlist
+
+%if %{with static_libs}
+# hack: convert DynaLoader.a inside .a file to .o, as strip(1) would otherwise say invalid argument
+for a in $RPM_BUILD_ROOT%{_libdir}/libnet*.a; do
+ rm -f *.o *.a
+ ar x $a DynaLoader.a
+ if [ -f DynaLoader.a ]; then
+ ar x DynaLoader.a
+ ar cr $a DynaLoader.o
+ ar d $a DynaLoader.a
+ # remove second file too
+ ar d $a DynaLoader.a
+ fi
+done
+%else
+rm -f $RPM_BUILD_ROOT%{_libdir}/libsnmp.a
+%endif
+
+%if %{with python}
+%{__rm} -r $RPM_BUILD_ROOT%{py_sitedir}/netsnmp/tests
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/netsnmp/*.py
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
%files libs
%defattr(644,root,root,755)
%dir %{_sysconfdir}/snmp
-%attr(755,root,root) %{_libdir}/libnet*.so.*.*
+%attr(755,root,root) %{_libdir}/libnetsnmp.so.*.*
+%attr(755,root,root) %{_libdir}/libnetsnmpagent.so.*.*
+%attr(755,root,root) %{_libdir}/libnetsnmphelpers.so.*.*
+%attr(755,root,root) %{_libdir}/libnetsnmpmibs.so.*.*
+%attr(755,root,root) %{_libdir}/libnetsnmptrapd.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmp.so.15
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmpagent.so.15
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmphelpers.so.15
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmpmibs.so.15
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmptrapd.so.15
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mib2c
%attr(755,root,root) %{_bindir}/mib2c-update
%attr(755,root,root) %{_bindir}/net-snmp-config
-%attr(755,root,root) %{_libdir}/libnet*[a-z].so
-%{_libdir}/libnet*.la
+%attr(755,root,root) %{_libdir}/libnetsnmp.so
+%attr(755,root,root) %{_libdir}/libnetsnmpagent.so
+%attr(755,root,root) %{_libdir}/libnetsnmphelpers.so
+%attr(755,root,root) %{_libdir}/libnetsnmpmibs.so
+%attr(755,root,root) %{_libdir}/libnetsnmptrapd.so
+%{_libdir}/libnetsnmp.la
+%{_libdir}/libnetsnmpagent.la
+%{_libdir}/libnetsnmphelpers.la
+%{_libdir}/libnetsnmpmibs.la
+%{_libdir}/libnetsnmptrapd.la
%{_includedir}/net-snmp
%{_datadir}/snmp/mib2c*
%{_mandir}/man1/mib2c.1*
%{_mandir}/man3/[!NS]*
%{_mandir}/man5/mib2c.conf.5*
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libnet*.a
+%endif
%files compat-devel
%defattr(644,root,root,755)
%{_libdir}/libsnmp.la
%{_includedir}/ucd-snmp
+%if %{with static_libs}
%files compat-static
%defattr(644,root,root,755)
%{_libdir}/libsnmp.a
+%endif
%files mibs
%defattr(644,root,root,755)