[arch-commits] Commit in dhcp/repos (8 files)

Christian Hesse eworm at archlinux.org
Thu Nov 16 11:36:47 UTC 2017


    Date: Thursday, November 16, 2017 @ 11:36:47
  Author: eworm
Revision: 310047

archrelease: copy trunk to testing-x86_64

Added:
  dhcp/repos/testing-x86_64/
  dhcp/repos/testing-x86_64/0001-dhcp-honor-expired.patch
    (from rev 310046, dhcp/trunk/0001-dhcp-honor-expired.patch)
  dhcp/repos/testing-x86_64/PKGBUILD
    (from rev 310046, dhcp/trunk/PKGBUILD)
  dhcp/repos/testing-x86_64/dhclient at .service
    (from rev 310046, dhcp/trunk/dhclient at .service)
  dhcp/repos/testing-x86_64/dhcp-sysusers.conf
    (from rev 310046, dhcp/trunk/dhcp-sysusers.conf)
  dhcp/repos/testing-x86_64/dhcp.install
    (from rev 310046, dhcp/trunk/dhcp.install)
  dhcp/repos/testing-x86_64/dhcpd4.service
    (from rev 310046, dhcp/trunk/dhcpd4.service)
  dhcp/repos/testing-x86_64/dhcpd6.service
    (from rev 310046, dhcp/trunk/dhcpd6.service)

-------------------------------+
 0001-dhcp-honor-expired.patch |   49 +++++++++++++++++++
 PKGBUILD                      |  101 ++++++++++++++++++++++++++++++++++++++++
 dhclient at .service             |   10 +++
 dhcp-sysusers.conf            |    1 
 dhcp.install                  |   14 +++++
 dhcpd4.service                |   22 ++++++++
 dhcpd6.service                |   22 ++++++++
 7 files changed, 219 insertions(+)

Copied: dhcp/repos/testing-x86_64/0001-dhcp-honor-expired.patch (from rev 310046, dhcp/trunk/0001-dhcp-honor-expired.patch)
===================================================================
--- testing-x86_64/0001-dhcp-honor-expired.patch	                        (rev 0)
+++ testing-x86_64/0001-dhcp-honor-expired.patch	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,49 @@
+diff -up dhcp-4.3.0a1/client/dhc6.c.honor-expired dhcp-4.3.0a1/client/dhc6.c
+--- dhcp-4.3.0a1/client/dhc6.c.honor-expired	2013-12-19 16:00:28.062183037 +0100
++++ dhcp-4.3.0a1/client/dhc6.c	2013-12-19 16:00:28.076182842 +0100
+@@ -1351,6 +1351,32 @@ start_info_request6(struct client_state
+ 		go_daemon();
+ }
+ 
++/* Run through the addresses in lease and return true if there's any unexpired.
++ * Return false otherwise.
++ */
++isc_boolean_t
++unexpired_address_in_lease(struct dhc6_lease *lease)
++{
++	struct dhc6_ia *ia;
++	struct dhc6_addr *addr;
++
++	for (ia = lease->bindings ; ia != NULL ; ia = ia->next) {
++		for (addr = ia->addrs ; addr != NULL ; addr = addr->next) {
++			if (addr->flags & DHC6_ADDR_EXPIRED)
++				continue;
++
++			if (addr->starts + addr->max_life > cur_time) {
++				return ISC_TRUE;
++			}
++		}
++	}
++
++	log_info("PRC: Previous lease is devoid of active addresses."
++		 "  Re-initializing.");
++
++	return ISC_FALSE;
++}
++
+ /*
+  * start_confirm6() kicks off an "init-reboot" version of the process, at
+  * startup to find out if old bindings are 'fair' and at runtime whenever
+@@ -1363,8 +1389,10 @@ start_confirm6(struct client_state *clie
+ 
+ 	/* If there is no active lease, there is nothing to check. */
+ 	if ((client->active_lease == NULL) ||
+-	    !active_prefix(client) ||
+-	    client->active_lease->released) {
++		!active_prefix(client) ||
++		client->active_lease->released ||
++		!unexpired_address_in_lease(client->active_lease)) {
++		dhc6_lease_destroy(&client->active_lease, MDL);
+ 		start_init6(client);
+ 		return;
+ 	}

