michael@13: ## michael@13: ## dhcpd.spec -- OpenPKG RPM Package Specification michael@354: ## Copyright (c) 2000-2011 OpenPKG Foundation e.V. michael@13: ## michael@13: ## Permission to use, copy, modify, and distribute this software for michael@13: ## any purpose with or without fee is hereby granted, provided that michael@13: ## the above copyright notice and this permission notice appear in all michael@13: ## copies. michael@13: ## michael@13: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@13: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@13: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@13: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@13: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@13: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@13: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@13: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@13: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@13: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@13: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@13: ## SUCH DAMAGE. michael@13: ## michael@13: michael@354: # package version michael@355: %define V_opkg 4.2.2 michael@355: %define V_dist 4.2.2 michael@354: michael@13: # package information michael@13: Name: dhcpd michael@13: Summary: DHCP Daemon michael@13: URL: http://www.isc.org/products/DHCP/ michael@13: Vendor: Internet Software Consortium michael@13: Packager: OpenPKG Foundation e.V. michael@13: Distribution: OpenPKG Community michael@13: Class: BASE michael@13: Group: DHCP michael@13: License: ISC/BSD michael@354: Version: %{V_opkg} michael@355: Release: 20110914 michael@13: michael@13: # package options michael@13: %option with_fsl yes michael@13: michael@13: # list of sources michael@354: Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{V_dist}.tar.gz michael@13: Source1: dhcpd.conf michael@13: Source2: rc.dhcpd michael@13: Source3: fsl.dhcpd michael@354: Patch0: dhcpd.patch michael@13: michael@13: # build information michael@13: Prefix: %{l_prefix} michael@13: BuildRoot: %{l_buildroot} michael@13: BuildPreReq: OpenPKG, openpkg >= 20060823 michael@13: PreReq: OpenPKG, openpkg >= 20060823 michael@354: BuildPreReq: openssl michael@354: PreReq: openssl michael@13: %if "%{with_fsl}" == "yes" michael@13: BuildPreReq: fsl michael@13: PreReq: fsl michael@13: %endif michael@13: AutoReq: no michael@13: AutoReqProv: no michael@13: michael@13: %description michael@13: This is the ISC DHCP daemon reference implementation. michael@13: michael@13: %track michael@13: prog dhcpd = { michael@354: version = %{V_dist} michael@13: url = ftp://ftp.isc.org/isc/dhcp/ michael@13: regex = dhcp-(\d+\.\d+\.\d+)\.tar\.gz michael@13: } michael@13: michael@13: %prep michael@354: %setup -q -n dhcp-%{V_dist} michael@355: ( echo "/* Placeholder to remove conflicting symbol 'struct option' */" michael@355: echo "/* which is sometimes present in both getopt.h and tree.h */" michael@355: ) >includes/getopt.h michael@354: %patch -p0 michael@13: michael@13: %build michael@13: # configure program michael@13: %{l_shtool} subst \ michael@13: -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_PID[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/run/dhcpd.pid";' \ michael@13: -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_DB[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/db/dhcpd.leases";' \ michael@13: -e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_CONF[^"]*\).*;\1 "%{l_prefix}/etc/dhcpd/dhcpd.conf";' \ michael@13: includes/site.h michael@13: CC="%{l_cc}" \ michael@13: CFLAGS="%{l_cflags -O}" \ michael@13: CPPFLAGS="%{l_cppflags} -DNOMINUM" \ michael@13: LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \ michael@13: LIBS="%{l_fsl_libs}" \ michael@13: ./configure \ michael@13: --prefix=%{l_prefix} \ michael@13: --mandir=%{l_prefix}/man \ michael@13: --sysconfdir=%{l_prefix}/etc/dhcpd \ michael@13: --localstatedir=%{l_prefix}/var/dhcpd \ michael@13: --with-srv-lease-file=%{l_prefix}/var/dhcpd/db/dhcpd.leases \ michael@13: --with-cli-lease-file=%{l_prefix}/var/dhcpd/db/dhclient.leases \ michael@13: --with-srv-pid-file=%{l_prefix}/var/dhcpd/run/dhcpd.pid \ michael@13: --with-cli-pid-file=%{l_prefix}/var/dhcpd/run/dhclient.pid \ michael@354: --with-relay-pid-file=%{l_prefix}/var/dhcpd/run/dhrelay.pid \ michael@354: --disable-dhcpv6 michael@13: michael@13: # build program michael@13: %{l_make} %{l_mflags} michael@13: michael@13: %install michael@354: # clean up build cruft michael@354: rm -rf $RPM_BUILD_ROOT michael@354: michael@13: # install program michael@13: %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT michael@13: michael@13: # install default configuration michael@13: %{l_shtool} install -c -m 644 \ michael@13: %{SOURCE dhcpd.conf} \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/etc/dhcpd/dhcpd.conf michael@13: michael@13: # post-adjust and strip down installation michael@13: rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/dhclient-script michael@13: rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/dhclient-script.8 michael@13: strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true michael@13: strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* 2>/dev/null || true michael@13: michael@13: # install run-command script michael@13: %{l_shtool} mkdir -f -p -m 755 \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d michael@13: %{l_shtool} install -c -m 755 %{l_value -s -a} \ michael@13: %{SOURCE rc.dhcpd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ michael@13: michael@13: # install OSSP fsl configuration michael@13: %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl michael@13: %{l_shtool} install -c -m 644 %{l_value -s -a} \ michael@13: %{SOURCE fsl.dhcpd} \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ michael@13: michael@13: # create run-time directories michael@13: %{l_shtool} mkdir -f -p -m 755 \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/db \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/run \ michael@13: $RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/log michael@13: michael@13: # determine installation files michael@13: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ michael@13: %{l_files_std} \ michael@13: '%config %{l_prefix}/etc/fsl/fsl.dhcpd' \ michael@13: '%config %{l_prefix}/etc/dhcpd/*' michael@13: michael@13: %files -f files michael@13: michael@13: %clean michael@13: rm -rf $RPM_BUILD_ROOT michael@13: michael@13: %post michael@13: if [ $1 -eq 1 ]; then michael@13: # display final hints on initial installation michael@13: ( echo "Before starting DHCP daemon, please set the configuration variable" michael@13: echo "\"dhcpd_if\" in $RPM_INSTALL_PREFIX/etc/rc.conf to the name of the" michael@13: echo "used network interface." michael@13: ) | %{l_rpmtool} msg -b -t notice michael@13: fi michael@13: michael@13: # after upgrade, restart service michael@13: [ $1 -eq 2 ] || exit 0 michael@13: eval `%{l_rc} dhcpd status 2>/dev/null` michael@13: [ ".$dhcpd_active" = .yes ] && %{l_rc} dhcpd restart michael@13: exit 0 michael@13: michael@13: %preun michael@13: # before erase, stop service and remove log files michael@13: [ $1 -eq 0 ] || exit 0 michael@13: %{l_rc} dhcpd stop 2>/dev/null michael@13: rm -f $RPM_INSTALL_PREFIX/var/dhcpd/db/* >/dev/null 2>&1 || true michael@13: rm -f $RPM_INSTALL_PREFIX/var/dhcpd/run/* >/dev/null 2>&1 || true michael@13: exit 0 michael@13: