You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

169 lines
5.9 KiB

##
## dhcpd.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2004 The OpenPKG Project <http://www.openpkg.org/>
## Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
## Copyright (c) 2000-2004 Cable & Wireless <http://www.cw.com/>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: dhcpd
Summary: DHCP Daemon
URL: http://www.isc.org/products/DHCP/
Vendor: Internet Software Consortium
Packager: The OpenPKG Project
Distribution: OpenPKG [BASE]
Group: DNS
License: ISC/BSD
Version: 3.0.1rc12
Release: 20031031
# package options
%option with_fsl yes
# list of sources
Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{version}.tar.gz
Source1: dhcpd.conf
Source2: rc.dhcpd
Source3: fsl.dhcpd
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20030718
PreReq: OpenPKG, openpkg >= 20030718
%if "%{with_fsl}" == "yes"
BuildPreReq: fsl >= 1.2.0
PreReq: fsl >= 1.2.0
%endif
AutoReq: no
AutoReqProv: no
%description
This is the ISC DHCP daemon reference implementation.
%prep
%setup -q -n dhcp-%{version}
%build
# configure program
( echo 'CC = %{l_cc}'
echo 'CFLAGS = %{l_cflags -O}'
%if "%{with_fsl}" == "yes"
echo 'LDFLAGS = %{l_fsl_ldflags}'
echo 'LIBS = %{l_fsl_ldflags} %{l_fsl_libs}'
%endif
echo 'USERBINDIR = %{l_prefix}/bin'
echo 'BINDIR = %{l_prefix}/sbin'
echo 'CLIENTBINDIR = %{l_prefix}/sbin'
echo 'ADMMANDIR = %{l_prefix}/man/man8'
echo 'ADMMANEXT = .8'
echo 'FFMANDIR = %{l_prefix}/man/man5'
echo 'FFMANEXT = .5'
echo 'LIBMANDIR = %{l_prefix}/man/man3'
echo 'LIBMANEXT = .3'
echo 'MANCAT = man'
echo 'ETC = %{l_prefix}/etc/dhcpd'
echo 'VARRUN = %{l_prefix}/var/dhcpd'
echo 'VARDB = %{l_prefix}/var/dhcpd'
echo 'LIBDIR = %{l_prefix}/lib'
echo 'INCDIR = %{l_prefix}/include/dhcpd'
echo 'INSTALL = %{l_shtool} install -c'
echo 'MANINSTALL = %{l_shtool} install -c'
) >>site.conf
%{l_shtool} subst \
-e 's; -Werror; ;' \
Makefile.conf
./configure
%{l_shtool} subst \
-e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_PID[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/dhcpd.pid";' \
-e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_DB[^"]*\).*;\1 "%{l_prefix}/var/dhcpd/dhcpd.leases";' \
-e 's;^[^#]*\(#define[^_]*_PATH_DHCPD_CONF[^"]*\).*;\1 "%{l_prefix}/etc/dhcpd/dhcpd.conf";' \
includes/site.h
# build program
%{l_make} %{l_mflags}
%install
# install program
rm -rf $RPM_BUILD_ROOT
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/etc/dhcpd \
$RPM_BUILD_ROOT%{l_prefix}/man/man5 \
$RPM_BUILD_ROOT%{l_prefix}/man/man8 \
$RPM_BUILD_ROOT%{l_prefix}/var/dhcpd
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
# install default configuration
%{l_shtool} install -c -m 644 \
%{SOURCE dhcpd.conf} \
$RPM_BUILD_ROOT%{l_prefix}/etc/dhcpd/dhcpd.conf
# post-adjust and strip down installation
chmod a-x $RPM_BUILD_ROOT%{l_prefix}/man/man*/*
rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/dhclient-script
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/dhclient-script.8
rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man3
rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib
rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true
%{l_shtool} install -c -m 644 /dev/null \
$RPM_BUILD_ROOT%{l_prefix}/var/dhcpd/dhcpd.leases
# install run-command script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.dhcpd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install OSSP fsl configuration
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE fsl.dhcpd} \
$RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%not %dir %{l_prefix}/etc/fsl' \
'%config %{l_prefix}/etc/fsl/fsl.dhcpd' \
'%config %{l_prefix}/etc/dhcpd/dhcpd.conf'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
# after upgrade, restart service
[ $1 -eq 2 ] || exit 0
eval `%{l_rc} dhcpd status 2>/dev/null`
[ ".$dhcpd_active" = .yes ] && %{l_rc} dhcpd restart
exit 0
%preun
# before erase, stop service and remove log files
[ $1 -eq 0 ] || exit 0
%{l_rc} dhcpd stop 2>/dev/null
rm -f $RPM_INSTALL_PREFIX/var/dhcpd/dhcpd.log* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/dhcpd/dhcpd.leases~ >/dev/null 2>&1 || true
exit 0