snmp/snmp.spec

Wed, 08 Feb 2012 20:07:00 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 08 Feb 2012 20:07:00 +0200
changeset 588
300d43423c2e
parent 384
590d931d793c
child 589
6db023bc5512
permissions
-rw-r--r--

Update version, adapt patch, correct PID writing, correct build on newer
FreeBSD releases, and most importantly introduce new patch to try to
avoid segfault caused by multiple network interfaces with the same (or
no) address. This is common when configuring bridges and tunnels.

michael@325 1 ##
michael@325 2 ## snmp.spec -- OpenPKG RPM Package Specification
michael@325 3 ## Copyright (c) 2000-2011 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@325 4 ##
michael@325 5 ## Permission to use, copy, modify, and distribute this software for
michael@325 6 ## any purpose with or without fee is hereby granted, provided that
michael@325 7 ## the above copyright notice and this permission notice appear in all
michael@325 8 ## copies.
michael@325 9 ##
michael@325 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@325 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@325 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@325 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@325 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@325 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@325 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@325 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@325 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@325 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@325 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@325 21 ## SUCH DAMAGE.
michael@325 22 ##
michael@325 23
michael@325 24 # package information
michael@325 25 Name: snmp
michael@325 26 Summary: Simple Network Management Protocol (SNMP) Toolkit
michael@325 27 URL: http://www.net-snmp.org/
michael@325 28 Vendor: The NET-SNMP Project
michael@325 29 Packager: OpenPKG Foundation e.V.
michael@325 30 Distribution: OpenPKG Community
michael@325 31 Class: BASE
michael@325 32 Group: Network
michael@325 33 License: BSD
michael@588 34 Version: 5.7.1
michael@588 35 Release: 20120208
michael@325 36
michael@325 37 # package options
michael@325 38 %option with_fsl yes
michael@325 39 %option with_perl no
michael@325 40 %option with_shared no
michael@325 41 %option with_mib_host no
michael@325 42 %option with_mib_smux no
michael@325 43 %option with_mib_tables no
michael@325 44 %option with_mib_sendmail no
michael@325 45
michael@325 46 # list of sources
michael@353 47 Source0: http://switch.dl.sourceforge.net/net-snmp/%{version}/net-snmp-%{version}.tar.gz
michael@325 48 Source1: rc.snmp
michael@325 49 Source2: fsl.snmp
michael@325 50 Source3: snmpd.conf
michael@325 51 Source4: snmptrapd.conf
michael@325 52 Patch0: snmp.patch
michael@384 53 Patch1: snmp_agentx.patch
michael@588 54 Patch2: snmp_iface.patch
michael@325 55
michael@325 56 # build information
michael@326 57 Prefix: %{l_prefix}
michael@326 58 BuildRoot: %{l_buildroot}
michael@326 59 BuildPreReq: OpenPKG, openpkg >= 20060823, gcc
michael@326 60 PreReq: OpenPKG, openpkg >= 20060823
michael@325 61 BuildPreReq: openssl
michael@325 62 PreReq: openssl
michael@325 63 %if "%{with_fsl}" == "yes"
michael@325 64 BuildPreReq: fsl
michael@325 65 PreReq: fsl
michael@325 66 %endif
michael@325 67 %if "%{with_perl}" == "yes"
michael@325 68 BuildPreReq: perl
michael@325 69 PreReq: perl
michael@325 70 %endif
michael@326 71 AutoReq: no
michael@326 72 AutoReqProv: no
michael@325 73
michael@325 74 %description
michael@325 75 This is a toolkit relating to the Simple Network Management Protocol
michael@325 76 (SNMP), including an extensible agent, an SNMP library, tools to
michael@325 77 request or set information from SNMP agents, tools to generate and
michael@325 78 handle SNMP traps, a version of the unix 'netstat' command using
michael@325 79 SNMP, etc.
michael@325 80
michael@325 81 %track
michael@325 82 prog snmp = {
michael@325 83 version = %{version}
michael@325 84 url = http://sourceforge.net/projects/net-snmp/files/
michael@325 85 regex = net-snmp-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz
michael@325 86 }
michael@325 87
michael@325 88 %prep
michael@325 89 # unpack and patch package
michael@325 90 %setup -q -n net-snmp-%{version}
michael@325 91 %patch -p0
michael@384 92 %patch -p0 -P 1
michael@588 93 %patch -p0 -P 2
michael@325 94
michael@325 95 # provide a default PID file location
michael@325 96 %{l_shtool} subst %{l_value -s -a} \
michael@325 97 agent/snmpd.c \
michael@325 98 apps/snmptrapd.c
michael@325 99
michael@325 100 # adjust package for not requiring --enable-shared for --with-perl-modules
michael@325 101 # (because it technically working also with static libraries on most platforms)
michael@325 102 %{l_shtool} subst \
michael@325 103 -e 's/if test "x$enable_shared" != "xyes"; then/if false; then/g' \
michael@325 104 configure
michael@325 105
michael@353 106 # remove incorrectly escaped shell construct quoting
michael@353 107 %{l_shtool} subst \
michael@353 108 -e 's;x\$OSTYPE;x;' \
michael@353 109 -e 's;\(PERLPROG -e.*system\)([^)][^)]*;\1(echo;' \
michael@353 110 configure
michael@353 111
michael@325 112 # adjust package to install Perl packages into RPM_BUILD_ROOT
michael@325 113 %{l_shtool} subst \
michael@325 114 -e "s;perl Makefile.PL;perl Makefile.PL PERL=$perl FULLPERL=$perl PREFIX=${RPM_BUILD_ROOT}%{l_prefix} INSTALLDIRS=vendor;g" \
michael@325 115 -e 's/cd perl ; $(MAKE))/cd perl ; $(MAKE) pure_all)/g' \
michael@325 116 -e 's/cd perl ; $(MAKE) install/cd perl ; $(MAKE) pure_install/g' \
michael@325 117 Makefile.in
michael@325 118
michael@325 119 %build
michael@325 120 # disable search for db library
michael@325 121 ( echo "ac_cv_lib_db1_dbopen=no"
michael@325 122 echo "ac_cv_lib_db_dbopen=no"
michael@325 123 echo "ac_cv_lib_rpmdb_db_create=yes"
michael@325 124 echo "ac_cv_lib_db_3_0_db_create=no"
michael@325 125 ) >config.cache
michael@325 126
michael@325 127 # determine additional MIBs to include
michael@325 128 mibs=""
michael@325 129 %if "%{with_mib_host}" == "yes"
michael@325 130 mibs="$mibs host"
michael@325 131 %endif
michael@325 132 %if "%{with_mib_smux}" == "yes"
michael@325 133 mibs="$mibs smux"
michael@325 134 %endif
michael@325 135 %if "%{with_mib_sendmail}" == "yes"
michael@325 136 mibs="$mibs mibII/mta_sendmail"
michael@325 137 %endif
michael@325 138
michael@325 139 # use correct libraries for platform
michael@325 140 case "%{l_platform -t}" in
michael@325 141 *-hpux* ) loclibs="-lnm" ;;
michael@325 142 esac
michael@325 143
michael@325 144 # configure package
michael@327 145 CONFIG_SHELL=%{l_bash} \
michael@325 146 ./configure \
michael@325 147 --cache-file=./config.cache \
michael@325 148 --with-cc="%{l_cc}" \
michael@325 149 --with-cflags="%{l_cflags -O} %{l_cppflags}" \
michael@325 150 --with-ldflags="%{l_ldflags} %{l_fsl_ldflags}" \
michael@325 151 --with-libs="%{l_fsl_libs} $loclibs" \
michael@325 152 --prefix=%{l_prefix} \
michael@325 153 --with-logfile=/dev/null \
michael@325 154 --with-persistent-directory=%{l_prefix}/var/snmp \
michael@325 155 --with-openssl=%{l_prefix} \
michael@325 156 --enable-silent-libtool \
michael@325 157 %if "%{with_shared}" == "no"
michael@325 158 --disable-shared \
michael@325 159 %endif
michael@325 160 %if "%{with_mib_host}" == "yes" || "%{with_mib_smux}" == "yes" || "%{with_mib_sendmail}" == "yes"
michael@325 161 --with-mib-modules="$mibs" \
michael@325 162 %endif
michael@325 163 %if "%{with_mib_tables}" == "no"
michael@325 164 --with-out-mib-modules="mibII/tcpTable mibII/udpTable" \
michael@325 165 %endif
michael@325 166 %if "%{with_perl}" == "yes"
michael@325 167 --with-perl-modules \
michael@325 168 --enable-embedded-perl \
michael@325 169 %else
michael@325 170 --without-perl-modules \
michael@325 171 --disable-embedded-perl \
michael@325 172 %endif
michael@325 173 --with-defaults
michael@325 174
michael@325 175 # build package
michael@325 176 %{l_make} %{l_mflags} touchit
michael@325 177 %{l_make} %{l_mflags}
michael@325 178
michael@325 179 %install
michael@326 180 rm -rf $RPM_BUILD_ROOT
michael@325 181
michael@325 182 # install package
michael@325 183 %{l_shtool} subst -v \
michael@325 184 -e "s;^\\(prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 185 -e "s;^\\(exec_prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 186 -e "s;^\\(persistentdir.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix}/var/snmp;g" \
michael@325 187 `find . -type f -name Makefile -print`
michael@325 188 %{l_make} %{l_mflags} install
michael@325 189
michael@325 190 # create additional directories
michael@325 191 %{l_shtool} mkdir -f -p -m 755 \
michael@325 192 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 193 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 194 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@325 195 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp
michael@325 196
michael@325 197 # install default configuration
michael@325 198 %{l_shtool} install -c -m 644 \
michael@325 199 %{SOURCE snmpd.conf} %{SOURCE snmptrapd.conf} \
michael@325 200 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp/
michael@325 201
michael@325 202 # strip down installation
michael@325 203 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 204 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/ipf-mod.pl
michael@325 205 ln $RPM_BUILD_ROOT%{l_prefix}/bin/snmptrap \
michael@325 206 $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 207 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
michael@325 208 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
michael@325 209 %if "%{with_perl}" == "yes"
michael@325 210 find ${RPM_BUILD_ROOT}${l_prefix} -name .packlist -print | xargs rm -f
michael@325 211 %endif
michael@325 212
michael@325 213 # install run-command script
michael@325 214 %{l_shtool} mkdir -f -p -m 755 \
michael@325 215 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@325 216 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@325 217 %{SOURCE rc.snmp} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@325 218
michael@325 219 # install OSSP fsl configuration
michael@325 220 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
michael@325 221 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@325 222 %{SOURCE fsl.snmp} \
michael@325 223 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
michael@325 224
michael@325 225 # determine installation files
michael@325 226 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@325 227 %{l_files_std} \
michael@325 228 '%config %{l_prefix}/etc/fsl/fsl.snmp' \
michael@325 229 '%config %{l_prefix}/etc/snmp/*.conf'
michael@325 230
michael@325 231 %files -f files
michael@325 232
michael@325 233 %clean
michael@326 234 rm -rf $RPM_BUILD_ROOT
michael@325 235
michael@325 236 %post
michael@325 237 # after upgrade, restart service
michael@325 238 [ $1 -eq 2 ] || exit 0
michael@325 239 eval `%{l_rc} snmp status 2>/dev/null`
michael@325 240 [ ".$snmp_active" = .yes ] && %{l_rc} snmp restart
michael@325 241 exit 0
michael@325 242
michael@325 243 %preun
michael@325 244 # before erase, stop service and remove log files
michael@325 245 [ $1 -eq 0 ] || exit 0
michael@325 246 %{l_rc} snmp stop 2>/dev/null
michael@325 247 rm -f $RPM_INSTALL_PREFIX/var/snmp/*
michael@325 248 exit 0
michael@325 249

mercurial