Copied: dhcp/repos/testing-x86_64/PKGBUILD (from rev 310046, dhcp/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,101 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Daniel Isenmann <daniel @archlinux.org>
+
+pkgbase=dhcp
+pkgname=('dhcp' 'dhclient')
+
+# separate patch levels with a period to maintain proper versioning.
+pkgver=4.3.6
+pkgrel=3
+arch=('x86_64')
+license=('custom:isc-dhcp')
+url="https://www.isc.org/software/dhcp"
+makedepends=('bash' 'iproute2')
+validpgpkeys=('BE0E9748B718253A28BB89FFF1B11BF05CF02E57') # Internet Systems Consortium, Inc. (Signing key, 2017-2018) <codesign at isc.org>
+source=(ftp://ftp.isc.org/isc/${pkgbase}/${pkgver}/${pkgbase}-${pkgver}.tar.gz{,.asc}
+        dhcp-sysusers.conf
+        dhcpd4.service
+        dhcpd6.service
+        dhclient at .service
+        0001-dhcp-honor-expired.patch)
+sha256sums=('a41eaf6364f1377fe065d35671d9cf82bbbc8f21207819b2b9f33f652aec6f1b'
+            'SKIP'
+            'b16083e6bb572ffacaa7cd97e7fde5fcfa1b6dbeb166f162e2ec6e8ec4b928d6'
+            '537b52307e2196775d79b7e7087fa7499189e26bc9a1737c9b75acd45a720920'
+            '9a2a9bdf25871dfe875ed39d92a4d97852f9ad6c38fa74bd16cbc18e85986d3f'
+            '259d004987b4759e0c9e1a8807a5baa3df74f1e0c57b058a9e1bc92ea41fcb6a'
+            '97088096c5d880ecd889f4875ba89cf8eaf564bec772038e8976c22bd4896b18')
+
+prepare() {
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+
+  # Sourced from Fedora - required for NM
+  # https://bugzilla.gnome.org/show_bug.cgi?id=748268
+  patch -Np1 -i ../0001-dhcp-honor-expired.patch
+}
+
+build() {
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  ./configure \
+      --prefix=/usr \
+      --sbindir=/usr/bin \
+      --sysconfdir=/etc \
+      --enable-paranoia \
+      --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \
+      --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
+      --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
+      --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases \
+      --enable-binary-leases
+
+  make -j1
+}
+
+package_dhcp(){
+  pkgdesc="A DHCP server, client, and relay agent"
+  depends=('glibc')
+  backup=('etc/dhcpd.conf' 'etc/dhcpd6.conf')
+  install=dhcp.install
+
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+
+  install -d "${pkgdir}/var/lib/dhcp"
+
+  install -D -m644 "${srcdir}/dhcp-sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/dhcp.conf"
+  install -D -m644 "${srcdir}/dhcpd4.service" "${pkgdir}/usr/lib/systemd/system/dhcpd4.service"
+  install -D -m644 "${srcdir}/dhcpd6.service" "${pkgdir}/usr/lib/systemd/system/dhcpd6.service"
+
+  # move back to config. This file is in backup array, so pacman will not overwrite a changed config.
+  mv "${pkgdir}/etc/dhcpd.conf.example" "${pkgdir}/etc/dhcpd.conf"
+  cp "${pkgdir}/etc/dhcpd.conf" "${pkgdir}/etc/dhcpd6.conf"
+
+  # Remove dhclient
+  make -C client DESTDIR="${pkgdir}" uninstall
+
+  # install license
+  install -m644 -D LICENSE "${pkgdir}/usr/share/licenses/dhcp/LICENSE"
+}
+
+package_dhclient(){
+  pkgdesc="A standalone DHCP client from the dhcp package"
+  depends=('glibc' 'bash' 'iproute2')
+  provides=('dhcp-client')
+
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+  make -C client DESTDIR="${pkgdir}" install
+
+  install -m755 -d "${pkgdir}/usr/share/dhclient"
+  mv "${pkgdir}/etc/dhclient.conf.example" "${pkgdir}/usr/share/dhclient/"
+
+  install -d "${pkgdir}/var/lib/dhclient"
+
+  # install dhclient linux script
+  install -m755 client/scripts/linux "${pkgdir}/usr/bin/dhclient-script"
+
+  # install license
+  install -m644 -D LICENSE "${pkgdir}/usr/share/licenses/dhclient/LICENSE"
+
+  # install systemd service unit
+  install -m644 -D "$srcdir/dhclient at .service" "${pkgdir}/usr/lib/systemd/system/dhclient at .service"
+}

Copied: dhcp/repos/testing-x86_64/dhclient at .service (from rev 310046, dhcp/trunk/dhclient at .service)
===================================================================
--- testing-x86_64/dhclient at .service	                        (rev 0)
+++ testing-x86_64/dhclient at .service	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,10 @@
+[Unit]
+Description=dhclient on %I
+Wants=network.target
+Before=network.target
+
+[Service]
+ExecStart=/usr/bin/dhclient -d %I
+
+[Install]
+WantedBy=multi-user.target

Copied: dhcp/repos/testing-x86_64/dhcp-sysusers.conf (from rev 310046, dhcp/trunk/dhcp-sysusers.conf)
===================================================================
--- testing-x86_64/dhcp-sysusers.conf	                        (rev 0)
+++ testing-x86_64/dhcp-sysusers.conf	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1 @@
+u dhcp - "DHCP daemon" /

Copied: dhcp/repos/testing-x86_64/dhcp.install (from rev 310046, dhcp/trunk/dhcp.install)
===================================================================
--- testing-x86_64/dhcp.install	                        (rev 0)
+++ testing-x86_64/dhcp.install	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,14 @@
+post_install() {
+  [[ -f var/lib/dhcp/dhcpd.leases ]] || : >var/lib/dhcp/dhcpd.leases
+  [[ -f var/lib/dhcp/dhcpd6.leases ]] || : >var/lib/dhcp/dhcpd6.leases
+}
+
+post_upgrade() {
+  if (( $(vercmp $2 4.2.4.2) < 0 )); then
+    echo ">>> Lease directory moved from /var/state/dhcp"
+    echo "    to /var/lib/dhcp. Move your old lease files"
+    echo "    if you want to keep using them."
+  fi
+
+  post_install
+}

Copied: dhcp/repos/testing-x86_64/dhcpd4.service (from rev 310046, dhcp/trunk/dhcpd4.service)
===================================================================
--- testing-x86_64/dhcpd4.service	                        (rev 0)
+++ testing-x86_64/dhcpd4.service	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,22 @@
+[Unit]
+Description=IPv4 DHCP server
+After=network.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpd4.pid
+ExecStart=/usr/bin/dhcpd -4 -q -user dhcp -cf /etc/dhcpd.conf -pf /run/dhcpd4.pid
+ProtectSystem=full
+ProtectHome=on
+KillSignal=SIGINT
+# We pull in network-online.target for a configured network connection.
+# However this is not guaranteed to be the network connection our
+# networks are configured for. So try to restart on failure with a delay
+# of two seconds. Rate limiting kicks in after 12 seconds.
+RestartSec=2s
+Restart=on-failure
+StartLimitInterval=12s
+
+[Install]
+WantedBy=multi-user.target

Copied: dhcp/repos/testing-x86_64/dhcpd6.service (from rev 310046, dhcp/trunk/dhcpd6.service)
===================================================================
--- testing-x86_64/dhcpd6.service	                        (rev 0)
+++ testing-x86_64/dhcpd6.service	2017-11-16 11:36:47 UTC (rev 310047)
@@ -0,0 +1,22 @@
+[Unit]
+Description=IPv6 DHCP server
+After=network.target network-online.target
+Wants=network-online.target
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpd6.pid
+ExecStart=/usr/bin/dhcpd -6 -q -user dhcp -cf /etc/dhcpd6.conf -pf /run/dhcpd6.pid
+ProtectSystem=full
+ProtectHome=on
+KillSignal=SIGINT
+# We pull in network-online.target for a configured network connection.
+# However this is not guaranteed to be the network connection our
+# networks are configured for. So try to restart on failure with a delay
+# of two seconds. Rate limiting kicks in after 12 seconds.
+RestartSec=2s
+Restart=on-failure
+StartLimitInterval=12s
+
+[Install]
+WantedBy=multi-user.target



More information about the arch-commits mailing list