snmp/snmp.spec

Fri, 10 Aug 2012 14:12:46 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 10 Aug 2012 14:12:46 +0200
changeset 505
0838649dd325
parent 353
198005e4aad2
child 588
300d43423c2e
permissions
-rw-r--r--

Import package vendor original specs for necessary manipulations.

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

mercurial