[arch-commits] Commit in dhcp/repos (14 files)
Christian Hesse
eworm at archlinux.org
Thu Oct 5 20:37:53 UTC 2017
Date: Thursday, October 5, 2017 @ 20:37:51
Author: eworm
Revision: 306864
archrelease: copy trunk to testing-i686, testing-x86_64
Added:
dhcp/repos/testing-i686/
dhcp/repos/testing-i686/0001-dhcp-honor-expired.patch
(from rev 306863, dhcp/trunk/0001-dhcp-honor-expired.patch)
dhcp/repos/testing-i686/PKGBUILD
(from rev 306863, dhcp/trunk/PKGBUILD)
dhcp/repos/testing-i686/dhclient at .service
(from rev 306863, dhcp/trunk/dhclient at .service)
dhcp/repos/testing-i686/dhcp.install
(from rev 306863, dhcp/trunk/dhcp.install)
dhcp/repos/testing-i686/dhcpd4.service
(from rev 306863, dhcp/trunk/dhcpd4.service)
dhcp/repos/testing-i686/dhcpd6.service
(from rev 306863, dhcp/trunk/dhcpd6.service)
dhcp/repos/testing-x86_64/
dhcp/repos/testing-x86_64/0001-dhcp-honor-expired.patch
(from rev 306863, dhcp/trunk/0001-dhcp-honor-expired.patch)
dhcp/repos/testing-x86_64/PKGBUILD
(from rev 306863, dhcp/trunk/PKGBUILD)
dhcp/repos/testing-x86_64/dhclient at .service
(from rev 306863, dhcp/trunk/dhclient at .service)
dhcp/repos/testing-x86_64/dhcp.install
(from rev 306863, dhcp/trunk/dhcp.install)
dhcp/repos/testing-x86_64/dhcpd4.service
(from rev 306863, dhcp/trunk/dhcpd4.service)
dhcp/repos/testing-x86_64/dhcpd6.service
(from rev 306863, dhcp/trunk/dhcpd6.service)
----------------------------------------------+
testing-i686/0001-dhcp-honor-expired.patch | 49 ++++++++++++
testing-i686/PKGBUILD | 95 +++++++++++++++++++++++++
testing-i686/dhclient at .service | 10 ++
testing-i686/dhcp.install | 14 +++
testing-i686/dhcpd4.service | 13 +++
testing-i686/dhcpd6.service | 13 +++
testing-x86_64/0001-dhcp-honor-expired.patch | 49 ++++++++++++
testing-x86_64/PKGBUILD | 95 +++++++++++++++++++++++++
testing-x86_64/dhclient at .service | 10 ++
testing-x86_64/dhcp.install | 14 +++
testing-x86_64/dhcpd4.service | 13 +++
testing-x86_64/dhcpd6.service | 13 +++
12 files changed, 388 insertions(+)
Copied: dhcp/repos/testing-i686/0001-dhcp-honor-expired.patch (from rev 306863, dhcp/trunk/0001-dhcp-honor-expired.patch)
===================================================================
--- testing-i686/0001-dhcp-honor-expired.patch (rev 0)
+++ testing-i686/0001-dhcp-honor-expired.patch 2017-10-05 20:37:51 UTC (rev 306864)
@@ -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-i686/PKGBUILD (from rev 306863, dhcp/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD (rev 0)
+++ testing-i686/PKGBUILD 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,95 @@
+# $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
+_pkgver=4.3.6
+pkgrel=1
+arch=('i686' '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}
+ dhcpd4.service
+ dhcpd6.service
+ dhclient at .service
+ 0001-dhcp-honor-expired.patch)
+sha256sums=('a41eaf6364f1377fe065d35671d9cf82bbbc8f21207819b2b9f33f652aec6f1b'
+ 'SKIP'
+ '5adc0f06872c5b6d5cd9c181cd5dfa8f53bae6fb99554e16c9ea154e78112195'
+ '6930df13badd451f3c15f3d68ca1068e3cb40912f9ed1863506417da119fb686'
+ '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 \
+ --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}/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-i686/dhclient at .service (from rev 306863, dhcp/trunk/dhclient at .service)
===================================================================
--- testing-i686/dhclient at .service (rev 0)
+++ testing-i686/dhclient at .service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -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-i686/dhcp.install (from rev 306863, dhcp/trunk/dhcp.install)
===================================================================
--- testing-i686/dhcp.install (rev 0)
+++ testing-i686/dhcp.install 2017-10-05 20:37:51 UTC (rev 306864)
@@ -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-i686/dhcpd4.service (from rev 306863, dhcp/trunk/dhcpd4.service)
===================================================================
--- testing-i686/dhcpd4.service (rev 0)
+++ testing-i686/dhcpd4.service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,13 @@
+[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 -cf /etc/dhcpd.conf -pf /run/dhcpd4.pid
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
Copied: dhcp/repos/testing-i686/dhcpd6.service (from rev 306863, dhcp/trunk/dhcpd6.service)
===================================================================
--- testing-i686/dhcpd6.service (rev 0)
+++ testing-i686/dhcpd6.service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,13 @@
+[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 -cf /etc/dhcpd6.conf -pf /run/dhcpd6.pid
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
Copied: dhcp/repos/testing-x86_64/0001-dhcp-honor-expired.patch (from rev 306863, 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-10-05 20:37:51 UTC (rev 306864)
@@ -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 306863, dhcp/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,95 @@
+# $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
+_pkgver=4.3.6
+pkgrel=1
+arch=('i686' '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}
+ dhcpd4.service
+ dhcpd6.service
+ dhclient at .service
+ 0001-dhcp-honor-expired.patch)
+sha256sums=('a41eaf6364f1377fe065d35671d9cf82bbbc8f21207819b2b9f33f652aec6f1b'
+ 'SKIP'
+ '5adc0f06872c5b6d5cd9c181cd5dfa8f53bae6fb99554e16c9ea154e78112195'
+ '6930df13badd451f3c15f3d68ca1068e3cb40912f9ed1863506417da119fb686'
+ '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 \
+ --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}/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 306863, dhcp/trunk/dhclient at .service)
===================================================================
--- testing-x86_64/dhclient at .service (rev 0)
+++ testing-x86_64/dhclient at .service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -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.install (from rev 306863, dhcp/trunk/dhcp.install)
===================================================================
--- testing-x86_64/dhcp.install (rev 0)
+++ testing-x86_64/dhcp.install 2017-10-05 20:37:51 UTC (rev 306864)
@@ -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 306863, dhcp/trunk/dhcpd4.service)
===================================================================
--- testing-x86_64/dhcpd4.service (rev 0)
+++ testing-x86_64/dhcpd4.service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,13 @@
+[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 -cf /etc/dhcpd.conf -pf /run/dhcpd4.pid
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
Copied: dhcp/repos/testing-x86_64/dhcpd6.service (from rev 306863, dhcp/trunk/dhcpd6.service)
===================================================================
--- testing-x86_64/dhcpd6.service (rev 0)
+++ testing-x86_64/dhcpd6.service 2017-10-05 20:37:51 UTC (rev 306864)
@@ -0,0 +1,13 @@
+[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 -cf /etc/dhcpd6.conf -pf /run/dhcpd6.pid
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
More information about the arch-commits
mailing list