]> git.pld-linux.org Git - packages/net-snmp.git/blobdiff - net-snmp.spec
- release 2
[packages/net-snmp.git] / net-snmp.spec
index 0311f497984d74c59c08a1572595b1c3067e03a2..6cc65a5d2d42648faaa03c3856634ef0f8aabb6d 100644 (file)
@@ -1,14 +1,9 @@
 # TODO
 # - package or remove:
-#   %{py_sitedir}/netsnmp/__init__.py
-#   %{py_sitedir}/netsnmp/client.py
-#   %{py_sitedir}/netsnmp/tests/__init__.py
-#   %{py_sitedir}/netsnmp/tests/__init__.pyc
-#   %{py_sitedir}/netsnmp/tests/__init__.pyo
-#   %{py_sitedir}/netsnmp/tests/test.py
-#   %{py_sitedir}/netsnmp/tests/test.pyc
-#   %{py_sitedir}/netsnmp/tests/test.pyo
 #   %{_datadir}/snmp/snmp_perl.pl
+# - make noarch -n mibs-net-snmp package (need separate .spec then)
+# - FHS: #define NETSNMP_AGENTX_SOCKET "/var/agentx/master"
+# - php-snmp (and likely other bindings) use only %{_libdir}/libnetsnmp.so.*, move other libs back to main (daemon) package?
 #
 # 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
+
+%ifnarch %{ix86} %{x8664}
+%undefine      with_lm_sensors
+%endif
+
+%define                so_version      25
 %include       /usr/lib/rpm/macros.perl
 Summary:       A collection of SNMP protocol tools
 Summary(es.UTF-8):     Agente SNMP de la UCD
@@ -26,12 +27,12 @@ Summary(pt_BR.UTF-8):       Agente SNMP da UCD
 Summary(ru.UTF-8):     Набор утилит для протокола SNMP от UC-Davis
 Summary(uk.UTF-8):     Набір утиліт для протоколу SNMP від UC-Davis
 Name:          net-snmp
-Version:       5.4.1
+Version:       5.6.1
 Release:       2
 License:       BSD-like
 Group:         Networking/Daemons
-Source0:       http://dl.sourceforge.net/net-snmp/%{name}-%{version}.tar.gz
-# Source0-md5: 6c974df7a5a5b1579f72115e6b045bda
+Source0:       http://downloads.sourceforge.net/net-snmp/%{name}-%{version}.tar.gz
+# Source0-md5: b4e30ead5783b0bb1d280172c6095ea4
 Source1:       %{name}d.init
 Source2:       %{name}d.conf
 Source3:       %{name}d.sysconfig
@@ -51,39 +52,48 @@ 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
+Patch13:       %{name}-TCP_STATS_CACHE_TIMEOUT.patch
 URL:           http://www.net-snmp.org/
-BuildRequires: autoconf >= 2.61-3
+BuildRequires: autoconf >= 2.63
 BuildRequires: automake
 BuildRequires: elfutils-devel
