############################################################################### # IPFire.org - An Open Source Firewall Solution # # Copyright (C) - IPFire Development Team # ############################################################################### name = dhcp version = 4.2.5 release = 1 groups = Networking/Daemons url = http://isc.org/products/DHCP/ license = ISC summary = Dynamic host configuration protocol software. description 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 easier to administer a large network. end source_dl = ftp://ftp.isc.org/isc/dhcp/%{version}/ # Apply patches in a special order. patches = \ dhcp-4.2.5-remove-bind.patch \ dhcp-4.2.4-P1-remove-dst.patch \ dhcp-4.2.0-errwarn-message.patch \ dhcp-4.2.4-dhclient-options.patch \ dhcp-4.2.0-release-by-ifup.patch \ dhcp-4.2.0-dhclient-decline-backoff.patch \ dhcp-4.2.4-unicast-bootp.patch \ dhcp-4.2.0-default-requested-options.patch \ dhcp-4.2.2-xen-checksum.patch \ dhcp-4.2.5-manpages.patch \ dhcp-4.2.4-paths.patch \ dhcp-4.2.2-CLOEXEC.patch \ dhcp-4.2.0-garbage-chars.patch \ dhcp-4.2.0-add_timeout_when_NULL.patch \ dhcp-4.2.4-64_bit_lease_parse.patch \ dhcp-4.2.2-capability.patch \ dhcp-4.2.0-logpid.patch \ dhcp-4.2.4-UseMulticast.patch \ dhcp-4.2.5-sendDecline.patch \ dhcp-4.2.1-retransmission.patch \ dhcp-4.2.5-rfc3442-classless-static-routes.patch \ dhcp-4.2.0-honor-expired.patch \ dhcp-4.2.5-sharedlib.patch \ dhcp-4.2.5-PPP.patch \ dhcp-4.2.5-paranoia.patch \ dhcp-4.2.5-lpf-ib.patch \ dhcp-4.2.4-improved-xid.patch \ dhcp-4.2.2-gpxe-cid.patch \ dhcp-4.2.5-systemtap.patch \ dhcp-4.2.3-dhclient-decline-onetry.patch \ dhcp-4.2.3-P2-log_perror.patch \ dhcp-4.2.4-getifaddrs.patch \ dhcp-4.2.4-send_release.patch \ dhcp-4.2.5-rfc5970-dhcpv6-options-for-network-boot.patch \ dhcp-4.2.4-failOverPeer.patch \ dhcp-4.2.5b1-atf-pkgconfig.patch \ dhcp-4.2.4-P1-interval.patch \ dhcp-4.2.4-P2-conflex-do-forward-updates.patch \ dhcp-4.2.4-P2-dupl-key.patch \ dhcp-4.2.5-range6.patch \ dhcp-4.2.5-next-server.patch build requires autoconf automake bind-devel>=9 bind-devel<10 groff libtool openldap-devel libcap-ng-devel systemd-units end CFLAGS += -fno-strict-aliasing configure_options += \ --sysconfdir=%{sysconfdir}/dhcp \ --with-srv-lease-file=/var/lib/dhcpd/dhcpd.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-srv6-pid-file=/run/dhcpd6.pid \ --with-cli-pid-file=/run/dhclient.pid \ --with-cli6-pid-file=/run/dhclient6.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 prepare_cmds # Remove bundled BIND source rm -rvf %{DIR_APP}/bind/bind.tar.gz # Remove dst. rm -rvf dst includes/isc-dhcp # Regenerate build environment #libtoolize --copy --force autoreconf --verbose --force --install end install_cmds rm -vf %{BUILDROOT}%{sysconfdir}/dhcp/dhclient.conf # Create runtime folders. mkdir -pv %{BUILDROOT}/var/lib/dhclient mkdir -pv %{BUILDROOT}/var/lib/dhcpd # Create empty lease files. touch %{BUILDROOT}/var/lib/dhclient/dhclient.leases touch %{BUILDROOT}/var/lib/dhclient/dhclient6.leases touch %{BUILDROOT}/var/lib/dhcpd/dhcpd.leases touch %{BUILDROOT}/var/lib/dhcpd/dhcpd6.leases end end packages package %{name} requires 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 end # Just search for new unit files that were just installed. script postin /bin/systemctl daemon-reload >/dev/null 2>&1 || : end # Disable the service that is to be removed and stop it if it is still running. script preun /bin/systemctl --no-reload disable dhcpd.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable dhcpd6.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable dhcrelay.service >/dev/null 2>&1 || : /bin/systemctl stop dhcpd.service >/dev/null 2>&1 || : /bin/systemctl stop dhcpd6.service >/dev/null 2>&1 || : /bin/systemctl stop dhcrelay.service >/dev/null 2>&1 || : end # Just tell systemd that unitfiles have been removed. script postun /bin/systemctl daemon-reload >/dev/null 2>&1 || : end # Try to restart the service if it is running. script postup /bin/systemctl daemon-reload >/dev/null 2>&1 || : /bin/systemctl try-restart dhcpd.service >/dev/null 2>&1 || : /bin/systemctl try-restart dhcpd6.service >/dev/null 2>&1 || : /bin/systemctl try-restart dhcrelay.service >/dev/null 2>&1 || : end end package dhclient summary = DHCP client daemon and dhclient-script. description = %{summary} requires dhcp-common = %{thisver} dhcp-libs = %{thisver} %{sbindir}/dhclient-script end files %{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* /usr/share/man/man5/dhcp-options.5* /usr/share/man/man5/dhcp-eval.5* end end package %{name}-libs template LIBS end package %{name}-devel template DEVEL end package %{name}-debuginfo template DEBUGINFO end end