diff -r d423aaf00721 -r 6601d28cfe52 snmp/snmp.spec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/snmp/snmp.spec Fri Mar 25 20:06:11 2011 +0100 @@ -0,0 +1,243 @@ +## +## snmp.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2011 OpenPKG Foundation e.V. +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package information +Name: snmp +Summary: Simple Network Management Protocol (SNMP) Toolkit +URL: http://www.net-snmp.org/ +Vendor: The NET-SNMP Project +Packager: OpenPKG Foundation e.V. +Distribution: OpenPKG Community +Class: BASE +Group: Network +License: BSD +Version: 5.6.1 +Release: 20110104 + +# package options +%option with_fsl yes +%option with_perl no +%option with_shared no +%option with_mib_host no +%option with_mib_smux no +%option with_mib_tables no +%option with_mib_sendmail no + +# list of sources +Source0: http://switch.dl.sourceforge.net/net-snmp/net-snmp-%{version}.tar.gz +Source1: rc.snmp +Source2: fsl.snmp +Source3: snmpd.conf +Source4: snmptrapd.conf +Patch0: snmp.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20100101, gcc +PreReq: OpenPKG, openpkg >= 20100101 +BuildPreReq: openssl +PreReq: openssl +%if "%{with_fsl}" == "yes" +BuildPreReq: fsl +PreReq: fsl +%endif +%if "%{with_perl}" == "yes" +BuildPreReq: perl +PreReq: perl +%endif + +%description + This is a toolkit relating to the Simple Network Management Protocol + (SNMP), including an extensible agent, an SNMP library, tools to + request or set information from SNMP agents, tools to generate and + handle SNMP traps, a version of the unix 'netstat' command using + SNMP, etc. + +%track + prog snmp = { + version = %{version} + url = http://sourceforge.net/projects/net-snmp/files/ + regex = net-snmp-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz + } + +%prep + # unpack and patch package + %setup -q -n net-snmp-%{version} + %patch -p0 + + # provide a default PID file location + %{l_shtool} subst %{l_value -s -a} \ + agent/snmpd.c \ + apps/snmptrapd.c + + # adjust package for RPM support in Host MIB + # (because OpenPKG RPM is a little bit different) + %{l_shtool} subst \ + -e 's;/usr/include/rpm;%{l_prefix}/include/rpm;g' \ + -e 's;-lpopt\([^a-z]\);-lrpmpopt\1;g' \ + -e 's;db-3\.1;rpmdb;g' \ + -e 's;-lz\([^a-z]\);-lrpz\1;g' \ + -e 's;-lrpm\([^a-z]\);-lrpm -lrpmio\1;g' \ + -e 's;-lrpmio\([^a-z]\);-lrpmio -lrpmpopt -lrpmbz2 -lrpmz\1;g' \ + configure + + # adjust package for not requiring --enable-shared for --with-perl-modules + # (because it technically working also with static libraries on most platforms) + %{l_shtool} subst \ + -e 's/if test "x$enable_shared" != "xyes"; then/if false; then/g' \ + configure + + # adjust package to install Perl packages into RPM_BUILD_ROOT + %{l_shtool} subst \ + -e "s;perl Makefile.PL;perl Makefile.PL PERL=$perl FULLPERL=$perl PREFIX=${RPM_BUILD_ROOT}%{l_prefix} INSTALLDIRS=vendor;g" \ + -e 's/cd perl ; $(MAKE))/cd perl ; $(MAKE) pure_all)/g' \ + -e 's/cd perl ; $(MAKE) install/cd perl ; $(MAKE) pure_install/g' \ + Makefile.in + +%build + # disable search for db library + ( echo "ac_cv_lib_db1_dbopen=no" + echo "ac_cv_lib_db_dbopen=no" + echo "ac_cv_lib_rpmdb_db_create=yes" + echo "ac_cv_lib_db_3_0_db_create=no" + ) >config.cache + + # determine additional MIBs to include + mibs="" +%if "%{with_mib_host}" == "yes" + mibs="$mibs host" +%endif +%if "%{with_mib_smux}" == "yes" + mibs="$mibs smux" +%endif +%if "%{with_mib_sendmail}" == "yes" + mibs="$mibs mibII/mta_sendmail" +%endif + + # use correct libraries for platform + case "%{l_platform -t}" in + *-hpux* ) loclibs="-lnm" ;; + esac + + # configure package + ./configure \ + --cache-file=./config.cache \ + --with-cc="%{l_cc}" \ + --with-cflags="%{l_cflags -O} %{l_cppflags}" \ + --with-ldflags="%{l_ldflags} %{l_fsl_ldflags}" \ + --with-libs="%{l_fsl_libs} $loclibs" \ + --prefix=%{l_prefix} \ + --with-logfile=/dev/null \ + --with-persistent-directory=%{l_prefix}/var/snmp \ + --with-openssl=%{l_prefix} \ + --enable-silent-libtool \ +%if "%{with_shared}" == "no" + --disable-shared \ +%endif +%if "%{with_mib_host}" == "yes" || "%{with_mib_smux}" == "yes" || "%{with_mib_sendmail}" == "yes" + --with-mib-modules="$mibs" \ +%endif +%if "%{with_mib_tables}" == "no" + --with-out-mib-modules="mibII/tcpTable mibII/udpTable" \ +%endif +%if "%{with_perl}" == "yes" + --with-perl-modules \ + --enable-embedded-perl \ +%else + --without-perl-modules \ + --disable-embedded-perl \ +%endif + --with-defaults + + # build package + %{l_make} %{l_mflags} touchit + %{l_make} %{l_mflags} + +%install + + # install package + %{l_shtool} subst -v \ + -e "s;^\\(prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \ + -e "s;^\\(exec_prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \ + -e "s;^\\(persistentdir.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix}/var/snmp;g" \ + `find . -type f -name Makefile -print` + %{l_make} %{l_mflags} install + + # create additional directories + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/var/snmp \ + $RPM_BUILD_ROOT%{l_prefix}/var/snmp \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ + $RPM_BUILD_ROOT%{l_prefix}/etc/snmp + + # install default configuration + %{l_shtool} install -c -m 644 \ + %{SOURCE snmpd.conf} %{SOURCE snmptrapd.conf} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/snmp/ + + # strip down installation + rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform + rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/ipf-mod.pl + ln $RPM_BUILD_ROOT%{l_prefix}/bin/snmptrap \ + $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform + strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true + strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true +%if "%{with_perl}" == "yes" + find ${RPM_BUILD_ROOT}${l_prefix} -name .packlist -print | xargs rm -f +%endif + + # install run-command script + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.snmp} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + + # install OSSP fsl configuration + %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE fsl.snmp} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%config %{l_prefix}/etc/fsl/fsl.snmp' \ + '%config %{l_prefix}/etc/snmp/*.conf' + +%files -f files + +%clean + +%post + # after upgrade, restart service + [ $1 -eq 2 ] || exit 0 + eval `%{l_rc} snmp status 2>/dev/null` + [ ".$snmp_active" = .yes ] && %{l_rc} snmp restart + exit 0 + +%preun + # before erase, stop service and remove log files + [ $1 -eq 0 ] || exit 0 + %{l_rc} snmp stop 2>/dev/null + rm -f $RPM_INSTALL_PREFIX/var/snmp/* + exit 0 +