snmp/snmp.spec

Thu, 15 Sep 2011 11:03:52 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Sep 2011 11:03:52 +0200
changeset 353
198005e4aad2
parent 327
02bcb113e039
child 384
590d931d793c
permissions
-rw-r--r--

Update to new version of vendor software.

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@353 34 Version: 5.7
michael@353 35 Release: 20110914
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@325 53
michael@325 54 # build information
michael@326 55 Prefix: %{l_prefix}
michael@326 56 BuildRoot: %{l_buildroot}
michael@326 57 BuildPreReq: OpenPKG, openpkg >= 20060823, gcc
michael@326 58 PreReq: OpenPKG, openpkg >= 20060823
michael@325 59 BuildPreReq: openssl
michael@325 60 PreReq: openssl
michael@325 61 %if "%{with_fsl}" == "yes"
michael@325 62 BuildPreReq: fsl
michael@325 63 PreReq: fsl
michael@325 64 %endif
michael@325 65 %if "%{with_perl}" == "yes"
michael@325 66 BuildPreReq: perl
michael@325 67 PreReq: perl
michael@325 68 %endif
michael@326 69 AutoReq: no
michael@326 70 AutoReqProv: no
michael@325 71
michael@325 72 %description
michael@325 73 This is a toolkit relating to the Simple Network Management Protocol
michael@325 74 (SNMP), including an extensible agent, an SNMP library, tools to
michael@325 75 request or set information from SNMP agents, tools to generate and
michael@325 76 handle SNMP traps, a version of the unix 'netstat' command using
michael@325 77 SNMP, etc.
michael@325 78
michael@325 79 %track
michael@325 80 prog snmp = {
michael@325 81 version = %{version}
michael@325 82 url = http://sourceforge.net/projects/net-snmp/files/
michael@325 83 regex = net-snmp-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz
michael@325 84 }
michael@325 85
michael@325 86 %prep
michael@325 87 # unpack and patch package
michael@325 88 %setup -q -n net-snmp-%{version}
michael@325 89 %patch -p0
michael@325 90
michael@325 91 # provide a default PID file location
michael@325 92 %{l_shtool} subst %{l_value -s -a} \
michael@325 93 agent/snmpd.c \
michael@325 94 apps/snmptrapd.c
michael@325 95
michael@325 96 # adjust package for not requiring --enable-shared for --with-perl-modules
michael@325 97 # (because it technically working also with static libraries on most platforms)
michael@325 98 %{l_shtool} subst \
michael@325 99 -e 's/if test "x$enable_shared" != "xyes"; then/if false; then/g' \
michael@325 100 configure
michael@325 101
michael@353 102 # remove incorrectly escaped shell construct quoting
michael@353 103 %{l_shtool} subst \
michael@353 104 -e 's;x\$OSTYPE;x;' \
michael@353 105 -e 's;\(PERLPROG -e.*system\)([^)][^)]*;\1(echo;' \
michael@353 106 configure
michael@353 107
michael@325 108 # adjust package to install Perl packages into RPM_BUILD_ROOT
michael@325 109 %{l_shtool} subst \
michael@325 110 -e "s;perl Makefile.PL;perl Makefile.PL PERL=$perl FULLPERL=$perl PREFIX=${RPM_BUILD_ROOT}%{l_prefix} INSTALLDIRS=vendor;g" \
michael@325 111 -e 's/cd perl ; $(MAKE))/cd perl ; $(MAKE) pure_all)/g' \
michael@325 112 -e 's/cd perl ; $(MAKE) install/cd perl ; $(MAKE) pure_install/g' \
michael@325 113 Makefile.in
michael@325 114
michael@325 115 %build
michael@325 116 # disable search for db library
michael@325 117 ( echo "ac_cv_lib_db1_dbopen=no"
michael@325 118 echo "ac_cv_lib_db_dbopen=no"
michael@325 119 echo "ac_cv_lib_rpmdb_db_create=yes"
michael@325 120 echo "ac_cv_lib_db_3_0_db_create=no"
michael@325 121 ) >config.cache
michael@325 122
michael@325 123 # determine additional MIBs to include
michael@325 124 mibs=""
michael@325 125 %if "%{with_mib_host}" == "yes"
michael@325 126 mibs="$mibs host"
michael@325 127 %endif
michael@325 128 %if "%{with_mib_smux}" == "yes"
michael@325 129 mibs="$mibs smux"
michael@325 130 %endif
michael@325 131 %if "%{with_mib_sendmail}" == "yes"
michael@325 132 mibs="$mibs mibII/mta_sendmail"
michael@325 133 %endif
michael@325 134
michael@325 135 # use correct libraries for platform
michael@325 136 case "%{l_platform -t}" in
michael@325 137 *-hpux* ) loclibs="-lnm" ;;
michael@325 138 esac
michael@325 139
michael@325 140 # configure package
michael@327 141 CONFIG_SHELL=%{l_bash} \
michael@325 142 ./configure \
michael@325 143 --cache-file=./config.cache \
michael@325 144 --with-cc="%{l_cc}" \
michael@325 145 --with-cflags="%{l_cflags -O} %{l_cppflags}" \
michael@325 146 --with-ldflags="%{l_ldflags} %{l_fsl_ldflags}" \
michael@325 147 --with-libs="%{l_fsl_libs} $loclibs" \
michael@325 148 --prefix=%{l_prefix} \
michael@325 149 --with-logfile=/dev/null \
michael@325 150 --with-persistent-directory=%{l_prefix}/var/snmp \
michael@325 151 --with-openssl=%{l_prefix} \
michael@325 152 --enable-silent-libtool \
michael@325 153 %if "%{with_shared}" == "no"
michael@325 154 --disable-shared \
michael@325 155 %endif
michael@325 156 %if "%{with_mib_host}" == "yes" || "%{with_mib_smux}" == "yes" || "%{with_mib_sendmail}" == "yes"
michael@325 157 --with-mib-modules="$mibs" \
michael@325 158 %endif
michael@325 159 %if "%{with_mib_tables}" == "no"
michael@325 160 --with-out-mib-modules="mibII/tcpTable mibII/udpTable" \
michael@325 161 %endif
michael@325 162 %if "%{with_perl}" == "yes"
michael@325 163 --with-perl-modules \
michael@325 164 --enable-embedded-perl \
michael@325 165 %else
michael@325 166 --without-perl-modules \
michael@325 167 --disable-embedded-perl \
michael@325 168 %endif
michael@325 169 --with-defaults
michael@325 170
michael@325 171 # build package
michael@325 172 %{l_make} %{l_mflags} touchit
michael@325 173 %{l_make} %{l_mflags}
michael@325 174
michael@325 175 %install
michael@326 176 rm -rf $RPM_BUILD_ROOT
michael@325 177
michael@325 178 # install package
michael@325 179 %{l_shtool} subst -v \
michael@325 180 -e "s;^\\(prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 181 -e "s;^\\(exec_prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 182 -e "s;^\\(persistentdir.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix}/var/snmp;g" \
michael@325 183 `find . -type f -name Makefile -print`
michael@325 184 %{l_make} %{l_mflags} install
michael@325 185
michael@325 186 # create additional directories
michael@325 187 %{l_shtool} mkdir -f -p -m 755 \
michael@325 188 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 189 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 190 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@325 191 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp
michael@325 192
michael@325 193 # install default configuration
michael@325 194 %{l_shtool} install -c -m 644 \
michael@325 195 %{SOURCE snmpd.conf} %{SOURCE snmptrapd.conf} \
michael@325 196 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp/
michael@325 197
michael@325 198 # strip down installation
michael@325 199 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 200 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/ipf-mod.pl
michael@325 201 ln $RPM_BUILD_ROOT%{l_prefix}/bin/snmptrap \
michael@325 202 $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 203 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
michael@325 204 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
michael@325 205 %if "%{with_perl}" == "yes"
michael@325 206 find ${RPM_BUILD_ROOT}${l_prefix} -name .packlist -print | xargs rm -f
michael@325 207 %endif
michael@325 208
michael@325 209 # install run-command script
michael@325 210 %{l_shtool} mkdir -f -p -m 755 \
michael@325 211 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@325 212 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@325 213 %{SOURCE rc.snmp} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@325 214
michael@325 215 # install OSSP fsl configuration
michael@325 216 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
michael@325 217 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@325 218 %{SOURCE fsl.snmp} \
michael@325 219 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
michael@325 220
michael@325 221 # determine installation files
michael@325 222 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@325 223 %{l_files_std} \
michael@325 224 '%config %{l_prefix}/etc/fsl/fsl.snmp' \
michael@325 225 '%config %{l_prefix}/etc/snmp/*.conf'
michael@325 226
michael@325 227 %files -f files
michael@325 228
michael@325 229 %clean
michael@326 230 rm -rf $RPM_BUILD_ROOT
michael@325 231
michael@325 232 %post
michael@325 233 # after upgrade, restart service
michael@325 234 [ $1 -eq 2 ] || exit 0
michael@325 235 eval `%{l_rc} snmp status 2>/dev/null`
michael@325 236 [ ".$snmp_active" = .yes ] && %{l_rc} snmp restart
michael@325 237 exit 0
michael@325 238
michael@325 239 %preun
michael@325 240 # before erase, stop service and remove log files
michael@325 241 [ $1 -eq 0 ] || exit 0
michael@325 242 %{l_rc} snmp stop 2>/dev/null
michael@325 243 rm -f $RPM_INSTALL_PREFIX/var/snmp/*
michael@325 244 exit 0
michael@325 245

mercurial