1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
10 groups = Networking/Daemons
11 url = http://isc.org/products/DHCP/
13 summary = Dynamic host configuration protocol software.
16 DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
17 individual devices on an IP network to get their own network
18 configuration information (IP address, subnetmask, broadcast address,
19 etc.) from a DHCP server. The overall purpose of DHCP is to make it
20 easier to administer a large network.
23 source_dl = ftp://ftp.isc.org/isc/dhcp/
25 # Apply patches in a special order.
27 dhcp-4.2.2-remove-bind.patch \
28 dhcp-4.2.0-errwarn-message.patch \
29 dhcp-4.2.2-options.patch \
30 dhcp-4.2.0-release-by-ifup.patch \
31 dhcp-4.2.0-dhclient-decline-backoff.patch \
32 dhcp-4.2.0-unicast-bootp.patch \
33 dhcp-4.2.2-dhclient-usage.patch \
34 dhcp-4.2.0-default-requested-options.patch \
35 dhcp-4.2.2-xen-checksum.patch \
36 dhcp-4.2.1-manpages.patch \
37 dhcp-4.2.0-paths.patch \
38 dhcp-4.2.2-CLOEXEC.patch \
39 dhcp-4.2.0-inherit-leases.patch \
40 dhcp-4.2.0-garbage-chars.patch \
41 dhcp-4.2.0-missing-ipv6-not-fatal.patch \
42 dhcp-4.2.0-add_timeout_when_NULL.patch \
43 dhcp-4.2.1-64_bit_lease_parse.patch \
44 dhcp-4.2.2-capability.patch \
45 dhcp-4.2.0-logpid.patch \
46 dhcp-4.2.0-UseMulticast.patch \
47 dhcp-4.2.1-sendDecline.patch \
48 dhcp-4.2.1-retransmission.patch \
49 dhcp-4.2.2-rfc3442-classless-static-routes.patch \
50 dhcp-4.2.0-honor-expired.patch \
51 dhcp-4.2.0-noprefixavail.patch \
52 dhcp-4.2.2-sharedlib.patch \
53 dhcp-4.2.0-PPP.patch \
54 dhcp-4.2.2-lpf-ib.patch \
55 dhcp-4.2.2-improved-xid.patch \
56 dhcp-4.2.2-gpxe-cid.patch \
57 dhcp-4.2.2-systemtap.patch
72 -fno-strict-aliasing \
76 configure_options += \
78 --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
79 --with-srv6-lease-file=/var/lib/dhcpd/dhcp6.leases \
80 --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
81 --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases \
82 --with-srv-pid-file=/run/dhcpd.pid \
83 --with-srv6-pid-file=/run/dhcpd6.pid \
84 --with-cli-pid-file=/run/dhclient.pid \
85 --with-cli6-pid-file=/run/dhclient6.pid \
86 --with-relay-pid-file=/run/dhcrelay.pid \
89 --with-libbind=/usr/include/ \
90 --with-libbind-libs=/usr/lib/ \
96 # Remove bundled BIND source
97 rm -rvf %{DIR_APP}/bind/bind.tar.gz
99 # Regenerate build environment
100 libtoolize --copy --force
101 autoreconf --verbose --force --install
105 rm -vf %{BUILDROOT}/etc/dhclient.conf
107 # Move the client to /sbin, create dirs
108 # and remove the default config.
109 mkdir -pv %{BUILDROOT}/sbin
110 mv -v %{BUILDROOT}/usr/sbin/dhclient %{BUILDROOT}/sbin/dhclient
112 install -v -m 755 %{DIR_SOURCE}/dhclient-script \
113 %{BUILDROOT}/sbin/dhclient-script
115 # Create runtime folders.
116 mkdir -pv %{BUILDROOT}/var/lib/dhclient
117 mkdir -pv %{BUILDROOT}/var/lib/dhcpd
119 # Create empty lease files.
120 touch %{BUILDROOT}/var/lib/dhclient/dhclient.leases
121 touch %{BUILDROOT}/var/lib/dhclient/dhclient6.leases
122 touch %{BUILDROOT}/var/lib/dhcpd/dhcpd.leases
123 touch %{BUILDROOT}/var/lib/dhcpd/dhcpd6.leases
134 prerequires += shadow-utils
137 getent group dhcpd >/dev/null || groupadd -r dhcpd
138 getent passwd dhcpd >/dev/null || \
139 useradd -r -g dhcpd -d /var/lib/dhcpd -s /sbin/nologin \
140 -c "User for the DHCP server" dhcpd
144 # Just search for new unit files that were just installed.
146 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
149 # Disable the service that is to be removed and stop it if it is still running.
151 /bin/systemctl --no-reload disable dhcpd.service >/dev/null 2>&1 || :
152 /bin/systemctl --no-reload disable dhcpd6.service >/dev/null 2>&1 || :
153 /bin/systemctl --no-reload disable dhcrelay.service >/dev/null 2>&1 || :
154 /bin/systemctl stop dhcpd.service >/dev/null 2>&1 || :
155 /bin/systemctl stop dhcpd6.service >/dev/null 2>&1 || :
156 /bin/systemctl stop dhcrelay.service >/dev/null 2>&1 || :
159 # Just tell systemd that unitfiles have been removed.
161 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
164 # Try to restart the service if it is running.
166 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
167 /bin/systemctl try-restart dhcpd.service >/dev/null 2>&1 || :
168 /bin/systemctl try-restart dhcpd6.service >/dev/null 2>&1 || :
169 /bin/systemctl try-restart dhcrelay.service >/dev/null 2>&1 || :
174 summary = DHCP client daemon and dhclient-script.
175 description = %{summary}
183 /usr/share/man/man5/dhclient*
184 /usr/share/man/man8/dhclient*
189 package %{name}-common
190 summary = Common files used by the dhcp client and server.
191 description = %{summary}
195 /usr/share/man/man1/omshell.1*
196 /usr/share/man/man5/dhcp-options.5*
197 /usr/share/man/man5/dhcp-eval.5*
205 package %{name}-devel
209 package %{name}-debuginfo