snmp/snmp.spec

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 589
6db023bc5512
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

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@589 35 Release: 20120800
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@636 57 BuildPreReq: OpenPKG, openpkg >= 20100101, gcc, make
michael@589 58 PreReq: OpenPKG, openpkg >= 20100101
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@325 69
michael@325 70 %description
michael@325 71 This is a toolkit relating to the Simple Network Management Protocol
michael@325 72 (SNMP), including an extensible agent, an SNMP library, tools to
michael@325 73 request or set information from SNMP agents, tools to generate and
michael@325 74 handle SNMP traps, a version of the unix 'netstat' command using
michael@325 75 SNMP, etc.
michael@325 76
michael@325 77 %track
michael@325 78 prog snmp = {
michael@325 79 version = %{version}
michael@325 80 url = http://sourceforge.net/projects/net-snmp/files/
michael@325 81 regex = net-snmp-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz
michael@325 82 }
michael@325 83
michael@325 84 %prep
michael@325 85 # unpack and patch package
michael@325 86 %setup -q -n net-snmp-%{version}
michael@325 87 %patch -p0
michael@384 88 %patch -p0 -P 1
michael@588 89 %patch -p0 -P 2
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@636 172 %{l_make} %{l_mflags -O} touchit
michael@636 173 %{l_make} %{l_mflags -O}
michael@325 174
michael@325 175 %install
michael@325 176 # install package
michael@325 177 %{l_shtool} subst -v \
michael@325 178 -e "s;^\\(prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 179 -e "s;^\\(exec_prefix.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix};g" \
michael@325 180 -e "s;^\\(persistentdir.*=\\).*;\\1 $RPM_BUILD_ROOT%{l_prefix}/var/snmp;g" \
michael@325 181 `find . -type f -name Makefile -print`
michael@325 182 %{l_make} %{l_mflags} install
michael@325 183
michael@325 184 # create additional directories
michael@325 185 %{l_shtool} mkdir -f -p -m 755 \
michael@325 186 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 187 $RPM_BUILD_ROOT%{l_prefix}/var/snmp \
michael@325 188 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@325 189 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp
michael@325 190
michael@325 191 # install default configuration
michael@325 192 %{l_shtool} install -c -m 644 \
michael@325 193 %{SOURCE snmpd.conf} %{SOURCE snmptrapd.conf} \
michael@325 194 $RPM_BUILD_ROOT%{l_prefix}/etc/snmp/
michael@325 195
michael@325 196 # strip down installation
michael@325 197 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 198 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/ipf-mod.pl
michael@325 199 ln $RPM_BUILD_ROOT%{l_prefix}/bin/snmptrap \
michael@325 200 $RPM_BUILD_ROOT%{l_prefix}/bin/snmpinform
michael@325 201 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
michael@325 202 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
michael@325 203 %if "%{with_perl}" == "yes"
michael@325 204 find ${RPM_BUILD_ROOT}${l_prefix} -name .packlist -print | xargs rm -f
michael@325 205 %endif
michael@325 206
michael@325 207 # install run-command script
michael@325 208 %{l_shtool} mkdir -f -p -m 755 \
michael@325 209 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@325 210 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@325 211 %{SOURCE rc.snmp} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@325 212
michael@325 213 # install OSSP fsl configuration
michael@325 214 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
michael@325 215 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@325 216 %{SOURCE fsl.snmp} \
michael@325 217 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
michael@325 218
michael@325 219 # determine installation files
michael@325 220 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@325 221 %{l_files_std} \
michael@325 222 '%config %{l_prefix}/etc/fsl/fsl.snmp' \
michael@325 223 '%config %{l_prefix}/etc/snmp/*.conf'
michael@325 224
michael@325 225 %files -f files
michael@325 226
michael@325 227 %clean
michael@325 228
michael@325 229 %post
michael@325 230 # after upgrade, restart service
michael@325 231 [ $1 -eq 2 ] || exit 0
michael@325 232 eval `%{l_rc} snmp status 2>/dev/null`
michael@325 233 [ ".$snmp_active" = .yes ] && %{l_rc} snmp restart
michael@325 234 exit 0
michael@325 235
michael@325 236 %preun
michael@325 237 # before erase, stop service and remove log files
michael@325 238 [ $1 -eq 0 ] || exit 0
michael@325 239 %{l_rc} snmp stop 2>/dev/null
michael@325 240 rm -f $RPM_INSTALL_PREFIX/var/snmp/*
michael@325 241 exit 0
michael@325 242

mercurial