-%{?with_kerberos5:BuildRequires:       krb5-devel}
+%{?with_kerberos5:BuildRequires:       heimdal-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-modules
 BuildRequires: python-setuptools
+BuildRequires: rpm-pythonprov
 %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:      /usr/bin/setsid
-Requires:      rc-scripts >= 0.2.0
+Requires:      mibs-%{name} = %{version}-%{release}
+Requires:      rc-scripts >= 0.4.3.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
@@ -134,7 +144,7 @@ SNMP, утиліти для запросу та встановлення інф
 Summary:       NET SNMP libraries
 Summary(pl.UTF-8):     Biblioteki SNMP
 Group:         Libraries
-Requires:      %{name}-mibs = %{version}-%{release}
+Suggests:      mibs-%{name}
 Obsoletes:     net-snmp-compat-libs
 Obsoletes:     ucd-snmp-libs
 
@@ -154,11 +164,11 @@ Summary(uk.UTF-8):        Середовище розробки для проекту U
 Group:         Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      elfutils-devel
-%{?with_kerberos5:Requires:    krb5-devel}
+%{?with_kerberos5:Requires:    heimdal-devel}
+Requires:      libnl-devel >= 1:1.1
 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
@@ -266,16 +276,18 @@ Statyczne biblioteki UCD-SNMP.
 %description compat-static -l pt_BR.UTF-8
 Bibliotecas estáticas para desenvolvimento com ucd-snmp.
 
-%package mibs
-Summary:       MIB database
+%package -n mibs-net-snmp
+Summary:       Net-SNMP provided MIBs
 Summary(pl.UTF-8):     Baza danych MIB
 Group:         Applications/System
+Requires:      mibs-dirs
+Obsoletes:     net-snmp-mibs
 Conflicts:     ucd-snmp-libs
 
-%description mibs
-MIB database.
+%description -n mibs-net-snmp
+Net-SNMP provided MIBs (Management Information Base).
 
-%description mibs -l pl.UTF-8
+%description -n mibs-net-snmp -l pl.UTF-8
 Baza danych MIB.
 
 %package snmptrapd
@@ -303,6 +315,7 @@ Summary(ru.UTF-8):  Утилиты управления сетью по SNMP из
 Summary(uk.UTF-8):     Утиліти керування мережею по SNMP з проекту NET-SNMP
 Group:         Applications/System
 Requires:      %{name}-libs = %{version}-%{release}
+Suggests:      mibs-%{name} = %{version}-%{release}
 Obsoletes:     cmu-snmp-utils
 Obsoletes:     ucd-snmp-utils
 
@@ -403,7 +416,6 @@ SNMP dla trzech wersji tego protokołu (SNMPv3, SNMPv2c, SNMPv1).
 
 %prep
 %setup -q -a7
-%patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
@@ -414,16 +426,35 @@ SNMP dla trzech wersji tego protokołu (SNMPv3, SNMPv2c, SNMPv1).
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
 
 %build
 %{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
 %{__autoconf}
 %{__autoheader}
+cp -f /usr/share/automake/config.sub .
+
+MIBS="\
+host agentx smux \
+mibII/mta_sendmail \
+disman/event disman/schedule \
+ucd-snmp/diskio \
+target \
+misc/ipfwacc \
+"
+
+%if %{with lm_sensors}
+MIBS="$MIBS ucd-snmp/lmsensorsMib"
+%endif
+
 %configure \
        --disable-debugging \
        --enable-as-needed \
-       --with-cflags="%{rpmcflags} -I/usr/include/et" \
+       %{!?with_static_libs:--disable-static} \
+       --with-cflags="%{rpmcflags} %{rpmcppflags} -I/usr/include/et" \
        --with-ldflags="%{rpmldflags}" \
        --with-defaults \
        --with-default-snmp-version=3 \
@@ -431,36 +462,32 @@ SNMP dla trzech wersji tego protokołu (SNMPv3, SNMPv2c, SNMPv1).
        %{!?with_kerberos5:--without-krb5} \
        --with-openssl=%{_prefix} \
        --with-libwrap=%{_prefix} \
-       --with-logfile="%{logfile}" \
+       --with-logfile=%{logfile} \
        --with-zlib=%{_prefix} \
        --with-bzip2=%{_prefix} \
-       --with%{!?with_rpm:out}-perl-modules \
-       --with%{!?with_rpm:out}-python-modules \
-       --with-mib-modules="host agentx smux mibII/mta_sendmail \
-%ifarch %{ix86} %{x8664}
-%if %{with lm_sensors}
-                       ucd-snmp/lmSensors \
-%endif
-%endif
-                       disman/event disman/schedule ucd-snmp/diskio \
-                       target misc/ipfwacc" \
+       --with-nl \
+       --with%{!?with_perl:out}-perl-modules \
+       --with%{!?with_python:out}-python-modules \
+       --enable-local-smux \
+       --with-mibdirs='$HOME/.snmp/mibs:/usr/share/mibs:%{_datadir}/snmp/mibs' \
+       --with-mib-modules="$MIBS" \
        %{?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 \
+       %{!?debug:--disable-debugging} \
        --with%{!?with_rpm:out}-rpm
 
 %{__make} -j1
 
 cd perl
-
 %{__perl} Makefile.PL \
        -NET-SNMP-IN-SOURCE=true \
        INSTALLDIRS=vendor \
-       OPTIMIZE="%{rpmcflags}" \
+       OPTIMIZE="%{rpmcflags} %{rpmcppflags}" \
        </dev/null
 
 # avoid rpaths generated by MakeMaker
@@ -471,41 +498,61 @@ perl -pi -e 's@LD_RUN_PATH="\$\(LD_RUN_PATH\)" @@' */Makefile */*/Makefile
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig,snmp},/var/log}
+install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig,snmp},/var/log,/var/lib/net-snmp,%{_libdir}/snmp/dlmod}
 
-%{__make} install \
+%{__make} -j1 install \
+       mibdir=%{_datadir}/mibs \
        DESTDIR=$RPM_BUILD_ROOT
 
-install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmpd.conf
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmpd.conf
 :> $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmpd.local.conf
 :> $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmp.conf
 :> $RPM_BUILD_ROOT%{logfile}
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/snmpd
-install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmpd.conf
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/snmpd
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/snmpd
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmpd.conf
+cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/snmpd
 
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/snmptrapd
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmptrapd.conf
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/snmptrapd
-
-#install agent/mibgroup/ipfwchains/IPFWCHAINS-MIB.txt \
-#      $RPM_BUILD_ROOT%{_datadir}/snmp/mibs
+install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/snmptrapd
+cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/snmp/snmptrapd.conf
+cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/snmptrapd
 
 cd perl
-%{__make} install \
+%{__make} -j1 install \
        DESTDIR=$RPM_BUILD_ROOT
 
 install -d $RPM_BUILD_ROOT%{_examplesdir}/perl-SNMP-%{version}
-install SNMP/examples/*.pl $RPM_BUILD_ROOT%{_examplesdir}/perl-SNMP-%{version}
+install -p SNMP/examples/*.pl $RPM_BUILD_ROOT%{_examplesdir}/perl-SNMP-%{version}
 cd ..
 
 # 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
+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
@@ -556,27 +603,52 @@ fi
 %attr(640,root,root) %config(missingok,noreplace) %verify(not md5 mtime size) %{_sysconfdir}/snmp/snmpd.local.conf
 
 %attr(755,root,root) %{_sbindir}/snmpd
+%attr(755,root,root) %{_bindir}/net-snmp-create-v3-user
 
+%dir %{_libdir}/snmp
+%dir %{_libdir}/snmp/dlmod
+
+%{_mandir}/man1/net-snmp-create-v3-user.1*
 %{_mandir}/man5/snmpd.conf.5*
 %{_mandir}/man5/snmpd.examples.5*
 %{_mandir}/man5/snmpd.internal.5*
 %{_mandir}/man5/variables.5*
 %{_mandir}/man8/snmpd.8*
 
+%dir %attr(700,root,root) /var/lib/net-snmp
+
 %attr(640,root,root) %ghost %{logfile}
 
 %files libs
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}/snmp
-%attr(755,root,root) %{_libdir}/libnet*.so.*.*
+%dir %{_datadir}/snmp
+%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.%{so_version}
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmpagent.so.%{so_version}
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmphelpers.so.%{so_version}
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmpmibs.so.%{so_version}
+%attr(755,root,root) %ghost %{_libdir}/libnetsnmptrapd.so.%{so_version}
 
 %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*
@@ -585,9 +657,15 @@ fi
 %{_mandir}/man3/[!NS]*
 %{_mandir}/man5/mib2c.conf.5*
 
+%if %{with static_libs}
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/libnet*.a
+%{_libdir}/libnetsnmp.a
+%{_libdir}/libnetsnmpagent.a
+%{_libdir}/libnetsnmphelpers.a
+%{_libdir}/libnetsnmpmibs.a
+%{_libdir}/libnetsnmptrapd.a
+%endif
 
 %files compat-devel
 %defattr(644,root,root,755)
@@ -595,14 +673,15 @@ fi
 %{_libdir}/libsnmp.la
 %{_includedir}/ucd-snmp
 
+%if %{with static_libs}
 %files compat-static
 %defattr(644,root,root,755)
 %{_libdir}/libsnmp.a
+%endif
 
-%files mibs
+%files -n mibs-net-snmp
 %defattr(644,root,root,755)
-%dir %{_datadir}/snmp
-%{_datadir}/snmp/mibs
+%{_datadir}/mibs/*.txt
 
 %files snmptrapd
 %defattr(644,root,root,755)
@@ -618,6 +697,7 @@ fi
 
 %files utils
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/agentxtrap
 %attr(755,root,root) %{_bindir}/encode_keychange
 %attr(755,root,root) %{_bindir}/snmpbulkget
 %attr(755,root,root) %{_bindir}/snmpbulkwalk
@@ -636,6 +716,7 @@ fi
 %attr(755,root,root) %{_bindir}/snmpusm
 %attr(755,root,root) %{_bindir}/snmpvacm
 %attr(755,root,root) %{_bindir}/snmpwalk
+%{_mandir}/man1/agentxtrap.1*
 %{_mandir}/man1/encode_keychange.1*
 %{_mandir}/man1/snmpbulkget.1*
 %{_mandir}/man1/snmpbulkwalk.1*
@@ -686,9 +767,12 @@ fi
 %files utils-perl
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/fixproc
+%attr(755,root,root) %{_bindir}/net-snmp-cert
+%attr(755,root,root) %{_bindir}/snmp-bridge-mib
 %attr(755,root,root) %{_bindir}/snmpcheck
 %attr(755,root,root) %{_bindir}/traptoemail
 %{_mandir}/man1/fixproc.1*
+%{_mandir}/man1/snmp-bridge-mib.1*
 %{_mandir}/man1/traptoemail.1*
 %endif
 
This page took 0.052948 seconds and 4 git commands to generate.