dhcpd/dhcpd.spec

Tue, 28 Aug 2012 18:36:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:36:35 +0200
changeset 579
6b18bb69901e
parent 354
4ca17af53013
child 604
87d3ada2f769
permissions
-rw-r--r--

Correct the paths of patched scripts, refine password generation,
mitigate fdatasync(2) detection problems, correct dependencies, remove
outdated autoconf components, correct conf file paths and attributes,
complete and correct log file rotation handing, and note warnings
useful for diagnosing builds.

michael@13 1 ##
michael@13 2 ## dhcpd.spec -- OpenPKG RPM Package Specification
michael@354 3 ## Copyright (c) 2000-2011 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@13 4 ##
michael@13 5 ## Permission to use, copy, modify, and distribute this software for
michael@13 6 ## any purpose with or without fee is hereby granted, provided that
michael@13 7 ## the above copyright notice and this permission notice appear in all
michael@13 8 ## copies.
michael@13 9 ##
michael@13 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@13 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@13 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@13 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@13 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@13 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@13 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@13 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@13 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@13 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@13 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@13 21 ## SUCH DAMAGE.
michael@13 22 ##
michael@13 23
michael@354 24 # package version
michael@355 25 %define V_opkg 4.2.2
michael@355 26 %define V_dist 4.2.2
michael@354 27
michael@13 28 # package information
michael@13 29 Name: dhcpd
michael@13 30 Summary: DHCP Daemon
michael@13 31 URL: http://www.isc.org/products/DHCP/
michael@13 32 Vendor: Internet Software Consortium
michael@13 33 Packager: OpenPKG Foundation e.V.
michael@13 34 Distribution: OpenPKG Community
michael@13 35 Class: BASE
michael@13 36 Group: DHCP
michael@13 37 License: ISC/BSD
michael@354 38 Version: %{V_opkg}
michael@355 39 Release: 20110914
michael@13 40
michael@13 41 # package options
michael@13 42 %option with_fsl yes
michael@13 43
michael@13 44 # list of sources
michael@354 45 Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{V_dist}.tar.gz
michael@13 46 Source1: dhcpd.conf
michael@13 47 Source2: rc.dhcpd
michael@13 48 Source3: fsl.dhcpd
michael@354 49 Patch0: dhcpd.patch
michael@13 50
michael@13 51 # build information
michael@13 52 Prefix: %{l_prefix}
michael@13 53 BuildRoot: %{l_buildroot}
michael@13 54 BuildPreReq: OpenPKG, openpkg >= 20060823
michael@13 55 PreReq: OpenPKG, openpkg >= 20060823
michael@354 56 BuildPreReq: openssl
michael@354 57 PreReq: openssl
michael@13 58 %if "%{with_fsl}" == "yes"
michael@13 59 BuildPreReq: fsl
michael@13 60 PreReq: fsl
michael@13 61 %endif
michael@13 62 AutoReq: no
michael@13 63 AutoReqProv: no
michael@13 64
michael@13 65 %description
michael@13 66 This is the ISC DHCP daemon reference implementation.
michael@13 67
michael@13 68 %track
michael@13 69 prog dhcpd = {
michael@354 70 version = %{V_dist}
michael@13 71 url = ftp://ftp.isc.org/isc/dhcp/
michael@13 72 regex = dhcp-(\d+\.\d+\.\d+)\.tar\.gz
michael@13 73 }
michael@13 74
michael@13 75 %prep
michael@354 76 %setup -q -n dhcp-%{V_dist}
michael@355 77 ( echo "/* Placeholder to remove conflicting symbol 'struct option' */"
michael@355 78 echo "/* which is sometimes present in both getopt.h and tree.h */"
michael@355 79 ) >includes/getopt.h
michael@354 80 %patch -p0
michael@13 81
michael@13 82 %build
michael@13 83 # configure program
michael@13 84 %{l_shtool} subst \
michael@13 85 -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_PID[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/run/dhcpd.pid";' \
michael@13 86 -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_DB[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/db/dhcpd.leases";' \
michael@13 87 -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_CONF[^"]*\).*;\1 "%{l_prefix}/etc/dhcpd/dhcpd.conf";' \
michael@13 88 includes/site.h
michael@13 89 CC="%{l_cc}" \
michael@13 90 CFLAGS="%{l_cflags -O}" \
michael@13 91 CPPFLAGS="%{l_cppflags} -DNOMINUM" \
michael@13 92 LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \
michael@13 93 LIBS="%{l_fsl_libs}" \
michael@13 94 ./configure \
michael@13 95 --prefix=%{l_prefix} \
michael@13 96 --mandir=%{l_prefix}/man \
michael@13 97 --sysconfdir=%{l_prefix}/etc/dhcpd \
michael@13 98 --localstatedir=%{l_prefix}/var/dhcpd \
michael@13 99 --with-srv-lease-file=%{l_prefix}/var/dhcpd/db/dhcpd.leases \
michael@13 100 --with-cli-lease-file=%{l_prefix}/var/dhcpd/db/dhclient.leases \
michael@13 101 --with-srv-pid-file=%{l_prefix}/var/dhcpd/run/dhcpd.pid \
michael@13 102 --with-cli-pid-file=%{l_prefix}/var/dhcpd/run/dhclient.pid \
michael@354 103 --with-relay-pid-file=%{l_prefix}/var/dhcpd/run/dhrelay.pid \
michael@354 104 --disable-dhcpv6
michael@13 105
michael@13 106 # build program
michael@13 107 %{l_make} %{l_mflags}
michael@13 108
michael@13 109 %install
michael@354 110 # clean up build cruft
michael@354 111 rm -rf $RPM_BUILD_ROOT
michael@354 112
michael@13 113 # install program
michael@13 114 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
michael@13 115
michael@13 116 # install default configuration
michael@13 117 %{l_shtool} install -c -m 644 \
michael@13 118 %{SOURCE dhcpd.conf} \
michael@13 119 $RPM_BUILD_ROOT%{l_prefix}/etc/dhcpd/dhcpd.conf
michael@13 120
michael@13 121 # post-adjust and strip down installation
michael@13 122 rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/dhclient-script
michael@13 123 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/dhclient-script.8
michael@13 124 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true
michael@13 125 strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* 2>/dev/null || true
michael@13 126
michael@13 127 # install run-command script
michael@13 128 %{l_shtool} mkdir -f -p -m 755 \
michael@13 129 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@13 130 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@13 131 %{SOURCE rc.dhcpd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@13 132
michael@13 133 # install OSSP fsl configuration
michael@13 134 %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
michael@13 135 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@13 136 %{SOURCE fsl.dhcpd} \
michael@13 137 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
michael@13 138
michael@13 139 # create run-time directories
michael@13 140 %{l_shtool} mkdir -f -p -m 755 \
michael@13 141 $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/db \
michael@13 142 $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/run \
michael@13 143 $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/log
michael@13 144
michael@13 145 # determine installation files
michael@13 146 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@13 147 %{l_files_std} \
michael@13 148 '%config %{l_prefix}/etc/fsl/fsl.dhcpd' \
michael@13 149 '%config %{l_prefix}/etc/dhcpd/*'
michael@13 150
michael@13 151 %files -f files
michael@13 152
michael@13 153 %clean
michael@13 154 rm -rf $RPM_BUILD_ROOT
michael@13 155
michael@13 156 %post
michael@13 157 if [ $1 -eq 1 ]; then
michael@13 158 # display final hints on initial installation
michael@13 159 ( echo "Before starting DHCP daemon, please set the configuration variable"
michael@13 160 echo "\"dhcpd_if\" in $RPM_INSTALL_PREFIX/etc/rc.conf to the name of the"
michael@13 161 echo "used network interface."
michael@13 162 ) | %{l_rpmtool} msg -b -t notice
michael@13 163 fi
michael@13 164
michael@13 165 # after upgrade, restart service
michael@13 166 [ $1 -eq 2 ] || exit 0
michael@13 167 eval `%{l_rc} dhcpd status 2>/dev/null`
michael@13 168 [ ".$dhcpd_active" = .yes ] && %{l_rc} dhcpd restart
michael@13 169 exit 0
michael@13 170
michael@13 171 %preun
michael@13 172 # before erase, stop service and remove log files
michael@13 173 [ $1 -eq 0 ] || exit 0
michael@13 174 %{l_rc} dhcpd stop 2>/dev/null
michael@13 175 rm -f $RPM_INSTALL_PREFIX/var/dhcpd/db/* >/dev/null 2>&1 || true
michael@13 176 rm -f $RPM_INSTALL_PREFIX/var/dhcpd/run/* >/dev/null 2>&1 || true
michael@13 177 exit 0
michael@13 178

mercurial