snmp/snmp.spec

Fri, 07 Sep 2012 19:08:07 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 07 Sep 2012 19:08:07 +0200
changeset 667
9dacbd1d1aa2
parent 589
6db023bc5512
permissions
-rw-r--r--

Correct build configuration in Solaris subdir, correct english grammar,
remove irrelevant strip notice, introduce custom CFLAG logic, facilitate
use of Solaris Studio compiler with needed build configuration
adjustments, conditionally build 64 bit position independent code,
and accommodate tun(7) in newer Solaris releases by renaming driver
and module from conflicting 'tun' to 'vtun'. These changes include
some nonstandard 'I give up' logic causing out of tree builds by
manipulating the PATH, for example.

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