###############################################################################
name = dhcp
-version = 4.2.2
+version = 4.4.1
release = 1
groups = Networking/Daemons
DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
individual devices on an IP network to get their own network
configuration information (IP address, subnetmask, broadcast address,
- etc.) from a DHCP server. The overall purpose of DHCP is to make it
+ etc.) from a DHCP server. The overall purpose of DHCP is to make it
easier to administer a large network.
end
-source_dl = ftp://ftp.isc.org/isc/dhcp/
-
-# Apply patches in a special order.
-patches = \
- dhcp-4.2.2-remove-bind.patch \
- dhcp-4.2.0-errwarn-message.patch \
- dhcp-4.2.2-options.patch \
- dhcp-4.2.0-release-by-ifup.patch \
- dhcp-4.2.0-dhclient-decline-backoff.patch \
- dhcp-4.2.0-unicast-bootp.patch \
- dhcp-4.2.2-dhclient-usage.patch \
- dhcp-4.2.0-default-requested-options.patch \
- dhcp-4.2.2-xen-checksum.patch \
- dhcp-4.2.1-manpages.patch \
- dhcp-4.2.0-paths.patch \
- dhcp-4.2.2-CLOEXEC.patch \
- dhcp-4.2.0-inherit-leases.patch \
- dhcp-4.2.0-garbage-chars.patch \
- dhcp-4.2.0-missing-ipv6-not-fatal.patch \
- dhcp-4.2.0-add_timeout_when_NULL.patch \
- dhcp-4.2.1-64_bit_lease_parse.patch \
- dhcp-4.2.2-capability.patch \
- dhcp-4.2.0-logpid.patch \
- dhcp-4.2.0-UseMulticast.patch \
- dhcp-4.2.1-sendDecline.patch \
- dhcp-4.2.1-retransmission.patch \
- dhcp-4.2.2-rfc3442-classless-static-routes.patch \
- dhcp-4.2.0-honor-expired.patch \
- dhcp-4.2.0-noprefixavail.patch \
- dhcp-4.2.2-sharedlib.patch \
- dhcp-4.2.0-PPP.patch \
- dhcp-4.2.2-lpf-ib.patch \
- dhcp-4.2.2-improved-xid.patch \
- dhcp-4.2.2-gpxe-cid.patch \
- dhcp-4.2.2-systemtap.patch
+source_dl = ftp://ftp.isc.org/isc/dhcp/%{version}/
build
requires
autoconf
automake
- bind-devel>=9
+ bind-devel>=9.9.9-P6
bind-devel<10
groff
libtool
openldap-devel
libcap-ng-devel
+ systemd-devel
end
- CFLAGS += \
- -fno-strict-aliasing \
- -D_GNU_SOURCE \
- -Wl,--as-needed
+ CFLAGS += -fno-strict-aliasing
+
+ PARALLELISMFLAGS = # No parallel build.
configure_options += \
- --sysconfdir=/etc \
+ --sysconfdir=%{sysconfdir}/dhcp \
--with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
- --with-srv6-lease-file=/var/lib/dhcpd/dhcp6.leases \
+ --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases \
--with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
--with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases \
--with-srv-pid-file=/run/dhcpd.pid \
--with-relay-pid-file=/run/dhcrelay.pid \
--with-ldap \
--with-ldapcrypto \
- --with-libbind=/usr/include/ \
- --with-libbind-libs=/usr/lib/ \
--disable-static \
--enable-paranoia \
- --enable-early-chroot
+ --enable-early-chroot \
+ --enable-binary-leases \
+ --with-systemd
prepare_cmds
- # Remove bundled BIND source
- rm -rvf %{DIR_APP}/bind/bind.tar.gz
-
# Regenerate build environment
- libtoolize --copy --force
autoreconf --verbose --force --install
+
+ # Change DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
+ sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' \
+ includes/site.h
+
+ # Update PATH in all manpages
+ for page in client/dhclient.conf.5 client/dhclient.leases.5 \
+ client/dhclient-script.8 client/dhclient.8 ; do
+
+ sed -i -e 's|CLIENTBINDIR|%{sbindir}|g' \
+ -e 's|RUNDIR|/run|g' \
+ -e 's|DBDIR|%{localstatedir}/lib/dhclient|g' \
+ -e 's|ETCDIR|%{dhcpconfdir}|g' $page
+ done
+
+ for page in server/dhcpd.conf.5 server/dhcpd.leases.5 server/dhcpd.8 ; do
+ sed -i -e 's|CLIENTBINDIR|%{sbindir}|g' \
+ -e 's|RUNDIR|/run|g' \
+ -e 's|DBDIR|%{localstatedir}/lib/dhcpd|g' \
+ -e 's|ETCDIR|%{dhcpconfdir}|g' $page
+ done
end
install_cmds
- rm -vf %{BUILDROOT}/etc/dhclient.conf
-
- # Move the client to /sbin, create dirs
- # and remove the default config.
- mkdir -pv %{BUILDROOT}/sbin
- mv -v %{BUILDROOT}/usr/sbin/dhclient %{BUILDROOT}/sbin/dhclient
-
- install -v -m 755 %{DIR_SOURCE}/dhclient-script \
- %{BUILDROOT}/sbin/dhclient-script
+ rm -vf %{BUILDROOT}%{sysconfdir}/dhcp/dhclient.conf
# Create runtime folders.
mkdir -pv %{BUILDROOT}/var/lib/dhclient
packages
package %{name}
-
requires
- dhcp-common
+ dhcp-common = %{thisver}
+ dhcp-libs = %{thisver}
+ /usr/lib/network/helpers/dhcpd-config-helper
end
prerequires += shadow-utils
+ configfiles
+ %{sysconfdir}/dhcp
+ end
+
script prein
getent group dhcpd >/dev/null || groupadd -r dhcpd
getent passwd dhcpd >/dev/null || \
useradd -r -g dhcpd -d /var/lib/dhcpd -s /sbin/nologin \
-c "User for the DHCP server" dhcpd
- exit 0
end
# Just search for new unit files that were just installed.
description = %{summary}
requires
- dhcp-common
+ dhcp-common = %{thisver}
+ dhcp-libs = %{thisver}
+ %{sbindir}/dhclient-script
end
files
- /sbin
+ %{unitdir}/dhclient*.service
+ %{sbindir}/dhclient
/usr/share/man/man5/dhclient*
/usr/share/man/man8/dhclient*
/var/lib/dhclient
end
+
+ script postin
+ systemctl daemon-reload >/dev/null 2>&1 || :
+ end
+
+ script postun
+ systemctl daemon-reload >/dev/null 2>&1 || :
+ end
+
+ script postup
+ systemctl daemon-reload >/dev/null 2>&1 || :
+ end
+
end
package %{name}-common
summary = Common files used by the dhcp client and server.
description = %{summary}
-
+
+ requires
+ dhcp-libs = %{thisver}
+ end
+
files
/usr/bin/
/usr/share/man/man1/omshell.1*
package %{name}-devel
template DEVEL
end
+
+ package %{name}-debuginfo
+ template DEBUGINFO
+ end
end