From dee6f0c9de7b5ee37a23bebc9b112892bf6847c6 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 30 Aug 2018 11:24:36 +0200 Subject: [PATCH 01/81] Do not mmap leases file if not needed --- dhcp-noreplay.patch | 46 +++++++++++++++++++++++++++++++++++++++++++++ dhcp.spec | 9 ++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 dhcp-noreplay.patch diff --git a/dhcp-noreplay.patch b/dhcp-noreplay.patch new file mode 100644 index 0000000..c7d7589 --- /dev/null +++ b/dhcp-noreplay.patch @@ -0,0 +1,46 @@ +diff --git a/server/confpars.c b/server/confpars.c +index d79489b..c20d618 100644 +--- a/server/confpars.c ++++ b/server/confpars.c +@@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + + cfile = (struct parse *)0; + #if defined (TRACING) ++ // No need to dmalloc huge memory region if we're not going to re-play ++ if (!trace_playback()){ ++ status = new_parse(&cfile, file, NULL, 0, filename, 0); ++ goto noreplay; ++ }; + flen = lseek (file, (off_t)0, SEEK_END); + if (flen < 0) { + boom: +@@ -174,6 +179,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + #else + status = new_parse(&cfile, file, NULL, 0, filename, 0); + #endif ++ noreplay: + if (status != ISC_R_SUCCESS || cfile == NULL) + return status; + +diff --git a/server/confpars.c b/server/confpars.c +index 3aecd05..5be4ab1 100644 +--- a/server/confpars.c ++++ b/server/confpars.c +@@ -176,6 +176,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + if (trace_record ()) + trace_write_packet (ttype, ulen + tflen + 1, dbuf, MDL); + status = new_parse(&cfile, -1, fbuf, ulen, filename, 0); /* XXX */ ++ dfree(dbuf, MDL); + #else + status = new_parse(&cfile, file, NULL, 0, filename, 0); + #endif +@@ -188,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + else + status = conf_file_subparse (cfile, group, group_type); + end_parse (&cfile); +-#if defined (TRACING) +- dfree (dbuf, MDL); +-#endif + return status; + } + diff --git a/dhcp.spec b/dhcp.spec index d9ce1de..e4fa977 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 27%{?dist} +Release: 28%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -78,6 +78,7 @@ Patch41: dhcp-4.3.6-isc-util.patch Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch +Patch45: dhcp-noreplay.patch BuildRequires: autoconf BuildRequires: automake @@ -354,6 +355,9 @@ rm bind/bind.tar.gz # https://bugzilla.redhat.com/1163379 %patch44 -p1 -b .xid-hwaddr +#ISC Bugs #48110 +%patch45 -p1 -b .noreplay + # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h @@ -677,6 +681,9 @@ done %endif %changelog +* Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 +- Do not try to map leases file in memory if not in replay mode + * Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 - Update to bind 9.11.4 From ba9bdacde102bd10f7c49047077d0f0d644568c7 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 24 Sep 2018 14:52:31 +0200 Subject: [PATCH 02/81] Do not fail if interface doesn't have hwaddr (#1632246) --- dhcp-iface_hwaddr_discovery.patch | 75 ++++++++++++++++++++++++++++++- dhcp-noreplay.patch | 46 ------------------- dhcp.spec | 8 +--- 3 files changed, 76 insertions(+), 53 deletions(-) delete mode 100644 dhcp-noreplay.patch diff --git a/dhcp-iface_hwaddr_discovery.patch b/dhcp-iface_hwaddr_discovery.patch index b63623c..2cd1d8a 100644 --- a/dhcp-iface_hwaddr_discovery.patch +++ b/dhcp-iface_hwaddr_discovery.patch @@ -7,7 +7,80 @@ index 26a78ca..ed01e45 100644 tmp = interfaces; /* XXX */ } + if (tmp != NULL) -+ get_hw_addr(tmp); ++ try_hw_addr(tmp); if (dhcp_interface_discovery_hook) { (*dhcp_interface_discovery_hook)(tmp); +diff --git a/common/lpf.c b/common/lpf.c +index 4a252ca..467b055 100644 +--- a/common/lpf.c ++++ b/common/lpf.c +@@ -697,8 +697,22 @@ ioctl_get_ll(char *name) + return sll; + } + ++// define ? ++void try_hw_addr(struct interface_info *info){ ++ get_hw_addr2(info); ++}; ++ + void + get_hw_addr(struct interface_info *info) ++{ ++ if (get_hw_addr2(info) == ISC_R_NOTFOUND){ ++ log_fatal("Unsupported device type for \"%s\"", ++ info->name); ++ } ++} ++ ++isc_result_t ++get_hw_addr2(struct interface_info *info) + { + struct hardware *hw = &info->hw_address; + char *name = info->name; +@@ -708,7 +722,8 @@ get_hw_addr(struct interface_info *info) + int sll_allocated = 0; + char *dup = NULL; + char *colon = NULL; +- ++ isc_result_t result = ISC_R_SUCCESS; ++ + if (getifaddrs(&ifaddrs) == -1) + log_fatal("Failed to get interfaces"); + +@@ -792,14 +807,16 @@ get_hw_addr(struct interface_info *info) + hw->hbuf[4] = 0xef; + break; + #endif +- default: +- freeifaddrs(ifaddrs); +- log_fatal("Unsupported device type %hu for \"%s\"", +- sll->sll_hatype, name); ++ default: ++ log_error("Unsupported device type %hu for \"%s\"", ++ sll->sll_hatype, name); ++ result = ISC_R_NOTFOUND; ++ + } + + if (sll_allocated) + dfree(sll, MDL); + freeifaddrs(ifaddrs); ++ return result; + } + #endif +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index d534f8c..66a21fb 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -2591,7 +2591,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); + #endif + const char *print_time(TIME); + ++ + void get_hw_addr(struct interface_info *info); ++void try_hw_addr(struct interface_info *info); ++isc_result_t get_hw_addr2(struct interface_info *info); + char *buf_to_hex (const unsigned char *s, unsigned len, + const char *file, int line); + char *format_lease_id(const unsigned char *s, unsigned len, int format, diff --git a/dhcp-noreplay.patch b/dhcp-noreplay.patch deleted file mode 100644 index c7d7589..0000000 --- a/dhcp-noreplay.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/server/confpars.c b/server/confpars.c -index d79489b..c20d618 100644 ---- a/server/confpars.c -+++ b/server/confpars.c -@@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - - cfile = (struct parse *)0; - #if defined (TRACING) -+ // No need to dmalloc huge memory region if we're not going to re-play -+ if (!trace_playback()){ -+ status = new_parse(&cfile, file, NULL, 0, filename, 0); -+ goto noreplay; -+ }; - flen = lseek (file, (off_t)0, SEEK_END); - if (flen < 0) { - boom: -@@ -174,6 +179,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - #else - status = new_parse(&cfile, file, NULL, 0, filename, 0); - #endif -+ noreplay: - if (status != ISC_R_SUCCESS || cfile == NULL) - return status; - -diff --git a/server/confpars.c b/server/confpars.c -index 3aecd05..5be4ab1 100644 ---- a/server/confpars.c -+++ b/server/confpars.c -@@ -176,6 +176,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - if (trace_record ()) - trace_write_packet (ttype, ulen + tflen + 1, dbuf, MDL); - status = new_parse(&cfile, -1, fbuf, ulen, filename, 0); /* XXX */ -+ dfree(dbuf, MDL); - #else - status = new_parse(&cfile, file, NULL, 0, filename, 0); - #endif -@@ -188,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - else - status = conf_file_subparse (cfile, group, group_type); - end_parse (&cfile); --#if defined (TRACING) -- dfree (dbuf, MDL); --#endif - return status; - } - diff --git a/dhcp.spec b/dhcp.spec index e4fa977..c9dfa94 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -78,7 +78,6 @@ Patch41: dhcp-4.3.6-isc-util.patch Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch -Patch45: dhcp-noreplay.patch BuildRequires: autoconf BuildRequires: automake @@ -355,9 +354,6 @@ rm bind/bind.tar.gz # https://bugzilla.redhat.com/1163379 %patch44 -p1 -b .xid-hwaddr -#ISC Bugs #48110 -%patch45 -p1 -b .noreplay - # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h @@ -681,8 +677,8 @@ done %endif %changelog -* Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 -- Do not try to map leases file in memory if not in replay mode +* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-28 +- Resolves: 1632246 - Do not fail if iface has no hwaddr * Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 - Update to bind 9.11.4 From 48036c6dd7bd557f9d7534d17ed2646bee457305 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 24 Sep 2018 14:52:31 +0200 Subject: [PATCH 03/81] Do not fail if interface doesn't have hwaddr (#1632246) --- dhcp-iface_hwaddr_discovery.patch | 75 ++++++++++++++++++++++++++++++- dhcp.spec | 5 ++- 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/dhcp-iface_hwaddr_discovery.patch b/dhcp-iface_hwaddr_discovery.patch index b63623c..2cd1d8a 100644 --- a/dhcp-iface_hwaddr_discovery.patch +++ b/dhcp-iface_hwaddr_discovery.patch @@ -7,7 +7,80 @@ index 26a78ca..ed01e45 100644 tmp = interfaces; /* XXX */ } + if (tmp != NULL) -+ get_hw_addr(tmp); ++ try_hw_addr(tmp); if (dhcp_interface_discovery_hook) { (*dhcp_interface_discovery_hook)(tmp); +diff --git a/common/lpf.c b/common/lpf.c +index 4a252ca..467b055 100644 +--- a/common/lpf.c ++++ b/common/lpf.c +@@ -697,8 +697,22 @@ ioctl_get_ll(char *name) + return sll; + } + ++// define ? ++void try_hw_addr(struct interface_info *info){ ++ get_hw_addr2(info); ++}; ++ + void + get_hw_addr(struct interface_info *info) ++{ ++ if (get_hw_addr2(info) == ISC_R_NOTFOUND){ ++ log_fatal("Unsupported device type for \"%s\"", ++ info->name); ++ } ++} ++ ++isc_result_t ++get_hw_addr2(struct interface_info *info) + { + struct hardware *hw = &info->hw_address; + char *name = info->name; +@@ -708,7 +722,8 @@ get_hw_addr(struct interface_info *info) + int sll_allocated = 0; + char *dup = NULL; + char *colon = NULL; +- ++ isc_result_t result = ISC_R_SUCCESS; ++ + if (getifaddrs(&ifaddrs) == -1) + log_fatal("Failed to get interfaces"); + +@@ -792,14 +807,16 @@ get_hw_addr(struct interface_info *info) + hw->hbuf[4] = 0xef; + break; + #endif +- default: +- freeifaddrs(ifaddrs); +- log_fatal("Unsupported device type %hu for \"%s\"", +- sll->sll_hatype, name); ++ default: ++ log_error("Unsupported device type %hu for \"%s\"", ++ sll->sll_hatype, name); ++ result = ISC_R_NOTFOUND; ++ + } + + if (sll_allocated) + dfree(sll, MDL); + freeifaddrs(ifaddrs); ++ return result; + } + #endif +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index d534f8c..66a21fb 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -2591,7 +2591,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); + #endif + const char *print_time(TIME); + ++ + void get_hw_addr(struct interface_info *info); ++void try_hw_addr(struct interface_info *info); ++isc_result_t get_hw_addr2(struct interface_info *info); + char *buf_to_hex (const unsigned char *s, unsigned len, + const char *file, int line); + char *format_lease_id(const unsigned char *s, unsigned len, int format, diff --git a/dhcp.spec b/dhcp.spec index d9ce1de..c9dfa94 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 27%{?dist} +Release: 28%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -677,6 +677,9 @@ done %endif %changelog +* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-28 +- Resolves: 1632246 - Do not fail if iface has no hwaddr + * Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 - Update to bind 9.11.4 From b9f5d7a98b0cbc4482cd3138fc2ddca0dd3d577a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 24 Sep 2018 14:58:52 +0200 Subject: [PATCH 04/81] Bump release --- dhcp.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index c9dfa94..4af184c 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 28%{?dist} +Release: 29%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -677,9 +677,12 @@ done %endif %changelog -* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-28 +* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-29 - Resolves: 1632246 - Do not fail if iface has no hwaddr +* Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 +- Do not try to map leases file in memory if not in replay mode + * Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 - Update to bind 9.11.4 From 3ccf3c8d815df4b8e11e1a04850975f099273d5d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 24 Sep 2018 15:01:32 +0200 Subject: [PATCH 05/81] readded lost patch --- dhcp-noreplay.patch | 46 +++++++++++++++++++++++++++++++++++++++++++++ dhcp.spec | 5 +++++ 2 files changed, 51 insertions(+) create mode 100644 dhcp-noreplay.patch diff --git a/dhcp-noreplay.patch b/dhcp-noreplay.patch new file mode 100644 index 0000000..c7d7589 --- /dev/null +++ b/dhcp-noreplay.patch @@ -0,0 +1,46 @@ +diff --git a/server/confpars.c b/server/confpars.c +index d79489b..c20d618 100644 +--- a/server/confpars.c ++++ b/server/confpars.c +@@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + + cfile = (struct parse *)0; + #if defined (TRACING) ++ // No need to dmalloc huge memory region if we're not going to re-play ++ if (!trace_playback()){ ++ status = new_parse(&cfile, file, NULL, 0, filename, 0); ++ goto noreplay; ++ }; + flen = lseek (file, (off_t)0, SEEK_END); + if (flen < 0) { + boom: +@@ -174,6 +179,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + #else + status = new_parse(&cfile, file, NULL, 0, filename, 0); + #endif ++ noreplay: + if (status != ISC_R_SUCCESS || cfile == NULL) + return status; + +diff --git a/server/confpars.c b/server/confpars.c +index 3aecd05..5be4ab1 100644 +--- a/server/confpars.c ++++ b/server/confpars.c +@@ -176,6 +176,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + if (trace_record ()) + trace_write_packet (ttype, ulen + tflen + 1, dbuf, MDL); + status = new_parse(&cfile, -1, fbuf, ulen, filename, 0); /* XXX */ ++ dfree(dbuf, MDL); + #else + status = new_parse(&cfile, file, NULL, 0, filename, 0); + #endif +@@ -188,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + else + status = conf_file_subparse (cfile, group, group_type); + end_parse (&cfile); +-#if defined (TRACING) +- dfree (dbuf, MDL); +-#endif + return status; + } + diff --git a/dhcp.spec b/dhcp.spec index 4af184c..bf410cc 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -78,6 +78,7 @@ Patch41: dhcp-4.3.6-isc-util.patch Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch +Patch45: dhcp-noreplay.patch BuildRequires: autoconf BuildRequires: automake @@ -354,6 +355,10 @@ rm bind/bind.tar.gz # https://bugzilla.redhat.com/1163379 %patch44 -p1 -b .xid-hwaddr +#ISC Bugs #48110 +%patch45 -p1 -b .noreplay + + # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h From 546da8152cc39178c8ac8e85a18164e60b6d5300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Tue, 6 Nov 2018 14:16:32 +0100 Subject: [PATCH 06/81] Compile on BIND 9.11.5 Last BIND release switched from custom types to standard int and bool types provided by library. Uless DHCP is modified to switch all types as well, compatibility libraries has to be included. It breaks backward compatibility. --- dhcp-4.3.6-bind-9.11.5.patch | 86 ++++++++++++++++++++++++++++++++++++ dhcp.spec | 7 ++- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 dhcp-4.3.6-bind-9.11.5.patch diff --git a/dhcp-4.3.6-bind-9.11.5.patch b/dhcp-4.3.6-bind-9.11.5.patch new file mode 100644 index 0000000..3636bee --- /dev/null +++ b/dhcp-4.3.6-bind-9.11.5.patch @@ -0,0 +1,86 @@ +From ffb24c0bbd4d6f2b4718a1a8f4f2da237cc6ed66 Mon Sep 17 00:00:00 2001 +From: Thomas Markwalder +Date: Fri, 14 Sep 2018 13:41:41 -0400 +Subject: [PATCH] [master] Added includes of new BIND9 compatibility headers, + updated util/bind.sh + + Merges in rt48072. + +(cherry picked from commit 8194daabfd590f17825f0c61e9534bee5c99cc86) +--- + includes/omapip/isclib.h | 3 +++ + includes/omapip/result.h | 1 + + server/dhcpv6.c | 13 +++++++++---- + 3 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h +index e2963089..fa5d9ad3 100644 +--- a/includes/omapip/isclib.h ++++ b/includes/omapip/isclib.h +@@ -48,6 +48,9 @@ + #include + #include + ++#include ++#include ++ + #include + #include + #include +diff --git a/includes/omapip/result.h b/includes/omapip/result.h +index ae5f7d6a..9c1fab23 100644 +--- a/includes/omapip/result.h ++++ b/includes/omapip/result.h +@@ -26,6 +26,7 @@ + #ifndef DHCP_RESULT_H + #define DHCP_RESULT_H 1 + ++#include + #include + #include + #include +diff --git a/server/dhcpv6.c b/server/dhcpv6.c +index 74487667..1a6ff241 100644 +--- a/server/dhcpv6.c ++++ b/server/dhcpv6.c +@@ -1003,7 +1003,8 @@ void check_pool6_threshold(struct reply_state *reply, + shared_name, + inet_ntop(AF_INET6, &lease->addr, + tmp_addr, sizeof(tmp_addr)), +- used, count); ++ (long long unsigned)(used), ++ (long long unsigned)(count)); + } + return; + } +@@ -1035,7 +1036,8 @@ void check_pool6_threshold(struct reply_state *reply, + "address: %s; high threshold %d%% %llu/%llu.", + shared_name, + inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)), +- poolhigh, used, count); ++ poolhigh, (long long unsigned)(used), ++ (long long unsigned)(count)); + + /* handle the low threshold now, if we don't + * have one we default to 0. */ +@@ -1383,12 +1385,15 @@ pick_v6_address(struct reply_state *reply) + log_debug("Unable to pick client address: " + "no addresses available - shared network %s: " + " 2^64-1 < total, %llu active, %llu abandoned", +- shared_name, active - abandoned, abandoned); ++ shared_name, (long long unsigned)(active - abandoned), ++ (long long unsigned)(abandoned)); + } else { + log_debug("Unable to pick client address: " + "no addresses available - shared network %s: " + "%llu total, %llu active, %llu abandoned", +- shared_name, total, active - abandoned, abandoned); ++ shared_name, (long long unsigned)(total), ++ (long long unsigned)(active - abandoned), ++ (long long unsigned)(abandoned)); + } + + return ISC_R_NORESOURCES; +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index bf410cc..53cce2f 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 29%{?dist} +Release: 30%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -79,6 +79,7 @@ Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch Patch45: dhcp-noreplay.patch +Patch46: dhcp-4.3.6-bind-9.11.5.patch BuildRequires: autoconf BuildRequires: automake @@ -357,6 +358,7 @@ rm bind/bind.tar.gz #ISC Bugs #48110 %patch45 -p1 -b .noreplay +%patch46 -p1 -b .bind # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 @@ -682,6 +684,9 @@ done %endif %changelog +* Tue Nov 06 2018 Petr Menšík - 12:4.3.6-30 +- Compile on BIND 9.11.5 + * Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-29 - Resolves: 1632246 - Do not fail if iface has no hwaddr From 44ee4486c57f3019a2147099deb59655c6287ae5 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 29 Jan 2019 20:06:07 +0100 Subject: [PATCH 07/81] Rebuild once more now that BIND 9.11.5 is in the build root --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 53cce2f..dc93b1f 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 30%{?dist} +Release: 31%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -684,6 +684,9 @@ done %endif %changelog +* Tue Jan 29 2019 Kalev Lember - 12:4.3.6-31 +- Rebuild once more now that BIND 9.11.5 is in the build root + * Tue Nov 06 2018 Petr Menšík - 12:4.3.6-30 - Compile on BIND 9.11.5 From 21108f4b78c069fed4753db9f0322663cbc45c9e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 17:10:15 +0000 Subject: [PATCH 08/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index dc93b1f..0ea0ef2 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 31%{?dist} +Release: 32%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -684,6 +684,9 @@ done %endif %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 12:4.3.6-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Tue Jan 29 2019 Kalev Lember - 12:4.3.6-31 - Rebuild once more now that BIND 9.11.5 is in the build root From 97c91de63062beb28d07c3d326a13dd1f6327d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Tue, 6 Nov 2018 14:16:32 +0100 Subject: [PATCH 09/81] Compile on BIND 9.11.5 Last BIND release switched from custom types to standard int and bool types provided by library. Uless DHCP is modified to switch all types as well, compatibility libraries has to be included. It breaks backward compatibility. (cherry picked from commit 546da8152cc39178c8ac8e85a18164e60b6d5300) --- dhcp-4.3.6-bind-9.11.5.patch | 86 ++++++++++++++++++++++++++++++++++++ dhcp.spec | 9 +++- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 dhcp-4.3.6-bind-9.11.5.patch diff --git a/dhcp-4.3.6-bind-9.11.5.patch b/dhcp-4.3.6-bind-9.11.5.patch new file mode 100644 index 0000000..3636bee --- /dev/null +++ b/dhcp-4.3.6-bind-9.11.5.patch @@ -0,0 +1,86 @@ +From ffb24c0bbd4d6f2b4718a1a8f4f2da237cc6ed66 Mon Sep 17 00:00:00 2001 +From: Thomas Markwalder +Date: Fri, 14 Sep 2018 13:41:41 -0400 +Subject: [PATCH] [master] Added includes of new BIND9 compatibility headers, + updated util/bind.sh + + Merges in rt48072. + +(cherry picked from commit 8194daabfd590f17825f0c61e9534bee5c99cc86) +--- + includes/omapip/isclib.h | 3 +++ + includes/omapip/result.h | 1 + + server/dhcpv6.c | 13 +++++++++---- + 3 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h +index e2963089..fa5d9ad3 100644 +--- a/includes/omapip/isclib.h ++++ b/includes/omapip/isclib.h +@@ -48,6 +48,9 @@ + #include + #include + ++#include ++#include ++ + #include + #include + #include +diff --git a/includes/omapip/result.h b/includes/omapip/result.h +index ae5f7d6a..9c1fab23 100644 +--- a/includes/omapip/result.h ++++ b/includes/omapip/result.h +@@ -26,6 +26,7 @@ + #ifndef DHCP_RESULT_H + #define DHCP_RESULT_H 1 + ++#include + #include + #include + #include +diff --git a/server/dhcpv6.c b/server/dhcpv6.c +index 74487667..1a6ff241 100644 +--- a/server/dhcpv6.c ++++ b/server/dhcpv6.c +@@ -1003,7 +1003,8 @@ void check_pool6_threshold(struct reply_state *reply, + shared_name, + inet_ntop(AF_INET6, &lease->addr, + tmp_addr, sizeof(tmp_addr)), +- used, count); ++ (long long unsigned)(used), ++ (long long unsigned)(count)); + } + return; + } +@@ -1035,7 +1036,8 @@ void check_pool6_threshold(struct reply_state *reply, + "address: %s; high threshold %d%% %llu/%llu.", + shared_name, + inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)), +- poolhigh, used, count); ++ poolhigh, (long long unsigned)(used), ++ (long long unsigned)(count)); + + /* handle the low threshold now, if we don't + * have one we default to 0. */ +@@ -1383,12 +1385,15 @@ pick_v6_address(struct reply_state *reply) + log_debug("Unable to pick client address: " + "no addresses available - shared network %s: " + " 2^64-1 < total, %llu active, %llu abandoned", +- shared_name, active - abandoned, abandoned); ++ shared_name, (long long unsigned)(active - abandoned), ++ (long long unsigned)(abandoned)); + } else { + log_debug("Unable to pick client address: " + "no addresses available - shared network %s: " + "%llu total, %llu active, %llu abandoned", +- shared_name, total, active - abandoned, abandoned); ++ shared_name, (long long unsigned)(total), ++ (long long unsigned)(active - abandoned), ++ (long long unsigned)(abandoned)); + } + + return ISC_R_NORESOURCES; +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index c9dfa94..daaa234 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 28%{?dist} +Release: 29%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -78,6 +78,7 @@ Patch41: dhcp-4.3.6-isc-util.patch Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch +Patch45: dhcp-4.3.6-bind-9.11.5.patch BuildRequires: autoconf BuildRequires: automake @@ -354,6 +355,9 @@ rm bind/bind.tar.gz # https://bugzilla.redhat.com/1163379 %patch44 -p1 -b .xid-hwaddr +# Build on Bind 9.11.5+ +%patch45 -p1 -b .bind + # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h @@ -677,6 +681,9 @@ done %endif %changelog +* Tue Nov 06 2018 Petr Menšík - 12:4.3.6-29 +- Compile on BIND 9.11.5 + * Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-28 - Resolves: 1632246 - Do not fail if iface has no hwaddr From 7c09728712fae80fc02166a670e307cf4b7a3ad5 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Fri, 1 Mar 2019 12:50:13 +0100 Subject: [PATCH 10/81] New version 4.4.1 - Drop executable flag from NM dispatcher script to avoid dhcpd restart --- .gitignore | 1 + ...message.patch => 0001-change-bug-url.patch | 24 +- ... => 0002-additional-dhclient-options.patch | 101 +++-- ...ng-interfaces-requested-by-sbin-ifup.patch | 22 +- ...BOOTP-for-IBM-pSeries-systems-and-ma.patch | 37 +- ...005-Change-default-requested-options.patch | 22 +- ... => 0006-Various-man-page-only-fixes.patch | 116 +++--- ...ge-paths-to-conform-to-our-standards.patch | 54 +++ ...en-file-descriptors-are-closed-on-ex.patch | 179 +++++---- 0009-Fix-garbage-in-format-string-error.patch | 27 ++ 0010-Handle-null-timeout.patch | 32 ++ ...> 0011-Drop-unnecessary-capabilities.patch | 89 +++-- ...ss-Static-Route-Option-for-DHCPv4-51.patch | 164 ++++---- ... 0013-DHCPv6-over-PPP-support-626514.patch | 104 ++++-- ...b.patch => 0014-IPoIB-support-660681.patch | 165 ++++---- ...-Add-GUID-DUID-to-dhcpd-logs-1064416.patch | 332 +++++++++++++++++ ...016-Turn-on-creating-sending-of-DUID.patch | 29 +- ...equest-release-via-correct-interface.patch | 30 +- ...ation-for-iface-should-be-info-not-e.patch | 25 +- ...UID_LLT-even-in-stateless-mode-11563.patch | 29 ++ ...ver-all-hwaddress-for-xid-uniqueness.patch | 31 +- ...ad-leases-DB-in-non-replay-mode-only.patch | 35 +- 12-dhcpd | 4 + dhcp-4.3.6-bind-9.11.5.patch | 86 ----- dhcp-4.3.6-isc-util.patch | 77 ---- dhcp-4.3.6-omapi-leak.patch | 52 --- dhcp-4.3.6-options_overflow.patch | 41 -- dhcp-4.3.6-reference_count_overflow.patch | 13 - dhcp-64_bit_lease_parse.patch | 75 ---- dhcp-IPoIB-log-id.patch | 164 -------- dhcp-add_timeout_when_NULL.patch | 14 - dhcp-dhclient-decline-backoff.patch | 63 ---- dhcp-dhclient-preinit6s.patch | 64 ---- dhcp-duidv4.patch | 34 -- dhcp-garbage-chars.patch | 12 - dhcp-handle_ctx_signals.patch | 44 --- dhcp-honor-expired.patch | 49 --- dhcp-improved-xid.patch | 138 ------- dhcp-option97-pxe-client-id.patch | 217 ----------- dhcp-paths.patch | 38 -- dhcp-remove-bind.patch | 351 ------------------ dhcp-sd_notify.patch | 79 ---- dhcp-sendDecline.patch | 231 ------------ dhcp-sharedlib.patch | 149 -------- dhcp-stateless-DUID-LLT.patch | 13 - dhcp.spec | 299 ++++----------- sources | 2 +- 47 files changed, 1262 insertions(+), 2695 deletions(-) rename dhcp-errwarn-message.patch => 0001-change-bug-url.patch (77%) rename dhcp-dhclient-options.patch => 0002-additional-dhclient-options.patch (85%) rename dhcp-release-by-ifup.patch => 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch (80%) rename dhcp-unicast-bootp.patch => 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch (75%) rename dhcp-default-requested-options.patch => 0005-Change-default-requested-options.patch (69%) rename dhcp-manpages.patch => 0006-Various-man-page-only-fixes.patch (73%) create mode 100644 0007-Change-paths-to-conform-to-our-standards.patch rename dhcp-CLOEXEC.patch => 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch (67%) create mode 100644 0009-Fix-garbage-in-format-string-error.patch create mode 100644 0010-Handle-null-timeout.patch rename dhcp-capability.patch => 0011-Drop-unnecessary-capabilities.patch (75%) rename dhcp-rfc3442-classless-static-routes.patch => 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch (76%) rename dhcp-PPP.patch => 0013-DHCPv6-over-PPP-support-626514.patch (64%) rename dhcp-lpf-ib.patch => 0014-IPoIB-support-660681.patch (77%) create mode 100644 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch rename dhcp-duid_uuid.patch => 0016-Turn-on-creating-sending-of-DUID.patch (73%) rename dhcp-client-request-release-bind-iface.patch => 0017-Send-unicast-request-release-via-correct-interface.patch (70%) rename dhcp-no-subnet-error2info.patch => 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch (70%) create mode 100644 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch rename dhcp-iface_hwaddr_discovery.patch => 0020-Discover-all-hwaddress-for-xid-uniqueness.patch (71%) rename dhcp-noreplay.patch => 0021-Load-leases-DB-in-non-replay-mode-only.patch (66%) delete mode 100644 dhcp-4.3.6-bind-9.11.5.patch delete mode 100644 dhcp-4.3.6-isc-util.patch delete mode 100644 dhcp-4.3.6-omapi-leak.patch delete mode 100644 dhcp-4.3.6-options_overflow.patch delete mode 100644 dhcp-4.3.6-reference_count_overflow.patch delete mode 100644 dhcp-64_bit_lease_parse.patch delete mode 100644 dhcp-IPoIB-log-id.patch delete mode 100644 dhcp-add_timeout_when_NULL.patch delete mode 100644 dhcp-dhclient-decline-backoff.patch delete mode 100644 dhcp-dhclient-preinit6s.patch delete mode 100644 dhcp-duidv4.patch delete mode 100644 dhcp-garbage-chars.patch delete mode 100644 dhcp-handle_ctx_signals.patch delete mode 100644 dhcp-honor-expired.patch delete mode 100644 dhcp-improved-xid.patch delete mode 100644 dhcp-option97-pxe-client-id.patch delete mode 100644 dhcp-paths.patch delete mode 100644 dhcp-remove-bind.patch delete mode 100644 dhcp-sd_notify.patch delete mode 100644 dhcp-sendDecline.patch delete mode 100644 dhcp-sharedlib.patch delete mode 100644 dhcp-stateless-DUID-LLT.patch diff --git a/.gitignore b/.gitignore index 20d8a35..8e0f50c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /dhcp-4.3.5.tar.gz /dhcp-4.3.6b1.tar.gz /dhcp-4.3.6.tar.gz +/dhcp-4.4.1.tar.gz diff --git a/dhcp-errwarn-message.patch b/0001-change-bug-url.patch similarity index 77% rename from dhcp-errwarn-message.patch rename to 0001-change-bug-url.patch index 18f77cf..150a3b2 100644 --- a/dhcp-errwarn-message.patch +++ b/0001-change-bug-url.patch @@ -1,7 +1,18 @@ -diff -up dhcp-4.3.5/omapip/errwarn.c.errwarn dhcp-4.3.5/omapip/errwarn.c ---- dhcp-4.3.5/omapip/errwarn.c.errwarn 2016-09-27 21:16:50.000000000 +0200 -+++ dhcp-4.3.5/omapip/errwarn.c 2016-11-29 19:44:03.515031147 +0100 -@@ -49,6 +49,41 @@ void (*log_cleanup) (void); +From 31ef6eadb15c3773b81256a8617eccc7657fd2fd Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:09:57 +0100 +Subject: [PATCH 01/21] change bug url +Cc: pzhukov@redhat.com + +--- + omapip/errwarn.c | 47 ++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 42 insertions(+), 5 deletions(-) + +diff --git a/omapip/errwarn.c b/omapip/errwarn.c +index e30f8a0..09a3004 100644 +--- a/omapip/errwarn.c ++++ b/omapip/errwarn.c +@@ -48,6 +48,41 @@ void (*log_cleanup) (void); static char mbuf [CVT_BUF_MAX + 1]; static char fbuf [CVT_BUF_MAX + 1]; @@ -43,7 +54,7 @@ diff -up dhcp-4.3.5/omapip/errwarn.c.errwarn dhcp-4.3.5/omapip/errwarn.c /* Log an error message, then exit... */ void log_fatal (const char * fmt, ... ) -@@ -75,11 +110,13 @@ void log_fatal (const char * fmt, ... ) +@@ -74,11 +109,13 @@ void log_fatal (const char * fmt, ... ) } log_error ("%s", ""); @@ -62,3 +73,6 @@ diff -up dhcp-4.3.5/omapip/errwarn.c.errwarn dhcp-4.3.5/omapip/errwarn.c log_error ("%s", ""); log_error ("exiting."); +-- +2.14.5 + diff --git a/dhcp-dhclient-options.patch b/0002-additional-dhclient-options.patch similarity index 85% rename from dhcp-dhclient-options.patch rename to 0002-additional-dhclient-options.patch index 806ac63..e112130 100644 --- a/dhcp-dhclient-options.patch +++ b/0002-additional-dhclient-options.patch @@ -1,5 +1,20 @@ +From 3a86bcb58a7c081df22b6f55e973d5e3c99065d8 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:19:47 +0100 +Subject: [PATCH 02/21] additional dhclient options +Cc: pzhukov@redhat.com + +--- + client/clparse.c | 10 +- + client/dhclient.8 | 27 ++++++ + client/dhclient.c | 271 +++++++++++++++++++++++++++++++++++++++++++++++++++- + common/conflex.c | 2 + + includes/dhcpd.h | 3 + + includes/dhctoken.h | 1 + + 6 files changed, 308 insertions(+), 6 deletions(-) + diff --git a/client/clparse.c b/client/clparse.c -index 03190c3..2033427 100644 +index eaf48a8..7212e3a 100644 --- a/client/clparse.c +++ b/client/clparse.c @@ -189,6 +189,7 @@ isc_result_t read_client_conf () @@ -34,7 +49,7 @@ index 03190c3..2033427 100644 default: lose = 0; diff --git a/client/dhclient.8 b/client/dhclient.8 -index 24f8f12..aa2238d 100644 +index ebc750f..6d7fbdb 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 @@ -134,6 +134,33 @@ dhclient - Dynamic Host Configuration Protocol Client @@ -72,12 +87,12 @@ index 24f8f12..aa2238d 100644 .I seconds ] diff --git a/client/dhclient.c b/client/dhclient.c -index dcf3f1a..270a960 100644 +index 825ab00..26a333c 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -40,6 +40,12 @@ - #include - #include +@@ -41,6 +41,12 @@ + #include + #include +/* + * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define @@ -88,7 +103,7 @@ index dcf3f1a..270a960 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ -@@ -101,6 +107,10 @@ char *mockup_relay = NULL; +@@ -110,6 +116,10 @@ char *mockup_relay = NULL; char *progname = NULL; @@ -99,25 +114,27 @@ index dcf3f1a..270a960 100644 void run_stateless(int exit_mode, u_int16_t port); static isc_result_t write_duid(struct data_string *duid); -@@ -179,7 +189,11 @@ usage(const char *sfmt, const char *sarg) - " [-s server-addr] [-cf config-file]\n" - " [-df duid-file] [-lf lease-file]\n" - " [-pf pid-file] [--no-pid] [-e VAR=val]\n" -- " [-sf script-file] [interface]*", -+ " [-sf script-file] [interface]*\n" -+ " [-C ] [-B]\n" -+ " [-H | -F ] [--timeout ]\n" -+ " [-V ]\n" -+ " [--request-options ]", - isc_file_basename(progname)); - } +@@ -183,8 +193,12 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; + " [-s server-addr] [-cf config-file]\n" \ + " [-df duid-file] [-lf lease-file]\n" \ + " [-pf pid-file] [--no-pid] [-e VAR=val]\n" \ +-" [-sf script-file] [interface]*" +- ++" [-sf script-file] [interface]*\n" \ ++" [-C ] [-B]\n" \ ++" [-H | -F ] [--timeout ]\n" \ ++" [-V ]\n" \ ++" [--request-options ]" ++ + #define DHCLIENT_USAGEH "{--version|--help|-h}" -@@ -216,6 +230,16 @@ main(int argc, char **argv) { + static void +@@ -243,6 +257,16 @@ main(int argc, char **argv) { + #else progname = argv[0]; #endif - -+ char *dhcp_client_identifier_arg = NULL; -+ char *dhcp_host_name_arg = NULL; ++ char *dhcp_client_identifier_arg = NULL; ++ char *dhcp_host_name_arg = NULL; + char *dhcp_fqdn_arg = NULL; + char *dhcp_vendor_class_identifier_arg = NULL; + char *dhclient_request_options = NULL; @@ -129,10 +146,10 @@ index dcf3f1a..270a960 100644 /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -442,6 +466,88 @@ main(int argc, char **argv) { - strlen(PACKAGE_VERSION))); - IGNORE_RET(write(STDERR_FILENO, "\n", 1)); - exit(0); +@@ -558,6 +582,89 @@ main(int argc, char **argv) { + std_dhcid = 1; + } else if (!strcmp(argv[i], "-v")) { + quiet = 0; + } else if (!strcmp(argv[i], "-C")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { + usage(use_noarg, argv[i-1]); @@ -215,10 +232,11 @@ index dcf3f1a..270a960 100644 + } + + dhclient_request_options = argv[i]; ++ } else if (argv[i][0] == '-') { usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -641,6 +747,156 @@ main(int argc, char **argv) { +@@ -754,6 +861,156 @@ main(int argc, char **argv) { /* Parse the dhclient.conf file. */ read_client_conf(); @@ -375,7 +393,7 @@ index dcf3f1a..270a960 100644 /* Parse the lease database. */ read_client_leases(); -@@ -3092,7 +3348,8 @@ void make_discover (client, lease) +@@ -3226,7 +3483,8 @@ void make_discover (client, lease) client -> packet.xid = random (); client -> packet.secs = 0; /* filled in by send_discover. */ @@ -385,7 +403,7 @@ index dcf3f1a..270a960 100644 client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -3177,7 +3434,9 @@ void make_request (client, lease) +@@ -3311,7 +3569,9 @@ void make_request (client, lease) } else { memset (&client -> packet.ciaddr, 0, sizeof client -> packet.ciaddr); @@ -396,7 +414,7 @@ index dcf3f1a..270a960 100644 client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -3240,7 +3499,8 @@ void make_decline (client, lease) +@@ -3374,7 +3634,8 @@ void make_decline (client, lease) client -> packet.hops = 0; client -> packet.xid = client -> xid; client -> packet.secs = 0; /* Filled in by send_request. */ @@ -407,7 +425,7 @@ index dcf3f1a..270a960 100644 else client -> packet.flags = htons (BOOTP_BROADCAST); diff --git a/common/conflex.c b/common/conflex.c -index fe994ac..bdb4a52 100644 +index 045b655..71c0bf5 100644 --- a/common/conflex.c +++ b/common/conflex.c @@ -832,6 +832,8 @@ intern(char *atom, enum dhcp_token dfv) { @@ -420,10 +438,10 @@ index fe994ac..bdb4a52 100644 case 'c': if (!strcasecmp(atom + 1, "ase")) diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index eab09a6..cfdac23 100644 +index 5930e6a..018fa34 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -1251,6 +1251,9 @@ struct client_config { +@@ -1269,6 +1269,9 @@ struct client_config { int lease_id_format; /* format for IDs in lease file, TOKEN_OCTAL or TOKEN_HEX */ @@ -434,16 +452,17 @@ index eab09a6..cfdac23 100644 /* Per-interface state used in the dhcp client... */ diff --git a/includes/dhctoken.h b/includes/dhctoken.h -index 15bbd1c..b312e7a 100644 +index 5920f4f..7e7215a 100644 --- a/includes/dhctoken.h +++ b/includes/dhctoken.h -@@ -373,7 +373,8 @@ enum dhcp_token { - TOKEN_BIG_ENDIAN = 675, - LEASE_ID_FORMAT = 676, +@@ -377,6 +377,7 @@ enum dhcp_token { TOKEN_HEX = 677, -- TOKEN_OCTAL = 678 -+ TOKEN_OCTAL = 678, -+ BOOTP_BROADCAST_ALWAYS = 679 + TOKEN_OCTAL = 678, + KEY_ALGORITHM = 679 ++ BOOTP_BROADCAST_ALWAYS = 680 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ +-- +2.14.5 + diff --git a/dhcp-release-by-ifup.patch b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch similarity index 80% rename from dhcp-release-by-ifup.patch rename to 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch index 677eb5c..294b7fe 100644 --- a/dhcp-release-by-ifup.patch +++ b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch @@ -1,7 +1,18 @@ -diff -up dhcp-4.3.0a1/client/dhclient.c.ifup dhcp-4.3.0a1/client/dhclient.c ---- dhcp-4.3.0a1/client/dhclient.c.ifup 2013-12-19 14:53:08.817760677 +0100 -+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:05:16.290518574 +0100 -@@ -521,9 +521,81 @@ main(int argc, char **argv) { +From 692fd8b16ef6f12a57596351e930c65c68597bac Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:21:14 +0100 +Subject: [PATCH 03/21] Handle releasing interfaces requested by /sbin/ifup +Cc: pzhukov@redhat.com + +--- + client/dhclient.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 72 insertions(+) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 26a333c..2a2e9e6 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -787,9 +787,81 @@ main(int argc, char **argv) { } } fclose(pidfd); @@ -83,3 +94,6 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.ifup dhcp-4.3.0a1/client/dhclient.c if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); +-- +2.14.5 + diff --git a/dhcp-unicast-bootp.patch b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch similarity index 75% rename from dhcp-unicast-bootp.patch rename to 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch index abf89f2..e379480 100644 --- a/dhcp-unicast-bootp.patch +++ b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch @@ -1,6 +1,19 @@ -diff -up dhcp-4.3.4/server/bootp.c.unicast dhcp-4.3.4/server/bootp.c ---- dhcp-4.3.4/server/bootp.c.unicast 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/server/bootp.c 2016-05-02 15:09:40.023243008 +0200 +From 9dc17d6086bf140efda84ce434664b60ce2191a1 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:22:41 +0100 +Subject: [PATCH 04/21] Support unicast BOOTP for IBM pSeries systems (and + maybe others) +Cc: pzhukov@redhat.com + +--- + server/bootp.c | 12 +++++++++++- + server/dhcp.c | 33 ++++++++++++++++++++++++++------- + 2 files changed, 37 insertions(+), 8 deletions(-) + +diff --git a/server/bootp.c b/server/bootp.c +index 26a7607..2212f31 100644 +--- a/server/bootp.c ++++ b/server/bootp.c @@ -52,6 +52,7 @@ void bootp (packet) char msgbuf [1024]; int ignorep; @@ -34,10 +47,11 @@ diff -up dhcp-4.3.4/server/bootp.c.unicast dhcp-4.3.4/server/bootp.c /* If it comes from a client that already knows its address and is not requesting a broadcast response, and we can -diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c ---- dhcp-4.3.4/server/dhcp.c.unicast 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/server/dhcp.c 2016-05-02 15:10:13.255267511 +0200 -@@ -5132,6 +5132,7 @@ int locate_network (packet) +diff --git a/server/dhcp.c b/server/dhcp.c +index 6f3a91f..20f2a62 100644 +--- a/server/dhcp.c ++++ b/server/dhcp.c +@@ -5224,6 +5224,7 @@ int locate_network (packet) struct data_string data; struct subnet *subnet = (struct subnet *)0; struct option_cache *oc; @@ -45,7 +59,7 @@ diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c #if defined(DHCPv6) && defined(DHCP4o6) if (dhcpv4_over_dhcpv6 && (packet->dhcp4o6_response != NULL)) { -@@ -5153,12 +5154,24 @@ int locate_network (packet) +@@ -5245,12 +5246,24 @@ int locate_network (packet) from the interface, if there is one. If not, fail. */ if (!oc && !packet -> raw -> giaddr.s_addr) { if (packet -> interface -> shared_network) { @@ -75,7 +89,7 @@ diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c } /* If there's an option indicating link connection, and it's valid, -@@ -5185,7 +5198,10 @@ int locate_network (packet) +@@ -5277,7 +5290,10 @@ int locate_network (packet) data_string_forget (&data, MDL); } else { ia.len = 4; @@ -87,7 +101,7 @@ diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c } /* If we know the subnet on which the IP address lives, use it. */ -@@ -5193,7 +5209,10 @@ int locate_network (packet) +@@ -5285,7 +5301,10 @@ int locate_network (packet) shared_network_reference (&packet -> shared_network, subnet -> shared_network, MDL); subnet_dereference (&subnet, MDL); @@ -99,3 +113,6 @@ diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c } /* Otherwise, fail. */ +-- +2.14.5 + diff --git a/dhcp-default-requested-options.patch b/0005-Change-default-requested-options.patch similarity index 69% rename from dhcp-default-requested-options.patch rename to 0005-Change-default-requested-options.patch index f57fa1f..89118b1 100644 --- a/dhcp-default-requested-options.patch +++ b/0005-Change-default-requested-options.patch @@ -1,6 +1,19 @@ -diff -up dhcp-4.3.4/client/clparse.c.requested dhcp-4.3.4/client/clparse.c ---- dhcp-4.3.4/client/clparse.c.requested 2016-04-29 12:18:50.157151352 +0200 -+++ dhcp-4.3.4/client/clparse.c 2016-04-29 12:19:22.235137243 +0200 +From ac21c8b966620cbe79be3508c024ae30f93d6266 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:24:24 +0100 +Subject: [PATCH 05/21] Change default requested options +Cc: pzhukov@redhat.com + +Add NIS domain, NIS servers, NTP servers, interface-mtu and domain-search +to the list of default requested DHCP options +--- + client/clparse.c | 27 ++++++++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +diff --git a/client/clparse.c b/client/clparse.c +index 7212e3a..39b95a0 100644 +--- a/client/clparse.c ++++ b/client/clparse.c @@ -31,7 +31,7 @@ struct client_config top_level_config; @@ -42,3 +55,6 @@ diff -up dhcp-4.3.4/client/clparse.c.requested dhcp-4.3.4/client/clparse.c for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) { if (default_requested_options[code] == NULL) log_fatal("Unable to find option definition for " +-- +2.14.5 + diff --git a/dhcp-manpages.patch b/0006-Various-man-page-only-fixes.patch similarity index 73% rename from dhcp-manpages.patch rename to 0006-Various-man-page-only-fixes.patch index 24d6972..286dde1 100644 --- a/dhcp-manpages.patch +++ b/0006-Various-man-page-only-fixes.patch @@ -1,38 +1,21 @@ -diff -up dhcp-4.3.5b1/client/dhclient.conf.5.man dhcp-4.3.5b1/client/dhclient.conf.5 ---- dhcp-4.3.5b1/client/dhclient.conf.5.man 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/client/dhclient.conf.5 2016-09-12 17:09:23.243313514 +0200 -@@ -228,7 +228,8 @@ responding to the client send the client - options. Only the option names should be specified in the request - statement - not option parameters. By default, the DHCPv4 client - requests the subnet-mask, broadcast-address, time-offset, routers, --domain-name, domain-name-servers and host-name options while the DHCPv6 -+domain-search, domain-name, domain-name-servers, host-name, nis-domain, -+nis-servers, ntp-servers and interface-mtu options while the DHCPv6 - client requests the dhcp6 name-servers and domain-search options. Note - that if you enter a \'request\' statement, you over-ride these defaults - and these options will not be requested. -@@ -736,6 +737,17 @@ know the DHCP service(s) anycast MAC add - client. The \fIlink-type\fR and \fImac-address\fR parameters are configured - in a similar manner to the \fBhardware\fR statement. - .PP -+ \fBbootp-broadcast-always;\fR -+.PP -+The -+.B bootp-broadcast-always -+statement instructs dhclient to always set the bootp broadcast flag in -+request packets, so that servers will always broadcast replies. -+This is equivalent to supplying the dhclient -B argument, and has -+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf. -+This option is provided as an extension to enable dhclient to work -+on IBM s390 Linux guests. -+.PP - .SH SAMPLE - The following configuration file was used on a laptop running NetBSD - 1.3, though the domains have been modified. -diff -up dhcp-4.3.5b1/client/dhclient-script.8.man dhcp-4.3.5b1/client/dhclient-script.8 ---- dhcp-4.3.5b1/client/dhclient-script.8.man 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/client/dhclient-script.8 2016-09-12 17:08:09.516254385 +0200 -@@ -45,7 +45,7 @@ customizations are needed, they should b +From dd3053e6f45ac1f149869b7ded3f539d6c046114 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:25:53 +0100 +Subject: [PATCH 06/21] Various man-page-only fixes +Cc: pzhukov@redhat.com + +--- + client/dhclient-script.8 | 22 +++++++++++++++++++++- + client/dhclient.conf.5 | 14 +++++++++++++- + common/dhcp-options.5 | 15 +++++++++++++++ + server/dhcpd.conf.5 | 14 +++++++++----- + 4 files changed, 58 insertions(+), 7 deletions(-) + +diff --git a/client/dhclient-script.8 b/client/dhclient-script.8 +index 3553afd..0db5516 100644 +--- a/client/dhclient-script.8 ++++ b/client/dhclient-script.8 +@@ -43,7 +43,7 @@ customizations are needed, they should be possible using the enter and exit hooks provided (see HOOKS for details). These hooks will allow the user to override the default behaviour of the client in creating a .B /etc/resolv.conf @@ -41,7 +24,7 @@ diff -up dhcp-4.3.5b1/client/dhclient-script.8.man dhcp-4.3.5b1/client/dhclient- .PP No standard client script exists for some operating systems, even though the actual client may work, so a pioneering user may well need to create -@@ -89,6 +89,26 @@ present. The +@@ -87,6 +87,26 @@ present. The .B ETCDIR/dhclient-exit-hooks script can modify the valid of exit_status to change the exit status of dhclient-script. @@ -68,10 +51,43 @@ diff -up dhcp-4.3.5b1/client/dhclient-script.8.man dhcp-4.3.5b1/client/dhclient- .SH OPERATION When dhclient needs to invoke the client configuration script, it defines a set of variables in the environment, and then invokes -diff -up dhcp-4.3.5b1/common/dhcp-options.5.man dhcp-4.3.5b1/common/dhcp-options.5 ---- dhcp-4.3.5b1/common/dhcp-options.5.man 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/common/dhcp-options.5 2016-09-12 17:08:09.517254386 +0200 -@@ -1013,6 +1013,21 @@ classless IP routing - it does not inclu +diff --git a/client/dhclient.conf.5 b/client/dhclient.conf.5 +index fa3b908..566a881 100644 +--- a/client/dhclient.conf.5 ++++ b/client/dhclient.conf.5 +@@ -228,7 +228,8 @@ responding to the client send the client its values for the specified + options. Only the option names should be specified in the request + statement - not option parameters. By default, the DHCPv4 client + requests the subnet-mask, broadcast-address, time-offset, routers, +-domain-name, domain-name-servers and host-name options while the DHCPv6 ++domain-search, domain-name, domain-name-servers, host-name, nis-domain, ++nis-servers, ntp-servers and interface-mtu options while the DHCPv6 + client requests the dhcp6 name-servers and domain-search options. Note + that if you enter a \'request\' statement, you over-ride these defaults + and these options will not be requested. +@@ -735,6 +736,17 @@ broadcast packets transmitted by DHCP clients, but is only useful if you + know the DHCP service(s) anycast MAC address prior to configuring your + client. The \fIlink-type\fR and \fImac-address\fR parameters are configured + in a similar manner to the \fBhardware\fR statement. ++.PP ++ \fBbootp-broadcast-always;\fR ++.PP ++The ++.B bootp-broadcast-always ++statement instructs dhclient to always set the bootp broadcast flag in ++request packets, so that servers will always broadcast replies. ++This is equivalent to supplying the dhclient -B argument, and has ++the same effect as specifying 'always-broadcast' in the server's dhcpd.conf. ++This option is provided as an extension to enable dhclient to work ++on IBM s390 Linux guests. + .PP + .SH SAMPLE + The following configuration file was used on a laptop running NetBSD +diff --git a/common/dhcp-options.5 b/common/dhcp-options.5 +index 33d4804..d9e1197 100644 +--- a/common/dhcp-options.5 ++++ b/common/dhcp-options.5 +@@ -1068,6 +1068,21 @@ classless IP routing - it does not include a subnet mask. Since classless IP routing is now the most widely deployed routing standard, this option is virtually useless, and is not implemented by any of the popular DHCP clients, for example the Microsoft DHCP client. @@ -93,10 +109,11 @@ diff -up dhcp-4.3.5b1/common/dhcp-options.5.man dhcp-4.3.5b1/common/dhcp-options .RE .PP .nf -diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 ---- dhcp-4.3.5b1/server/dhcpd.conf.5.man 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/server/dhcpd.conf.5 2016-09-12 17:10:11.205351980 +0200 -@@ -528,6 +528,9 @@ pool { +diff --git a/server/dhcpd.conf.5 b/server/dhcpd.conf.5 +index 17330d4..89b5540 100644 +--- a/server/dhcpd.conf.5 ++++ b/server/dhcpd.conf.5 +@@ -527,6 +527,9 @@ pool { }; .fi .PP @@ -106,7 +123,7 @@ diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 The server currently does very little sanity checking, so if you configure it wrong, it will just fail in odd ways. I would recommend therefore that you either do failover or don't do failover, but don't -@@ -542,9 +545,9 @@ primary server might look like this: +@@ -541,9 +544,9 @@ primary server might look like this: failover peer "foo" { primary; address anthrax.rc.example.com; @@ -118,7 +135,7 @@ diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 max-response-delay 60; max-unacked-updates 10; mclt 3600; -@@ -1246,7 +1249,7 @@ the zone containing PTR records - for IS +@@ -1323,7 +1326,7 @@ the zone containing PTR records - for ISC BIND, something like this: .PP .nf key DHCP_UPDATER { @@ -127,7 +144,7 @@ diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 secret pRP5FapFoJ95JEL06sv4PQ==; }; -@@ -1269,7 +1272,7 @@ dhcpd.conf file: +@@ -1346,7 +1349,7 @@ dhcpd.conf file: .PP .nf key DHCP_UPDATER { @@ -136,7 +153,7 @@ diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 secret pRP5FapFoJ95JEL06sv4PQ==; }; -@@ -2742,7 +2745,8 @@ statement +@@ -2912,7 +2915,8 @@ statement The \fInext-server\fR statement is used to specify the host address of the server from which the initial boot file (specified in the \fIfilename\fR statement) is to be loaded. \fIServer-name\fR should @@ -146,3 +163,6 @@ diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.man dhcp-4.3.5b1/server/dhcpd.conf.5 .RE .PP The +-- +2.14.5 + diff --git a/0007-Change-paths-to-conform-to-our-standards.patch b/0007-Change-paths-to-conform-to-our-standards.patch new file mode 100644 index 0000000..fb3348c --- /dev/null +++ b/0007-Change-paths-to-conform-to-our-standards.patch @@ -0,0 +1,54 @@ +From bf4e3f1d181b5b4e6225fe5726c02420157433cc Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:26:34 +0100 +Subject: [PATCH 07/21] Change paths to conform to our standards +Cc: pzhukov@redhat.com + +--- + doc/examples/dhcpd-dhcpv6.conf | 2 +- + includes/dhcpd.h | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/doc/examples/dhcpd-dhcpv6.conf b/doc/examples/dhcpd-dhcpv6.conf +index 448a6a6..2357824 100644 +--- a/doc/examples/dhcpd-dhcpv6.conf ++++ b/doc/examples/dhcpd-dhcpv6.conf +@@ -43,7 +43,7 @@ option dhcp6.domain-search "test.example.com","example.com"; + option dhcp6.info-refresh-time 21600; + + # The path of the lease file +-dhcpv6-lease-file-name "/usr/local/var/db/dhcpd6.leases"; ++dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases"; + + # Static definition (must be global) + host myclient { +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index 018fa34..3632a6b 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -1545,7 +1545,7 @@ typedef unsigned char option_mask [16]; + #else /* !DEBUG */ + + #ifndef _PATH_DHCPD_CONF +-#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" ++#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf" + #endif /* DEBUG */ + + #ifndef _PATH_DHCPD_DB +@@ -1567,11 +1567,11 @@ typedef unsigned char option_mask [16]; + #endif /* DEBUG */ + + #ifndef _PATH_DHCLIENT_CONF +-#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" ++#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf" + #endif + + #ifndef _PATH_DHCLIENT_SCRIPT +-#define _PATH_DHCLIENT_SCRIPT "/sbin/dhclient-script" ++#define _PATH_DHCLIENT_SCRIPT "/usr/sbin/dhclient-script" + #endif + + #ifndef _PATH_DHCLIENT_PID +-- +2.14.5 + diff --git a/dhcp-CLOEXEC.patch b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch similarity index 67% rename from dhcp-CLOEXEC.patch rename to 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch index 309a87c..9759055 100644 --- a/dhcp-CLOEXEC.patch +++ b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch @@ -1,7 +1,32 @@ -diff -up dhcp-4.3.3b1/client/clparse.c.cloexec dhcp-4.3.3b1/client/clparse.c ---- dhcp-4.3.3b1/client/clparse.c.cloexec 2015-08-10 10:46:20.264755543 +0200 -+++ dhcp-4.3.3b1/client/clparse.c 2015-08-10 10:46:20.274755510 +0200 -@@ -247,7 +247,7 @@ int read_client_conf_file (const char *n +From 26d34bc8e55c39ef84d580b6453c65b5cbeab8ff Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:27:18 +0100 +Subject: [PATCH 08/21] Make sure all open file descriptors are closed-on-exec + for SELinux +Cc: pzhukov@redhat.com + +ISC-bug: #19148 +--- + client/clparse.c | 4 ++-- + client/dhclient.c | 28 ++++++++++++++-------------- + common/bpf.c | 2 +- + common/dlpi.c | 2 +- + common/nit.c | 2 +- + common/resolv.c | 2 +- + common/upf.c | 2 +- + omapip/trace.c | 6 +++--- + relay/dhcrelay.c | 10 +++++----- + server/confpars.c | 2 +- + server/db.c | 4 ++-- + server/dhcpd.c | 14 +++++++------- + server/ldap.c | 2 +- + 13 files changed, 40 insertions(+), 40 deletions(-) + +diff --git a/client/clparse.c b/client/clparse.c +index 39b95a0..44387ed 100644 +--- a/client/clparse.c ++++ b/client/clparse.c +@@ -288,7 +288,7 @@ int read_client_conf_file (const char *name, struct interface_info *ip, int token; isc_result_t status; @@ -10,7 +35,7 @@ diff -up dhcp-4.3.3b1/client/clparse.c.cloexec dhcp-4.3.3b1/client/clparse.c return uerr2isc (errno); cfile = NULL; -@@ -323,7 +323,7 @@ void read_client_leases () +@@ -364,7 +364,7 @@ void read_client_leases () /* Open the lease file. If we can't open it, just return - we can safely trust the server to remember our state. */ @@ -19,10 +44,11 @@ diff -up dhcp-4.3.3b1/client/clparse.c.cloexec dhcp-4.3.3b1/client/clparse.c return; cfile = NULL; -diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c ---- dhcp-4.3.3b1/client/dhclient.c.cloexec 2015-08-10 10:46:20.260755556 +0200 -+++ dhcp-4.3.3b1/client/dhclient.c 2015-08-10 10:46:20.275755506 +0200 -@@ -153,11 +153,11 @@ main(int argc, char **argv) { +diff --git a/client/dhclient.c b/client/dhclient.c +index 2a2e9e6..a86ab9e 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -273,11 +273,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0 (stdin), 1, (stdout), and 2 (stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -37,7 +63,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -519,7 +519,7 @@ main(int argc, char **argv) { +@@ -765,7 +765,7 @@ main(int argc, char **argv) { long temp; int e; @@ -46,7 +72,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -574,7 +574,7 @@ main(int argc, char **argv) { +@@ -820,7 +820,7 @@ main(int argc, char **argv) { strncpy(new_path_dhclient_pid, path_dhclient_pid, pfx); sprintf(new_path_dhclient_pid + pfx, "-%s.pid", ip->name); @@ -55,7 +81,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -599,7 +599,7 @@ main(int argc, char **argv) { +@@ -845,7 +845,7 @@ main(int argc, char **argv) { int dhc_running = 0; char procfn[256] = ""; @@ -64,7 +90,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) { snprintf(procfn,256,"/proc/%u",dhcpid); dhc_running = (access(procfn, F_OK) == 0); -@@ -3120,7 +3120,7 @@ void rewrite_client_leases () +@@ -3808,7 +3808,7 @@ void rewrite_client_leases () if (leaseFile != NULL) fclose (leaseFile); @@ -73,7 +99,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return; -@@ -3313,7 +3313,7 @@ write_duid(struct data_string *duid) +@@ -4003,7 +4003,7 @@ write_duid(struct data_string *duid) return DHCP_R_INVALIDARG; if (leaseFile == NULL) { /* XXX? */ @@ -82,7 +108,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if (leaseFile == NULL) { log_error("can't create %s: %m", path_dhclient_db); return ISC_R_IOERROR; -@@ -3493,7 +3493,7 @@ int write_client_lease (client, lease, r +@@ -4207,7 +4207,7 @@ int write_client_lease (client, lease, rewrite, makesure) return 1; if (leaseFile == NULL) { /* XXX */ @@ -91,7 +117,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return 0; -@@ -4011,9 +4011,9 @@ void go_daemon () +@@ -4786,9 +4786,9 @@ void detach () (void) close(2); /* Reopen them on /dev/null. */ @@ -104,7 +130,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c write_client_pid_file (); -@@ -4030,14 +4030,14 @@ void write_client_pid_file () +@@ -4806,14 +4806,14 @@ void write_client_pid_file () return; } @@ -121,10 +147,11 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.cloexec dhcp-4.3.3b1/client/dhclient.c if (!pf) { close(pfdesc); log_error ("Can't fdopen %s: %m", path_dhclient_pid); -diff -up dhcp-4.3.3b1/common/bpf.c.cloexec dhcp-4.3.3b1/common/bpf.c ---- dhcp-4.3.3b1/common/bpf.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/bpf.c 2015-08-10 10:46:20.275755506 +0200 -@@ -95,7 +95,7 @@ int if_register_bpf (info) +diff --git a/common/bpf.c b/common/bpf.c +index 16076fe..67b6d64 100644 +--- a/common/bpf.c ++++ b/common/bpf.c +@@ -94,7 +94,7 @@ int if_register_bpf (info) for (b = 0; 1; b++) { /* %Audit% 31 bytes max. %2004.06.17,Safe% */ sprintf(filename, BPF_FORMAT, b); @@ -133,10 +160,11 @@ diff -up dhcp-4.3.3b1/common/bpf.c.cloexec dhcp-4.3.3b1/common/bpf.c if (sock < 0) { if (errno == EBUSY) { continue; -diff -up dhcp-4.3.3b1/common/dlpi.c.cloexec dhcp-4.3.3b1/common/dlpi.c ---- dhcp-4.3.3b1/common/dlpi.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/dlpi.c 2015-08-10 10:46:20.275755506 +0200 -@@ -804,7 +804,7 @@ dlpiopen(const char *ifname) { +diff --git a/common/dlpi.c b/common/dlpi.c +index 3990bf1..a941258 100644 +--- a/common/dlpi.c ++++ b/common/dlpi.c +@@ -817,7 +817,7 @@ dlpiopen(const char *ifname) { } *dp = '\0'; @@ -145,9 +173,10 @@ diff -up dhcp-4.3.3b1/common/dlpi.c.cloexec dhcp-4.3.3b1/common/dlpi.c } /* -diff -up dhcp-4.3.3b1/common/nit.c.cloexec dhcp-4.3.3b1/common/nit.c ---- dhcp-4.3.3b1/common/nit.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/nit.c 2015-08-10 10:46:20.275755506 +0200 +diff --git a/common/nit.c b/common/nit.c +index d822c15..a9132bc 100644 +--- a/common/nit.c ++++ b/common/nit.c @@ -75,7 +75,7 @@ int if_register_nit (info) struct strioctl sio; @@ -157,10 +186,11 @@ diff -up dhcp-4.3.3b1/common/nit.c.cloexec dhcp-4.3.3b1/common/nit.c if (sock < 0) log_fatal ("Can't open NIT device for %s: %m", info -> name); -diff -up dhcp-4.3.3b1/common/resolv.c.cloexec dhcp-4.3.3b1/common/resolv.c ---- dhcp-4.3.3b1/common/resolv.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/resolv.c 2015-08-10 10:46:20.276755503 +0200 -@@ -44,7 +44,7 @@ void read_resolv_conf (parse_time) +diff --git a/common/resolv.c b/common/resolv.c +index a01f520..b209e3f 100644 +--- a/common/resolv.c ++++ b/common/resolv.c +@@ -43,7 +43,7 @@ void read_resolv_conf (parse_time) struct domain_search_list *dp, *dl, *nd; isc_result_t status; @@ -169,9 +199,10 @@ diff -up dhcp-4.3.3b1/common/resolv.c.cloexec dhcp-4.3.3b1/common/resolv.c log_error ("Can't open %s: %m", path_resolv_conf); return; } -diff -up dhcp-4.3.3b1/common/upf.c.cloexec dhcp-4.3.3b1/common/upf.c ---- dhcp-4.3.3b1/common/upf.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/upf.c 2015-08-10 10:46:20.276755503 +0200 +diff --git a/common/upf.c b/common/upf.c +index 9785879..e0a524f 100644 +--- a/common/upf.c ++++ b/common/upf.c @@ -71,7 +71,7 @@ int if_register_upf (info) /* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */ sprintf(filename, "/dev/pf/pfilt%d", b); @@ -181,10 +212,11 @@ diff -up dhcp-4.3.3b1/common/upf.c.cloexec dhcp-4.3.3b1/common/upf.c if (sock < 0) { if (errno == EBUSY) { continue; -diff -up dhcp-4.3.3b1/omapip/trace.c.cloexec dhcp-4.3.3b1/omapip/trace.c ---- dhcp-4.3.3b1/omapip/trace.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/omapip/trace.c 2015-08-10 10:46:20.276755503 +0200 -@@ -138,10 +138,10 @@ isc_result_t trace_begin (const char *fi +diff --git a/omapip/trace.c b/omapip/trace.c +index 45bd508..5ea7486 100644 +--- a/omapip/trace.c ++++ b/omapip/trace.c +@@ -136,10 +136,10 @@ isc_result_t trace_begin (const char *filename, return DHCP_R_INVALIDARG; } @@ -197,7 +229,7 @@ diff -up dhcp-4.3.3b1/omapip/trace.c.cloexec dhcp-4.3.3b1/omapip/trace.c 0600); } -@@ -429,7 +429,7 @@ void trace_file_replay (const char *file +@@ -427,7 +427,7 @@ void trace_file_replay (const char *filename) isc_result_t result; int len; @@ -206,10 +238,11 @@ diff -up dhcp-4.3.3b1/omapip/trace.c.cloexec dhcp-4.3.3b1/omapip/trace.c if (!traceinfile) { log_error("Can't open tracefile %s: %m", filename); return; -diff -up dhcp-4.3.3b1/relay/dhcrelay.c.cloexec dhcp-4.3.3b1/relay/dhcrelay.c ---- dhcp-4.3.3b1/relay/dhcrelay.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/relay/dhcrelay.c 2015-08-10 10:46:20.276755503 +0200 -@@ -187,11 +187,11 @@ main(int argc, char **argv) { +diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c +index d8caaaf..ea1be18 100644 +--- a/relay/dhcrelay.c ++++ b/relay/dhcrelay.c +@@ -296,11 +296,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0(stdin), 1,(stdout), and 2(stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -224,8 +257,8 @@ diff -up dhcp-4.3.3b1/relay/dhcrelay.c.cloexec dhcp-4.3.3b1/relay/dhcrelay.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -558,13 +558,13 @@ main(int argc, char **argv) { - +@@ -776,13 +776,13 @@ main(int argc, char **argv) { + /* Create the pid file. */ if (no_pid_file == ISC_FALSE) { pfdesc = open(path_dhcrelay_pid, - O_CREAT | O_TRUNC | O_WRONLY, 0644); @@ -240,10 +273,11 @@ diff -up dhcp-4.3.3b1/relay/dhcrelay.c.cloexec dhcp-4.3.3b1/relay/dhcrelay.c if (!pf) log_error("Can't fdopen %s: %m", path_dhcrelay_pid); -diff -up dhcp-4.3.3b1/server/confpars.c.cloexec dhcp-4.3.3b1/server/confpars.c ---- dhcp-4.3.3b1/server/confpars.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/server/confpars.c 2015-08-10 10:46:20.277755500 +0200 -@@ -111,7 +111,7 @@ isc_result_t read_conf_file (const char +diff --git a/server/confpars.c b/server/confpars.c +index d2cedfe..2743979 100644 +--- a/server/confpars.c ++++ b/server/confpars.c +@@ -118,7 +118,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, } #endif @@ -252,19 +286,11 @@ diff -up dhcp-4.3.3b1/server/confpars.c.cloexec dhcp-4.3.3b1/server/confpars.c if (leasep) { log_error ("Can't open lease database %s: %m --", path_dhcpd_db); -diff -up dhcp-4.3.3b1/server/db.c.cloexec dhcp-4.3.3b1/server/db.c ---- dhcp-4.3.3b1/server/db.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/server/db.c 2015-08-10 10:47:32.644518358 +0200 -@@ -1072,7 +1072,7 @@ void db_startup (testp) - } - #endif - if (!testp) { -- db_file = fopen (path_dhcpd_db, "a"); -+ db_file = fopen (path_dhcpd_db, "ae"); - if (!db_file) - log_fatal ("Can't open %s for append.", path_dhcpd_db); - expire_all_pools (); -@@ -1120,7 +1120,7 @@ int new_lease_file () +diff --git a/server/db.c b/server/db.c +index 67e6cc1..6181528 100644 +--- a/server/db.c ++++ b/server/db.c +@@ -1154,7 +1154,7 @@ int new_lease_file (int test_mode) path_dhcpd_db, (int)t) >= sizeof newfname) log_fatal("new_lease_file: lease file path too long"); @@ -273,7 +299,7 @@ diff -up dhcp-4.3.3b1/server/db.c.cloexec dhcp-4.3.3b1/server/db.c if (db_fd < 0) { log_error ("Can't create new lease file: %m"); return 0; -@@ -1141,7 +1141,7 @@ int new_lease_file () +@@ -1175,7 +1175,7 @@ int new_lease_file (int test_mode) } #endif /* PARANOIA */ @@ -282,10 +308,11 @@ diff -up dhcp-4.3.3b1/server/db.c.cloexec dhcp-4.3.3b1/server/db.c log_error("Can't fdopen new lease file: %m"); close(db_fd); goto fdfail; -diff -up dhcp-4.3.3b1/server/dhcpd.c.cloexec dhcp-4.3.3b1/server/dhcpd.c ---- dhcp-4.3.3b1/server/dhcpd.c.cloexec 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/server/dhcpd.c 2015-08-10 10:46:20.278755497 +0200 -@@ -194,11 +194,11 @@ main(int argc, char **argv) { +diff --git a/server/dhcpd.c b/server/dhcpd.c +index 55ffae7..530a923 100644 +--- a/server/dhcpd.c ++++ b/server/dhcpd.c +@@ -300,11 +300,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0 (stdin), 1, (stdout), and 2 (stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -300,7 +327,7 @@ diff -up dhcp-4.3.3b1/server/dhcpd.c.cloexec dhcp-4.3.3b1/server/dhcpd.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -743,7 +743,7 @@ main(int argc, char **argv) { +@@ -975,7 +975,7 @@ main(int argc, char **argv) { * appropriate. */ if (no_pid_file == ISC_FALSE) { @@ -309,7 +336,7 @@ diff -up dhcp-4.3.3b1/server/dhcpd.c.cloexec dhcp-4.3.3b1/server/dhcpd.c if (i >= 0) { sprintf(pbuf, "%d\n", (int) getpid()); IGNORE_RET(write(i, pbuf, strlen(pbuf))); -@@ -787,9 +787,9 @@ main(int argc, char **argv) { +@@ -1028,9 +1028,9 @@ main(int argc, char **argv) { (void) close(2); /* Reopen them on /dev/null. */ @@ -322,10 +349,11 @@ diff -up dhcp-4.3.3b1/server/dhcpd.c.cloexec dhcp-4.3.3b1/server/dhcpd.c log_perror = 0; /* No sense logging to /dev/null. */ IGNORE_RET (chdir("/")); -diff -up dhcp-4.3.3b1/server/ldap.c.cloexec dhcp-4.3.3b1/server/ldap.c ---- dhcp-4.3.3b1/server/ldap.c.cloexec 2015-07-30 21:03:40.000000000 +0200 -+++ dhcp-4.3.3b1/server/ldap.c 2015-08-10 10:46:20.279755493 +0200 -@@ -1442,7 +1442,7 @@ ldap_start (void) +diff --git a/server/ldap.c b/server/ldap.c +index 5126d24..555545c 100644 +--- a/server/ldap.c ++++ b/server/ldap.c +@@ -1446,7 +1446,7 @@ ldap_start (void) if (ldap_debug_file != NULL && ldap_debug_fd == -1) { @@ -334,3 +362,6 @@ diff -up dhcp-4.3.3b1/server/ldap.c.cloexec dhcp-4.3.3b1/server/ldap.c S_IRUSR | S_IWUSR)) < 0) log_error ("Error opening debug LDAP log file %s: %s", ldap_debug_file, strerror (errno)); +-- +2.14.5 + diff --git a/0009-Fix-garbage-in-format-string-error.patch b/0009-Fix-garbage-in-format-string-error.patch new file mode 100644 index 0000000..82e224b --- /dev/null +++ b/0009-Fix-garbage-in-format-string-error.patch @@ -0,0 +1,27 @@ +From 9ffd73d22b1337aeedef751afd03822cc0a15014 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:28:13 +0100 +Subject: [PATCH 09/21] Fix 'garbage in format string' error +Cc: pzhukov@redhat.com + +RHBZ: 450042 +--- + common/tables.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common/tables.c b/common/tables.c +index c1aa214..d2294c0 100644 +--- a/common/tables.c ++++ b/common/tables.c +@@ -215,7 +215,7 @@ static struct option dhcp_options[] = { + { "name-service-search", "Sa", &dhcp_universe, 117, 1 }, + #endif + { "subnet-selection", "I", &dhcp_universe, 118, 1 }, +- { "domain-search", "Dc", &dhcp_universe, 119, 1 }, ++ { "domain-search", "D", &dhcp_universe, 119, 1 }, + { "vivco", "Evendor-class.", &dhcp_universe, 124, 1 }, + { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, + #if 0 +-- +2.14.5 + diff --git a/0010-Handle-null-timeout.patch b/0010-Handle-null-timeout.patch new file mode 100644 index 0000000..dae6440 --- /dev/null +++ b/0010-Handle-null-timeout.patch @@ -0,0 +1,32 @@ +From e269e137c3b7d25a2d089be508e6769731618d54 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:29:08 +0100 +Subject: [PATCH 10/21] Handle null timeout +Cc: pzhukov@redhat.com + +Handle cases in add_timeout() where the function is called with a NULL +value for the 'when' parameter + +ISC-Bugs: #19867 (rejected) +--- + common/dispatch.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/common/dispatch.c b/common/dispatch.c +index 0207ad3..d7fe200 100644 +--- a/common/dispatch.c ++++ b/common/dispatch.c +@@ -209,6 +209,10 @@ void add_timeout (when, where, what, ref, unref) + isc_interval_t interval; + isc_time_t expires; + ++ if (when == NULL) { ++ return; ++ } ++ + /* See if this timeout supersedes an existing timeout. */ + t = (struct timeout *)0; + for (q = timeouts; q; q = q->next) { +-- +2.14.5 + diff --git a/dhcp-capability.patch b/0011-Drop-unnecessary-capabilities.patch similarity index 75% rename from dhcp-capability.patch rename to 0011-Drop-unnecessary-capabilities.patch index 49dfbee..1c83f70 100644 --- a/dhcp-capability.patch +++ b/0011-Drop-unnecessary-capabilities.patch @@ -1,21 +1,38 @@ +From 291f738f341a78f8c7974a7603d1a2eaa01ebacc Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:30:28 +0100 +Subject: [PATCH 11/21] Drop unnecessary capabilities +Cc: pzhukov@redhat.com + +dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) +--- + client/Makefile.am | 3 ++- + client/dhclient-script.8 | 10 ++++++++++ + client/dhclient.8 | 29 +++++++++++++++++++++++++++++ + client/dhclient.c | 24 ++++++++++++++++++++++++ + configure.ac | 35 +++++++++++++++++++++++++++++++++++ + relay/Makefile.am | 3 ++- + relay/dhcrelay.c | 29 +++++++++++++++++++++++++++++ + 7 files changed, 131 insertions(+), 2 deletions(-) + diff --git a/client/Makefile.am b/client/Makefile.am -index b1ecf82..387c097 100644 +index d177159..0689185 100644 --- a/client/Makefile.am +++ b/client/Makefile.am -@@ -15,6 +15,7 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ - scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt --dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(BIND_LIBS) -+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ -+ $(CAPNG_LDADD) $(BIND_LIBS) +@@ -17,6 +17,7 @@ dhclient_LDADD = ../common/libdhcp.@A@ ../omapip/libomapi.@A@ \ + @BINDLIBIRSDIR@/libirs.@A@ \ + @BINDLIBDNSDIR@/libdns.@A@ \ + @BINDLIBISCCFGDIR@/libisccfg.@A@ \ +- @BINDLIBISCDIR@/libisc.@A@ ++ @BINDLIBISCDIR@/libisc.@A@ \ ++ $(CAPNG_LDADD) man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 EXTRA_DIST = $(man_MANS) diff --git a/client/dhclient-script.8 b/client/dhclient-script.8 -index 3a3aaf7..fec726c 100644 +index 0db5516..2eddb8f 100644 --- a/client/dhclient-script.8 +++ b/client/dhclient-script.8 -@@ -245,6 +245,16 @@ repeatedly initialized to the values provided by one server, and then +@@ -243,6 +243,16 @@ repeatedly initialized to the values provided by one server, and then the other. Assuming the information provided by both servers is valid, this shouldn't cause any real problems, but it could be confusing. @@ -33,7 +50,7 @@ index 3a3aaf7..fec726c 100644 dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and dhclient.leases(5). diff --git a/client/dhclient.8 b/client/dhclient.8 -index aa2238d..005cda5 100644 +index 6d7fbdb..0145b9f 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 @@ -134,6 +134,9 @@ dhclient - Dynamic Host Configuration Protocol Client @@ -46,7 +63,7 @@ index aa2238d..005cda5 100644 .B -B ] [ -@@ -320,6 +323,32 @@ not to exit when it doesn't find any such interfaces. The +@@ -328,6 +331,32 @@ not to exit when it doesn't find any such interfaces. The program can then be used to notify the client when a network interface has been added or removed, so that the client can attempt to configure an IP address on that interface. @@ -80,12 +97,12 @@ index aa2238d..005cda5 100644 .BI \-n Do not configure any interfaces. This is most likely to be useful in diff --git a/client/dhclient.c b/client/dhclient.c -index 09ae09b..2d564ff 100644 +index a86ab9e..5d3f5bc 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -40,6 +40,10 @@ - #include - #include +@@ -41,6 +41,10 @@ + #include + #include +#ifdef HAVE_LIBCAP_NG +#include @@ -94,7 +111,7 @@ index 09ae09b..2d564ff 100644 /* * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define * that when building ISC code. -@@ -239,6 +243,9 @@ main(int argc, char **argv) { +@@ -266,6 +270,9 @@ main(int argc, char **argv) { int timeout_arg = 0; char *arg_conf = NULL; int arg_conf_len = 0; @@ -104,18 +121,18 @@ index 09ae09b..2d564ff 100644 /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -548,6 +555,10 @@ main(int argc, char **argv) { - } +@@ -665,6 +672,10 @@ main(int argc, char **argv) { dhclient_request_options = argv[i]; + + } else if (!strcmp(argv[i], "-nc")) { +#ifdef HAVE_LIBCAP_NG -+ keep_capabilities = 1; ++ keep_capabilities = 1; +#endif } else if (argv[i][0] == '-') { usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -608,6 +619,19 @@ main(int argc, char **argv) { +@@ -725,6 +736,19 @@ main(int argc, char **argv) { path_dhclient_script = s; } @@ -136,10 +153,10 @@ index 09ae09b..2d564ff 100644 initialize_common_option_spaces(); diff --git a/configure.ac b/configure.ac -index adc98a8..8bbe5ca 100644 +index a797438..15fc0d7 100644 --- a/configure.ac +++ b/configure.ac -@@ -592,6 +592,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); +@@ -612,6 +612,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); # Look for optional headers. AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) @@ -182,20 +199,21 @@ index adc98a8..8bbe5ca 100644 AC_SEARCH_LIBS(socket, [socket]) AC_SEARCH_LIBS(inet_ntoa, [nsl]) diff --git a/relay/Makefile.am b/relay/Makefile.am -index 316a524..999e543 100644 +index 2ba5979..8900e0b 100644 --- a/relay/Makefile.am +++ b/relay/Makefile.am -@@ -5,7 +5,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c - dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ -- $(BIND_LIBS) -+ $(CAPNG_LDADD) $(BIND_LIBS) +@@ -6,7 +6,8 @@ dhcrelay_LDADD = ../common/libdhcp.@A@ ../omapip/libomapi.@A@ \ + @BINDLIBIRSDIR@/libirs.@A@ \ + @BINDLIBDNSDIR@/libdns.@A@ \ + @BINDLIBISCCFGDIR@/libisccfg.@A@ \ +- @BINDLIBISCDIR@/libisc.@A@ ++ @BINDLIBISCDIR@/libisc.@A@ \ ++ $(CAPNG_LDADD) man_MANS = dhcrelay.8 EXTRA_DIST = $(man_MANS) diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index eac119c..d2ab448 100644 +index ea1be18..7b4f4f1 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -32,6 +32,11 @@ @@ -210,7 +228,7 @@ index eac119c..d2ab448 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -472,6 +477,10 @@ main(int argc, char **argv) { +@@ -590,6 +595,10 @@ main(int argc, char **argv) { if (++i == argc) usage(use_noarg, argv[i-1]); dhcrelay_sub_id = argv[i]; @@ -221,7 +239,7 @@ index eac119c..d2ab448 100644 #endif } else if (!strcmp(argv[i], "-pf")) { if (++i == argc) -@@ -547,6 +556,17 @@ main(int argc, char **argv) { +@@ -660,6 +669,17 @@ main(int argc, char **argv) { #endif } @@ -239,7 +257,7 @@ index eac119c..d2ab448 100644 if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -@@ -699,6 +719,15 @@ main(int argc, char **argv) { +@@ -816,6 +836,15 @@ main(int argc, char **argv) { signal(SIGTERM, dhcp_signal_handler); /* kill */ #endif @@ -255,3 +273,6 @@ index eac119c..d2ab448 100644 /* Start dispatching packets and timeouts... */ dispatch(); +-- +2.14.5 + diff --git a/dhcp-rfc3442-classless-static-routes.patch b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch similarity index 76% rename from dhcp-rfc3442-classless-static-routes.patch rename to 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch index 6c3a239..a2804a4 100644 --- a/dhcp-rfc3442-classless-static-routes.patch +++ b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch @@ -1,6 +1,27 @@ -diff -up dhcp-4.3.4/client/clparse.c.rfc3442 dhcp-4.3.4/client/clparse.c ---- dhcp-4.3.4/client/clparse.c.rfc3442 2016-04-29 12:23:34.192032714 +0200 -+++ dhcp-4.3.4/client/clparse.c 2016-04-29 12:24:37.531016317 +0200 +From 2756fcc3f88c27d0e12e72dbdd2906fbf45f2362 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:32:35 +0100 +Subject: [PATCH 12/21] RFC 3442 - Classless Static Route Option for DHCPv4 + (#516325) +Cc: pzhukov@redhat.com + +(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572]) +--- + client/clparse.c | 13 ++++++++++-- + common/dhcp-options.5 | 43 +++++++++++++++++++++++++++++++++++++++ + common/inet.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ + common/options.c | 49 +++++++++++++++++++++++++++++++++++++++++++- + common/parse.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++- + common/tables.c | 2 ++ + includes/dhcp.h | 1 + + includes/dhcpd.h | 2 ++ + includes/dhctoken.h | 5 +++-- + 9 files changed, 219 insertions(+), 6 deletions(-) + +diff --git a/client/clparse.c b/client/clparse.c +index 44387ed..862e4f9 100644 +--- a/client/clparse.c ++++ b/client/clparse.c @@ -31,7 +31,7 @@ struct client_config top_level_config; @@ -35,10 +56,11 @@ diff -up dhcp-4.3.4/client/clparse.c.rfc3442 dhcp-4.3.4/client/clparse.c for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) { if (default_requested_options[code] == NULL) log_fatal("Unable to find option definition for " -diff -up dhcp-4.3.4/common/dhcp-options.5.rfc3442 dhcp-4.3.4/common/dhcp-options.5 ---- dhcp-4.3.4/common/dhcp-options.5.rfc3442 2016-04-29 12:23:34.183032716 +0200 -+++ dhcp-4.3.4/common/dhcp-options.5 2016-04-29 12:23:34.237032703 +0200 -@@ -111,6 +111,26 @@ hexadecimal, separated by colons. For e +diff --git a/common/dhcp-options.5 b/common/dhcp-options.5 +index d9e1197..2343b19 100644 +--- a/common/dhcp-options.5 ++++ b/common/dhcp-options.5 +@@ -110,6 +110,26 @@ hexadecimal, separated by colons. For example: or option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f; .fi @@ -65,7 +87,7 @@ diff -up dhcp-4.3.4/common/dhcp-options.5.rfc3442 dhcp-4.3.4/common/dhcp-options .SH SETTING OPTION VALUES USING EXPRESSIONS Sometimes it's helpful to be able to set the value of a DHCP option based on some value that the client has sent. To do this, you can -@@ -1031,6 +1051,29 @@ dhclient-script will create routes: +@@ -1086,6 +1106,29 @@ dhclient-script will create routes: .RE .PP .nf @@ -95,10 +117,11 @@ diff -up dhcp-4.3.4/common/dhcp-options.5.rfc3442 dhcp-4.3.4/common/dhcp-options .B option \fBstreettalk-directory-assistance-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR...]\fB;\fR .fi -diff -up dhcp-4.3.4/common/inet.c.rfc3442 dhcp-4.3.4/common/inet.c ---- dhcp-4.3.4/common/inet.c.rfc3442 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/common/inet.c 2016-04-29 12:23:34.237032703 +0200 -@@ -519,6 +519,60 @@ free_iaddrcidrnetlist(struct iaddrcidrne +diff --git a/common/inet.c b/common/inet.c +index c4da73c..981fb92 100644 +--- a/common/inet.c ++++ b/common/inet.c +@@ -519,6 +519,60 @@ free_iaddrcidrnetlist(struct iaddrcidrnetlist **result) { return ISC_R_SUCCESS; } @@ -159,10 +182,11 @@ diff -up dhcp-4.3.4/common/inet.c.rfc3442 dhcp-4.3.4/common/inet.c /* piaddr() turns an iaddr structure into a printable address. */ /* XXX: should use a const pointer rather than passing the structure */ const char * -diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c ---- dhcp-4.3.4/common/options.c.rfc3442 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/common/options.c 2016-04-29 12:23:34.237032703 +0200 -@@ -713,7 +713,11 @@ cons_options(struct packet *inpacket, st +diff --git a/common/options.c b/common/options.c +index fc0e088..3034cf0 100644 +--- a/common/options.c ++++ b/common/options.c +@@ -729,7 +729,11 @@ cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, * packet. */ priority_list[priority_len++] = DHO_SUBNET_MASK; @@ -175,7 +199,7 @@ diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c priority_list[priority_len++] = DHO_DOMAIN_NAME_SERVERS; priority_list[priority_len++] = DHO_HOST_NAME; priority_list[priority_len++] = DHO_FQDN; -@@ -1694,6 +1698,7 @@ const char *pretty_print_option (option, +@@ -1804,6 +1808,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) unsigned long tval; isc_boolean_t a_array = ISC_FALSE; int len_used; @@ -183,7 +207,7 @@ diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c if (emit_commas) comma = ','; -@@ -1702,6 +1707,7 @@ const char *pretty_print_option (option, +@@ -1812,6 +1817,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) memset (enumbuf, 0, sizeof enumbuf); @@ -191,7 +215,7 @@ diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c /* Figure out the size of the data. */ for (l = i = 0; option -> format [i]; i++, l++) { if (l >= sizeof(fmtbuf) - 1) -@@ -1894,6 +1900,33 @@ const char *pretty_print_option (option, +@@ -2004,6 +2010,33 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) if (numhunk < 0) numhunk = 1; @@ -225,7 +249,7 @@ diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c /* Cycle through the array (or hunk) printing the data. */ for (i = 0; i < numhunk; i++) { if ((a_array == ISC_TRUE) && (i != 0) && (numelem > 0)) { -@@ -2049,6 +2082,20 @@ const char *pretty_print_option (option, +@@ -2159,6 +2192,20 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) strcpy(op, piaddr(iaddr)); dp += 4; break; @@ -246,13 +270,15 @@ diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c case '6': iaddr.len = 16; memcpy(iaddr.iabuf, dp, 16); -diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c ---- dhcp-4.3.4/common/parse.c.rfc3442 2016-04-29 12:23:34.220032707 +0200 -+++ dhcp-4.3.4/common/parse.c 2016-04-29 12:23:34.238032702 +0200 -@@ -341,6 +341,39 @@ int parse_ip_addr (cfile, addr) +diff --git a/common/parse.c b/common/parse.c +index 3ac4ebf..f17bc0b 100644 +--- a/common/parse.c ++++ b/common/parse.c +@@ -344,6 +344,39 @@ int parse_ip_addr (cfile, addr) + return 0; } - /* ++/* + * destination-descriptor :== NUMBER DOT NUMBER | + * NUMBER DOT NUMBER DOT NUMBER | + * NUMBER DOT NUMBER DOT NUMBER DOT NUMBER | @@ -285,11 +311,10 @@ diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c + return 0; +} + -+/* + /* * Return true if every character in the string is hexadecimal. */ - static int -@@ -720,8 +753,10 @@ unsigned char *parse_numeric_aggregate ( +@@ -724,8 +757,10 @@ unsigned char *parse_numeric_aggregate (cfile, buf, if (count) { token = peek_token (&val, (unsigned *)0, cfile); if (token != separator) { @@ -301,7 +326,7 @@ diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c if (token != RBRACE && token != LBRACE) token = next_token (&val, (unsigned *)0, -@@ -1668,6 +1703,9 @@ int parse_option_code_definition (cfile, +@@ -1672,6 +1707,9 @@ int parse_option_code_definition (cfile, option) case IP_ADDRESS: type = 'I'; break; @@ -311,7 +336,7 @@ diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c case IP6_ADDRESS: type = '6'; break; -@@ -5097,6 +5135,15 @@ int parse_option_token (rv, cfile, fmt, +@@ -5101,6 +5139,15 @@ int parse_option_token (rv, cfile, fmt, expr, uniform, lookups) } break; @@ -327,7 +352,7 @@ diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c case '6': /* IPv6 address. */ if (!parse_ip6_addr(cfile, &addr)) { return 0; -@@ -5374,6 +5421,13 @@ int parse_option_decl (oc, cfile) +@@ -5378,6 +5425,13 @@ int parse_option_decl (oc, cfile) goto exit; len = ip_addr.len; dp = ip_addr.iabuf; @@ -341,10 +366,11 @@ diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c alloc: if (hunkix + len > sizeof hunkbuf) { -diff -up dhcp-4.3.4/common/tables.c.rfc3442 dhcp-4.3.4/common/tables.c ---- dhcp-4.3.4/common/tables.c.rfc3442 2016-04-29 12:23:34.209032710 +0200 -+++ dhcp-4.3.4/common/tables.c 2016-04-29 12:23:34.238032702 +0200 -@@ -45,6 +45,7 @@ HASH_FUNCTIONS (option_code, const unsig +diff --git a/common/tables.c b/common/tables.c +index d2294c0..f1be07d 100644 +--- a/common/tables.c ++++ b/common/tables.c +@@ -45,6 +45,7 @@ HASH_FUNCTIONS (option_code, const unsigned *, struct option, Format codes: I - IPv4 address @@ -360,29 +386,11 @@ diff -up dhcp-4.3.4/common/tables.c.rfc3442 dhcp-4.3.4/common/tables.c { "vivco", "Evendor-class.", &dhcp_universe, 124, 1 }, { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, #if 0 -diff -up dhcp-4.3.4/includes/dhcpd.h.rfc3442 dhcp-4.3.4/includes/dhcpd.h ---- dhcp-4.3.4/includes/dhcpd.h.rfc3442 2016-04-29 12:23:34.186032716 +0200 -+++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:23:34.239032702 +0200 -@@ -2894,6 +2894,7 @@ isc_result_t range2cidr(struct iaddrcidr - const struct iaddr *lo, const struct iaddr *hi); - isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result); - const char *piaddr (struct iaddr); -+const char *pdestdesc (struct iaddr); - char *piaddrmask(struct iaddr *, struct iaddr *); - char *piaddrcidr(const struct iaddr *, unsigned int); - u_int16_t validate_port(char *); -@@ -3108,6 +3109,7 @@ void parse_client_lease_declaration (str - int parse_option_decl (struct option_cache **, struct parse *); - void parse_string_list (struct parse *, struct string_list **, int); - int parse_ip_addr (struct parse *, struct iaddr *); -+int parse_destination_descriptor (struct parse *, struct iaddr *); - int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *); - void parse_reject_statement (struct parse *, struct client_config *); - -diff -up dhcp-4.3.4/includes/dhcp.h.rfc3442 dhcp-4.3.4/includes/dhcp.h ---- dhcp-4.3.4/includes/dhcp.h.rfc3442 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/includes/dhcp.h 2016-04-29 12:23:34.239032702 +0200 -@@ -159,6 +159,7 @@ struct dhcp_packet { +diff --git a/includes/dhcp.h b/includes/dhcp.h +index 0a74137..95bf539 100644 +--- a/includes/dhcp.h ++++ b/includes/dhcp.h +@@ -158,6 +158,7 @@ struct dhcp_packet { #define DHO_ASSOCIATED_IP 92 #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ #define DHO_DOMAIN_SEARCH 119 /* RFC3397 */ @@ -390,16 +398,42 @@ diff -up dhcp-4.3.4/includes/dhcp.h.rfc3442 dhcp-4.3.4/includes/dhcp.h #define DHO_VIVCO_SUBOPTIONS 124 #define DHO_VIVSO_SUBOPTIONS 125 -diff -up dhcp-4.3.4/includes/dhctoken.h.rfc3442 dhcp-4.3.4/includes/dhctoken.h ---- dhcp-4.3.4/includes/dhctoken.h.rfc3442 2016-04-29 12:23:34.239032702 +0200 -+++ dhcp-4.3.4/includes/dhctoken.h 2016-04-29 12:25:07.236008628 +0200 -@@ -374,7 +374,8 @@ enum dhcp_token { +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index 3632a6b..2ac39ae 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -2951,6 +2951,7 @@ isc_result_t range2cidr(struct iaddrcidrnetlist **result, + const struct iaddr *lo, const struct iaddr *hi); + isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result); + const char *piaddr (struct iaddr); ++const char *pdestdesc (struct iaddr); + char *piaddrmask(struct iaddr *, struct iaddr *); + char *piaddrcidr(const struct iaddr *, unsigned int); + u_int16_t validate_port(char *); +@@ -3169,6 +3170,7 @@ void parse_client_lease_declaration (struct parse *, + int parse_option_decl (struct option_cache **, struct parse *); + void parse_string_list (struct parse *, struct string_list **, int); + int parse_ip_addr (struct parse *, struct iaddr *); ++int parse_destination_descriptor (struct parse *, struct iaddr *); + int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *); + void parse_reject_statement (struct parse *, struct client_config *); + +diff --git a/includes/dhctoken.h b/includes/dhctoken.h +index 7e7215a..b4d93ba 100644 +--- a/includes/dhctoken.h ++++ b/includes/dhctoken.h +@@ -376,8 +376,9 @@ enum dhcp_token { LEASE_ID_FORMAT = 676, TOKEN_HEX = 677, TOKEN_OCTAL = 678, -- BOOTP_BROADCAST_ALWAYS = 679 -+ BOOTP_BROADCAST_ALWAYS = 679, -+ DESTINATION_DESCRIPTOR = 680 +- KEY_ALGORITHM = 679 +- BOOTP_BROADCAST_ALWAYS = 680 ++ KEY_ALGORITHM = 679, ++ BOOTP_BROADCAST_ALWAYS = 680, ++ DESTINATION_DESCRIPTOR = 681 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ +-- +2.14.5 + diff --git a/dhcp-PPP.patch b/0013-DHCPv6-over-PPP-support-626514.patch similarity index 64% rename from dhcp-PPP.patch rename to 0013-DHCPv6-over-PPP-support-626514.patch index b3d82ea..c9d3811 100644 --- a/dhcp-PPP.patch +++ b/0013-DHCPv6-over-PPP-support-626514.patch @@ -1,7 +1,24 @@ -diff -up dhcp-4.3.4/client/dhc6.c.PPP dhcp-4.3.4/client/dhc6.c ---- dhcp-4.3.4/client/dhc6.c.PPP 2016-04-29 12:46:29.824988665 +0200 -+++ dhcp-4.3.4/client/dhc6.c 2016-04-29 12:46:29.828988666 +0200 -@@ -5641,7 +5641,8 @@ make_client6_options(struct client_state +From 43332b29f0c8fef3ddd225e31f5f2b4ff8273b36 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:33:06 +0100 +Subject: [PATCH 13/21] DHCPv6 over PPP support (#626514) +Cc: pzhukov@redhat.com + +--- + client/dhc6.c | 3 ++- + client/dhclient.c | 17 ++++++++++++++--- + common/bpf.c | 16 ++++++++++++++++ + common/lpf.c | 16 ++++++++++++++++ + includes/dhcp.h | 2 ++ + includes/dhcpd.h | 2 +- + server/dhcpv6.c | 3 +++ + 7 files changed, 54 insertions(+), 5 deletions(-) + +diff --git a/client/dhc6.c b/client/dhc6.c +index 16a0838..3171828 100644 +--- a/client/dhc6.c ++++ b/client/dhc6.c +@@ -5744,7 +5744,8 @@ make_client6_options(struct client_state *client, struct option_state **op, */ if ((oc = lookup_option(&dhcpv6_universe, *op, D6O_CLIENTID)) == NULL) { @@ -11,10 +28,11 @@ diff -up dhcp-4.3.4/client/dhc6.c.PPP dhcp-4.3.4/client/dhc6.c MDL)) log_fatal("Failure assembling a DUID."); -diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.PPP 2016-04-29 12:46:29.815988664 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:46:29.830988666 +0200 -@@ -1077,8 +1077,8 @@ main(int argc, char **argv) { +diff --git a/client/dhclient.c b/client/dhclient.c +index 5d3f5bc..301132c 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -1202,8 +1202,8 @@ main(int argc, char **argv) { if (default_duid.buffer != NULL) data_string_forget(&default_duid, MDL); @@ -25,7 +43,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c } } -@@ -3808,7 +3808,7 @@ write_options(struct client_state *clien +@@ -3956,7 +3956,7 @@ write_options(struct client_state *client, struct option_state *options, * is not how it is intended. Upcoming rearchitecting the client should * address this "one daemon model." */ @@ -34,7 +52,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c form_duid(struct data_string *duid, const char *file, int line) { struct interface_info *ip; -@@ -3821,6 +3821,15 @@ form_duid(struct data_string *duid, cons +@@ -3969,6 +3969,15 @@ form_duid(struct data_string *duid, const char *file, int line) if (ip == NULL) log_fatal("Impossible condition at %s:%d.", MDL); @@ -50,7 +68,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c if ((ip->hw_address.hlen == 0) || (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); -@@ -3866,6 +3875,8 @@ form_duid(struct data_string *duid, cons +@@ -4014,6 +4023,8 @@ form_duid(struct data_string *duid, const char *file, int line) log_info("Created duid %s.", str); dfree(str, MDL); } @@ -59,10 +77,11 @@ diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c } /* Write the default DUID to the lease store. */ -diff -up dhcp-4.3.4/common/bpf.c.PPP dhcp-4.3.4/common/bpf.c ---- dhcp-4.3.4/common/bpf.c.PPP 2016-04-29 12:46:29.794988660 +0200 -+++ dhcp-4.3.4/common/bpf.c 2016-04-29 12:46:29.830988666 +0200 -@@ -599,6 +599,22 @@ get_hw_addr(const char *name, struct har +diff --git a/common/bpf.c b/common/bpf.c +index 67b6d64..ffbd09a 100644 +--- a/common/bpf.c ++++ b/common/bpf.c +@@ -650,6 +650,22 @@ get_hw_addr(const char *name, struct hardware *hw) { memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen); break; #endif /* IFT_FDDI */ @@ -85,10 +104,11 @@ diff -up dhcp-4.3.4/common/bpf.c.PPP dhcp-4.3.4/common/bpf.c default: log_fatal("Unsupported device type %d for \"%s\"", sa->sdl_type, name); -diff -up dhcp-4.3.4/common/lpf.c.PPP dhcp-4.3.4/common/lpf.c ---- dhcp-4.3.4/common/lpf.c.PPP 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/common/lpf.c 2016-04-29 12:46:29.830988666 +0200 -@@ -548,6 +548,22 @@ get_hw_addr(const char *name, struct har +diff --git a/common/lpf.c b/common/lpf.c +index 82a279b..b0ed01c 100644 +--- a/common/lpf.c ++++ b/common/lpf.c +@@ -563,6 +563,22 @@ get_hw_addr(const char *name, struct hardware *hw) { hw->hbuf[0] = HTYPE_FDDI; memcpy(&hw->hbuf[1], sa->sa_data, 6); break; @@ -111,22 +131,11 @@ diff -up dhcp-4.3.4/common/lpf.c.PPP dhcp-4.3.4/common/lpf.c default: log_fatal("Unsupported device type %ld for \"%s\"", (long int)sa->sa_family, name); -diff -up dhcp-4.3.4/includes/dhcpd.h.PPP dhcp-4.3.4/includes/dhcpd.h ---- dhcp-4.3.4/includes/dhcpd.h.PPP 2016-04-29 12:46:29.831988667 +0200 -+++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:47:13.167995959 +0200 -@@ -2990,7 +2990,7 @@ void client_dns_remove(struct client_sta - - void dhcpv4_client_assignments(void); - void dhcpv6_client_assignments(void); --void form_duid(struct data_string *duid, const char *file, int line); -+isc_result_t form_duid(struct data_string *duid, const char *file, int line); - - void dhcp4o6_start(void); - -diff -up dhcp-4.3.4/includes/dhcp.h.PPP dhcp-4.3.4/includes/dhcp.h ---- dhcp-4.3.4/includes/dhcp.h.PPP 2016-04-29 12:46:29.822988665 +0200 -+++ dhcp-4.3.4/includes/dhcp.h 2016-04-29 12:46:29.832988667 +0200 -@@ -81,6 +81,8 @@ struct dhcp_packet { +diff --git a/includes/dhcp.h b/includes/dhcp.h +index 95bf539..4cc547a 100644 +--- a/includes/dhcp.h ++++ b/includes/dhcp.h +@@ -80,6 +80,8 @@ struct dhcp_packet { * is no standard for this so we * just steal a type */ @@ -135,10 +144,24 @@ diff -up dhcp-4.3.4/includes/dhcp.h.PPP dhcp-4.3.4/includes/dhcp.h /* Magic cookie validating dhcp options field (and bootp vendor extensions field). */ #define DHCP_OPTIONS_COOKIE "\143\202\123\143" -diff -up dhcp-4.3.4/server/dhcpv6.c.PPP dhcp-4.3.4/server/dhcpv6.c ---- dhcp-4.3.4/server/dhcpv6.c.PPP 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/server/dhcpv6.c 2016-04-29 12:46:29.833988667 +0200 -@@ -454,6 +454,9 @@ generate_new_server_duid(void) { +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index 2ac39ae..faa9251 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -3051,7 +3051,7 @@ void client_dns_remove(struct client_state *client, struct iaddr *addr); + + void dhcpv4_client_assignments(void); + void dhcpv6_client_assignments(void); +-void form_duid(struct data_string *duid, const char *file, int line); ++isc_result_t form_duid(struct data_string *duid, const char *file, int line); + + void dhcp4o6_start(void); + +diff --git a/server/dhcpv6.c b/server/dhcpv6.c +index a7110f9..c5ce7e8 100644 +--- a/server/dhcpv6.c ++++ b/server/dhcpv6.c +@@ -482,6 +482,9 @@ generate_new_server_duid(void) { if (p->hw_address.hlen > 0) { break; } @@ -148,3 +171,6 @@ diff -up dhcp-4.3.4/server/dhcpv6.c.PPP dhcp-4.3.4/server/dhcpv6.c } if (p == NULL) { return ISC_R_UNEXPECTED; +-- +2.14.5 + diff --git a/dhcp-lpf-ib.patch b/0014-IPoIB-support-660681.patch similarity index 77% rename from dhcp-lpf-ib.patch rename to 0014-IPoIB-support-660681.patch index 766d518..3f5a274 100644 --- a/dhcp-lpf-ib.patch +++ b/0014-IPoIB-support-660681.patch @@ -1,16 +1,33 @@ -diff -up dhcp-4.3.4/client/dhclient.c.lpf-ib dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.lpf-ib 2016-05-02 14:37:36.945128001 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-05-02 14:37:36.952128005 +0200 -@@ -163,6 +163,8 @@ static const char use_noarg[] = "No argu - static const char use_v6command[] = "Command not used for DHCPv4: %s"; - #endif +From de8468cf16c0fa9d01412446fcf1d44ccd0fd411 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:34:21 +0100 +Subject: [PATCH 14/21] IPoIB support (#660681) +Cc: pzhukov@redhat.com + +(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249]) +--- + client/dhclient.c | 32 +++++++ + common/bpf.c | 32 +++++++ + common/discover.c | 4 +- + common/lpf.c | 262 +++++++++++++++++++++++++++++++++++++++++++++++++----- + common/socket.c | 8 +- + includes/dhcpd.h | 6 +- + 6 files changed, 315 insertions(+), 29 deletions(-) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 301132c..dc9080e 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -205,6 +205,8 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; + + #define DHCLIENT_USAGEH "{--version|--help|-h}" +static void setup_ib_interface(struct interface_info *ip); + static void usage(const char *sfmt, const char *sarg) { -@@ -1066,6 +1068,13 @@ main(int argc, char **argv) { +@@ -1191,6 +1193,13 @@ main(int argc, char **argv) { } srandom(seed + cur_time + (unsigned)getpid()); @@ -24,7 +41,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.lpf-ib dhcp-4.3.4/client/dhclient.c /* * Establish a default DUID. We always do so for v6 and -@@ -1361,6 +1370,29 @@ int find_subnet (struct subnet **sp, +@@ -1486,6 +1495,29 @@ int find_subnet (struct subnet **sp, return 0; } @@ -54,12 +71,13 @@ diff -up dhcp-4.3.4/client/dhclient.c.lpf-ib dhcp-4.3.4/client/dhclient.c /* Individual States: * * Each routine is called from the dhclient_state_machine() in one of -diff -up dhcp-4.3.4/common/bpf.c.lpf-ib dhcp-4.3.4/common/bpf.c ---- dhcp-4.3.4/common/bpf.c.lpf-ib 2016-05-02 14:37:36.946128001 +0200 -+++ dhcp-4.3.4/common/bpf.c 2016-05-02 14:37:36.952128005 +0200 -@@ -198,11 +198,43 @@ struct bpf_insn dhcp_bpf_filter [] = { - BPF_STMT(BPF_RET+BPF_K, 0), - }; +diff --git a/common/bpf.c b/common/bpf.c +index ffbd09a..568e3d9 100644 +--- a/common/bpf.c ++++ b/common/bpf.c +@@ -237,11 +237,43 @@ int dhcp_bpf_relay_filter_len = + sizeof dhcp_bpf_relay_filter / sizeof (struct bpf_insn); + #endif +/* Packet filter program for DHCP over Infiniband. + * @@ -101,10 +119,11 @@ diff -up dhcp-4.3.4/common/bpf.c.lpf-ib dhcp-4.3.4/common/bpf.c #if defined (HAVE_TR_SUPPORT) struct bpf_insn dhcp_bpf_tr_filter [] = { /* accept all token ring packets due to variable length header */ -diff -up dhcp-4.3.4/common/discover.c.lpf-ib dhcp-4.3.4/common/discover.c ---- dhcp-4.3.4/common/discover.c.lpf-ib 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/common/discover.c 2016-05-02 14:38:08.257147982 +0200 -@@ -1235,7 +1235,7 @@ discover_interfaces(int state) { +diff --git a/common/discover.c b/common/discover.c +index 6ef8852..65881fc 100644 +--- a/common/discover.c ++++ b/common/discover.c +@@ -894,7 +894,7 @@ discover_interfaces(int state) { if_register_send(tmp); } else { /* get_hw_addr() was called by register. */ @@ -113,7 +132,7 @@ diff -up dhcp-4.3.4/common/discover.c.lpf-ib dhcp-4.3.4/common/discover.c } break; #ifdef DHCPv6 -@@ -1248,7 +1248,7 @@ discover_interfaces(int state) { +@@ -907,7 +907,7 @@ discover_interfaces(int state) { so now we have to call it explicitly to not leave the hardware address unknown (some code expects it cannot be. */ @@ -122,10 +141,11 @@ diff -up dhcp-4.3.4/common/discover.c.lpf-ib dhcp-4.3.4/common/discover.c } else { if_register_linklocal6(tmp); } -diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c ---- dhcp-4.3.4/common/lpf.c.lpf-ib 2016-05-02 14:37:36.947128002 +0200 -+++ dhcp-4.3.4/common/lpf.c 2016-05-02 14:37:36.953128006 +0200 -@@ -47,6 +47,17 @@ +diff --git a/common/lpf.c b/common/lpf.c +index b0ed01c..b732a86 100644 +--- a/common/lpf.c ++++ b/common/lpf.c +@@ -45,6 +45,17 @@ #include #include #include @@ -143,7 +163,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c #endif #if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE) -@@ -80,10 +91,20 @@ int if_register_lpf (info) +@@ -78,10 +89,20 @@ int if_register_lpf (info) struct sockaddr common; } sa; struct ifreq ifr; @@ -166,7 +186,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) { -@@ -106,6 +127,7 @@ int if_register_lpf (info) +@@ -104,6 +125,7 @@ int if_register_lpf (info) /* Bind to the interface name */ memset (&sa, 0, sizeof sa); sa.ll.sll_family = AF_PACKET; @@ -174,7 +194,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c sa.ll.sll_ifindex = ifr.ifr_ifindex; if (bind (sock, &sa.common, sizeof sa)) { if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || -@@ -122,8 +144,6 @@ int if_register_lpf (info) +@@ -120,8 +142,6 @@ int if_register_lpf (info) } @@ -183,16 +203,16 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c return sock; } #endif /* USE_LPF_SEND || USE_LPF_RECEIVE */ -@@ -178,6 +198,8 @@ void if_deregister_send (info) +@@ -176,6 +196,8 @@ void if_deregister_send (info) in bpf includes... */ extern struct sock_filter dhcp_bpf_filter []; extern int dhcp_bpf_filter_len; +extern struct sock_filter dhcp_ib_bpf_filter []; +extern int dhcp_ib_bpf_filter_len; - #if defined (HAVE_TR_SUPPORT) - extern struct sock_filter dhcp_bpf_tr_filter []; -@@ -196,11 +218,12 @@ void if_register_receive (info) + #if defined(RELAY_PORT) + extern struct sock_filter dhcp_bpf_relay_filter []; +@@ -199,11 +221,12 @@ void if_register_receive (info) #ifdef PACKET_AUXDATA { int val = 1; @@ -210,45 +230,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c } } } -@@ -250,15 +273,28 @@ static void lpf_gen_filter_setup (info) - - memset(&p, 0, sizeof(p)); - -- /* Set up the bpf filter program structure. This is defined in -- bpf.c */ -- p.len = dhcp_bpf_filter_len; -- p.filter = dhcp_bpf_filter; -- -- /* Patch the server port into the LPF program... -- XXX changes to filter program may require changes -- to the insn number(s) used below! XXX */ -- dhcp_bpf_filter [8].k = ntohs ((short)local_port); -+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) { -+ /* Set up the bpf filter program structure. */ -+ p.len = dhcp_ib_bpf_filter_len; -+ p.filter = dhcp_ib_bpf_filter; -+ -+ /* Patch the server port into the LPF program... -+ XXX -+ changes to filter program may require changes -+ to the insn number(s) used below! -+ XXX */ -+ dhcp_ib_bpf_filter[6].k = ntohs ((short)local_port); -+ } else { -+ /* Set up the bpf filter program structure. -+ This is defined in bpf.c */ -+ p.len = dhcp_bpf_filter_len; -+ p.filter = dhcp_bpf_filter; -+ -+ /* Patch the server port into the LPF program... -+ XXX changes to filter program may require changes -+ to the insn number(s) used below! XXX */ -+ dhcp_bpf_filter [8].k = ntohs ((short)local_port); -+ } - - if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p, - sizeof p) < 0) { -@@ -315,6 +351,54 @@ static void lpf_tr_filter_setup (info) +@@ -330,6 +353,54 @@ static void lpf_tr_filter_setup (info) #endif /* USE_LPF_RECEIVE */ #ifdef USE_LPF_SEND @@ -303,7 +285,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c ssize_t send_packet (interface, packet, raw, len, from, to, hto) struct interface_info *interface; struct packet *packet; -@@ -335,6 +419,11 @@ ssize_t send_packet (interface, packet, +@@ -350,6 +421,11 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) return send_fallback (interface, packet, raw, len, from, to, hto); @@ -315,7 +297,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c if (hto == NULL && interface->anycast_mac_addr.hlen) hto = &interface->anycast_mac_addr; -@@ -355,6 +444,42 @@ ssize_t send_packet (interface, packet, +@@ -370,6 +446,42 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) #endif /* USE_LPF_SEND */ #ifdef USE_LPF_RECEIVE @@ -358,7 +340,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c ssize_t receive_packet (interface, buf, len, from, hfrom) struct interface_info *interface; unsigned char *buf; -@@ -393,6 +518,10 @@ ssize_t receive_packet (interface, buf, +@@ -408,6 +520,10 @@ ssize_t receive_packet (interface, buf, len, from, hfrom) }; #endif /* PACKET_AUXDATA */ @@ -369,7 +351,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c length = recvmsg (interface->rfdesc, &msg, 0); if (length <= 0) return length; -@@ -506,11 +635,33 @@ void maybe_setup_fallback () +@@ -521,11 +637,33 @@ void maybe_setup_fallback () #endif #if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR) @@ -406,7 +388,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c if (strlen(name) >= sizeof(tmp.ifr_name)) { log_fatal("Device name too long: \"%s\"", name); -@@ -524,16 +675,61 @@ get_hw_addr(const char *name, struct har +@@ -539,16 +677,61 @@ get_hw_addr(const char *name, struct hardware *hw) { memset(&tmp, 0, sizeof(tmp)); strcpy(tmp.ifr_name, name); if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) { @@ -471,7 +453,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c break; case ARPHRD_IEEE802: #ifdef ARPHRD_IEEE802_TR -@@ -541,18 +737,50 @@ get_hw_addr(const char *name, struct har +@@ -556,18 +739,50 @@ get_hw_addr(const char *name, struct hardware *hw) { #endif /* ARPHRD_IEEE802_TR */ hw->hlen = 7; hw->hbuf[0] = HTYPE_IEEE802; @@ -526,7 +508,7 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c hw->hlen = 0; hw->hbuf[0] = HTYPE_RESERVED; /* 0xdeadbeef should never occur on the wire, -@@ -565,10 +793,13 @@ get_hw_addr(const char *name, struct har +@@ -580,10 +795,13 @@ get_hw_addr(const char *name, struct hardware *hw) { break; #endif default: @@ -543,10 +525,11 @@ diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c + freeifaddrs(ifaddrs); } #endif -diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c ---- dhcp-4.3.4/common/socket.c.lpf-ib 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/common/socket.c 2016-05-02 14:37:36.953128006 +0200 -@@ -328,7 +328,7 @@ void if_register_send (info) +diff --git a/common/socket.c b/common/socket.c +index 483eb9c..6e1caac 100644 +--- a/common/socket.c ++++ b/common/socket.c +@@ -350,7 +350,7 @@ void if_register_send (info) info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); /* If this is a normal IPv4 address, get the hardware address. */ if (strcmp(info->name, "fallback") != 0) @@ -555,7 +538,7 @@ diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c #if defined (USE_SOCKET_FALLBACK) /* Fallback only registers for send, but may need to receive as well. */ -@@ -391,7 +391,7 @@ void if_register_receive (info) +@@ -413,7 +413,7 @@ void if_register_receive (info) #endif /* IP_PKTINFO... */ /* If this is a normal IPv4 address, get the hardware address. */ if (strcmp(info->name, "fallback") != 0) @@ -564,7 +547,7 @@ diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c if (!quiet_interface_discovery) log_info ("Listening on Socket/%s%s%s", -@@ -505,7 +505,7 @@ if_register6(struct interface_info *info +@@ -567,7 +567,7 @@ if_register6(struct interface_info *info, int do_multicast) { if (req_multi) if_register_multicast(info); @@ -573,7 +556,7 @@ diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c if (!quiet_interface_discovery) { if (info->shared_network != NULL) { -@@ -561,7 +561,7 @@ if_register_linklocal6(struct interface_ +@@ -623,7 +623,7 @@ if_register_linklocal6(struct interface_info *info) { info->rfdesc = sock; info->wfdesc = sock; @@ -582,10 +565,11 @@ diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c if (!quiet_interface_discovery) { if (info->shared_network != NULL) { -diff -up dhcp-4.3.4/includes/dhcpd.h.lpf-ib dhcp-4.3.4/includes/dhcpd.h ---- dhcp-4.3.4/includes/dhcpd.h.lpf-ib 2016-05-02 14:37:36.948128002 +0200 -+++ dhcp-4.3.4/includes/dhcpd.h 2016-05-02 14:37:36.954128006 +0200 -@@ -482,6 +482,9 @@ struct packet { +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index faa9251..0c1a0aa 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -485,6 +485,9 @@ struct packet { #define HARDWARE_ADDR_LEN 20 @@ -595,7 +579,7 @@ diff -up dhcp-4.3.4/includes/dhcpd.h.lpf-ib dhcp-4.3.4/includes/dhcpd.h struct hardware { u_int8_t hlen; u_int8_t hbuf[HARDWARE_ADDR_LEN + 1]; -@@ -1343,6 +1346,7 @@ struct interface_info { +@@ -1365,6 +1368,7 @@ struct interface_info { struct shared_network *shared_network; /* Networks connected to this interface. */ struct hardware hw_address; /* Its physical address. */ @@ -603,7 +587,7 @@ diff -up dhcp-4.3.4/includes/dhcpd.h.lpf-ib dhcp-4.3.4/includes/dhcpd.h struct in_addr *addresses; /* Addresses associated with this * interface. */ -@@ -2580,7 +2584,7 @@ void print_dns_status (int, struct dhcp_ +@@ -2633,7 +2637,7 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); #endif const char *print_time(TIME); @@ -612,3 +596,6 @@ diff -up dhcp-4.3.4/includes/dhcpd.h.lpf-ib dhcp-4.3.4/includes/dhcpd.h char *buf_to_hex (const unsigned char *s, unsigned len, const char *file, int line); char *format_lease_id(const unsigned char *s, unsigned len, int format, +-- +2.14.5 + diff --git a/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch new file mode 100644 index 0000000..a2f740e --- /dev/null +++ b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch @@ -0,0 +1,332 @@ +From 7ac7d0b00874ee996c7ee75a595c029759368aad Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:35:47 +0100 +Subject: [PATCH 15/21] Add GUID/DUID to dhcpd logs (#1064416) +Cc: pzhukov@redhat.com + +--- + client/dhclient.c | 75 ++++++++++++++++++++++++++++++++++++++++++---------- + server/dhcp.c | 78 +++++++++++++++++++++++++++++++++---------------------- + 2 files changed, 108 insertions(+), 45 deletions(-) + +diff --git a/client/dhclient.c b/client/dhclient.c +index dc9080e..8e57da9 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -1170,6 +1170,26 @@ main(int argc, char **argv) { + } + } + ++ /* We create a backup seed before rediscovering interfaces in order to ++ have a seed built using all of the available interfaces ++ It's interesting if required interfaces doesn't let us defined ++ a really unique seed due to a lack of valid HW addr later ++ (this is the case with DHCP over IB) ++ We only use the last device as using a sum could broke the ++ uniqueness of the seed among multiple nodes ++ */ ++ unsigned backup_seed = 0; ++ for (ip = interfaces; ip; ip = ip -> next) { ++ int junk; ++ if ( ip -> hw_address.hlen <= sizeof seed ) ++ continue; ++ memcpy (&junk, ++ &ip -> hw_address.hbuf [ip -> hw_address.hlen - ++ sizeof seed], sizeof seed); ++ backup_seed = junk; ++ } ++ ++ + /* At this point, all the interfaces that the script thinks + are relevant should be running, so now we once again call + discover_interfaces(), and this time ask it to actually set +@@ -1184,14 +1204,36 @@ main(int argc, char **argv) { + Not much entropy, but we're booting, so we're not likely to + find anything better. */ + seed = 0; ++ int seed_flag = 0; + for (ip = interfaces; ip; ip = ip->next) { + int junk; ++ if ( ip -> hw_address.hlen <= sizeof seed ) ++ continue; + memcpy(&junk, + &ip->hw_address.hbuf[ip->hw_address.hlen - + sizeof seed], sizeof seed); + seed += junk; ++ seed_flag = 1; + } +- srandom(seed + cur_time + (unsigned)getpid()); ++ if ( seed_flag == 0 ) { ++ if ( backup_seed != 0 ) { ++ seed = backup_seed; ++ log_info ("xid: rand init seed (0x%x) built using all" ++ " available interfaces",seed); ++ } ++ else { ++ seed = cur_time^((unsigned) gethostid()) ; ++ log_info ("xid: warning: no netdev with useable HWADDR found" ++ " for seed's uniqueness enforcement"); ++ log_info ("xid: rand init seed (0x%x) built using gethostid", ++ seed); ++ } ++ /* we only use seed and no current time as a broadcast reply */ ++ /* will certainly be used by the hwaddrless interface */ ++ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); ++ } ++ else ++ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); + + /* Setup specific Infiniband options */ + for (ip = interfaces; ip; ip = ip->next) { +@@ -1746,10 +1788,10 @@ void dhcpack (packet) + #endif + return; + } +- +- log_info ("DHCPACK of %s from %s", +- inet_ntoa(packet->raw->yiaddr), +- piaddr (packet->client_addr)); ++ log_info ("DHCPACK of %s from %s (xid=0x%x)", ++ inet_ntoa(packet->raw->yiaddr), ++ piaddr (packet -> client_addr), ++ ntohl(client -> xid)); + + lease = packet_to_lease (packet, client); + if (!lease) { +@@ -2669,7 +2711,7 @@ void dhcpnak (packet) + return; + } + +- log_info ("DHCPNAK from %s", piaddr (packet -> client_addr)); ++ log_info ("DHCPNAK from %s (xid=0x%x)", piaddr (packet -> client_addr), ntohl(client -> xid)); + + if (!client -> active) { + #if defined (DEBUG) +@@ -2802,10 +2844,10 @@ void send_discover (cpp) + (long)(client -> interval)); + } else + #endif +- log_info ("DHCPDISCOVER on %s to %s port %d interval %ld", ++ log_info ("DHCPDISCOVER on %s to %s port %d interval %ld (xid=0x%x)", + client -> name ? client -> name : client -> interface -> name, + inet_ntoa (sockaddr_broadcast.sin_addr), +- ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval)); ++ ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval), ntohl(client -> xid)); + + /* Send out a packet. */ + #if defined(DHCPv6) && defined(DHCP4o6) +@@ -3108,10 +3150,12 @@ void send_request (cpp) + } + + strncpy(rip_buf, rip_str, sizeof(rip_buf)-1); +- log_info ("DHCPREQUEST for %s on %s to %s port %d", rip_buf, ++ log_info ("DHCPREQUEST for %s on %s to %s port %d (xid=0x%x)", ++ rip_buf, + client->name ? client->name : client->interface->name, + inet_ntoa(destination.sin_addr), +- ntohs (destination.sin_port)); ++ ntohs (destination.sin_port), ++ ntohl(client -> xid)); + + #if defined(DHCPv6) && defined(DHCP4o6) + if (dhcpv4_over_dhcpv6) { +@@ -3168,11 +3212,13 @@ void send_decline (cpp) + log_info ("DHCPDECLINE"); + } else + #endif +- log_info ("DHCPDECLINE of %s on %s to %s port %d", ++ log_info ("DHCPDECLINE of %s on %s to %s port %d (xid=0x%x)", + piaddr(client->requested_address), + (client->name ? client->name : client->interface->name), + inet_ntoa(sockaddr_broadcast.sin_addr), +- ntohs(sockaddr_broadcast.sin_port)); ++ ntohs(sockaddr_broadcast.sin_port), ++ ntohl(client -> xid)); ++ + + /* Send out a packet. */ + #if defined(DHCPv6) && defined(DHCP4o6) +@@ -3231,11 +3277,12 @@ void send_release (cpp) + log_info ("DHCPRELEASE"); + } else + #endif +- log_info ("DHCPRELEASE of %s on %s to %s port %d", ++ log_info ("DHCPRELEASE of %s on %s to %s port %d (xid=0x%x)", + piaddr(client->active->address), + client->name ? client->name : client->interface->name, + inet_ntoa (destination.sin_addr), +- ntohs (destination.sin_port)); ++ ntohs (destination.sin_port), ++ ntohl(client -> xid)); + + #if defined(DHCPv6) && defined(DHCP4o6) + if (dhcpv4_over_dhcpv6) { +diff --git a/server/dhcp.c b/server/dhcp.c +index 20f2a62..0582c4c 100644 +--- a/server/dhcp.c ++++ b/server/dhcp.c +@@ -87,6 +87,42 @@ const int dhcp_type_name_max = ((sizeof dhcp_type_names) / sizeof (char *)); + + static TIME leaseTimeCheck(TIME calculated, TIME alternate); + ++char *print_client_identifier_from_packet (packet) ++ struct packet *packet; ++{ ++ struct option_cache *oc; ++ struct data_string client_identifier; ++ char *ci; ++ ++ memset (&client_identifier, 0, sizeof client_identifier); ++ ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_DHCP_CLIENT_IDENTIFIER); ++ if (oc && ++ evaluate_option_cache (&client_identifier, ++ packet, (struct lease *)0, ++ (struct client_state *)0, ++ packet -> options, ++ (struct option_state *)0, ++ &global_scope, oc, MDL)) { ++ ci = print_hw_addr (HTYPE_INFINIBAND, client_identifier.len, client_identifier.data); ++ data_string_forget (&client_identifier, MDL); ++ return ci; ++ } else ++ return "\"no client id\""; ++} ++ ++char *print_hw_addr_or_client_id (packet) ++ struct packet *packet; ++{ ++ if (packet -> raw -> htype == HTYPE_INFINIBAND) ++ return print_client_identifier_from_packet (packet); ++ else ++ return print_hw_addr (packet -> raw -> htype, ++ packet -> raw -> hlen, ++ packet -> raw -> chaddr); ++} ++ + void + dhcp (struct packet *packet) { + int ms_nulltp = 0; +@@ -129,9 +165,7 @@ dhcp (struct packet *packet) { + + log_info("%s from %s via %s: %s", s, + (packet->raw->htype +- ? print_hw_addr(packet->raw->htype, +- packet->raw->hlen, +- packet->raw->chaddr) ++ ? print_hw_addr_or_client_id(packet) + : ""), + packet->raw->giaddr.s_addr + ? inet_ntoa(packet->raw->giaddr) +@@ -328,9 +362,7 @@ void dhcpdiscover (packet, ms_nulltp) + #endif + snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s", + (packet -> raw -> htype +- ? print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr) ++ ? print_hw_addr_or_client_id (packet) + : (lease + ? print_hex_1(lease->uid_len, lease->uid, 60) + : "")), +@@ -542,9 +574,7 @@ void dhcprequest (packet, ms_nulltp, ip_lease) + "DHCPREQUEST for %s%s from %s %s%s%svia %s", + piaddr (cip), smbuf, + (packet -> raw -> htype +- ? print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr) ++ ? print_hw_addr_or_client_id(packet) + : (lease + ? print_hex_1(lease->uid_len, lease->uid, 60) + : "")), +@@ -785,9 +815,7 @@ void dhcprelease (packet, ms_nulltp) + if ((oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_REQUESTED_ADDRESS))) { + log_info ("DHCPRELEASE from %s specified requested-address.", +- print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr)); ++ print_hw_addr_or_client_id(packet)); + } + + oc = lookup_option (&dhcp_universe, packet -> options, +@@ -879,9 +907,7 @@ void dhcprelease (packet, ms_nulltp) + "DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)", + cstr, + (packet -> raw -> htype +- ? print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr) ++ ? print_hw_addr_or_client_id(packet) + : (lease + ? print_hex_1(lease->uid_len, lease->uid, 60) + : "")), +@@ -986,9 +1012,7 @@ void dhcpdecline (packet, ms_nulltp) + "DHCPDECLINE of %s from %s %s%s%svia %s", + piaddr (cip), + (packet -> raw -> htype +- ? print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr) ++ ? print_hw_addr_or_client_id(packet) + : (lease + ? print_hex_1(lease->uid_len, lease->uid, 60) + : "")), +@@ -1732,8 +1756,7 @@ void dhcpinform (packet, ms_nulltp) + /* Report what we're sending. */ + snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip), + (packet->raw->htype && packet->raw->hlen) ? +- print_hw_addr(packet->raw->htype, packet->raw->hlen, +- packet->raw->chaddr) : ++ print_hw_addr_or_client_id(packet) : + ""); + log_info("%s %s", msgbuf, gip.len ? piaddr(gip) : + packet->interface->name); +@@ -1918,9 +1941,7 @@ void nak_lease (packet, cip, network_group) + #endif + log_info ("DHCPNAK on %s to %s via %s", + piaddr (*cip), +- print_hw_addr (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr), ++ print_hw_addr_or_client_id(packet), + packet -> raw -> giaddr.s_addr + ? inet_ntoa (packet -> raw -> giaddr) + : packet -> interface -> name); +@@ -3936,7 +3957,7 @@ void dhcp_reply (lease) + ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER") + : "BOOTREPLY"), + piaddr (lease -> ip_addr), +- (lease -> hardware_addr.hlen ++ (lease -> hardware_addr.hlen > 1 + ? print_hw_addr (lease -> hardware_addr.hbuf [0], + lease -> hardware_addr.hlen - 1, + &lease -> hardware_addr.hbuf [1]) +@@ -4497,10 +4518,7 @@ int find_lease (struct lease **lp, + if (uid_lease) { + if (uid_lease->binding_state == FTS_ACTIVE) { + log_error ("client %s has duplicate%s on %s", +- (print_hw_addr +- (packet -> raw -> htype, +- packet -> raw -> hlen, +- packet -> raw -> chaddr)), ++ (print_hw_addr_or_client_id(packet)), + " leases", + (ip_lease -> subnet -> + shared_network -> name)); +@@ -4667,9 +4685,7 @@ int find_lease (struct lease **lp, + log_error("uid lease %s for client %s is duplicate " + "on %s", + piaddr(uid_lease->ip_addr), +- print_hw_addr(packet->raw->htype, +- packet->raw->hlen, +- packet->raw->chaddr), ++ print_hw_addr_or_client_id(packet), + uid_lease->subnet->shared_network->name); + + if (!packet -> raw -> ciaddr.s_addr && +-- +2.14.5 + diff --git a/dhcp-duid_uuid.patch b/0016-Turn-on-creating-sending-of-DUID.patch similarity index 73% rename from dhcp-duid_uuid.patch rename to 0016-Turn-on-creating-sending-of-DUID.patch index 73961df..216cbab 100644 --- a/dhcp-duid_uuid.patch +++ b/0016-Turn-on-creating-sending-of-DUID.patch @@ -1,7 +1,19 @@ -diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.duid_uuid 2016-04-29 12:58:14.846150838 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:58:14.851150839 +0200 -@@ -3868,6 +3868,59 @@ write_options(struct client_state *clien +From 1f0473939bcb17095bbef48cd9a81105a3de9846 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:36:30 +0100 +Subject: [PATCH 16/21] Turn on creating/sending of DUID +Cc: pzhukov@redhat.com + +as client identifier with DHCPv4 clients (#560361c#40, rfc4361) +--- + client/dhclient.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 70 insertions(+), 4 deletions(-) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 8e57da9..ccc98e4 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -4021,6 +4021,59 @@ write_options(struct client_state *client, struct option_state *options, } } @@ -61,7 +73,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c /* * The "best" default DUID, since we cannot predict any information * about the system (such as whether or not the hardware addresses are -@@ -3888,6 +3941,7 @@ form_duid(struct data_string *duid, cons +@@ -4041,6 +4094,7 @@ form_duid(struct data_string *duid, const char *file, int line) struct interface_info *ip; int len; char *str; @@ -69,7 +81,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c /* For now, just use the first interface on the list. */ ip = interfaces; -@@ -3908,9 +3962,16 @@ form_duid(struct data_string *duid, cons +@@ -4061,9 +4115,16 @@ form_duid(struct data_string *duid, const char *file, int line) (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); @@ -89,7 +101,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c /* * 2 bytes for the 'duid type' field. * 2 bytes for the 'htype' field. -@@ -3921,13 +3982,18 @@ form_duid(struct data_string *duid, cons +@@ -4074,13 +4135,18 @@ form_duid(struct data_string *duid, const char *file, int line) len = 4 + (ip->hw_address.hlen - 1); if (duid_type == DUID_LLT) len += 4; @@ -109,3 +121,6 @@ diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c putUShort(duid->buffer->data, DUID_LLT); putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]); putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH); +-- +2.14.5 + diff --git a/dhcp-client-request-release-bind-iface.patch b/0017-Send-unicast-request-release-via-correct-interface.patch similarity index 70% rename from dhcp-client-request-release-bind-iface.patch rename to 0017-Send-unicast-request-release-via-correct-interface.patch index 7b9f271..309e143 100644 --- a/dhcp-client-request-release-bind-iface.patch +++ b/0017-Send-unicast-request-release-via-correct-interface.patch @@ -1,7 +1,20 @@ -diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.bind-iface 2016-04-29 13:06:50.595257108 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:08:30.237281528 +0200 -@@ -3023,6 +3023,14 @@ void send_request (cpp) +From 8a2b491f79aab1f04feac89586dfab1e55b47adb Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:39:36 +0100 +Subject: [PATCH 17/21] Send unicast request/release via correct interface +Cc: pzhukov@redhat.com + +(#800561, #1177351) +(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544]) +--- + client/dhclient.c | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/client/dhclient.c b/client/dhclient.c +index ccc98e4..27fde69 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -3171,6 +3171,14 @@ void send_request (cpp) #endif if (destination.sin_addr.s_addr != INADDR_BROADCAST && fallback_interface) { @@ -16,7 +29,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -3032,6 +3040,13 @@ void send_request (cpp) +@@ -3180,6 +3188,13 @@ void send_request (cpp) client->packet_length, fallback_interface->name); } @@ -30,7 +43,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c } else { /* Send out a packet. */ -@@ -3144,6 +3159,14 @@ void send_release (cpp) +@@ -3297,6 +3312,14 @@ void send_release (cpp) } else #endif if (fallback_interface) { @@ -45,7 +58,7 @@ diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -3153,6 +3176,13 @@ void send_release (cpp) +@@ -3306,6 +3329,13 @@ void send_release (cpp) client->packet_length, fallback_interface->name); } @@ -59,3 +72,6 @@ diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c } else { /* Send out a packet. */ result = send_packet(client->interface, NULL, &client->packet, +-- +2.14.5 + diff --git a/dhcp-no-subnet-error2info.patch b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch similarity index 70% rename from dhcp-no-subnet-error2info.patch rename to 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch index 975a4d4..752ab77 100644 --- a/dhcp-no-subnet-error2info.patch +++ b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch @@ -1,7 +1,19 @@ -diff -up dhcp-4.3.0a1/common/discover.c.error2info dhcp-4.3.0a1/common/discover.c ---- dhcp-4.3.0a1/common/discover.c.error2info 2013-12-20 13:59:15.148553898 +0100 -+++ dhcp-4.3.0a1/common/discover.c 2013-12-20 13:59:15.181553438 +0100 -@@ -779,9 +779,9 @@ discover_interfaces(int state) { +From 588ead2d9a9cfe70f14569a8e950c6c42f15c1e3 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:40:51 +0100 +Subject: [PATCH 18/21] No subnet declaration for ' should be info, not + error. +Cc: pzhukov@redhat.com + +--- + common/discover.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/common/discover.c b/common/discover.c +index 65881fc..056342c 100644 +--- a/common/discover.c ++++ b/common/discover.c +@@ -801,9 +801,9 @@ discover_interfaces(int state) { /* We must have a subnet declaration for each interface. */ if (!tmp->shared_network && (state == DISCOVER_SERVER)) { @@ -13,7 +25,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.error2info dhcp-4.3.0a1/common/discover. tmp->name, (tmp->addresses == NULL) ? "no IPv4 addresses" : -@@ -796,26 +796,26 @@ discover_interfaces(int state) { +@@ -818,26 +818,26 @@ discover_interfaces(int state) { } else { strcpy(abuf, "no IPv6 addresses"); } @@ -46,3 +58,6 @@ diff -up dhcp-4.3.0a1/common/discover.c.error2info dhcp-4.3.0a1/common/discover. goto next; } else { log_error ("You must write a %s", +-- +2.14.5 + diff --git a/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch new file mode 100644 index 0000000..4dbd9ff --- /dev/null +++ b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch @@ -0,0 +1,29 @@ +From 07b333c48a2fc99d7d502a0c88907b38f61c6230 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:41:14 +0100 +Subject: [PATCH 19/21] dhclient: write DUID_LLT even in stateless mode + (#1156356) +Cc: pzhukov@redhat.com + +(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144]) +--- + client/dhclient.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 27fde69..4e5546a 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -1442,6 +1442,9 @@ void run_stateless(int exit_mode, u_int16_t port) + data_string_forget(&default_duid, MDL); + + form_duid(&default_duid, MDL); ++ if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS && ++ duid_type == DUID_LLT) ++ write_duid(&default_duid); + } + + #ifdef DHCP4o6 +-- +2.14.5 + diff --git a/dhcp-iface_hwaddr_discovery.patch b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch similarity index 71% rename from dhcp-iface_hwaddr_discovery.patch rename to 0020-Discover-all-hwaddress-for-xid-uniqueness.patch index 2cd1d8a..025a1ca 100644 --- a/dhcp-iface_hwaddr_discovery.patch +++ b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch @@ -1,8 +1,20 @@ +From f1467835402eee90a350a952f1a411f37475a9df Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:42:50 +0100 +Subject: [PATCH 20/21] Discover all hwaddress for xid uniqueness +Cc: pzhukov@redhat.com + +--- + common/discover.c | 2 ++ + common/lpf.c | 27 ++++++++++++++++++++++----- + includes/dhcpd.h | 3 +++ + 3 files changed, 27 insertions(+), 5 deletions(-) + diff --git a/common/discover.c b/common/discover.c -index 26a78ca..ed01e45 100644 +index 056342c..e66e1c5 100644 --- a/common/discover.c +++ b/common/discover.c -@@ -635,6 +635,8 @@ discover_interfaces(int state) { +@@ -648,6 +648,8 @@ discover_interfaces(int state) { interface_dereference(&tmp, MDL); tmp = interfaces; /* XXX */ } @@ -12,10 +24,10 @@ index 26a78ca..ed01e45 100644 if (dhcp_interface_discovery_hook) { (*dhcp_interface_discovery_hook)(tmp); diff --git a/common/lpf.c b/common/lpf.c -index 4a252ca..467b055 100644 +index b732a86..a708a5d 100644 --- a/common/lpf.c +++ b/common/lpf.c -@@ -697,8 +697,22 @@ ioctl_get_ll(char *name) +@@ -699,8 +699,22 @@ ioctl_get_ll(char *name) return sll; } @@ -38,7 +50,7 @@ index 4a252ca..467b055 100644 { struct hardware *hw = &info->hw_address; char *name = info->name; -@@ -708,7 +722,8 @@ get_hw_addr(struct interface_info *info) +@@ -710,7 +724,8 @@ get_hw_addr(struct interface_info *info) int sll_allocated = 0; char *dup = NULL; char *colon = NULL; @@ -48,7 +60,7 @@ index 4a252ca..467b055 100644 if (getifaddrs(&ifaddrs) == -1) log_fatal("Failed to get interfaces"); -@@ -792,14 +807,16 @@ get_hw_addr(struct interface_info *info) +@@ -794,14 +809,16 @@ get_hw_addr(struct interface_info *info) hw->hbuf[4] = 0xef; break; #endif @@ -70,10 +82,10 @@ index 4a252ca..467b055 100644 } #endif diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index d534f8c..66a21fb 100644 +index 0c1a0aa..635c510 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -2591,7 +2591,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); +@@ -2637,7 +2637,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); #endif const char *print_time(TIME); @@ -84,3 +96,6 @@ index d534f8c..66a21fb 100644 char *buf_to_hex (const unsigned char *s, unsigned len, const char *file, int line); char *format_lease_id(const unsigned char *s, unsigned len, int format, +-- +2.14.5 + diff --git a/dhcp-noreplay.patch b/0021-Load-leases-DB-in-non-replay-mode-only.patch similarity index 66% rename from dhcp-noreplay.patch rename to 0021-Load-leases-DB-in-non-replay-mode-only.patch index c7d7589..ae72855 100644 --- a/dhcp-noreplay.patch +++ b/0021-Load-leases-DB-in-non-replay-mode-only.patch @@ -1,5 +1,15 @@ +From 1c7b876dc558774c40a2a28da53c19c65e123124 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:44:06 +0100 +Subject: [PATCH 21/21] Load leases DB in non-replay mode only +Cc: pzhukov@redhat.com + +--- + server/confpars.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + diff --git a/server/confpars.c b/server/confpars.c -index d79489b..c20d618 100644 +index 2743979..db21a0b 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, @@ -14,19 +24,7 @@ index d79489b..c20d618 100644 flen = lseek (file, (off_t)0, SEEK_END); if (flen < 0) { boom: -@@ -174,6 +179,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - #else - status = new_parse(&cfile, file, NULL, 0, filename, 0); - #endif -+ noreplay: - if (status != ISC_R_SUCCESS || cfile == NULL) - return status; - -diff --git a/server/confpars.c b/server/confpars.c -index 3aecd05..5be4ab1 100644 ---- a/server/confpars.c -+++ b/server/confpars.c -@@ -176,6 +176,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, +@@ -171,9 +176,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, if (trace_record ()) trace_write_packet (ttype, ulen + tflen + 1, dbuf, MDL); status = new_parse(&cfile, -1, fbuf, ulen, filename, 0); /* XXX */ @@ -34,7 +32,11 @@ index 3aecd05..5be4ab1 100644 #else status = new_parse(&cfile, file, NULL, 0, filename, 0); #endif -@@ -188,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, ++ noreplay: + if (status != ISC_R_SUCCESS || cfile == NULL) + return status; + +@@ -182,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, else status = conf_file_subparse (cfile, group, group_type); end_parse (&cfile); @@ -44,3 +46,6 @@ index 3aecd05..5be4ab1 100644 return status; } +-- +2.14.5 + diff --git a/12-dhcpd b/12-dhcpd index e75aa93..7d933ea 100644 --- a/12-dhcpd +++ b/12-dhcpd @@ -1,5 +1,9 @@ #!/bin/bash +## this script is disabled by default +## if you want one to be executed on NM up events +## please make it executable. See chmod(1) for more details + INTERFACE=$1 # The interface which is brought up or down STATUS=$2 # The new state of the interface diff --git a/dhcp-4.3.6-bind-9.11.5.patch b/dhcp-4.3.6-bind-9.11.5.patch deleted file mode 100644 index 3636bee..0000000 --- a/dhcp-4.3.6-bind-9.11.5.patch +++ /dev/null @@ -1,86 +0,0 @@ -From ffb24c0bbd4d6f2b4718a1a8f4f2da237cc6ed66 Mon Sep 17 00:00:00 2001 -From: Thomas Markwalder -Date: Fri, 14 Sep 2018 13:41:41 -0400 -Subject: [PATCH] [master] Added includes of new BIND9 compatibility headers, - updated util/bind.sh - - Merges in rt48072. - -(cherry picked from commit 8194daabfd590f17825f0c61e9534bee5c99cc86) ---- - includes/omapip/isclib.h | 3 +++ - includes/omapip/result.h | 1 + - server/dhcpv6.c | 13 +++++++++---- - 3 files changed, 13 insertions(+), 4 deletions(-) - -diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h -index e2963089..fa5d9ad3 100644 ---- a/includes/omapip/isclib.h -+++ b/includes/omapip/isclib.h -@@ -48,6 +48,9 @@ - #include - #include - -+#include -+#include -+ - #include - #include - #include -diff --git a/includes/omapip/result.h b/includes/omapip/result.h -index ae5f7d6a..9c1fab23 100644 ---- a/includes/omapip/result.h -+++ b/includes/omapip/result.h -@@ -26,6 +26,7 @@ - #ifndef DHCP_RESULT_H - #define DHCP_RESULT_H 1 - -+#include - #include - #include - #include -diff --git a/server/dhcpv6.c b/server/dhcpv6.c -index 74487667..1a6ff241 100644 ---- a/server/dhcpv6.c -+++ b/server/dhcpv6.c -@@ -1003,7 +1003,8 @@ void check_pool6_threshold(struct reply_state *reply, - shared_name, - inet_ntop(AF_INET6, &lease->addr, - tmp_addr, sizeof(tmp_addr)), -- used, count); -+ (long long unsigned)(used), -+ (long long unsigned)(count)); - } - return; - } -@@ -1035,7 +1036,8 @@ void check_pool6_threshold(struct reply_state *reply, - "address: %s; high threshold %d%% %llu/%llu.", - shared_name, - inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)), -- poolhigh, used, count); -+ poolhigh, (long long unsigned)(used), -+ (long long unsigned)(count)); - - /* handle the low threshold now, if we don't - * have one we default to 0. */ -@@ -1383,12 +1385,15 @@ pick_v6_address(struct reply_state *reply) - log_debug("Unable to pick client address: " - "no addresses available - shared network %s: " - " 2^64-1 < total, %llu active, %llu abandoned", -- shared_name, active - abandoned, abandoned); -+ shared_name, (long long unsigned)(active - abandoned), -+ (long long unsigned)(abandoned)); - } else { - log_debug("Unable to pick client address: " - "no addresses available - shared network %s: " - "%llu total, %llu active, %llu abandoned", -- shared_name, total, active - abandoned, abandoned); -+ shared_name, (long long unsigned)(total), -+ (long long unsigned)(active - abandoned), -+ (long long unsigned)(abandoned)); - } - - return ISC_R_NORESOURCES; --- -2.14.5 - diff --git a/dhcp-4.3.6-isc-util.patch b/dhcp-4.3.6-isc-util.patch deleted file mode 100644 index 50a0248..0000000 --- a/dhcp-4.3.6-isc-util.patch +++ /dev/null @@ -1,77 +0,0 @@ -From c37721f799e6b32da156759a830011949311205a Mon Sep 17 00:00:00 2001 -From: Petr Mensik -Date: Fri, 16 Feb 2018 17:50:40 +0100 -Subject: [PATCH] New bind includes never includes isc/util.h from any public - headers. Include them to all compiled files that require it. - ---- - client/dhclient.c | 1 + - common/execute.c | 1 + - common/parse.c | 1 + - common/socket.c | 1 + - omapip/connection.c | 1 + - 5 files changed, 5 insertions(+) - -diff --git a/client/dhclient.c b/client/dhclient.c -index 228b4fe..014365d 100644 ---- a/client/dhclient.c -+++ b/client/dhclient.c -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include - - #ifdef HAVE_LIBCAP_NG -diff --git a/common/execute.c b/common/execute.c -index fa4e0f8..1ee1e7d 100644 ---- a/common/execute.c -+++ b/common/execute.c -@@ -28,6 +28,7 @@ - - #include "dhcpd.h" - #include -+#include - #include - #include - -diff --git a/common/parse.c b/common/parse.c -index d08cd2c..729d442 100644 ---- a/common/parse.c -+++ b/common/parse.c -@@ -27,6 +27,7 @@ - */ - - #include "dhcpd.h" -+#include - #include - - /* Enumerations can be specified in option formats, and are used for -diff --git a/common/socket.c b/common/socket.c -index 2b352a1..94ce334 100644 ---- a/common/socket.c -+++ b/common/socket.c -@@ -35,6 +35,7 @@ - */ - - #include "dhcpd.h" -+#include - #include - #include - #include -diff --git a/omapip/connection.c b/omapip/connection.c -index 9aac0c8..a74becc 100644 ---- a/omapip/connection.c -+++ b/omapip/connection.c -@@ -30,6 +30,7 @@ - #include "dhcpd.h" - - #include -+#include - #include - #include - #include --- -2.14.3 - diff --git a/dhcp-4.3.6-omapi-leak.patch b/dhcp-4.3.6-omapi-leak.patch deleted file mode 100644 index 0ffcfe3..0000000 --- a/dhcp-4.3.6-omapi-leak.patch +++ /dev/null @@ -1,52 +0,0 @@ -commit ccff9ed69d0b26d33ce9cac8e83dab535b64d627 -Author: Thomas Markwalder -Date: Tue Dec 5 15:12:34 2017 -0500 - - [46767] Plugged a socket descriptor leak in OMAPI - - If disconnect is triggered by the reader closing the socket, while there - is data left to write, the socket would be orphaned. - - omapip/buffer.c - omapi_connection_writea() - added logic to recall disconnect once - pending data has been written - - omapip/message.c - Removed static declaration from omapi_message_unregister so you can - actually compile when DEBUG_PROTOCOL is defined. - - Added a release note - -diff --git a/omapip/buffer.c b/omapip/buffer.c -index 6e0621b..a21f0a8 100644 ---- a/omapip/buffer.c -+++ b/omapip/buffer.c -@@ -565,6 +565,15 @@ isc_result_t omapi_connection_writer (omapi_object_t *h) - omapi_buffer_dereference (&buffer, MDL); - } - } -+ -+ /* If we had data left to write when we're told to disconnect, -+ * we need recall disconnect, now that we're done writing. -+ * See rt46767. */ -+ if (c->out_bytes == 0 && c->state == omapi_connection_disconnecting) { -+ omapi_disconnect (h, 1); -+ return ISC_R_SHUTTINGDOWN; -+ } -+ - return ISC_R_SUCCESS; - } - -diff --git a/omapip/message.c b/omapip/message.c -index ee15d82..37abbd2 100644 ---- a/omapip/message.c -+++ b/omapip/message.c -@@ -339,7 +339,7 @@ isc_result_t omapi_message_unregister (omapi_object_t *mo) - } - - #ifdef DEBUG_PROTOCOL --static const char *omapi_message_op_name(int op) { -+const char *omapi_message_op_name(int op) { - switch (op) { - case OMAPI_OP_OPEN: return "OMAPI_OP_OPEN"; - case OMAPI_OP_REFRESH: return "OMAPI_OP_REFRESH"; diff --git a/dhcp-4.3.6-options_overflow.patch b/dhcp-4.3.6-options_overflow.patch deleted file mode 100644 index a51c0cc..0000000 --- a/dhcp-4.3.6-options_overflow.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/common/options.c b/common/options.c -index 83e0384..8a1deca 100644 ---- a/common/options.c -+++ b/common/options.c -@@ -1672,7 +1672,8 @@ format_min_length(format, oc) - - - /* Format the specified option so that a human can easily read it. */ -- -+/* Maximum pretty printed size */ -+#define MAX_OUTPUT_SIZE 32*1024 - const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) - struct option *option; - const unsigned char *data; -@@ -1680,8 +1681,9 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) - int emit_commas; - int emit_quotes; - { -- static char optbuf [32768]; /* XXX */ -- static char *endbuf = &optbuf[sizeof(optbuf)]; -+ /* We add 128 byte pad so we don't have to add checks everywhere. */ -+ static char optbuf [MAX_OUTPUT_SIZE + 128]; /* XXX */ -+ static char *endbuf = optbuf + MAX_OUTPUT_SIZE; - int hunksize = 0; - int opthunk = 0; - int hunkinc = 0; -@@ -2132,7 +2134,14 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) - log_error ("Unexpected format code %c", - fmtbuf [j]); - } -+ - op += strlen (op); -+ if (op >= endbuf) { -+ log_error ("Option data exceeds" -+ " maximum size %d", MAX_OUTPUT_SIZE); -+ return (""); -+ } -+ - if (dp == data + len) - break; - if (j + 1 < numelem && comma != ':') diff --git a/dhcp-4.3.6-reference_count_overflow.patch b/dhcp-4.3.6-reference_count_overflow.patch deleted file mode 100644 index c6c94cd..0000000 --- a/dhcp-4.3.6-reference_count_overflow.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/common/options.c b/common/options.c -index 83e0384..a58c5fc 100644 ---- a/common/options.c -+++ b/common/options.c -@@ -189,6 +189,8 @@ int parse_option_buffer (options, buffer, length, universe) - - /* If the length is outrageous, the options are bad. */ - if (offset + len > length) { -+ /* Avoid reference count overflow */ -+ option_dereference(&option, MDL); - reason = "option length exceeds option buffer length"; - bogus: - log_error("parse_option_buffer: malformed option " diff --git a/dhcp-64_bit_lease_parse.patch b/dhcp-64_bit_lease_parse.patch deleted file mode 100644 index a07b5b0..0000000 --- a/dhcp-64_bit_lease_parse.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -up dhcp-4.3.0a1/common/parse.c.64-bit_lease_parse dhcp-4.3.0a1/common/parse.c ---- dhcp-4.3.0a1/common/parse.c.64-bit_lease_parse 2013-12-11 01:25:12.000000000 +0100 -+++ dhcp-4.3.0a1/common/parse.c 2013-12-19 15:45:25.990771814 +0100 -@@ -938,8 +938,8 @@ TIME - parse_date_core(cfile) - struct parse *cfile; - { -- int guess; -- int tzoff, year, mon, mday, hour, min, sec; -+ TIME guess; -+ long int tzoff, year, mon, mday, hour, min, sec; - const char *val; - enum dhcp_token token; - static int months[11] = { 31, 59, 90, 120, 151, 181, -@@ -965,7 +965,7 @@ parse_date_core(cfile) - } - - skip_token(&val, NULL, cfile); /* consume number */ -- guess = atoi(val); -+ guess = atol(val); - - return((TIME)guess); - } -@@ -993,7 +993,7 @@ parse_date_core(cfile) - somebody invents a time machine, I think we can safely disregard - it. This actually works around a stupid Y2K bug that was present - in a very early beta release of dhcpd. */ -- year = atoi(val); -+ year = atol(val); - if (year > 1900) - year -= 1900; - -@@ -1039,7 +1039,7 @@ parse_date_core(cfile) - return((TIME)0); - } - skip_token(&val, NULL, cfile); /* consume day of month */ -- mday = atoi(val); -+ mday = atol(val); - - /* Hour... */ - token = peek_token(&val, NULL, cfile); -@@ -1050,7 +1050,7 @@ parse_date_core(cfile) - return((TIME)0); - } - skip_token(&val, NULL, cfile); /* consume hour */ -- hour = atoi(val); -+ hour = atol(val); - - /* Colon separating hour from minute... */ - token = peek_token(&val, NULL, cfile); -@@ -1072,7 +1072,7 @@ parse_date_core(cfile) - return((TIME)0); - } - skip_token(&val, NULL, cfile); /* consume minute */ -- min = atoi(val); -+ min = atol(val); - - /* Colon separating minute from second... */ - token = peek_token(&val, NULL, cfile); -@@ -1094,13 +1094,13 @@ parse_date_core(cfile) - return((TIME)0); - } - skip_token(&val, NULL, cfile); /* consume second */ -- sec = atoi(val); -+ sec = atol(val); - - tzoff = 0; - token = peek_token(&val, NULL, cfile); - if (token == NUMBER) { - skip_token(&val, NULL, cfile); /* consume tzoff */ -- tzoff = atoi(val); -+ tzoff = atol(val); - } else if (token != SEMI) { - skip_token(&val, NULL, cfile); - parse_warn(cfile, diff --git a/dhcp-IPoIB-log-id.patch b/dhcp-IPoIB-log-id.patch deleted file mode 100644 index e0369bb..0000000 --- a/dhcp-IPoIB-log-id.patch +++ /dev/null @@ -1,164 +0,0 @@ ---- a/server/dhcp.c 2017-07-14 15:32:14.611104590 +0200 -+++ b/server/dhcp.c 2017-07-14 15:34:17.508858018 +0200 -@@ -87,6 +87,42 @@ - - static TIME leaseTimeCheck(TIME calculated, TIME alternate); - -+char *print_client_identifier_from_packet (packet) -+ struct packet *packet; -+{ -+ struct option_cache *oc; -+ struct data_string client_identifier; -+ char *ci; -+ -+ memset (&client_identifier, 0, sizeof client_identifier); -+ -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_DHCP_CLIENT_IDENTIFIER); -+ if (oc && -+ evaluate_option_cache (&client_identifier, -+ packet, (struct lease *)0, -+ (struct client_state *)0, -+ packet -> options, -+ (struct option_state *)0, -+ &global_scope, oc, MDL)) { -+ ci = print_hw_addr (HTYPE_INFINIBAND, client_identifier.len, client_identifier.data); -+ data_string_forget (&client_identifier, MDL); -+ return ci; -+ } else -+ return "\"no client id\""; -+} -+ -+char *print_hw_addr_or_client_id (packet) -+ struct packet *packet; -+{ -+ if (packet -> raw -> htype == HTYPE_INFINIBAND) -+ return print_client_identifier_from_packet (packet); -+ else -+ return print_hw_addr (packet -> raw -> htype, -+ packet -> raw -> hlen, -+ packet -> raw -> chaddr); -+} -+ - void - dhcp (struct packet *packet) { - int ms_nulltp = 0; -@@ -129,9 +165,7 @@ - - log_info("%s from %s via %s: %s", s, - (packet->raw->htype -- ? print_hw_addr(packet->raw->htype, -- packet->raw->hlen, -- packet->raw->chaddr) -+ ? print_hw_addr_or_client_id(packet) - : ""), - packet->raw->giaddr.s_addr - ? inet_ntoa(packet->raw->giaddr) -@@ -328,9 +362,7 @@ - #endif - snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s", - (packet -> raw -> htype -- ? print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr) -+ ? print_hw_addr_or_client_id (packet) - : (lease - ? print_hex_1(lease->uid_len, lease->uid, 60) - : "")), -@@ -542,9 +574,7 @@ - "DHCPREQUEST for %s%s from %s %s%s%svia %s", - piaddr (cip), smbuf, - (packet -> raw -> htype -- ? print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr) -+ ? print_hw_addr_or_client_id(packet) - : (lease - ? print_hex_1(lease->uid_len, lease->uid, 60) - : "")), -@@ -785,9 +815,7 @@ - if ((oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_REQUESTED_ADDRESS))) { - log_info ("DHCPRELEASE from %s specified requested-address.", -- print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr)); -+ print_hw_addr_or_client_id(packet)); - } - - oc = lookup_option (&dhcp_universe, packet -> options, -@@ -879,9 +907,7 @@ - "DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)", - cstr, - (packet -> raw -> htype -- ? print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr) -+ ? print_hw_addr_or_client_id(packet) - : (lease - ? print_hex_1(lease->uid_len, lease->uid, 60) - : "")), -@@ -986,9 +1012,7 @@ - "DHCPDECLINE of %s from %s %s%s%svia %s", - piaddr (cip), - (packet -> raw -> htype -- ? print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr) -+ ? print_hw_addr_or_client_id(packet) - : (lease - ? print_hex_1(lease->uid_len, lease->uid, 60) - : "")), -@@ -1707,8 +1731,7 @@ - /* Report what we're sending. */ - snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip), - (packet->raw->htype && packet->raw->hlen) ? -- print_hw_addr(packet->raw->htype, packet->raw->hlen, -- packet->raw->chaddr) : -+ print_hw_addr_or_client_id(packet) : - ""); - log_info("%s %s", msgbuf, gip.len ? piaddr(gip) : - packet->interface->name); -@@ -1886,9 +1909,7 @@ - #endif - log_info ("DHCPNAK on %s to %s via %s", - piaddr (*cip), -- print_hw_addr (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr), -+ print_hw_addr_or_client_id(packet), - packet -> raw -> giaddr.s_addr - ? inet_ntoa (packet -> raw -> giaddr) - : packet -> interface -> name); -@@ -3897,7 +3918,7 @@ - ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER") - : "BOOTREPLY"), - piaddr (lease -> ip_addr), -- (lease -> hardware_addr.hlen -+ (lease -> hardware_addr.hlen > 1 - ? print_hw_addr (lease -> hardware_addr.hbuf [0], - lease -> hardware_addr.hlen - 1, - &lease -> hardware_addr.hbuf [1]) -@@ -4450,10 +4471,7 @@ - if (uid_lease) { - if (uid_lease->binding_state == FTS_ACTIVE) { - log_error ("client %s has duplicate%s on %s", -- (print_hw_addr -- (packet -> raw -> htype, -- packet -> raw -> hlen, -- packet -> raw -> chaddr)), -+ (print_hw_addr_or_client_id(packet)), - " leases", - (ip_lease -> subnet -> - shared_network -> name)); -@@ -4620,9 +4638,7 @@ - log_error("uid lease %s for client %s is duplicate " - "on %s", - piaddr(uid_lease->ip_addr), -- print_hw_addr(packet->raw->htype, -- packet->raw->hlen, -- packet->raw->chaddr), -+ print_hw_addr_or_client_id(packet), - uid_lease->subnet->shared_network->name); - - if (!packet -> raw -> ciaddr.s_addr && diff --git a/dhcp-add_timeout_when_NULL.patch b/dhcp-add_timeout_when_NULL.patch deleted file mode 100644 index 103824c..0000000 --- a/dhcp-add_timeout_when_NULL.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up dhcp-4.3.0a1/common/dispatch.c.dracut dhcp-4.3.0a1/common/dispatch.c ---- dhcp-4.3.0a1/common/dispatch.c.dracut 2013-12-11 01:25:12.000000000 +0100 -+++ dhcp-4.3.0a1/common/dispatch.c 2013-12-19 15:39:50.350505860 +0100 -@@ -210,6 +210,10 @@ void add_timeout (when, where, what, ref - isc_interval_t interval; - isc_time_t expires; - -+ if (when == NULL) { -+ return; -+ } -+ - /* See if this timeout supersedes an existing timeout. */ - t = (struct timeout *)0; - for (q = timeouts; q; q = q->next) { diff --git a/dhcp-dhclient-decline-backoff.patch b/dhcp-dhclient-decline-backoff.patch deleted file mode 100644 index 1fc1c12..0000000 --- a/dhcp-dhclient-decline-backoff.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -up dhcp-4.3.4/client/dhclient.c.backoff dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.backoff 2016-04-29 12:16:26.976245611 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:16:26.979245609 +0200 -@@ -1423,6 +1423,8 @@ void state_init (cpp) - void *cpp; - { - struct client_state *client = cpp; -+ enum dhcp_state init_state = client->state; -+ struct timeval tv; - - ASSERT_STATE(state, S_INIT); - -@@ -1435,9 +1437,18 @@ void state_init (cpp) - client -> first_sending = cur_time; - client -> interval = client -> config -> initial_interval; - -- /* Add an immediate timeout to cause the first DHCPDISCOVER packet -- to go out. */ -- send_discover (client); -+ if (init_state != S_DECLINED) { -+ /* Add an immediate timeout to cause the first DHCPDISCOVER packet -+ to go out. */ -+ send_discover(client); -+ } else { -+ /* We've received an OFFER and it has been DECLINEd by dhclient-script. -+ * wait for a random time between 1 and backoff_cutoff seconds before -+ * trying again. */ -+ tv . tv_sec = cur_time + ((1 + (random() >> 2)) % client->config->backoff_cutoff); -+ tv . tv_usec = 0; -+ add_timeout(&tv, send_discover, client, 0, 0); -+ } - } - - /* -@@ -1734,5 +1745,6 @@ void bind_lease (client) -#endif - exit(2); - } else { -+ client -> state = S_DECLINED; - state_init(client); - return; - } -@@ -4626,6 +4638,7 @@ void client_location_changed () - case S_INIT: - case S_REBINDING: - case S_STOPPED: -+ case S_DECLINED: - break; - } - client -> state = S_INIT; -diff -up dhcp-4.3.4/includes/dhcpd.h.backoff dhcp-4.3.4/includes/dhcpd.h ---- dhcp-4.3.4/includes/dhcpd.h.backoff 2016-04-29 12:16:26.980245609 +0200 -+++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:17:30.893203533 +0200 -@@ -1171,7 +1171,8 @@ enum dhcp_state { - S_BOUND = 5, - S_RENEWING = 6, - S_REBINDING = 7, -- S_STOPPED = 8 -+ S_STOPPED = 8, -+ S_DECLINED = 9 - }; - - /* Possible pending client operations. */ diff --git a/dhcp-dhclient-preinit6s.patch b/dhcp-dhclient-preinit6s.patch deleted file mode 100644 index 0ce1cf8..0000000 --- a/dhcp-dhclient-preinit6s.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -up dhcp-4.3.4/client/dhclient.c.preinit6s dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.preinit6s 2016-04-29 13:15:10.361379493 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:17:43.622415423 +0200 -@@ -812,6 +812,12 @@ main(int argc, char **argv) { - - inaddr_any.s_addr = INADDR_ANY; - -+ /* Discover all the network interfaces. */ -+ discover_interfaces(DISCOVER_UNCONFIGURED); -+ -+ /* Parse the dhclient.conf file. */ -+ read_client_conf(); -+ - /* Stateless special case. */ - if (stateless) { - if (release_mode || (wanted_ia_na > 0) || -@@ -828,12 +834,6 @@ main(int argc, char **argv) { - return 0; - } - -- /* Discover all the network interfaces. */ -- discover_interfaces(DISCOVER_UNCONFIGURED); -- -- /* Parse the dhclient.conf file. */ -- read_client_conf(); -- - /* Parse any extra command line configuration arguments: */ - if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) { - arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg); -@@ -1288,20 +1288,30 @@ void run_stateless(int exit_mode, u_int1 - IGNORE_UNUSED(port); - #endif - -- /* Discover the network interface. */ -- discover_interfaces(DISCOVER_REQUESTED); -+ struct interface_info *ip; - - if (!interfaces) - usage("No interfaces available for stateless command: %s", "-S"); - -- /* Parse the dhclient.conf file. */ - #ifdef DHCP4o6 - if (dhcpv4_over_dhcpv6) { - /* Mark we want to request IRT too! */ - dhcpv4_over_dhcpv6++; - } - #endif -- read_client_conf(); -+ -+ for (ip = interfaces; ip; ip = ip->next) { -+ if ((interfaces_requested > 0) && -+ ((ip->flags & (INTERFACE_REQUESTED | -+ INTERFACE_AUTOMATIC)) != -+ INTERFACE_REQUESTED)) -+ continue; -+ script_init(ip->client, "PREINIT6", NULL); -+ script_go(ip->client); -+ } -+ -+ /* Discover the network interface. */ -+ discover_interfaces(DISCOVER_REQUESTED); - - /* Parse the lease database. */ - read_client_leases(); diff --git a/dhcp-duidv4.patch b/dhcp-duidv4.patch deleted file mode 100644 index 52fde3b..0000000 --- a/dhcp-duidv4.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -up dhcp-4.3.1b1/client/dhclient.8.KrJcIv dhcp-4.3.1b1/client/dhclient.8 ---- dhcp-4.3.1b1/client/dhclient.8.KrJcIv 2014-07-10 17:39:25.852763873 +0200 -+++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:54:26.841012988 +0200 -@@ -458,6 +458,9 @@ used to construct a RFC4361 style client - in the client's messages. This client id can be overridden by - setting a client id in the configuration file. Overridding the - client id in this fashion is discouraged. -+This option is turned on by default, if you want to redefine or turn off -+sending of client id, use send dhcp-client-identifier = "better identifier" -+or send dhcp-client-identifier = "" in /etc/dhcp/dhclient.conf. - .TP - .BI \-I - Use the standard DDNS scheme from RFCs 4701 & 4702. -diff -up dhcp-4.3.1b1/client/dhclient.c.KrJcIv dhcp-4.3.1b1/client/dhclient.c ---- dhcp-4.3.1b1/client/dhclient.c.KrJcIv 2014-07-10 17:54:26.829013157 +0200 -+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:55:50.155835918 +0200 -@@ -73,7 +73,7 @@ struct sockaddr_in sockaddr_broadcast; - struct in_addr giaddr; - struct data_string default_duid; - int duid_type = 0; --int duid_v4 = 0; -+int duid_v4 = 1; - int std_dhcid = 0; - - /* ASSERT_STATE() does nothing now; it used to be -@@ -1301,7 +1301,7 @@ static void setup_ib_interface(struct in - } - - /* No client ID specified */ -- log_fatal("dhcp-client-identifier must be specified for InfiniBand"); -+ //log_fatal("dhcp-client-identifier must be specified for InfiniBand"); - } - - /* Individual States: diff --git a/dhcp-garbage-chars.patch b/dhcp-garbage-chars.patch deleted file mode 100644 index 131360b..0000000 --- a/dhcp-garbage-chars.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up dhcp-4.3.0rc1/common/tables.c.garbage dhcp-4.3.0rc1/common/tables.c ---- dhcp-4.3.0rc1/common/tables.c.garbage 2014-01-29 10:03:52.132624677 +0100 -+++ dhcp-4.3.0rc1/common/tables.c 2014-01-29 10:04:51.413875343 +0100 -@@ -213,7 +213,7 @@ static struct option dhcp_options[] = { - { "name-service-search", "Sa", &dhcp_universe, 117, 1 }, - #endif - { "subnet-selection", "I", &dhcp_universe, 118, 1 }, -- { "domain-search", "Dc", &dhcp_universe, 119, 1 }, -+ { "domain-search", "D", &dhcp_universe, 119, 1 }, - { "vivco", "Evendor-class.", &dhcp_universe, 124, 1 }, - { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, - #if 0 diff --git a/dhcp-handle_ctx_signals.patch b/dhcp-handle_ctx_signals.patch deleted file mode 100644 index 9bbe548..0000000 --- a/dhcp-handle_ctx_signals.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/omapip/isclib.c b/omapip/isclib.c -index 9ec1a0f..42d82ff 100644 ---- a/omapip/isclib.c -+++ b/omapip/isclib.c -@@ -185,16 +185,6 @@ dhcp_context_create(int flags, - if (result != ISC_R_SUCCESS) - goto cleanup; - -- result = isc_app_ctxstart(dhcp_gbl_ctx.actx); -- if (result != ISC_R_SUCCESS) -- return (result); -- dhcp_gbl_ctx.actx_started = ISC_TRUE; -- -- /* Not all OSs support suppressing SIGPIPE through socket -- * options, so set the sigal action to be ignore. This allows -- * broken connections to fail gracefully with EPIPE on writes */ -- handle_signal(SIGPIPE, SIG_IGN); -- - result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx, - dhcp_gbl_ctx.actx, - 1, 0, -@@ -217,6 +207,21 @@ dhcp_context_create(int flags, - result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task); - if (result != ISC_R_SUCCESS) - goto cleanup; -+ -+ result = isc_app_ctxstart(dhcp_gbl_ctx.actx); -+ if (result != ISC_R_SUCCESS) -+ return (result); -+ dhcp_gbl_ctx.actx_started = ISC_TRUE; -+ -+ /* Not all OSs support suppressing SIGPIPE through socket -+ * options, so set the sigal action to be ignore. This allows -+ * broken connections to fail gracefully with EPIPE on writes */ -+ handle_signal(SIGPIPE, SIG_IGN); -+ -+ /* Reset handlers installed by isc_app_ctxstart() -+ * to default for control-c and kill */ -+ handle_signal(SIGINT, SIG_DFL); -+ handle_signal(SIGTERM, SIG_DFL); - } - - #if defined (NSUPDATE) - diff --git a/dhcp-honor-expired.patch b/dhcp-honor-expired.patch deleted file mode 100644 index bd89297..0000000 --- a/dhcp-honor-expired.patch +++ /dev/null @@ -1,49 +0,0 @@ -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; - } diff --git a/dhcp-improved-xid.patch b/dhcp-improved-xid.patch deleted file mode 100644 index 69a6975..0000000 --- a/dhcp-improved-xid.patch +++ /dev/null @@ -1,138 +0,0 @@ -diff -up dhcp-4.3.4/client/dhclient.c.improved-xid dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.improved-xid 2016-04-29 12:54:55.997102182 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:57:25.123139587 +0200 -@@ -1045,6 +1045,26 @@ main(int argc, char **argv) { - } - } - -+ /* We create a backup seed before rediscovering interfaces in order to -+ have a seed built using all of the available interfaces -+ It's interesting if required interfaces doesn't let us defined -+ a really unique seed due to a lack of valid HW addr later -+ (this is the case with DHCP over IB) -+ We only use the last device as using a sum could broke the -+ uniqueness of the seed among multiple nodes -+ */ -+ unsigned backup_seed = 0; -+ for (ip = interfaces; ip; ip = ip -> next) { -+ int junk; -+ if ( ip -> hw_address.hlen <= sizeof seed ) -+ continue; -+ memcpy (&junk, -+ &ip -> hw_address.hbuf [ip -> hw_address.hlen - -+ sizeof seed], sizeof seed); -+ backup_seed = junk; -+ } -+ -+ - /* At this point, all the interfaces that the script thinks - are relevant should be running, so now we once again call - discover_interfaces(), and this time ask it to actually set -@@ -1059,14 +1079,36 @@ main(int argc, char **argv) { - Not much entropy, but we're booting, so we're not likely to - find anything better. */ - seed = 0; -+ int seed_flag = 0; - for (ip = interfaces; ip; ip = ip->next) { - int junk; -+ if ( ip -> hw_address.hlen <= sizeof seed ) -+ continue; - memcpy(&junk, - &ip->hw_address.hbuf[ip->hw_address.hlen - - sizeof seed], sizeof seed); - seed += junk; -+ seed_flag = 1; - } -- srandom(seed + cur_time + (unsigned)getpid()); -+ if ( seed_flag == 0 ) { -+ if ( backup_seed != 0 ) { -+ seed = backup_seed; -+ log_info ("xid: rand init seed (0x%x) built using all" -+ " available interfaces",seed); -+ } -+ else { -+ seed = cur_time^((unsigned) gethostid()) ; -+ log_info ("xid: warning: no netdev with useable HWADDR found" -+ " for seed's uniqueness enforcement"); -+ log_info ("xid: rand init seed (0x%x) built using gethostid", -+ seed); -+ } -+ /* we only use seed and no current time as a broadcast reply */ -+ /* will certainly be used by the hwaddrless interface */ -+ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); -+ } -+ else -+ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); - - /* Setup specific Infiniband options */ - for (ip = interfaces; ip; ip = ip->next) { -@@ -1633,7 +1675,7 @@ void dhcpack (packet) - return; - } - -- log_info ("DHCPACK from %s", piaddr (packet -> client_addr)); -+ log_info ("DHCPACK from %s (xid=0x%x)", piaddr (packet -> client_addr), ntohl(client -> xid)); - - lease = packet_to_lease (packet, client); - if (!lease) { -@@ -2541,7 +2583,7 @@ void dhcpnak (packet) - return; - } - -- log_info ("DHCPNAK from %s", piaddr (packet -> client_addr)); -+ log_info ("DHCPNAK from %s (xid=0x%x)", piaddr (packet -> client_addr), ntohl(client -> xid)); - - if (!client -> active) { - #if defined (DEBUG) -@@ -2674,10 +2716,10 @@ void send_discover (cpp) - (long)(client -> interval)); - } else - #endif -- log_info ("DHCPDISCOVER on %s to %s port %d interval %ld", -+ log_info ("DHCPDISCOVER on %s to %s port %d interval %ld (xid=0x%x)", - client -> name ? client -> name : client -> interface -> name, - inet_ntoa (sockaddr_broadcast.sin_addr), -- ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval)); -+ ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval), ntohl(client -> xid)); - - /* Send out a packet. */ - #if defined(DHCPv6) && defined(DHCP4o6) -@@ -2962,10 +3004,10 @@ void send_request (cpp) - log_info ("DHCPREQUEST"); - } else - #endif -- log_info ("DHCPREQUEST on %s to %s port %d", -+ log_info ("DHCPREQUEST on %s to %s port %d (xid=0x%x)", - client -> name ? client -> name : client -> interface -> name, - inet_ntoa (destination.sin_addr), -- ntohs (destination.sin_port)); -+ ntohs (destination.sin_port), ntohl(client -> xid)); - - #if defined(DHCPv6) && defined(DHCP4o6) - if (dhcpv4_over_dhcpv6) { -@@ -3022,10 +3064,10 @@ void send_decline (cpp) - log_info ("DHCPDECLINE"); - } else - #endif -- log_info ("DHCPDECLINE on %s to %s port %d", -+ log_info ("DHCPDECLINE on %s to %s port %d (xid=0x%x)", - client->name ? client->name : client->interface->name, - inet_ntoa(sockaddr_broadcast.sin_addr), -- ntohs(sockaddr_broadcast.sin_port)); -+ ntohs(sockaddr_broadcast.sin_port), ntohl(client -> xid)); - - /* Send out a packet. */ - #if defined(DHCPv6) && defined(DHCP4o6) -@@ -3084,10 +3126,10 @@ void send_release (cpp) - log_info ("DHCPRELEASE"); - } else - #endif -- log_info ("DHCPRELEASE on %s to %s port %d", -+ log_info ("DHCPRELEASE on %s to %s port %d (xid=0x%x)", - client -> name ? client -> name : client -> interface -> name, - inet_ntoa (destination.sin_addr), -- ntohs (destination.sin_port)); -+ ntohs (destination.sin_port), ntohl(client -> xid)); - - #if defined(DHCPv6) && defined(DHCP4o6) - if (dhcpv4_over_dhcpv6) { diff --git a/dhcp-option97-pxe-client-id.patch b/dhcp-option97-pxe-client-id.patch deleted file mode 100644 index fac2ace..0000000 --- a/dhcp-option97-pxe-client-id.patch +++ /dev/null @@ -1,217 +0,0 @@ -diff -up dhcp-4.3.5b1/common/options.c.option97 dhcp-4.3.5b1/common/options.c ---- dhcp-4.3.5b1/common/options.c.option97 2016-09-12 17:17:13.972691041 +0200 -+++ dhcp-4.3.5b1/common/options.c 2016-09-12 17:19:17.706790276 +0200 -@@ -4434,13 +4434,26 @@ int validate_packet(struct packet *packe - "a future version of ISC DHCP will reject this"); - } - } else { -- /* -- * If hlen is 0 we don't have any identifier, we warn the user -- * but continue processing the packet as we can. -- */ -- if (packet->raw->hlen == 0) { -- log_debug("Received DHCPv4 packet without client-id" -- " option and empty hlen field."); -+ oc = lookup_option (&dhcp_universe, packet->options, -+ DHO_PXE_CLIENT_ID); -+ if (oc) { -+ /* Let's check if pxe-client-id is sane */ -+ if ((oc->data.len < 2) || -+ (oc->data.data[0] == '\0' && -+ oc->data.len != 17)) { -+ log_debug("Dropped DHCPv4 packet with wrong " -+ "(len == %d) pxe-client-id", oc->data.len); -+ return (0); -+ } -+ } else { -+ /* -+ * If hlen is 0 we don't have any identifier, we warn the user -+ * but continue processing the packet as we can. -+ */ -+ if (packet->raw->hlen == 0) { -+ log_debug("Received DHCPv4 packet without client-id" -+ " option and empty hlen field."); -+ } - } - } - -diff -up dhcp-4.3.5b1/common/tables.c.option97 dhcp-4.3.5b1/common/tables.c ---- dhcp-4.3.5b1/common/tables.c.option97 2016-09-12 17:17:13.927691005 +0200 -+++ dhcp-4.3.5b1/common/tables.c 2016-09-12 17:17:13.972691041 +0200 -@@ -196,8 +196,9 @@ static struct option dhcp_options[] = { - /* Defined by RFC 4578 */ - { "pxe-system-type", "S", &dhcp_universe, 93, 1 }, - { "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 }, -- { "pxe-client-id", "BX", &dhcp_universe, 97, 1 }, - #endif -+ { "pxe-client-id", "BX", &dhcp_universe, 97, 1 }, -+ - { "uap-servers", "t", &dhcp_universe, 98, 1 }, - #if defined(RFC4776_OPTIONS) - { "geoconf-civic", "X", &dhcp_universe, 99, 1 }, -diff -up dhcp-4.3.5b1/includes/dhcp.h.option97 dhcp-4.3.5b1/includes/dhcp.h ---- dhcp-4.3.5b1/includes/dhcp.h.option97 2016-09-12 17:17:13.936691013 +0200 -+++ dhcp-4.3.5b1/includes/dhcp.h 2016-09-12 17:17:13.972691041 +0200 -@@ -159,6 +159,7 @@ struct dhcp_packet { - #define DHO_AUTHENTICATE 90 /* RFC3118, was 210 */ - #define DHO_CLIENT_LAST_TRANSACTION_TIME 91 - #define DHO_ASSOCIATED_IP 92 -+#define DHO_PXE_CLIENT_ID 97 /* RFC4578 */ - #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ - #define DHO_DOMAIN_SEARCH 119 /* RFC3397 */ - #define DHO_CLASSLESS_STATIC_ROUTES 121 /* RFC3442 */ -diff -up dhcp-4.3.5b1/server/dhcp.c.option97 dhcp-4.3.5b1/server/dhcp.c ---- dhcp-4.3.5b1/server/dhcp.c.option97 2016-09-12 17:17:13.947691021 +0200 -+++ dhcp-4.3.5b1/server/dhcp.c 2016-09-12 17:17:13.973691042 +0200 -@@ -221,6 +221,10 @@ dhcp (struct packet *packet) { - oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_CLIENT_IDENTIFIER); - if (!oc) -+ oc = lookup_option (&dhcp_universe, -+ packet -> options, -+ DHO_PXE_CLIENT_ID); -+ if (!oc) - goto nolease; - - memset (&data, 0, sizeof data); -@@ -818,6 +822,9 @@ void dhcprelease (packet, ms_nulltp) - - oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - memset (&data, 0, sizeof data); - if (oc && - evaluate_option_cache (&data, packet, (struct lease *)0, -@@ -1286,6 +1293,9 @@ void dhcpinform (packet, ms_nulltp) - */ - oc = lookup_option(&dhcp_universe, packet->options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - memset(&d1, 0, sizeof(d1)); - if (oc && - evaluate_option_cache(&d1, packet, NULL, NULL, -@@ -2381,6 +2391,9 @@ void ack_lease (packet, lease, offer, wh - can be used. */ - oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - if (oc && - evaluate_option_cache (&d1, packet, lease, - (struct client_state *)0, -@@ -2962,6 +2975,9 @@ void ack_lease (packet, lease, offer, wh - /* Record the uid, if given... */ - oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - if (oc && - evaluate_option_cache(&d1, packet, lease, NULL, - packet->options, state->options, -@@ -4068,6 +4084,9 @@ int find_lease (struct lease **lp, - specified unique client identifier. */ - oc = lookup_option (&dhcp_universe, packet -> options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option (&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - memset (&client_identifier, 0, sizeof client_identifier); - if (oc && - evaluate_option_cache (&client_identifier, -diff -up dhcp-4.3.5b1/server/dhcpd.conf.5.option97 dhcp-4.3.5b1/server/dhcpd.conf.5 ---- dhcp-4.3.5b1/server/dhcpd.conf.5.option97 2016-09-12 17:17:13.885690972 +0200 -+++ dhcp-4.3.5b1/server/dhcpd.conf.5 2016-09-12 17:17:13.974691043 +0200 -@@ -1587,10 +1587,12 @@ should be a name identifying the host. - not specified for the host, \fIhostname\fR is used. - .PP - \fIHost\fR declarations are matched to actual DHCP or BOOTP clients --by matching the \fRdhcp-client-identifier\fR option specified in the -+by matching the \fIdhcp-client-identifier\fR or \fIpxe-client-id\fR -+options specified in the - \fIhost\fR declaration to the one supplied by the client, or, if the - \fIhost\fR declaration or the client does not provide a --\fRdhcp-client-identifier\fR option, by matching the \fIhardware\fR -+\fIdhcp-client-identifier\fR or \fIpxe-client-id\fR options, -+by matching the \fIhardware\fR - parameter in the \fIhost\fR declaration to the network hardware - address supplied by the client. BOOTP clients do not normally - provide a \fIdhcp-client-identifier\fR, so the hardware address must -@@ -1602,7 +1604,8 @@ to identify hosts. - .PP - Please be aware that - .B only --the \fIdhcp-client-identifier\fR option and the hardware address can be -+the \fIdhcp-client-identifier\fR and \fIpxe-client-id\fR -+options and the hardware address can be - used to match a host declaration, or the \fIhost-identifier option\fR - parameter for DHCPv6 servers. For example, it is not possible to - match a host declaration to a \fIhost-name\fR option. This is -diff -up dhcp-4.3.5b1/server/dhcpleasequery.c.option97 dhcp-4.3.5b1/server/dhcpleasequery.c ---- dhcp-4.3.5b1/server/dhcpleasequery.c.option97 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/server/dhcpleasequery.c 2016-09-12 17:17:13.974691043 +0200 -@@ -273,7 +273,7 @@ dhcpleasequery(struct packet *packet, in - */ - - memset(&uid, 0, sizeof(uid)); -- if (get_option(&uid, -+ i = get_option(&uid, - &dhcp_universe, - packet, - NULL, -@@ -283,8 +283,20 @@ dhcpleasequery(struct packet *packet, in - packet->options, - &global_scope, - DHO_DHCP_CLIENT_IDENTIFIER, -- MDL)) { -- -+ MDL); -+ if (!i) -+ i = get_option(&uid, -+ &dhcp_universe, -+ packet, -+ NULL, -+ NULL, -+ packet->options, -+ NULL, -+ packet->options, -+ &global_scope, -+ DHO_PXE_CLIENT_ID, -+ MDL); -+ if (i) { - snprintf(dbg_info, - sizeof(dbg_info), - "client-id %s", -diff -up dhcp-4.3.5b1/server/failover.c.option97 dhcp-4.3.5b1/server/failover.c ---- dhcp-4.3.5b1/server/failover.c.option97 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/server/failover.c 2016-09-12 17:17:13.975691044 +0200 -@@ -5957,6 +5957,9 @@ int load_balance_mine (struct packet *pa - - oc = lookup_option(&dhcp_universe, packet->options, - DHO_DHCP_CLIENT_IDENTIFIER); -+ if (!oc) -+ oc = lookup_option(&dhcp_universe, packet -> options, -+ DHO_PXE_CLIENT_ID); - memset(&ds, 0, sizeof ds); - if (oc && - evaluate_option_cache(&ds, packet, NULL, NULL, -diff -up dhcp-4.3.5b1/server/mdb.c.option97 dhcp-4.3.5b1/server/mdb.c ---- dhcp-4.3.5b1/server/mdb.c.option97 2016-08-26 20:19:53.000000000 +0200 -+++ dhcp-4.3.5b1/server/mdb.c 2016-09-12 17:17:13.975691044 +0200 -@@ -129,8 +129,9 @@ static int find_uid_statement (struct ex - esp -> data.option && - (esp -> data.option -> option -> universe == - &dhcp_universe) && -- (esp -> data.option -> option -> code == -- DHO_DHCP_CLIENT_IDENTIFIER)) { -+ ((esp -> data.option -> option -> code == -+ DHO_DHCP_CLIENT_IDENTIFIER) || -+ (esp -> data.option -> option -> code == DHO_PXE_CLIENT_ID))) { - if (condp) { - log_error ("dhcp client identifier may not be %s", - "specified conditionally."); diff --git a/dhcp-paths.patch b/dhcp-paths.patch deleted file mode 100644 index 59a711d..0000000 --- a/dhcp-paths.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -up dhcp-4.3.0a1/doc/examples/dhcpd-dhcpv6.conf.paths dhcp-4.3.0a1/doc/examples/dhcpd-dhcpv6.conf ---- dhcp-4.3.0a1/doc/examples/dhcpd-dhcpv6.conf.paths 2013-11-07 20:15:08.000000000 +0100 -+++ dhcp-4.3.0a1/doc/examples/dhcpd-dhcpv6.conf 2013-12-19 15:34:16.262247711 +0100 -@@ -42,7 +42,7 @@ option dhcp6.domain-search "test.example - option dhcp6.info-refresh-time 21600; - - # The path of the lease file --dhcpv6-lease-file-name "/usr/local/var/db/dhcpd6.leases"; -+dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases"; - - # Static definition (must be global) - host myclient { -diff -up dhcp-4.3.0a1/includes/dhcpd.h.paths dhcp-4.3.0a1/includes/dhcpd.h ---- dhcp-4.3.0a1/includes/dhcpd.h.paths 2013-12-19 15:34:16.253247840 +0100 -+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-19 15:34:16.263247697 +0100 -@@ -1429,7 +1429,7 @@ typedef unsigned char option_mask [16]; - #else /* !DEBUG */ - - #ifndef _PATH_DHCPD_CONF --#define _PATH_DHCPD_CONF "/etc/dhcpd.conf" -+#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf" - #endif /* DEBUG */ - - #ifndef _PATH_DHCPD_DB -@@ -1451,11 +1451,11 @@ typedef unsigned char option_mask [16]; - #endif /* DEBUG */ - - #ifndef _PATH_DHCLIENT_CONF --#define _PATH_DHCLIENT_CONF "/etc/dhclient.conf" -+#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf" - #endif - - #ifndef _PATH_DHCLIENT_SCRIPT --#define _PATH_DHCLIENT_SCRIPT "/sbin/dhclient-script" -+#define _PATH_DHCLIENT_SCRIPT "/usr/sbin/dhclient-script" - #endif - - #ifndef _PATH_DHCLIENT_PID diff --git a/dhcp-remove-bind.patch b/dhcp-remove-bind.patch deleted file mode 100644 index 7706c60..0000000 --- a/dhcp-remove-bind.patch +++ /dev/null @@ -1,351 +0,0 @@ -From 2698385647a6ebd58b5d25147333e494c3da2409 Mon Sep 17 00:00:00 2001 -From: Petr Mensik -Date: Fri, 9 Feb 2018 15:24:53 +0100 -Subject: [PATCH] Support for isc-config.sh script on --with-libbind parameter - -Move checks only to isc-config section - -Fix detection of bind flags from config - -Add support for with-libbind=config, Improve help message ---- - client/Makefile.am | 5 ++- - client/tests/Makefile.am | 8 ++--- - common/tests/Makefile.am | 14 +++----- - configure.ac | 84 ++++++++++++++++++++++++++++++++++++++++++------ - dhcpctl/Makefile.am | 8 ++--- - omapip/Makefile.am | 5 ++- - relay/Makefile.am | 5 ++- - server/Makefile.am | 6 ++-- - server/tests/Makefile.am | 9 +++--- - 9 files changed, 98 insertions(+), 46 deletions(-) - -diff --git a/client/Makefile.am b/client/Makefile.am -index 2cb83d8..b85f5d2 100644 ---- a/client/Makefile.am -+++ b/client/Makefile.am -@@ -4,7 +4,7 @@ - # production code. Sadly, we are not there yet. - SUBDIRS = . tests - --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \ - -DLOCALSTATEDIR='"$(localstatedir)"' -@@ -15,7 +15,6 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ - scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt --dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(BIND_LIBS) - man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 - EXTRA_DIST = $(man_MANS) -diff --git a/client/tests/Makefile.am b/client/tests/Makefile.am -index 5031d0c..bb1fda4 100644 ---- a/client/tests/Makefile.am -+++ b/client/tests/Makefile.am -@@ -1,9 +1,9 @@ - SUBDIRS = . - --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - AM_CPPFLAGS = $(ATF_CFLAGS) -DUNIT_TEST -I$(top_srcdir)/includes --AM_CPPFLAGS += -I@BINDDIR@/include -I$(top_srcdir) -+AM_CPPFLAGS += @BIND_CPPFLAGS@ -I$(top_srcdir) - AM_CPPFLAGS += -DLOCALSTATEDIR='"."' - AM_CPPFLAGS += -DCLIENT_PATH='"."' - -@@ -18,9 +18,7 @@ info: - DHCPSRC = ../clparse.c ../dhc6.c ../dhclient.c - - DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ -- $(top_builddir)/dhcpctl/libdhcpctl.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a \ -- $(BINDLIBDIR)/libisc.a -+ $(top_builddir)/dhcpctl/libdhcpctl.a $(BIND_LIBS) - - ATF_TESTS = - if HAVE_ATF -diff --git a/common/tests/Makefile.am b/common/tests/Makefile.am -index f6a43e4..196aa44 100644 ---- a/common/tests/Makefile.am -+++ b/common/tests/Makefile.am -@@ -1,6 +1,6 @@ - SUBDIRS = . - --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - AM_CPPFLAGS = $(ATF_CFLAGS) -I$(top_srcdir)/includes - -@@ -15,26 +15,22 @@ ATF_TESTS += alloc_unittest dns_unittest misc_unittest ns_name_unittest - alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c - alloc_unittest_LDADD = $(ATF_LDFLAGS) - alloc_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ ../../omapip/libomapi.a $(BIND_LIBS) - - dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c - dns_unittest_LDADD = $(ATF_LDFLAGS) - dns_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ ../../omapip/libomapi.a $(BIND_LIBS) - - misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c - misc_unittest_LDADD = $(ATF_LDFLAGS) - misc_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ ../../omapip/libomapi.a $(BIND_LIBS) - - ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c - ns_name_unittest_LDADD = $(ATF_LDFLAGS) - ns_name_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ ../../omapip/libomapi.a $(BIND_LIBS) - - check: $(ATF_TESTS) - @if test $(top_srcdir) != ${top_builddir}; then \ -diff --git a/configure.ac b/configure.ac -index cdfa352..ef55f8d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -688,8 +688,12 @@ AC_CHECK_MEMBER(struct tpacket_auxdata.tp_vlan_tci, - - BINDDIR= - BINDSRCDIR= -+BIND_CONFIG= -+BIND_CPPFLAGS= -+BIND_LIBS= - AC_ARG_WITH(libbind, -- AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH -+ AS_HELP_STRING([--with-libbind=PATH|config],[bind includes and libraries are in PATH. -+ Use config to obtain libraries from isc-config.sh. - (default is ./bind)]), - use_libbind="$withval", use_libbind="no") - case "$use_libbind" in -@@ -701,23 +705,85 @@ no) - BINDDIR="\${top_srcdir}/bind" - BINDSRCDIR="\${top_srcdir}/bind" - ;; -+config) -+ AC_PATH_PROG(BIND_CONFIG, [isc-config.sh bind9-config]) -+ ;; - *) -- BINDDIR="$use_libbind" -- if test ! -d "$srcdir/bind"; then -- # no bind directory, create it with a fake Makefile.in -- # (AC_CONFIG_FILES and top Makefile refer to it so -- # it must exits) -- mkdir $srcdir/bind -- cat > $srcdir/bind/Makefile.in << EOF -+ if test -f "$use_libbind" -a -x "$use_libbind"; then -+ # passed full path of isc-config.sh -+ BIND_CONFIG="$use_libbind" -+ else -+ BINDDIR="$use_libbind" -+ if test ! -d "$srcdir/bind"; then -+ # no bind directory, create it with a fake Makefile.in -+ # (AC_CONFIG_FILES and top Makefile refer to it so -+ # it must exits) -+ mkdir $srcdir/bind -+ cat > $srcdir/bind/Makefile.in << EOF - # placeholder - all check clean distclean distdir install uninstall: - - EOF -+ fi - fi - ;; - esac -+if test -z "$BIND_CONFIG"; then -+ BIND_CPPFLAGS="-I${BINDDIR}/include" -+ BIND_LIBDIR="${BINDDIR}/lib" -+ BIND_LIBS="$(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a" -+else -+ BIND_CPPFLAGS=`$BIND_CONFIG --cflags` -+ BIND_LIBS=`$BIND_CONFIG --libs irs dns isccfg isc` -+ -+ # bind is already built -+ AC_CHECKING([Checking bind libraries have no thread support]) -+ saved_libs="$LIBS" -+ saved_CPPFLAGS="$CPPFLAGS" -+ CPPFLAGS="${CPPFLAGS} ${BIND_CPPFLAGS}" -+ LIBS="${LIBS} ${BIND_LIBS}" -+AC_TRY_LINK([ -+#include -+#include -+],[ -+#ifdef BIND9 -+#error Export BIND library has to be used with BIND version up to 9.9 -+#endif -+isc_lib_register(); -+], [AC_MSG_RESULT(Bind export library found) -+ BIND_EXPORT=yes], [BIND_EXPORT=no] -+) -+ -+# Allow build with disabled threads for dhcp -+AC_TRY_LINK([ -+#include -+#include -+#include -+],[ -+#ifdef ISC_PLATFORM_USETHREADS -+#error Bind library must not be compiled with threads -+#endif -+isc_lib_register(); -+if (isc_bind9 != 0) {} -+], [AC_MSG_RESULT(Bind single thread library found) -+ BIND_SINGLETHREAD=yes], [BIND_SINGLETHREAD=no] -+) -+ -+ if test "x$BIND_EXPORT" != xyes -a "x$BIND_SINGLETHREADED" != xyes -+ then -+ AC_MSG_RESULT([BIND_CONFIG=${BIND_CONFIG}]) -+ AC_MSG_RESULT([BIND_CPPFLAGS=${BIND_CPPFLAGS}]) -+ AC_MSG_RESULT([BIND_LIBS=${BIND_LIBS}]) -+ AC_MSG_ERROR([Bind libraries are not useable for dhcp]) -+ fi -+ CPPFLAGS="$saved_CPPFLAGS" -+ LIBS="$saved_LIBS" -+fi -+ - AC_SUBST(BINDDIR) - AC_SUBST(BINDSRCDIR) -+AC_SUBST(BIND_CPPFLAGS) -+AC_SUBST(BIND_LIBS) - - # OpenLDAP support. - AC_ARG_WITH(ldap, -@@ -795,7 +861,7 @@ fi - CFLAGS="$CFLAGS $STD_CWARNINGS" - - # Try to add the bind and dhcp include directories --CFLAGS="$CFLAGS -I\$(top_srcdir)/includes -I$BINDDIR/include" -+CFLAGS="$CFLAGS -I\$(top_srcdir)/includes $BIND_CPPFLAGS" - - case "$host" in - *-darwin*) -diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am -index ceb0de1..fa20a78 100644 ---- a/dhcpctl/Makefile.am -+++ b/dhcpctl/Makefile.am -@@ -1,4 +1,4 @@ --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - bin_PROGRAMS = omshell - lib_LIBRARIES = libdhcpctl.a -@@ -8,12 +8,10 @@ EXTRA_DIST = $(man_MANS) - - omshell_SOURCES = omshell.c - omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ -- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ $(BIND_LIBS) - - libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c - - cltest_SOURCES = cltest.c - cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ -- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ $(BIND_LIBS) -diff --git a/omapip/Makefile.am b/omapip/Makefile.am -index 446a594..b0d2680 100644 ---- a/omapip/Makefile.am -+++ b/omapip/Makefile.am -@@ -1,4 +1,4 @@ --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - lib_LIBRARIES = libomapi.a - noinst_PROGRAMS = svtest -@@ -12,6 +12,5 @@ man_MANS = omapi.3 - EXTRA_DIST = $(man_MANS) - - svtest_SOURCES = test.c --svtest_LDADD = libomapi.a $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ -- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+svtest_LDADD = libomapi.a $(BIND_LIBS) - -diff --git a/relay/Makefile.am b/relay/Makefile.am -index 3060eca..c9a1cba 100644 ---- a/relay/Makefile.am -+++ b/relay/Makefile.am -@@ -1,12 +1,11 @@ --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' - - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c - dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ -- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a -+ $(BIND_LIBS) - man_MANS = dhcrelay.8 - EXTRA_DIST = $(man_MANS) - -diff --git a/server/Makefile.am b/server/Makefile.am -index 54feedf..30cf2b1 100644 ---- a/server/Makefile.am -+++ b/server/Makefile.am -@@ -4,7 +4,7 @@ - # production code. Sadly, we are not there yet. - SUBDIRS = . tests - --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ - - AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' - -@@ -16,9 +16,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ - - dhcpd_CFLAGS = $(LDAP_CFLAGS) - dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a \ -- $(BINDLIBDIR)/libisc.a $(LDAP_LIBS) -+ ../dhcpctl/libdhcpctl.a $(BIND_LIBS) $(LDAP_LIBS) - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 - EXTRA_DIST = $(man_MANS) -diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am -index a87c5e7..771de06 100644 ---- a/server/tests/Makefile.am -+++ b/server/tests/Makefile.am -@@ -1,9 +1,10 @@ - SUBDIRS = . - --BINDLIBDIR = @BINDDIR@/lib -+BIND_LIBS = @BIND_LIBS@ -+ - - AM_CPPFLAGS = $(ATF_CFLAGS) -DUNIT_TEST -I$(top_srcdir)/includes --AM_CPPFLAGS += -I@BINDDIR@/include -I$(top_srcdir) -+AM_CPPFLAGS += $(BIND_CPPFLAGS) -I$(top_srcdir) - AM_CPPFLAGS += -DLOCALSTATEDIR='"."' - - EXTRA_DIST = Atffile -@@ -20,9 +21,7 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpars.c ../db.c ../class.c \ - ../ldap.c ../ldap_casa.c ../dhcpd.c ../leasechain.c - - DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ -- $(top_builddir)/dhcpctl/libdhcpctl.a $(BINDLIBDIR)/libirs.a \ -- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a \ -- $(BINDLIBDIR)/libisc.a -+ $(top_builddir)/dhcpctl/libdhcpctl.a $(BIND_LIBS) - - ATF_TESTS = - if HAVE_ATF --- -2.14.3 - diff --git a/dhcp-sd_notify.patch b/dhcp-sd_notify.patch deleted file mode 100644 index a123923..0000000 --- a/dhcp-sd_notify.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff -up dhcp-4.3.4/configure.ac.sd_notify dhcp-4.3.4/configure.ac ---- dhcp-4.3.4/configure.ac.sd_notify 2016-04-29 13:08:52.813287060 +0200 -+++ dhcp-4.3.4/configure.ac 2016-04-29 13:08:52.872287075 +0200 -@@ -832,6 +832,17 @@ if test x$ldap = xyes || test x$ldapcryp - AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) - fi - -+AC_ARG_WITH(systemd, -+ AC_HELP_STRING([--with-systemd], -+ [enable sending status notifications to systemd daemon (default is no)]), -+ [systemd=$withval], -+ [systemd=no]) -+ -+if test x$systemd = xyes ; then -+ AC_CHECK_LIB(systemd, sd_notifyf, , -+ AC_MSG_FAILURE([*** systemd library not present - do you need to install systemd-libs package?])) -+fi -+ - # Append selected warning levels to CFLAGS before substitution (but after - # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). - CFLAGS="$CFLAGS $STD_CWARNINGS" -diff -up dhcp-4.3.4/relay/dhcrelay.c.sd_notify dhcp-4.3.4/relay/dhcrelay.c ---- dhcp-4.3.4/relay/dhcrelay.c.sd_notify 2016-04-29 13:08:52.814287061 +0200 -+++ dhcp-4.3.4/relay/dhcrelay.c 2016-04-29 13:08:52.872287075 +0200 -@@ -37,6 +37,10 @@ - int keep_capabilities = 0; - #endif - -+#ifdef HAVE_LIBSYSTEMD -+#include -+#endif -+ - TIME default_lease_time = 43200; /* 12 hours... */ - TIME max_lease_time = 86400; /* 24 hours... */ - struct tree_cache *global_options[256]; -@@ -709,6 +713,14 @@ main(int argc, char **argv) { - } - #endif - -+#ifdef HAVE_LIBSYSTEMD -+ /* We are ready to process incomming packets. Let's notify systemd */ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Dispatching packets...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+#endif -+ - /* Start dispatching packets and timeouts... */ - dispatch(); - -diff -up dhcp-4.3.4/server/dhcpd.c.sd_notify dhcp-4.3.4/server/dhcpd.c ---- dhcp-4.3.4/server/dhcpd.c.sd_notify 2016-04-29 13:08:52.873287075 +0200 -+++ dhcp-4.3.4/server/dhcpd.c 2016-04-29 13:12:00.655333096 +0200 -@@ -57,6 +57,10 @@ uid_t set_uid = 0; - gid_t set_gid = 0; - #endif /* PARANOIA */ - -+#ifdef HAVE_LIBSYSTEMD -+#include -+#endif -+ - struct iaddr server_identifier; - int server_identifier_matched; - -@@ -931,6 +935,14 @@ main(int argc, char **argv) { - /* Log that we are about to start working */ - log_info("Server starting service."); - -+#ifdef HAVE_LIBSYSTEMD -+ /* We are ready to process incomming packets. Let's notify systemd */ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Dispatching packets...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+#endif -+ - /* - * Receive packets and dispatch them... - * dispatch() will never return. diff --git a/dhcp-sendDecline.patch b/dhcp-sendDecline.patch deleted file mode 100644 index ede9298..0000000 --- a/dhcp-sendDecline.patch +++ /dev/null @@ -1,231 +0,0 @@ -diff -up dhcp-4.3.4/client/dhc6.c.sendDecline dhcp-4.3.4/client/dhc6.c ---- dhcp-4.3.4/client/dhc6.c.sendDecline 2016-03-22 14:16:51.000000000 +0100 -+++ dhcp-4.3.4/client/dhc6.c 2016-05-02 14:51:57.916578401 +0200 -@@ -115,6 +115,8 @@ void do_select6(void *input); - void do_refresh6(void *input); - static void do_release6(void *input); - static void start_bound(struct client_state *client); -+static void start_decline6(struct client_state *client); -+static void do_decline6(void *input); - static void start_informed(struct client_state *client); - void informed_handler(struct packet *packet, struct client_state *client); - void bound_handler(struct packet *packet, struct client_state *client); -@@ -2314,6 +2316,7 @@ start_release6(struct client_state *clie - cancel_timeout(do_select6, client); - cancel_timeout(do_refresh6, client); - cancel_timeout(do_release6, client); -+ cancel_timeout(do_decline6, client); - client->state = S_STOPPED; - - /* -@@ -2968,6 +2971,7 @@ dhc6_check_reply(struct client_state *cl - break; - - case S_STOPPED: -+ case S_DECLINED: - action = dhc6_stop_action; - break; - -@@ -3084,6 +3088,7 @@ dhc6_check_reply(struct client_state *cl - break; - - case S_STOPPED: -+ case S_DECLINED: - /* Nothing critical to do at this stage. */ - break; - -@@ -4214,17 +4219,23 @@ reply_handler(struct packet *packet, str - cancel_timeout(do_select6, client); - cancel_timeout(do_refresh6, client); - cancel_timeout(do_release6, client); -+ cancel_timeout(do_decline6, client); - - /* If this is in response to a Release/Decline, clean up and return. */ -- if (client->state == S_STOPPED) { -- if (client->active_lease == NULL) -- return; -+ if ((client->state == S_STOPPED) || -+ (client->state == S_DECLINED)) { -+ -+ if (client->active_lease != NULL) { -+ dhc6_lease_destroy(&client->active_lease, MDL); -+ client->active_lease = NULL; -+ /* We should never wait for nothing!? */ -+ if (stopping_finished()) -+ exit(0); -+ } -+ -+ if (client->state == S_DECLINED) -+ start_init6(client); - -- dhc6_lease_destroy(&client->active_lease, MDL); -- client->active_lease = NULL; -- /* We should never wait for nothing!? */ -- if (stopping_finished()) -- exit(0); - return; - } - -@@ -4798,7 +4809,11 @@ start_bound(struct client_state *client) - dhc6_marshall_values("new_", client, lease, ia, addr); - script_write_requested6(client); - -- script_go(client); -+ // when script returns 3, DAD failed -+ if (script_go(client) == 3) { -+ start_decline6(client); -+ return; -+ } - } - - /* XXX: maybe we should loop on the old values instead? */ -@@ -4851,6 +4866,149 @@ start_bound(struct client_state *client) - dhc6_check_times(client); - } - -+/* -+ * Decline addresses. -+ */ -+void -+start_decline6(struct client_state *client) -+{ -+ /* Cancel any pending transmissions */ -+ cancel_timeout(do_confirm6, client); -+ cancel_timeout(do_select6, client); -+ cancel_timeout(do_refresh6, client); -+ cancel_timeout(do_release6, client); -+ cancel_timeout(do_decline6, client); -+ client->state = S_DECLINED; -+ -+ if (client->active_lease == NULL) -+ return; -+ -+ /* Set timers per RFC3315 section 18.1.7. */ -+ client->IRT = DEC_TIMEOUT * 100; -+ client->MRT = 0; -+ client->MRC = DEC_MAX_RC; -+ client->MRD = 0; -+ -+ dhc6_retrans_init(client); -+ client->v6_handler = reply_handler; -+ -+ client->refresh_type = DHCPV6_DECLINE; -+ do_decline6(client); -+} -+ -+/* -+ * do_decline6() creates a Decline packet and transmits it. -+ */ -+static void -+do_decline6(void *input) -+{ -+ struct client_state *client; -+ struct data_string ds; -+ struct timeval elapsed, tv; -+ int send_ret, added; -+ -+ client = input; -+ -+ if ((client->active_lease == NULL) || !active_prefix(client)) -+ return; -+ -+ if ((client->MRC != 0) && (client->txcount > client->MRC)) { -+ log_info("Max retransmission count exceeded."); -+ goto decline_done; -+ } -+ -+ /* -+ * Start_time starts at the first transmission. -+ */ -+ if (client->txcount == 0) { -+ client->start_time.tv_sec = cur_tv.tv_sec; -+ client->start_time.tv_usec = cur_tv.tv_usec; -+ } -+ -+ /* elapsed = cur - start */ -+ elapsed.tv_sec = cur_tv.tv_sec - client->start_time.tv_sec; -+ elapsed.tv_usec = cur_tv.tv_usec - client->start_time.tv_usec; -+ if (elapsed.tv_usec < 0) { -+ elapsed.tv_sec -= 1; -+ elapsed.tv_usec += 1000000; -+ } -+ -+ memset(&ds, 0, sizeof(ds)); -+ if (!buffer_allocate(&ds.buffer, 4, MDL)) { -+ log_error("Unable to allocate memory for Decline."); -+ goto decline_done; -+ } -+ -+ ds.data = ds.buffer->data; -+ ds.len = 4; -+ ds.buffer->data[0] = DHCPV6_DECLINE; -+ memcpy(ds.buffer->data + 1, client->dhcpv6_transaction_id, 3); -+ -+ /* Form an elapsed option. */ -+ /* Maximum value is 65535 1/100s coded as 0xffff. */ -+ if ((elapsed.tv_sec < 0) || (elapsed.tv_sec > 655) || -+ ((elapsed.tv_sec == 655) && (elapsed.tv_usec > 350000))) { -+ client->elapsed = 0xffff; -+ } else { -+ client->elapsed = elapsed.tv_sec * 100; -+ client->elapsed += elapsed.tv_usec / 10000; -+ } -+ -+ client->elapsed = htons(client->elapsed); -+ -+ log_debug("XMT: Forming Decline."); -+ make_client6_options(client, &client->sent_options, -+ client->active_lease, DHCPV6_DECLINE); -+ dhcpv6_universe.encapsulate(&ds, NULL, NULL, client, NULL, -+ client->sent_options, &global_scope, -+ &dhcpv6_universe); -+ -+ /* Append IA's (but don't release temporary addresses). */ -+ if (wanted_ia_na && -+ dhc6_add_ia_na(client, &ds, client->active_lease, -+ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) { -+ data_string_forget(&ds, MDL); -+ goto decline_done; -+ } -+ if (wanted_ia_pd && -+ dhc6_add_ia_pd(client, &ds, client->active_lease, -+ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) { -+ data_string_forget(&ds, MDL); -+ goto decline_done; -+ } -+ -+ /* Transmit and wait. */ -+ log_info("XMT: Decline on %s, interval %ld0ms.", -+ client->name ? client->name : client->interface->name, -+ (long int)client->RT); -+ -+ send_ret = send_packet6(client->interface, ds.data, ds.len, -+ &DHCPv6DestAddr); -+ if (send_ret != ds.len) { -+ log_error("dhc6: sendpacket6() sent %d of %d bytes", -+ send_ret, ds.len); -+ } -+ -+ data_string_forget(&ds, MDL); -+ -+ /* Wait RT */ -+ tv.tv_sec = cur_tv.tv_sec + client->RT / 100; -+ tv.tv_usec = cur_tv.tv_usec + (client->RT % 100) * 10000; -+ if (tv.tv_usec >= 1000000) { -+ tv.tv_sec += 1; -+ tv.tv_usec -= 1000000; -+ } -+ add_timeout(&tv, do_decline6, client, NULL, NULL); -+ dhc6_retrans_advance(client); -+ return; -+ -+decline_done: -+ dhc6_lease_destroy(&client->active_lease, MDL); -+ client->active_lease = NULL; -+ start_init6(client); -+ return; -+} -+ - /* While bound, ignore packets. In the future we'll want to answer - * Reconfigure-Request messages and the like. - */ diff --git a/dhcp-sharedlib.patch b/dhcp-sharedlib.patch deleted file mode 100644 index 4e4869e..0000000 --- a/dhcp-sharedlib.patch +++ /dev/null @@ -1,149 +0,0 @@ -diff --git a/client/Makefile.am b/client/Makefile.am -index b85f5d2..b1ecf82 100644 ---- a/client/Makefile.am -+++ b/client/Makefile.am -@@ -15,6 +15,6 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ - scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt --dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(BIND_LIBS) -+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(BIND_LIBS) - man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 - EXTRA_DIST = $(man_MANS) -diff --git a/common/tests/Makefile.am b/common/tests/Makefile.am -index 196aa44..1ccaa05 100644 ---- a/common/tests/Makefile.am -+++ b/common/tests/Makefile.am -@@ -15,22 +15,22 @@ ATF_TESTS += alloc_unittest dns_unittest misc_unittest ns_name_unittest - alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c - alloc_unittest_LDADD = $(ATF_LDFLAGS) - alloc_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BIND_LIBS) -+ ../../omapip/libomapi.la $(BIND_LIBS) - - dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c - dns_unittest_LDADD = $(ATF_LDFLAGS) - dns_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BIND_LIBS) -+ ../../omapip/libomapi.la $(BIND_LIBS) - - misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c - misc_unittest_LDADD = $(ATF_LDFLAGS) - misc_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BIND_LIBS) -+ ../../omapip/libomapi.la $(BIND_LIBS) - - ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c - ns_name_unittest_LDADD = $(ATF_LDFLAGS) - ns_name_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a $(BIND_LIBS) -+ ../../omapip/libomapi.la $(BIND_LIBS) - - check: $(ATF_TESTS) - @if test $(top_srcdir) != ${top_builddir}; then \ -diff --git a/configure.ac b/configure.ac -index f594cfa..adc98a8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -47,7 +47,8 @@ AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes") - # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. - AC_USE_SYSTEM_EXTENSIONS - --AC_PROG_RANLIB -+# Use libtool to simplify building of shared libraries -+AC_PROG_LIBTOOL - - AC_PATH_PROG(AR, ar) - AC_SUBST(AR) -diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am -index fa20a78..dd016e4 100644 ---- a/dhcpctl/Makefile.am -+++ b/dhcpctl/Makefile.am -@@ -1,17 +1,17 @@ - BIND_LIBS = @BIND_LIBS@ - - bin_PROGRAMS = omshell --lib_LIBRARIES = libdhcpctl.a -+lib_LTLIBRARIES = libdhcpctl.la - noinst_PROGRAMS = cltest - man_MANS = omshell.1 dhcpctl.3 - EXTRA_DIST = $(man_MANS) - - omshell_SOURCES = omshell.c --omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -+omshell_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND_LIBS) - --libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c -+libdhcpctl_la_SOURCES = dhcpctl.c callback.c remote.c - - cltest_SOURCES = cltest.c --cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND_LIBS) -diff --git a/omapip/Makefile.am b/omapip/Makefile.am -index b0d2680..265bcef 100644 ---- a/omapip/Makefile.am -+++ b/omapip/Makefile.am -@@ -1,9 +1,9 @@ - BIND_LIBS = @BIND_LIBS@ - --lib_LIBRARIES = libomapi.a -+lib_LTLIBRARIES = libomapi.la - noinst_PROGRAMS = svtest - --libomapi_a_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \ -+libomapi_la_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \ - errwarn.c listener.c dispatch.c generic.c support.c \ - handle.c message.c convert.c hash.c auth.c inet_addr.c \ - array.c trace.c toisc.c iscprint.c isclib.c -@@ -12,5 +12,5 @@ man_MANS = omapi.3 - EXTRA_DIST = $(man_MANS) - - svtest_SOURCES = test.c --svtest_LDADD = libomapi.a $(BIND_LIBS) -+svtest_LDADD = libomapi.la $(BIND_LIBS) - -diff --git a/relay/Makefile.am b/relay/Makefile.am -index c9a1cba..316a524 100644 ---- a/relay/Makefile.am -+++ b/relay/Makefile.am -@@ -4,7 +4,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' - - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c --dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -+dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND_LIBS) - man_MANS = dhcrelay.8 - EXTRA_DIST = $(man_MANS) -diff --git a/server/Makefile.am b/server/Makefile.am -index 30cf2b1..f56f310 100644 ---- a/server/Makefile.am -+++ b/server/Makefile.am -@@ -15,8 +15,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ - dhcpv6.c mdb6.c ldap.c ldap_casa.c leasechain.c ldap_krb_helper.c - - dhcpd_CFLAGS = $(LDAP_CFLAGS) --dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a $(BIND_LIBS) $(LDAP_LIBS) -+dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ -+ ../dhcpctl/libdhcpctl.la $(BIND_LIBS) $(LDAP_LIBS) - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 - EXTRA_DIST = $(man_MANS) -diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am -index 771de06..8d8a2c1 100644 ---- a/server/tests/Makefile.am -+++ b/server/tests/Makefile.am -@@ -20,8 +20,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpars.c ../db.c ../class.c \ - ../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c \ - ../ldap.c ../ldap_casa.c ../dhcpd.c ../leasechain.c - --DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ -- $(top_builddir)/dhcpctl/libdhcpctl.a $(BIND_LIBS) -+DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.la \ -+ $(top_builddir)/dhcpctl/libdhcpctl.la $(BIND_LIBS) - - ATF_TESTS = - if HAVE_ATF diff --git a/dhcp-stateless-DUID-LLT.patch b/dhcp-stateless-DUID-LLT.patch deleted file mode 100644 index 72b7b0f..0000000 --- a/dhcp-stateless-DUID-LLT.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up dhcp-4.3.4/client/dhclient.c.stateless-DUID-LLT dhcp-4.3.4/client/dhclient.c ---- dhcp-4.3.4/client/dhclient.c.stateless-DUID-LLT 2016-04-29 13:13:50.467360008 +0200 -+++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:14:53.389375428 +0200 -@@ -1317,6 +1317,9 @@ void run_stateless(int exit_mode, u_int1 - data_string_forget(&default_duid, MDL); - - form_duid(&default_duid, MDL); -+ if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS && -+ duid_type == DUID_LLT) -+ write_duid(&default_duid); - } - - #ifdef DHCP4o6 diff --git a/dhcp.spec b/dhcp.spec index 0ea0ef2..b56dd25 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,8 +15,8 @@ Summary: Dynamic host configuration protocol software Name: dhcp -Version: 4.3.6 -Release: 32%{?dist} +Version: 4.4.1 +Release: 3%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -34,52 +34,27 @@ Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service -Patch0: dhcp-remove-bind.patch - -Patch2: dhcp-sharedlib.patch -Patch3: dhcp-errwarn-message.patch -Patch4: dhcp-dhclient-options.patch -Patch5: dhcp-release-by-ifup.patch -Patch6: dhcp-dhclient-decline-backoff.patch -Patch7: dhcp-unicast-bootp.patch -Patch8: dhcp-default-requested-options.patch - -Patch10: dhcp-manpages.patch -Patch11: dhcp-paths.patch -Patch12: dhcp-CLOEXEC.patch -Patch13: dhcp-garbage-chars.patch -Patch14: dhcp-add_timeout_when_NULL.patch -Patch15: dhcp-64_bit_lease_parse.patch -Patch16: dhcp-capability.patch - -Patch18: dhcp-sendDecline.patch -Patch19: dhcp-rfc3442-classless-static-routes.patch -Patch20: dhcp-honor-expired.patch -Patch21: dhcp-PPP.patch - -Patch23: dhcp-lpf-ib.patch -Patch24: dhcp-IPoIB-log-id.patch -Patch25: dhcp-improved-xid.patch -#Patch26: dhcp-gpxe-cid.patch -Patch26: dhcp-duidv4.patch -Patch27: dhcp-duid_uuid.patch -#Patch28: dhcp-systemtap.patch - -Patch31: dhcp-client-request-release-bind-iface.patch -Patch33: dhcp-no-subnet-error2info.patch -Patch34: dhcp-sd_notify.patch - -Patch36: dhcp-option97-pxe-client-id.patch -Patch37: dhcp-stateless-DUID-LLT.patch -Patch38: dhcp-dhclient-preinit6s.patch -Patch39: dhcp-handle_ctx_signals.patch -Patch40: dhcp-4.3.6-omapi-leak.patch -Patch41: dhcp-4.3.6-isc-util.patch -Patch42: dhcp-4.3.6-options_overflow.patch -Patch43: dhcp-4.3.6-reference_count_overflow.patch -Patch44: dhcp-iface_hwaddr_discovery.patch -Patch45: dhcp-noreplay.patch -Patch46: dhcp-4.3.6-bind-9.11.5.patch +Patch1: 0001-change-bug-url.patch +Patch2: 0002-additional-dhclient-options.patch +Patch3: 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch +Patch4: 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch +Patch5: 0005-Change-default-requested-options.patch +Patch6: 0006-Various-man-page-only-fixes.patch +Patch7: 0007-Change-paths-to-conform-to-our-standards.patch +Patch8: 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch +Patch9: 0009-Fix-garbage-in-format-string-error.patch +Patch10: 0010-Handle-null-timeout.patch +Patch11: 0011-Drop-unnecessary-capabilities.patch +Patch12: 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch +Patch13: 0013-DHCPv6-over-PPP-support-626514.patch +Patch14: 0014-IPoIB-support-660681.patch +Patch15: 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch +Patch16: 0016-Turn-on-creating-sending-of-DUID.patch +Patch17: 0017-Send-unicast-request-release-via-correct-interface.patch +Patch18: 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch +Patch19: 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch +Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch +Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch BuildRequires: autoconf BuildRequires: automake @@ -89,7 +64,6 @@ BuildRequires: openldap-devel BuildRequires: krb5-devel BuildRequires: libcap-ng-devel # https://fedorahosted.org/fpc/ticket/502#comment:3 -BuildRequires: bind-export-devel BuildRequires: systemd systemd-devel # dhcp-sd_notify.patch BuildRequires: pkgconfig(libsystemd) @@ -191,10 +165,13 @@ easier to administer a large network. This package provides common files used by dhcp and dhclient package. -%package libs +%package libs-static Summary: Shared libraries used by ISC dhcp client and server +Provides: %{name}-libs%{?_isa} +Provides: bundled(bind-export-libs) +Provides: bundled(bind-libs) -%description libs +%description libs-static This package contains shared libraries used by ISC dhcp client and server @@ -219,146 +196,8 @@ This package contains doxygen-generated documentation. %endif %prep -%setup -q -n dhcp-%{DHCPVERSION} +%autosetup -p1 -n dhcp-%{DHCPVERSION} -# Remove bundled BIND source -rm bind/bind.tar.gz - -# Fire away bundled BIND source. -%patch0 -p1 -b .remove-bind %{?_rawbuild} - -#Build dhcp's libraries as shared libs instead of static libs. -%patch2 -p1 -b .sharedlib - -# Replace the standard ISC warning message about requesting help with an -# explanation that this is a patched build of ISC DHCP and bugs should be -# reported through bugzilla.redhat.com -%patch3 -p1 -b .errwarn - -# Add more dhclient options (-I, -B, -H, -F, -timeout, -V, and -R) -%patch4 -p1 -b .options - -# Handle releasing interfaces requested by /sbin/ifup -# pid file is assumed to be /var/run/dhclient-$interface.pid -%patch5 -p1 -b .ifup - -# If we receive a DHCP offer in dhclient and it's DECLINEd in dhclient-script, -# backoff for an amount of time before trying again -%patch6 -p1 -b .backoff - -# Support unicast BOOTP for IBM pSeries systems (and maybe others) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19146]) -%patch7 -p1 -b .unicast - -# Add NIS domain, NIS servers, NTP servers, interface-mtu and domain-search -# to the list of default requested DHCP options -%patch8 -p1 -b .requested - - -# Various man-page-only fixes -%patch10 -p1 -b .man - -# Change paths to conform to our standards -%patch11 -p1 -b .paths - -# Make sure all open file descriptors are closed-on-exec for SELinux (#446632) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19148]) -%patch12 -p1 -b .cloexec - -# Fix 'garbage in format string' error (#450042) -%patch13 -p1 -b .garbage - -# Handle cases in add_timeout() where the function is called with a NULL -# value for the 'when' parameter -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19867]) -%patch14 -p1 -b .dracut - -# Ensure 64-bit platforms parse lease file dates & times correctly (#448615, #628258) -# (Partly submitted to dhcp-bugs@isc.org - [ISC-Bugs #22033]) -%patch15 -p1 -b .64-bit_lease_parse - -# Drop unnecessary capabilities in -# dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) -%patch16 -p1 -b .capability - -# If any of the bound addresses are found to be in use on the link, -# the dhcpv6 client sends a Decline message to the server -# as described in section 18.1.7 of RFC-3315 (#559147) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21237]) -%patch18 -p1 -b .sendDecline - -# RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572]) -%patch19 -p1 -b .rfc3442 - -# check whether there is any unexpired address in previous lease -# prior to confirming (INIT-REBOOT) the lease (#585418) -# (Submitted to dhcp-suggest@isc.org - [ISC-Bugs #22675]) -%patch20 -p1 -b .honor-expired - -# DHCPv6 over PPP support (#626514) -%patch21 -p1 -b .PPP - -# IPoIB support (#660681) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249]) -%patch23 -p1 -b .lpf-ib -# add GUID/DUID to dhcpd logs (#1064416) -%patch24 -p1 -b .IPoIB-log-id -%patch25 -p1 -b .improved-xid - -# create client identifier per rfc4390 -#%%patch26 -p1 -b .gpxe-cid (not needed as we use DUIDs - see next patch) -# Turn on creating/sending of DUID as client identifier with DHCPv4 clients (#560361c#40, rfc4361) -%patch26 -p1 -b .duidv4 -# Implement DUID-UUID (RFC 6355) and make it default DUID type (#560361#60) -%patch27 -p1 -b .duid_uuid - -# http://sourceware.org/systemtap/wiki/SystemTap -#%%patch28 -p1 -b .systemtap - -# send unicast request/release via correct interface (#800561, #1177351) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544]) -%patch31 -p1 -b .bind-iface - - -# 'No subnet declaration for ' should be info, not error. -%patch33 -p1 -b .error2info - -# support for sending startup notification to systemd (#1077666) -%patch34 -p1 -b .sd_notify - -# option 97 - pxe-client-id (#1058674) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38110]) -%patch36 -p1 -b .option97 - -# dhclient: write DUID_LLT even in stateless mode (#1156356) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144]) -%patch37 -p1 -b .stateless-DUID-LLT - -# dhclient: make sure link-local address is ready in stateless mode (#1263466) -%patch38 -p1 -b .preinit6s - -# add signal handlers for proper work with share context -%patch39 -p1 -b .signals - -# close omapi socker descriptions properly -# https://bugzilla.redhat.com/1523547 -%patch40 -p1 -b .omapi-leak - -# include isc/util.h explicitly, is it no longer contained in used headers -%patch41 -p1 -b .isc-util - -## https://bugzilla.redhat.com/show_bug.cgi?id=1550246 -%patch42 -p1 -b .options-cve -%patch43 -p1 -b .refcount-cve - -# ISC-Bugs #47353 -# https://bugzilla.redhat.com/1163379 -%patch44 -p1 -b .xid-hwaddr - -#ISC Bugs #48110 -%patch45 -p1 -b .noreplay -%patch46 -p1 -b .bind # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 @@ -398,11 +237,9 @@ CFLAGS="%{optflags} -fno-strict-aliasing" \ --with-cli-pid-file=%{_localstatedir}/run/dhclient.pid \ --with-cli6-pid-file=%{_localstatedir}/run/dhclient6.pid \ --with-relay-pid-file=%{_localstatedir}/run/dhcrelay.pid \ - --with-libbind=/usr/bin/isc-export-config.sh \ --with-ldap \ --with-ldapcrypto \ --with-ldap-gssapi \ - --disable-static \ --enable-log-pid \ %if %{sdt} --enable-systemtap \ @@ -411,10 +248,11 @@ CFLAGS="%{optflags} -fno-strict-aliasing" \ --enable-paranoia --enable-early-chroot \ --enable-binary-leases \ --with-systemd -make %{?_smp_mflags} +make -j1 + %if ! 0%{?_module_build} pushd doc -make %{?_smp_mflags} devel +make -j1 devel popd %endif @@ -437,7 +275,7 @@ mkdir -p %{buildroot}%{dhcpconfdir}/dhclient.d # NetworkManager dispatcher script mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d install -p -m 0755 %{SOURCE3} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d -install -p -m 0755 %{SOURCE4} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d +install -p -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient @@ -523,8 +361,6 @@ install -D -p -m 0644 contrib/ldap/dhcp.schema %{buildroot}%{_sysconfdir}/openld # Don't package libtool *.la files find %{buildroot} -type f -name "*.la" -delete -print -rm %{buildroot}%{_includedir}/isc-dhcp/dst.h - %pre server # /usr/share/doc/setup/uidgid %global gid_uid 177 @@ -582,7 +418,6 @@ exit 0 # Package upgrade, not uninstall %systemd_postun_with_restart dhcrelay.service -%ldconfig_scriptlets libs %triggerun -- dhcp # convert DHC*ARGS from /etc/sysconfig/dhc* to /etc/systemd/system/dhc*.service @@ -665,16 +500,14 @@ done %attr(0644,root,root) %{_mandir}/man5/dhcp-options.5.gz %attr(0644,root,root) %{_mandir}/man5/dhcp-eval.5.gz -%files libs -%{_libdir}/libdhcpctl.so.* -%{_libdir}/libomapi.so.* +%files libs-static +%{_libdir}/libdhcp*.a +%{_libdir}/libomapi.a %files devel %doc doc/IANA-arp-parameters doc/api+protocol %{_includedir}/dhcpctl %{_includedir}/omapip -%{_libdir}/libdhcpctl.so -%{_libdir}/libomapi.so %attr(0644,root,root) %{_mandir}/man3/dhcpctl.3.gz %attr(0644,root,root) %{_mandir}/man3/omapi.3.gz @@ -684,17 +517,11 @@ done %endif %changelog -* Thu Jan 31 2019 Fedora Release Engineering - 12:4.3.6-32 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jan 29 2019 Kalev Lember - 12:4.3.6-31 -- Rebuild once more now that BIND 9.11.5 is in the build root - -* Tue Nov 06 2018 Petr Menšík - 12:4.3.6-30 -- Compile on BIND 9.11.5 +* Thu Feb 28 2019 Pavel Zhukov - 12:4.4.1-3 +- New version 4.4.1 * Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-29 -- Resolves: 1632246 - Do not fail if iface has no hwaddr +- Resolves: 1632246 - Do not fail if iface has no hwaddr * Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 - Do not try to map leases file in memory if not in replay mode @@ -1204,14 +1031,14 @@ done * Fri Aug 24 2012 Tomas Hozza - 12:4.2.4-14.P1 - SystemD unit files don't use Environment files any more (#850558) -- NetworkManager dispatcher script doesn't use DHCPDARGS any more +- NetworkManager dispatcher script doesn't use DHCPDARGS any more * Wed Aug 22 2012 Tomas Hozza - 12:4.2.4-13.P1 - fixed SPEC file so it comply with new systemd-rpm macros guidelines (#850089) * Mon Aug 20 2012 Tomas Hozza - 12:4.2.4-12.P1 - dhclient-script: fixed CONFIG variable value passed to need_config (#848858) -- dhclient-script: calling dhclient-up-hooks after setting up route, gateways +- dhclient-script: calling dhclient-up-hooks after setting up route, gateways & interface alias (#848869) * Fri Aug 17 2012 Jiri Popelka - 12:4.2.4-11.P1 @@ -1224,7 +1051,7 @@ done - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-8.P1 -- Dhclient does not correctly parse zero-length options in +- Dhclient does not correctly parse zero-length options in dhclient6.leases (#633318) * Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-7.P1 @@ -2272,7 +2099,7 @@ done - add a '-R ' dhclient argument * Fri May 26 2006 Jason Vas Dias - 12:3.0.4-8.1 -- fix a libdhcp4client memory leak (1 strdup) and +- fix a libdhcp4client memory leak (1 strdup) and fill in client->packet.siaddr before bind_lease() for pump nextServer option. @@ -2283,12 +2110,12 @@ done - Enable libdhcp4client build * Tue May 16 2006 Jason Vas Dias - 12:3.0.4-2 -- Fix bug 191470: prevent dhcpd writing 8 byte dhcp-lease-time +- Fix bug 191470: prevent dhcpd writing 8 byte dhcp-lease-time option in packets on 64-bit platforms * Sun May 14 2006 Jason Vas Dias - 12:3.0.4-2 -- Add the libdhcp4client library package for use by the new libdhcp - package, which enables dhclient to be invoked by programs in a +- Add the libdhcp4client library package for use by the new libdhcp + package, which enables dhclient to be invoked by programs in a single process from the library. The normal dhclient code is unmodified by this. @@ -2328,8 +2155,8 @@ done binaries are in /bin rather than /usr/bin * Mon Jan 16 2006 Jason Vas Dias - 11:3.0.3-20 -- fix bug 177845: allow client ip-address as default router -- fix bug 176615: fix DDNS update when Windows-NT client sends +- fix bug 177845: allow client ip-address as default router +- fix bug 176615: fix DDNS update when Windows-NT client sends host-name with trailing nul * Tue Dec 20 2005 Jason Vas Dias - 11:3.0.3-18 @@ -2342,7 +2169,7 @@ done - fix gcc 4.1 compile warnings (-Werror) * Fri Nov 18 2005 Jason Vas Dias - 11:3.0.3-12 -- fix bug 173619: dhclient-script should reconfig on RENEW if +- fix bug 173619: dhclient-script should reconfig on RENEW if subnet-mask, broadcast-address, mtu, routers, etc. have changed - apply upstream improvements to trailing nul options fix of bug 160655 @@ -2357,13 +2184,13 @@ done * Tue Oct 18 2005 Jason Vas Dias - 11:3.0.3-10 - Allow dhclient route metrics to be specified with DHCP options: The dhcp-options(5) man-page states: - 'option routers ... Routers should be listed in order of preference' + 'option routers ... Routers should be listed in order of preference' and 'option static-routes ... are listed in descending order of priority' . No preference / priority could be set with previous dhclient-script . - Now, dhclient-script provides: + Now, dhclient-script provides: Default Gateway (option 'routers') metrics: - Instead of allowing only one default gateway, if more than one router + Instead of allowing only one default gateway, if more than one router is specified in the routers option, routers following the first router will have a 'metric' of their position in the list (1,...N>1). Option static-routes metrics: @@ -2381,7 +2208,7 @@ done - fix bug 169164: separate /var/lib/{dhcpd,dhclient} directories - fix bug 167292: update failover port info in dhcpd.conf.5; give failover ports default values in server/confpars.c - + * Mon Sep 12 2005 Jason Vas Dias - 11:3.0.3-6 - fix bug 167273: time-offset should not set timezone by default tzdata's Etc/* files are named with reverse sign @@ -2404,17 +2231,17 @@ done - don't explicitly require 2.2 era kernel, it's fairly overkill at this point * Fri Jul 29 2005 Jason Vas Dias 11:3.0.3-1 -- Upgrade to upstream version 3.0.3 +- Upgrade to upstream version 3.0.3 - Don't apply the 'default boot file server' patch: legacy dhcp behaviour broke RFC 2131, which requires that the siaddr field only be non-zero if the next-server or tftp-server-name options are specified. - Try removing the 1-5 second wait on dhclient startup altogether. - fix bug 163367: supply default configuration file for dhcpd - + * Thu Jul 14 2005 Jason Vas Dias 10:3.0.3rc1-1 - Upgrade to upstream version 3.0.3rc1 -- fix bug 163203: silence ISC blurb on configtest +- fix bug 163203: silence ISC blurb on configtest - fix default 'boot file server' value (packet->siaddr): In dhcp-3.0.2(-), this was defaulted to the server address; now it defaults to 0.0.0.0 (a rather silly default!) and @@ -2443,17 +2270,17 @@ done - this is now corrected. * Mon Apr 25 2005 Jason Vas Dias 10:3.0.2-10 -- dhclient-script dhcdbd extensions. +- dhclient-script dhcdbd extensions. - Tested to have no effect unless dhcdbd invokes dhclient. * Thu Apr 21 2005 Jason Vas Dias 10:3.0.2-9 -- bugs 153244 & 155143 are now fixed with SELinux policy; +- bugs 153244 & 155143 are now fixed with SELinux policy; autotrans now works for dhcpc_t, so restorecons are not required, and dhclient runs OK under dhcpc_t with SELinux enforcing. - fix bug 155506: 'predhclien' typo (emacs!). * Mon Apr 18 2005 Jason Vas Dias 10:3.0.2-8 -- Fix bugs 153244 & 155143: +- Fix bugs 153244 & 155143: o restore dhclient-script 'restorecon's o give dhclient and dhclient-script an exec context of 'system_u:object_r:sbin_t' that allows them to run @@ -2468,7 +2295,7 @@ done - about user or vendor defined option space options to environment. - - fix bug 153244: dhclient should not use restorecon -- fix bug 151023: dhclient no 'headers & libraries' +- fix bug 151023: dhclient no 'headers & libraries' - fix bug 149780: add 'DHCLIENT_IGNORE_GATEWAY' variable - remove all usage of /sbin/route from dhclient-script @@ -2550,7 +2377,7 @@ done - clean-up last patch: new-host.patch adds host_reference(host) - without host_dereference(host) before returns in ack_lease - (dhcp-3.0.1-host_dereference.patch) - + * Mon Sep 27 2004 Jason Vas Dias 7:3.0.1-9 - Fix bug 133522: - PXE Boot clients with static leases not given 'file' option @@ -2562,7 +2389,7 @@ done - If "deny booting" is defined for some group of hosts, - then after one of those hosts is denied booting, all - hosts are denied booting, because of a pointer not being -- cleared in the lease record. +- cleared in the lease record. - An upstream patch was obtained which will be in dhcp-3.0.2. * Mon Aug 16 2004 Jason Vas Dias 7:3.0.1-7 @@ -2894,7 +2721,7 @@ done * Mon Apr 05 1999 Cristian Gafton - copy the source file in prep, not move -* Sun Mar 21 1999 Cristian Gafton +* Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 4) * Mon Jan 11 1999 Erik Troan diff --git a/sources b/sources index 660a78d..8c2a355 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dhcp-4.3.6.tar.gz) = de4962dc2aa174df17a3a1456719a777a42d238c3d6ad1771ccc460fa70c9e9cefcce52c7437f7acde61b9c3a2e84e9d49fd2dc33c7e9243053ceed5b247be03 +SHA512 (dhcp-4.4.1.tar.gz) = 684ae349f224918c9f8cec7bd6c55cd0b83ad2b5827375b2876ca088eb05b7ff1364e50f6dc24f2485c610d9be94d4ba3020f60a0fa0ef63962349d191b887e7 From b7088d6e78955a7a86a0f6b56599d74d03e37b3b Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 13 Mar 2019 12:58:56 +0100 Subject: [PATCH 11/81] Do not require static libs --- dhcp.spec | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index b56dd25..d7a27da 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -12,11 +12,10 @@ #global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} - Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 3%{?dist} +Release: 5%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -87,7 +86,6 @@ DHCP (Dynamic Host Configuration Protocol) %package server Summary: Provides the ISC DHCP server Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires(pre): shadow-utils Requires(post): coreutils grep sed Requires(post): systemd @@ -106,7 +104,6 @@ This package provides the ISC DHCP server. %package relay Summary: Provides the ISC DHCP relay agent Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires(post): grep sed Requires(post): systemd Requires(preun): systemd @@ -141,7 +138,6 @@ Obsoletes: dhclient < %{epoch}:%{version}-%{release} # dhclient-script requires: Requires: coreutils gawk grep ipcalc iproute iputils sed systemd Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} %description client DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -169,7 +165,7 @@ This package provides common files used by dhcp and dhclient package. Summary: Shared libraries used by ISC dhcp client and server Provides: %{name}-libs%{?_isa} Provides: bundled(bind-export-libs) -Provides: bundled(bind-libs) +Provides: bundled(bind) %description libs-static This package contains shared libraries used by ISC dhcp client and server @@ -198,12 +194,6 @@ This package contains doxygen-generated documentation. %prep %autosetup -p1 -n dhcp-%{DHCPVERSION} - - -# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 -# https://bugzilla.gnome.org/show_bug.cgi?id=656610 -sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h - # Update paths in all man pages for page in client/dhclient.conf.5 client/dhclient.leases.5 \ client/dhclient-script.8 client/dhclient.8 ; do @@ -222,6 +212,8 @@ done sed -i -e 's|/var/db/|%{_localstatedir}/lib/dhcpd/|g' contrib/dhcp-lease-list.pl +## FIXME drop unused bind components + %build #libtoolize --copy --force autoreconf --verbose --force --install @@ -517,6 +509,9 @@ done %endif %changelog +* Wed Mar 13 2019 Pavel Zhukov - 12:4.4.1-5 +- Do not require static libs for non devel installations + * Thu Feb 28 2019 Pavel Zhukov - 12:4.4.1-3 - New version 4.4.1 From e1b36493aceab6c631ba2e2a67b461b26194cc62 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 18 Mar 2019 10:34:38 +0100 Subject: [PATCH 12/81] Obsolete dhcp libs --- dhcp.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index d7a27da..262b19c 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 5%{?dist} +Release: 6%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -55,6 +55,8 @@ Patch19: 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch +Obsoletes: dhcp-libs < 4.4 + BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool @@ -509,6 +511,9 @@ done %endif %changelog +* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-6 +- Obsolete dhcp-libs + * Wed Mar 13 2019 Pavel Zhukov - 12:4.4.1-5 - Do not require static libs for non devel installations From 5f0e7106e01683beede83bc995a98e7e34999f1c Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 18 Mar 2019 11:37:19 +0100 Subject: [PATCH 13/81] Specific NVR of libs provided --- dhcp.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 262b19c..b7ca5ff 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 6%{?dist} +Release: 7%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -165,7 +165,7 @@ This package provides common files used by dhcp and dhclient package. %package libs-static Summary: Shared libraries used by ISC dhcp client and server -Provides: %{name}-libs%{?_isa} +Provides: %{name}-libs = %{epoch}:%{version}-%{release} Provides: bundled(bind-export-libs) Provides: bundled(bind) @@ -511,6 +511,9 @@ done %endif %changelog +* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-7 +- Provides specific version of libs + * Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-6 - Obsolete dhcp-libs From 16ffa6d5b238bc0437919e2b5e4d381900692c8a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 27 Mar 2019 10:03:09 +0100 Subject: [PATCH 14/81] readd sd_notify patch --- ...fy-patch-for-systemd-support-1687040.patch | 97 +++++++++++++++++++ dhcp.spec | 6 +- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch diff --git a/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch b/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch new file mode 100644 index 0000000..2c9f46b --- /dev/null +++ b/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch @@ -0,0 +1,97 @@ +From 5c6204bab7279050b78b3d03d1211e9d13d3fd71 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Wed, 27 Mar 2019 09:59:20 +0100 +Subject: [PATCH] Backport sd-notify patch for systemd support (#1687040) +Cc: pzhukov@redhat.com + +--- + configure.ac | 11 +++++++++++ + relay/dhcrelay.c | 12 ++++++++++++ + server/dhcpd.c | 12 ++++++++++++ + 3 files changed, 35 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 15fc0d7..0c08000 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1014,6 +1014,17 @@ if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; + AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) + fi + ++AC_ARG_WITH(systemd, ++ AC_HELP_STRING([--with-systemd], ++ [enable sending status notifications to systemd daemon (default is no)]), ++ [systemd=$withval], ++ [systemd=no]) ++ ++if test x$systemd = xyes ; then ++ AC_CHECK_LIB(systemd, sd_notifyf, , ++ AC_MSG_FAILURE([*** systemd library not present - do you need to install systemd-libs package?])) ++fi ++ + # Append selected warning levels to CFLAGS before substitution (but after + # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). + CFLAGS="$CFLAGS $STD_CWARNINGS" +diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c +index 7b4f4f1..9eb5bfd 100644 +--- a/relay/dhcrelay.c ++++ b/relay/dhcrelay.c +@@ -37,6 +37,10 @@ + int keep_capabilities = 0; + #endif + ++#ifdef HAVE_LIBSYSTEMD ++#include ++#endif ++ + TIME default_lease_time = 43200; /* 12 hours... */ + TIME max_lease_time = 86400; /* 24 hours... */ + struct tree_cache *global_options[256]; +@@ -845,6 +849,14 @@ main(int argc, char **argv) { + } + #endif + ++#ifdef HAVE_LIBSYSTEMD ++ /* We are ready to process incomming packets. Let's notify systemd */ ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Dispatching packets...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++#endif ++ + /* Start dispatching packets and timeouts... */ + dispatch(); + +diff --git a/server/dhcpd.c b/server/dhcpd.c +index 530a923..e06f6b4 100644 +--- a/server/dhcpd.c ++++ b/server/dhcpd.c +@@ -60,6 +60,10 @@ gid_t set_gid = 0; + struct class unknown_class; + struct class known_class; + ++#ifdef HAVE_LIBSYSTEMD ++#include ++#endif ++ + struct iaddr server_identifier; + int server_identifier_matched; + +@@ -1057,6 +1061,14 @@ main(int argc, char **argv) { + /* Log that we are about to start working */ + log_info("Server starting service."); + ++#ifdef HAVE_LIBSYSTEMD ++ /* We are ready to process incomming packets. Let's notify systemd */ ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Dispatching packets...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++#endif ++ + /* + * Receive packets and dispatch them... + * dispatch() will never return. +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index b7ca5ff..d95c455 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 7%{?dist} +Release: 8%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -54,6 +54,7 @@ Patch18: 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch Patch19: 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch +Patch22: 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch Obsoletes: dhcp-libs < 4.4 @@ -511,6 +512,9 @@ done %endif %changelog +* Wed Mar 27 2019 Pavel Zhukov - 12:4.4.1-8 +- Add sd_notify patch to support systemd notify (1687040) + * Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-7 - Provides specific version of libs From 0e7c24307884883deddf22fa00a148851f5f49b9 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 2 Apr 2019 13:38:22 +0200 Subject: [PATCH 15/81] Finally move obsolete into common section --- dhcp.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index d95c455..3d3ec71 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 8%{?dist} +Release: 9%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -56,7 +56,7 @@ Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch Patch22: 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch -Obsoletes: dhcp-libs < 4.4 + BuildRequires: autoconf BuildRequires: automake @@ -154,6 +154,8 @@ This package provides the ISC DHCP client. %package common Summary: Common files used by ISC dhcp client, server and relay agent BuildArch: noarch +Obsoletes: dhcp-libs < 4.4 + %description common DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -512,6 +514,9 @@ done %endif %changelog +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-9 +- Move obsolete to common section + * Wed Mar 27 2019 Pavel Zhukov - 12:4.4.1-8 - Add sd_notify patch to support systemd notify (1687040) From 3a1ddbf1a8e98f41f66c2457f69d768e9c2b6efc Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 2 Apr 2019 15:46:54 +0200 Subject: [PATCH 16/81] 00b7f9a Specify architecture for provides --- dhcp.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 3d3ec71..788ba23 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 9%{?dist} +Release: 10%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -168,7 +168,7 @@ This package provides common files used by dhcp and dhclient package. %package libs-static Summary: Shared libraries used by ISC dhcp client and server -Provides: %{name}-libs = %{epoch}:%{version}-%{release} +Provides: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Provides: bundled(bind-export-libs) Provides: bundled(bind) @@ -514,6 +514,9 @@ done %endif %changelog +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-10 +- Cherry-pick 00b7f9a Specify architecture for provides - + * Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-9 - Move obsolete to common section From 7e91f4486a3b168e15f3ce3412543bf877e56347 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 2 Apr 2019 17:48:44 +0200 Subject: [PATCH 17/81] Specify epoch for obsolete --- dhcp.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 788ba23..f6e8303 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 10%{?dist} +Release: 11%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -154,7 +154,8 @@ This package provides the ISC DHCP client. %package common Summary: Common files used by ISC dhcp client, server and relay agent BuildArch: noarch -Obsoletes: dhcp-libs < 4.4 +Obsoletes: dhcp-libs < %{epoch}:%{version} + %description common @@ -514,6 +515,9 @@ done %endif %changelog +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-11 +- Specify epoch for obsolete + * Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-10 - Cherry-pick 00b7f9a Specify architecture for provides - From 017e4ce84cc2087216f2576eb21b022973c5f9fc Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 30 Apr 2019 14:07:18 +0200 Subject: [PATCH 18/81] Resolves: #1641246 - Do not rely on isc_heap_delete bug --- dhcp-isc_heap_delete.patch | 164 +++++++++++++++++++++++++++++++++++++ dhcp.spec | 10 ++- 2 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 dhcp-isc_heap_delete.patch diff --git a/dhcp-isc_heap_delete.patch b/dhcp-isc_heap_delete.patch new file mode 100644 index 0000000..3bf1b2b --- /dev/null +++ b/dhcp-isc_heap_delete.patch @@ -0,0 +1,164 @@ +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index aac2c108..c83dc9a6 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -1622,8 +1622,9 @@ struct iasubopt { + */ + #define EXPIRED_IPV6_CLEANUP_TIME (60*60) + +- int heap_index; /* index into heap, or -1 +- (internal use only) */ ++ /* index into heaps, or -1 (internal use only) */ ++ int active_index; ++ int inactive_index; + + /* + * A pointer to the state of the ddns update for this lease. +diff --git a/server/mdb6.c b/server/mdb6.c +index 1a728eb3..418ff606 100644 +--- a/server/mdb6.c ++++ b/server/mdb6.c +@@ -216,7 +216,8 @@ iasubopt_allocate(struct iasubopt **iasubopt, const char *file, int line) { + + tmp->refcnt = 1; + tmp->state = FTS_FREE; +- tmp->heap_index = -1; ++ tmp->active_index = -1; ++ tmp->inactive_index = -1; + tmp->plen = 255; + + *iasubopt = tmp; +@@ -604,10 +605,14 @@ lease_older(void *a, void *b) { + * Callback when an address's position in the heap changes. + */ + static void +-lease_index_changed(void *iasubopt, unsigned int new_heap_index) { +- ((struct iasubopt *)iasubopt)-> heap_index = new_heap_index; ++active_changed(void *iasubopt, unsigned int new_heap_index) { ++ ((struct iasubopt *)iasubopt)-> active_index = new_heap_index; + } + ++static void ++inactive_changed(void *iasubopt, unsigned int new_heap_index) { ++ ((struct iasubopt *)iasubopt)-> inactive_index = new_heap_index; ++} + + /*! + * +@@ -660,13 +665,13 @@ ipv6_pool_allocate(struct ipv6_pool **pool, u_int16_t type, + dfree(tmp, file, line); + return ISC_R_NOMEMORY; + } +- if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, lease_index_changed, ++ if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, active_changed, + 0, &(tmp->active_timeouts)) != ISC_R_SUCCESS) { + iasubopt_free_hash_table(&(tmp->leases), file, line); + dfree(tmp, file, line); + return ISC_R_NOMEMORY; + } +- if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, lease_index_changed, ++ if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, inactive_changed, + 0, &(tmp->inactive_timeouts)) != ISC_R_SUCCESS) { + isc_heap_destroy(&(tmp->active_timeouts)); + iasubopt_free_hash_table(&(tmp->leases), file, line); +@@ -1361,7 +1366,7 @@ cleanup_lease6(ia_hash_t *ia_table, + * Remove the old lease from the active heap and from the hash table + * then remove the lease from the IA and clean up the IA if necessary. + */ +- isc_heap_delete(pool->active_timeouts, test_iasubopt->heap_index); ++ isc_heap_delete(pool->active_timeouts, test_iasubopt->active_index); + pool->num_active--; + if (pool->ipv6_pond) + pool->ipv6_pond->num_active--; +@@ -1434,7 +1439,7 @@ add_lease6(struct ipv6_pool *pool, struct iasubopt *lease, + if ((test_iasubopt->state == FTS_ACTIVE) || + (test_iasubopt->state == FTS_ABANDONED)) { + isc_heap_delete(pool->active_timeouts, +- test_iasubopt->heap_index); ++ test_iasubopt->active_index); + pool->num_active--; + if (pool->ipv6_pond) + pool->ipv6_pond->num_active--; +@@ -1446,7 +1451,7 @@ add_lease6(struct ipv6_pool *pool, struct iasubopt *lease, + } + } else { + isc_heap_delete(pool->inactive_timeouts, +- test_iasubopt->heap_index); ++ test_iasubopt->inactive_index); + pool->num_inactive--; + } + +@@ -1567,14 +1572,13 @@ lease6_usable(struct iasubopt *lease) { + static isc_result_t + move_lease_to_active(struct ipv6_pool *pool, struct iasubopt *lease) { + isc_result_t insert_result; +- int old_heap_index; + +- old_heap_index = lease->heap_index; + insert_result = isc_heap_insert(pool->active_timeouts, lease); + if (insert_result == ISC_R_SUCCESS) { + iasubopt_hash_add(pool->leases, &lease->addr, + sizeof(lease->addr), lease, MDL); +- isc_heap_delete(pool->inactive_timeouts, old_heap_index); ++ isc_heap_delete(pool->inactive_timeouts, ++ lease->inactive_index); + pool->num_active++; + pool->num_inactive--; + lease->state = FTS_ACTIVE; +@@ -1624,16 +1628,16 @@ renew_lease6(struct ipv6_pool *pool, struct iasubopt *lease) { + if (lease->state == FTS_ACTIVE) { + if (old_end_time <= lease->hard_lifetime_end_time) { + isc_heap_decreased(pool->active_timeouts, +- lease->heap_index); ++ lease->active_index); + } else { + isc_heap_increased(pool->active_timeouts, +- lease->heap_index); ++ lease->active_index); + } + return ISC_R_SUCCESS; + } else if (lease->state == FTS_ABANDONED) { + char tmp_addr[INET6_ADDRSTRLEN]; + lease->state = FTS_ACTIVE; +- isc_heap_increased(pool->active_timeouts, lease->heap_index); ++ isc_heap_increased(pool->active_timeouts, lease->active_index); + log_info("Reclaiming previously abandoned address %s", + inet_ntop(AF_INET6, &(lease->addr), tmp_addr, + sizeof(tmp_addr))); +@@ -1655,9 +1659,7 @@ static isc_result_t + move_lease_to_inactive(struct ipv6_pool *pool, struct iasubopt *lease, + binding_state_t state) { + isc_result_t insert_result; +- int old_heap_index; + +- old_heap_index = lease->heap_index; + insert_result = isc_heap_insert(pool->inactive_timeouts, lease); + if (insert_result == ISC_R_SUCCESS) { + /* +@@ -1708,7 +1710,7 @@ move_lease_to_inactive(struct ipv6_pool *pool, struct iasubopt *lease, + + iasubopt_hash_delete(pool->leases, + &lease->addr, sizeof(lease->addr), MDL); +- isc_heap_delete(pool->active_timeouts, old_heap_index); ++ isc_heap_delete(pool->active_timeouts, lease->active_index); + lease->state = state; + pool->num_active--; + pool->num_inactive++; +@@ -1786,7 +1788,7 @@ decline_lease6(struct ipv6_pool *pool, struct iasubopt *lease) { + pool->ipv6_pond->num_abandoned++; + + lease->hard_lifetime_end_time = MAX_TIME; +- isc_heap_decreased(pool->active_timeouts, lease->heap_index); ++ isc_heap_decreased(pool->active_timeouts, lease->active_index); + return ISC_R_SUCCESS; + } + +@@ -2059,7 +2061,7 @@ cleanup_old_expired(struct ipv6_pool *pool) { + break; + } + +- isc_heap_delete(pool->inactive_timeouts, tmp->heap_index); ++ isc_heap_delete(pool->inactive_timeouts, tmp->inactive_index); + pool->num_inactive--; + + if (tmp->ia != NULL) { diff --git a/dhcp.spec b/dhcp.spec index daaa234..c1154e4 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,8 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 29%{?dist} +Release: 30%{?dist} + # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -79,6 +80,7 @@ Patch42: dhcp-4.3.6-options_overflow.patch Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch Patch45: dhcp-4.3.6-bind-9.11.5.patch +Patch46: dhcp-isc_heap_delete.patch BuildRequires: autoconf BuildRequires: automake @@ -358,6 +360,9 @@ rm bind/bind.tar.gz # Build on Bind 9.11.5+ %patch45 -p1 -b .bind +# https://bugs.isc.org/Public/Bug/Display.html?id=46719# +%patch46 -p1 -b .heap + # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h @@ -681,6 +686,9 @@ done %endif %changelog +* Tue Apr 30 2019 Pavel Zhukov - 12:4.3.6-30 +- Resolves: #1641246 - Do not rely on isc_heap_delete bug + * Tue Nov 06 2018 Petr Menšík - 12:4.3.6-29 - Compile on BIND 9.11.5 From 3d764025dec8ec84a586a252f7bda8aa7bc7ecbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 4 May 2019 21:57:17 +0200 Subject: [PATCH 19/81] rebuilt (bind) --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index f6e8303..f529da7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 11%{?dist} +Release: 12%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -515,6 +515,9 @@ done %endif %changelog +* Sat May 04 2019 Björn Esser - 12:4.4.1-12 +- rebuilt (bind) + * Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-11 - Specify epoch for obsolete From 47dc2e81a8b0115ec38ce478e376b02523d7287d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 4 May 2019 22:01:37 +0200 Subject: [PATCH 20/81] rebuilt (bind) --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index c1154e4..d5fe918 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 30%{?dist} +Release: 31%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -686,6 +686,9 @@ done %endif %changelog +* Sat May 04 2019 Björn Esser - 12:4.3.6-31 +- rebuilt (bind) + * Tue Apr 30 2019 Pavel Zhukov - 12:4.3.6-30 - Resolves: #1641246 - Do not rely on isc_heap_delete bug From b90ab3805f9908cb7d33135315e6e8f4807df1dd Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 20 May 2019 15:18:58 +0200 Subject: [PATCH 21/81] Unpack bind before patching --- dhcp.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index f529da7..bfaadd9 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 12%{?dist} +Release: 13%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -170,6 +170,7 @@ This package provides common files used by dhcp and dhclient package. %package libs-static Summary: Shared libraries used by ISC dhcp client and server Provides: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Provides: %{name}-libs = %{epoch}:%{version}-%{release} Provides: bundled(bind-export-libs) Provides: bundled(bind) @@ -198,7 +199,12 @@ This package contains doxygen-generated documentation. %endif %prep -%autosetup -p1 -n dhcp-%{DHCPVERSION} +%setup -n dhcp-%{DHCPVERSION} +pushd bind +tar -xvf bind.tar.gz +ln -s bind-9* bind-sources +popd +%autopatch -p1 # Update paths in all man pages for page in client/dhclient.conf.5 client/dhclient.leases.5 \ @@ -515,6 +521,10 @@ done %endif %changelog +* Mon May 20 2019 Pavel Zhukov - 12:4.4.1-13 +- Unpack bind prior to patching +- Provide noarch libs + * Sat May 04 2019 Björn Esser - 12:4.4.1-12 - rebuilt (bind) From 526575adf508923c1b04e3ba900fb13e6bc888a6 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Fri, 12 Jul 2019 08:42:03 +0200 Subject: [PATCH 22/81] Detect system time change to avoid lease expirity --- 0023-Detect-system-time-jumps.patch | 284 ++++++++++++++++++++++++++++ dhcp.spec | 9 +- 2 files changed, 291 insertions(+), 2 deletions(-) create mode 100644 0023-Detect-system-time-jumps.patch diff --git a/0023-Detect-system-time-jumps.patch b/0023-Detect-system-time-jumps.patch new file mode 100644 index 0000000..1388a64 --- /dev/null +++ b/0023-Detect-system-time-jumps.patch @@ -0,0 +1,284 @@ +From 32a891273f44ee1ca202c65c40beb508d1b2aa80 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 11 Jul 2019 17:43:00 +0200 +Subject: [PATCH] Detect system time jumps +Cc: pzhukov@redhat.com + +In case if system time was changed backward it's possible to have ip +address dropped by the kernel due to lifetime expirity. Try to detect +this situation using either monotonic time or saved timestamp and execute +go_reboot() procedure to request lease extention +--- + bind/bind-9.11.2-P1/lib/isc/include/isc/result.h | 4 +-- + bind/bind-9.11.2-P1/lib/isc/include/isc/util.h | 4 +++ + bind/bind-9.11.2-P1/lib/isc/result.c | 2 ++ + bind/bind-9.11.2-P1/lib/isc/unix/app.c | 41 ++++++++++++++++++++-- + .../bind-9.11.2-P1/lib/isc/unix/include/isc/time.h | 20 +++++++++++ + bind/bind-9.11.2-P1/lib/isc/unix/time.c | 22 ++++++++++++ + client/dhclient.c | 6 ++++ + common/dispatch.c | 11 +++++- + includes/dhcpd.h | 3 +- + server/dhcpd.c | 6 ++++ + 10 files changed, 113 insertions(+), 6 deletions(-) + +diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h +index 6f7ecf2..c7ef53c 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h ++++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h +@@ -81,9 +81,9 @@ + #define ISC_R_UNSET 61 /*%< unset */ + #define ISC_R_MULTIPLE 62 /*%< multiple */ + #define ISC_R_WOULDBLOCK 63 /*%< would block */ +- ++#define ISC_R_TIMESHIFTED 64 /*%< system time changed */ + /*% Not a result code: the number of results. */ +-#define ISC_R_NRESULTS 64 ++#define ISC_R_NRESULTS 66 + + ISC_LANG_BEGINDECLS + +diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h +index f2cda26..9d54396 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h ++++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h +@@ -238,6 +238,10 @@ + * Time + */ + #define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS) ++#ifdef CLOCK_BOOTTIME ++#define TIME_MONOTONIC(tp) RUNTIME_CHECK(isc_time_boottime((tp)) == ISC_R_SUCCESS) ++#endif ++ + + /*% + * Misc. +diff --git a/bind/bind-9.11.2-P1/lib/isc/result.c b/bind/bind-9.11.2-P1/lib/isc/result.c +index 071dac0..e362735 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/result.c ++++ b/bind/bind-9.11.2-P1/lib/isc/result.c +@@ -96,6 +96,7 @@ static const char *description[ISC_R_NRESULTS] = { + "unset", /*%< 61 */ + "multiple", /*%< 62 */ + "would block", /*%< 63 */ ++ "time changed", /*%< 64 */ + }; + + static const char *identifier[ISC_R_NRESULTS] = { +@@ -163,6 +164,7 @@ static const char *identifier[ISC_R_NRESULTS] = { + "ISC_R_UNSET", + "ISC_R_MULTIPLE", + "ISC_R_WOULDBLOCK", ++ "ISC_R_TIMESHIFTED", + }; + + #define ISC_RESULT_RESULTSET 2 +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/app.c b/bind/bind-9.11.2-P1/lib/isc/unix/app.c +index 5546922..7d95ad5 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/app.c ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/app.c +@@ -438,15 +438,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, + static isc_result_t + evloop(isc__appctx_t *ctx) { + isc_result_t result; ++ isc_time_t now; ++#ifdef CLOCK_BOOTTIME ++ isc_time_t monotonic; ++ isc_uint64_t diff = 0; ++#else ++ isc_time_t prev; ++ TIME_NOW(&prev); ++#endif ++ ++ ++ + + while (!ctx->want_shutdown) { + int n; +- isc_time_t when, now; ++ isc_time_t when; ++ + struct timeval tv, *tvp; + isc_socketwait_t *swait; + isc_boolean_t readytasks; + isc_boolean_t call_timer_dispatch = ISC_FALSE; + ++ isc_uint64_t us; ++ ++#ifdef CLOCK_BOOTTIME ++ // TBD macros for following three lines ++ TIME_NOW(&now); ++ TIME_MONOTONIC(&monotonic); ++ INSIST(now.seconds > monotonic.seconds) ++ us = isc_time_microdiff (&now, &monotonic); ++ if (us < diff){ ++ us = diff - us; ++ if (us > 1000000){ // ignoring shifts less than one second ++ return ISC_R_TIMESHIFTED; ++ }; ++ diff = isc_time_microdiff (&now, &monotonic); ++ } else { ++ diff = isc_time_microdiff (&now, &monotonic); ++ // not implemented ++ } ++#else ++ TIME_NOW(&now); ++ if (isc_time_compare (&now, &prev) < 0) ++ return ISC_R_TIMESHIFTED; ++ TIME_NOW(&prev); ++#endif + /* + * Check the reload (or suspend) case first for exiting the + * loop as fast as possible in case: +@@ -471,9 +507,10 @@ evloop(isc__appctx_t *ctx) { + if (result != ISC_R_SUCCESS) + tvp = NULL; + else { +- isc_uint64_t us; ++ + + TIME_NOW(&now); ++ + us = isc_time_microdiff(&when, &now); + if (us == 0) + call_timer_dispatch = ISC_TRUE; +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h +index 939db5d..e798ee6 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h +@@ -127,6 +127,26 @@ isc_time_isepoch(const isc_time_t *t); + *\li 't' is a valid pointer. + */ + ++#ifdef CLOCK_BOOTTIME ++isc_result_t ++isc_time_boottime(isc_time_t *t); ++/*%< ++ * Set 't' to monotonic time from previous boot ++ * it's not affected by system time change. It also ++ * includes the time system was suspended ++ * ++ * Requires: ++ *\li 't' is a valid pointer. ++ * ++ * Returns: ++ * ++ *\li Success ++ *\li Unexpected error ++ * Getting the time from the system failed. ++ */ ++#endif /* CLOCK_BOOTTIME */ ++ ++ + isc_result_t + isc_time_now(isc_time_t *t); + /*%< +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/time.c b/bind/bind-9.11.2-P1/lib/isc/unix/time.c +index 5900846..1197337 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/time.c ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/time.c +@@ -452,3 +452,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { + t->nanoseconds / NS_PER_MS); + } + } ++ ++ ++#ifdef CLOCK_BOOTTIME ++isc_result_t ++isc_time_boottime(isc_time_t *t) { ++ struct timespec ts; ++ ++ char strbuf[ISC_STRERRORSIZE]; ++ ++ if (clock_gettime (CLOCK_BOOTTIME, &ts) != 0){ ++ isc__strerror(errno, strbuf, sizeof(strbuf)); ++ UNEXPECTED_ERROR(__FILE__, __LINE__, "%s", strbuf); ++ return (ISC_R_UNEXPECTED); ++ } ++ ++ t->seconds = ts.tv_sec; ++ t->nanoseconds = ts.tv_nsec; ++ ++ return (ISC_R_SUCCESS); ++ ++}; ++#endif +diff --git a/client/dhclient.c b/client/dhclient.c +index 4e5546a..6085b8e 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -5398,6 +5398,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, + case server_awaken: + state_reboot (client); + break; ++ ++ case server_time_changed: ++ if (client->active){ ++ state_reboot (client); ++ } ++ break; + } + } + } +diff --git a/common/dispatch.c b/common/dispatch.c +index d7fe200..8a24499 100644 +--- a/common/dispatch.c ++++ b/common/dispatch.c +@@ -118,7 +118,6 @@ dispatch(void) + * signal. It will return ISC_R_RELOAD in that + * case. That is a normal behavior. + */ +- + if (status == ISC_R_RELOAD) { + /* + * dhcp_set_control_state() will do the job. +@@ -129,6 +128,16 @@ dispatch(void) + if (status == ISC_R_SUCCESS) + status = ISC_R_RELOAD; + } ++ ++ ++ if (status == ISC_R_TIMESHIFTED){ ++ status = dhcp_set_control_state(server_time_changed, ++ server_time_changed); ++ status = ISC_R_RELOAD; ++ log_info ("System time has been changed. Unable to use existing leases. Restarting"); ++ // do nothing, restart context ++ }; ++ + } while (status == ISC_R_RELOAD); + + log_fatal ("Dispatch routine failed: %s -- exiting", +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index 635c510..ec6c227 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -524,7 +524,8 @@ typedef enum { + server_running = 1, + server_shutdown = 2, + server_hibernate = 3, +- server_awaken = 4 ++ server_awaken = 4, ++ server_time_changed = 5 + } control_object_state_t; + + typedef struct { +diff --git a/server/dhcpd.c b/server/dhcpd.c +index e06f6b4..778ef8d 100644 +--- a/server/dhcpd.c ++++ b/server/dhcpd.c +@@ -1779,6 +1779,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, + { + struct timeval tv; + ++ if (newstate == server_time_changed){ ++ log_error ("System time has been changed. Leases information unreliable!"); ++ return ISC_R_SUCCESS; ++ } ++ ++ + if (newstate != server_shutdown) + return DHCP_R_INVALIDARG; + /* Re-entry. */ +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index bfaadd9..bf0e7a7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 13%{?dist} +Release: 14%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -56,6 +56,8 @@ Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch Patch22: 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch +Patch999: 0023-Detect-system-time-jumps.patch + BuildRequires: autoconf @@ -256,7 +258,7 @@ make -j1 %if ! 0%{?_module_build} pushd doc -make -j1 devel +make %{?_smp_mflags} devel popd %endif @@ -521,6 +523,9 @@ done %endif %changelog +* Thu Jul 11 2019 Pavel Zhukov - 12:4.4.1-14 +- Detect time change and request lease renewal + * Mon May 20 2019 Pavel Zhukov - 12:4.4.1-13 - Unpack bind prior to patching - Provide noarch libs From 6a4f404c4800e1c0e18f56198a1ae0ef1d93fc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Wed, 17 Jul 2019 20:17:45 +0200 Subject: [PATCH 23/81] Rebuilt for bind 9.11.8 --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index d5fe918..ad7e108 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 31%{?dist} +Release: 32%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -686,6 +686,9 @@ done %endif %changelog +* Wed Jul 17 2019 Petr Menšík - 12:4.3.6-32 +- Rebuilt for bind 9.11.8 + * Sat May 04 2019 Björn Esser - 12:4.3.6-31 - rebuilt (bind) From 46009ca7f8fdb7e531c00dc1e8025e0ae12413c9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 21:55:43 +0000 Subject: [PATCH 24/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index bf0e7a7..bb0d2e7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 14%{?dist} +Release: 15%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -523,6 +523,9 @@ done %endif %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 12:4.4.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Thu Jul 11 2019 Pavel Zhukov - 12:4.4.1-14 - Detect time change and request lease renewal From ae914ba174170271552fd4a9da88cbb1944a1726 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 25 Jul 2019 12:54:23 +0200 Subject: [PATCH 25/81] Split patch to bind related part and dhcp one --- 0023-Detect-system-time-jumps.patch | 204 ----------------------- 0024-bind-Detect-system-time-jumps.patch | 181 ++++++++++++++++++++ dhcp.spec | 8 +- 3 files changed, 187 insertions(+), 206 deletions(-) create mode 100644 0024-bind-Detect-system-time-jumps.patch diff --git a/0023-Detect-system-time-jumps.patch b/0023-Detect-system-time-jumps.patch index 1388a64..24eae19 100644 --- a/0023-Detect-system-time-jumps.patch +++ b/0023-Detect-system-time-jumps.patch @@ -1,207 +1,3 @@ -From 32a891273f44ee1ca202c65c40beb508d1b2aa80 Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Thu, 11 Jul 2019 17:43:00 +0200 -Subject: [PATCH] Detect system time jumps -Cc: pzhukov@redhat.com - -In case if system time was changed backward it's possible to have ip -address dropped by the kernel due to lifetime expirity. Try to detect -this situation using either monotonic time or saved timestamp and execute -go_reboot() procedure to request lease extention ---- - bind/bind-9.11.2-P1/lib/isc/include/isc/result.h | 4 +-- - bind/bind-9.11.2-P1/lib/isc/include/isc/util.h | 4 +++ - bind/bind-9.11.2-P1/lib/isc/result.c | 2 ++ - bind/bind-9.11.2-P1/lib/isc/unix/app.c | 41 ++++++++++++++++++++-- - .../bind-9.11.2-P1/lib/isc/unix/include/isc/time.h | 20 +++++++++++ - bind/bind-9.11.2-P1/lib/isc/unix/time.c | 22 ++++++++++++ - client/dhclient.c | 6 ++++ - common/dispatch.c | 11 +++++- - includes/dhcpd.h | 3 +- - server/dhcpd.c | 6 ++++ - 10 files changed, 113 insertions(+), 6 deletions(-) - -diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -index 6f7ecf2..c7ef53c 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -+++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -@@ -81,9 +81,9 @@ - #define ISC_R_UNSET 61 /*%< unset */ - #define ISC_R_MULTIPLE 62 /*%< multiple */ - #define ISC_R_WOULDBLOCK 63 /*%< would block */ -- -+#define ISC_R_TIMESHIFTED 64 /*%< system time changed */ - /*% Not a result code: the number of results. */ --#define ISC_R_NRESULTS 64 -+#define ISC_R_NRESULTS 66 - - ISC_LANG_BEGINDECLS - -diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -index f2cda26..9d54396 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -+++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -@@ -238,6 +238,10 @@ - * Time - */ - #define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS) -+#ifdef CLOCK_BOOTTIME -+#define TIME_MONOTONIC(tp) RUNTIME_CHECK(isc_time_boottime((tp)) == ISC_R_SUCCESS) -+#endif -+ - - /*% - * Misc. -diff --git a/bind/bind-9.11.2-P1/lib/isc/result.c b/bind/bind-9.11.2-P1/lib/isc/result.c -index 071dac0..e362735 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/result.c -+++ b/bind/bind-9.11.2-P1/lib/isc/result.c -@@ -96,6 +96,7 @@ static const char *description[ISC_R_NRESULTS] = { - "unset", /*%< 61 */ - "multiple", /*%< 62 */ - "would block", /*%< 63 */ -+ "time changed", /*%< 64 */ - }; - - static const char *identifier[ISC_R_NRESULTS] = { -@@ -163,6 +164,7 @@ static const char *identifier[ISC_R_NRESULTS] = { - "ISC_R_UNSET", - "ISC_R_MULTIPLE", - "ISC_R_WOULDBLOCK", -+ "ISC_R_TIMESHIFTED", - }; - - #define ISC_RESULT_RESULTSET 2 -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/app.c b/bind/bind-9.11.2-P1/lib/isc/unix/app.c -index 5546922..7d95ad5 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/app.c -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/app.c -@@ -438,15 +438,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, - static isc_result_t - evloop(isc__appctx_t *ctx) { - isc_result_t result; -+ isc_time_t now; -+#ifdef CLOCK_BOOTTIME -+ isc_time_t monotonic; -+ isc_uint64_t diff = 0; -+#else -+ isc_time_t prev; -+ TIME_NOW(&prev); -+#endif -+ -+ -+ - - while (!ctx->want_shutdown) { - int n; -- isc_time_t when, now; -+ isc_time_t when; -+ - struct timeval tv, *tvp; - isc_socketwait_t *swait; - isc_boolean_t readytasks; - isc_boolean_t call_timer_dispatch = ISC_FALSE; - -+ isc_uint64_t us; -+ -+#ifdef CLOCK_BOOTTIME -+ // TBD macros for following three lines -+ TIME_NOW(&now); -+ TIME_MONOTONIC(&monotonic); -+ INSIST(now.seconds > monotonic.seconds) -+ us = isc_time_microdiff (&now, &monotonic); -+ if (us < diff){ -+ us = diff - us; -+ if (us > 1000000){ // ignoring shifts less than one second -+ return ISC_R_TIMESHIFTED; -+ }; -+ diff = isc_time_microdiff (&now, &monotonic); -+ } else { -+ diff = isc_time_microdiff (&now, &monotonic); -+ // not implemented -+ } -+#else -+ TIME_NOW(&now); -+ if (isc_time_compare (&now, &prev) < 0) -+ return ISC_R_TIMESHIFTED; -+ TIME_NOW(&prev); -+#endif - /* - * Check the reload (or suspend) case first for exiting the - * loop as fast as possible in case: -@@ -471,9 +507,10 @@ evloop(isc__appctx_t *ctx) { - if (result != ISC_R_SUCCESS) - tvp = NULL; - else { -- isc_uint64_t us; -+ - - TIME_NOW(&now); -+ - us = isc_time_microdiff(&when, &now); - if (us == 0) - call_timer_dispatch = ISC_TRUE; -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -index 939db5d..e798ee6 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -@@ -127,6 +127,26 @@ isc_time_isepoch(const isc_time_t *t); - *\li 't' is a valid pointer. - */ - -+#ifdef CLOCK_BOOTTIME -+isc_result_t -+isc_time_boottime(isc_time_t *t); -+/*%< -+ * Set 't' to monotonic time from previous boot -+ * it's not affected by system time change. It also -+ * includes the time system was suspended -+ * -+ * Requires: -+ *\li 't' is a valid pointer. -+ * -+ * Returns: -+ * -+ *\li Success -+ *\li Unexpected error -+ * Getting the time from the system failed. -+ */ -+#endif /* CLOCK_BOOTTIME */ -+ -+ - isc_result_t - isc_time_now(isc_time_t *t); - /*%< -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/time.c b/bind/bind-9.11.2-P1/lib/isc/unix/time.c -index 5900846..1197337 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/time.c -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/time.c -@@ -452,3 +452,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { - t->nanoseconds / NS_PER_MS); - } - } -+ -+ -+#ifdef CLOCK_BOOTTIME -+isc_result_t -+isc_time_boottime(isc_time_t *t) { -+ struct timespec ts; -+ -+ char strbuf[ISC_STRERRORSIZE]; -+ -+ if (clock_gettime (CLOCK_BOOTTIME, &ts) != 0){ -+ isc__strerror(errno, strbuf, sizeof(strbuf)); -+ UNEXPECTED_ERROR(__FILE__, __LINE__, "%s", strbuf); -+ return (ISC_R_UNEXPECTED); -+ } -+ -+ t->seconds = ts.tv_sec; -+ t->nanoseconds = ts.tv_nsec; -+ -+ return (ISC_R_SUCCESS); -+ -+}; -+#endif diff --git a/client/dhclient.c b/client/dhclient.c index 4e5546a..6085b8e 100644 --- a/client/dhclient.c diff --git a/0024-bind-Detect-system-time-jumps.patch b/0024-bind-Detect-system-time-jumps.patch new file mode 100644 index 0000000..eda0c2e --- /dev/null +++ b/0024-bind-Detect-system-time-jumps.patch @@ -0,0 +1,181 @@ +diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h +index 6f7ecf2..c7ef53c 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h ++++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h +@@ -81,9 +81,9 @@ + #define ISC_R_UNSET 61 /*%< unset */ + #define ISC_R_MULTIPLE 62 /*%< multiple */ + #define ISC_R_WOULDBLOCK 63 /*%< would block */ +- ++#define ISC_R_TIMESHIFTED 64 /*%< system time changed */ + /*% Not a result code: the number of results. */ +-#define ISC_R_NRESULTS 64 ++#define ISC_R_NRESULTS 66 + + ISC_LANG_BEGINDECLS + +diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h +index f2cda26..9d54396 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h ++++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h +@@ -238,6 +238,10 @@ + * Time + */ + #define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS) ++#ifdef CLOCK_BOOTTIME ++#define TIME_MONOTONIC(tp) RUNTIME_CHECK(isc_time_boottime((tp)) == ISC_R_SUCCESS) ++#endif ++ + + /*% + * Misc. +diff --git a/bind/bind-9.11.2-P1/lib/isc/result.c b/bind/bind-9.11.2-P1/lib/isc/result.c +index 071dac0..e362735 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/result.c ++++ b/bind/bind-9.11.2-P1/lib/isc/result.c +@@ -96,6 +96,7 @@ static const char *description[ISC_R_NRESULTS] = { + "unset", /*%< 61 */ + "multiple", /*%< 62 */ + "would block", /*%< 63 */ ++ "time changed", /*%< 64 */ + }; + + static const char *identifier[ISC_R_NRESULTS] = { +@@ -163,6 +164,7 @@ static const char *identifier[ISC_R_NRESULTS] = { + "ISC_R_UNSET", + "ISC_R_MULTIPLE", + "ISC_R_WOULDBLOCK", ++ "ISC_R_TIMESHIFTED", + }; + + #define ISC_RESULT_RESULTSET 2 +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/app.c b/bind/bind-9.11.2-P1/lib/isc/unix/app.c +index 5546922..7d95ad5 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/app.c ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/app.c +@@ -438,15 +438,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, + static isc_result_t + evloop(isc__appctx_t *ctx) { + isc_result_t result; ++ isc_time_t now; ++#ifdef CLOCK_BOOTTIME ++ isc_time_t monotonic; ++ isc_uint64_t diff = 0; ++#else ++ isc_time_t prev; ++ TIME_NOW(&prev); ++#endif ++ ++ ++ + + while (!ctx->want_shutdown) { + int n; +- isc_time_t when, now; ++ isc_time_t when; ++ + struct timeval tv, *tvp; + isc_socketwait_t *swait; + isc_boolean_t readytasks; + isc_boolean_t call_timer_dispatch = ISC_FALSE; + ++ isc_uint64_t us; ++ ++#ifdef CLOCK_BOOTTIME ++ // TBD macros for following three lines ++ TIME_NOW(&now); ++ TIME_MONOTONIC(&monotonic); ++ INSIST(now.seconds > monotonic.seconds) ++ us = isc_time_microdiff (&now, &monotonic); ++ if (us < diff){ ++ us = diff - us; ++ if (us > 1000000){ // ignoring shifts less than one second ++ return ISC_R_TIMESHIFTED; ++ }; ++ diff = isc_time_microdiff (&now, &monotonic); ++ } else { ++ diff = isc_time_microdiff (&now, &monotonic); ++ // not implemented ++ } ++#else ++ TIME_NOW(&now); ++ if (isc_time_compare (&now, &prev) < 0) ++ return ISC_R_TIMESHIFTED; ++ TIME_NOW(&prev); ++#endif + /* + * Check the reload (or suspend) case first for exiting the + * loop as fast as possible in case: +@@ -471,9 +507,10 @@ evloop(isc__appctx_t *ctx) { + if (result != ISC_R_SUCCESS) + tvp = NULL; + else { +- isc_uint64_t us; ++ + + TIME_NOW(&now); ++ + us = isc_time_microdiff(&when, &now); + if (us == 0) + call_timer_dispatch = ISC_TRUE; +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h +index 939db5d..e798ee6 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h +@@ -127,6 +127,26 @@ isc_time_isepoch(const isc_time_t *t); + *\li 't' is a valid pointer. + */ + ++#ifdef CLOCK_BOOTTIME ++isc_result_t ++isc_time_boottime(isc_time_t *t); ++/*%< ++ * Set 't' to monotonic time from previous boot ++ * it's not affected by system time change. It also ++ * includes the time system was suspended ++ * ++ * Requires: ++ *\li 't' is a valid pointer. ++ * ++ * Returns: ++ * ++ *\li Success ++ *\li Unexpected error ++ * Getting the time from the system failed. ++ */ ++#endif /* CLOCK_BOOTTIME */ ++ ++ + isc_result_t + isc_time_now(isc_time_t *t); + /*%< +diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/time.c b/bind/bind-9.11.2-P1/lib/isc/unix/time.c +index 5900846..1197337 100644 +--- a/bind/bind-9.11.2-P1/lib/isc/unix/time.c ++++ b/bind/bind-9.11.2-P1/lib/isc/unix/time.c +@@ -452,3 +452,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { + t->nanoseconds / NS_PER_MS); + } + } ++ ++ ++#ifdef CLOCK_BOOTTIME ++isc_result_t ++isc_time_boottime(isc_time_t *t) { ++ struct timespec ts; ++ ++ char strbuf[ISC_STRERRORSIZE]; ++ ++ if (clock_gettime (CLOCK_BOOTTIME, &ts) != 0){ ++ isc__strerror(errno, strbuf, sizeof(strbuf)); ++ UNEXPECTED_ERROR(__FILE__, __LINE__, "%s", strbuf); ++ return (ISC_R_UNEXPECTED); ++ } ++ ++ t->seconds = ts.tv_sec; ++ t->nanoseconds = ts.tv_nsec; ++ ++ return (ISC_R_SUCCESS); ++ ++}; ++#endif diff --git a/dhcp.spec b/dhcp.spec index bb0d2e7..bc73e58 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 15%{?dist} +Release: 16%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -56,7 +56,8 @@ Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch Patch22: 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch -Patch999: 0023-Detect-system-time-jumps.patch +Patch23: 0023-Detect-system-time-jumps.patch +Patch24: 0024-bind-Detect-system-time-jumps.patch @@ -523,6 +524,9 @@ done %endif %changelog +* Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 +- Split timers patch to bind and dhcp parts + * Wed Jul 24 2019 Fedora Release Engineering - 12:4.4.1-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 13487423ea7e567ce16865c182bd6848de50530b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Thu, 25 Jul 2019 16:07:33 +0200 Subject: [PATCH 26/81] Detect system time jumps In case if system time was changed backward it's possible to have ip address dropped by the kernel due to lifetime expirity. Try to detect this situation using either monotonic time or saved timestamp and execute go_reboot() procedure to request lease extention Part of fix resides in dhcp, part in bind-export-libs. Only in case of f29 and f30. Renamed from 0023-Detect-system-time-jumps.patch on master. --- dhcp-detect-system-time-jumps.patch | 80 +++++++++++++++++++++++++++++ dhcp.spec | 12 ++++- 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 dhcp-detect-system-time-jumps.patch diff --git a/dhcp-detect-system-time-jumps.patch b/dhcp-detect-system-time-jumps.patch new file mode 100644 index 0000000..24eae19 --- /dev/null +++ b/dhcp-detect-system-time-jumps.patch @@ -0,0 +1,80 @@ +diff --git a/client/dhclient.c b/client/dhclient.c +index 4e5546a..6085b8e 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -5398,6 +5398,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, + case server_awaken: + state_reboot (client); + break; ++ ++ case server_time_changed: ++ if (client->active){ ++ state_reboot (client); ++ } ++ break; + } + } + } +diff --git a/common/dispatch.c b/common/dispatch.c +index d7fe200..8a24499 100644 +--- a/common/dispatch.c ++++ b/common/dispatch.c +@@ -118,7 +118,6 @@ dispatch(void) + * signal. It will return ISC_R_RELOAD in that + * case. That is a normal behavior. + */ +- + if (status == ISC_R_RELOAD) { + /* + * dhcp_set_control_state() will do the job. +@@ -129,6 +128,16 @@ dispatch(void) + if (status == ISC_R_SUCCESS) + status = ISC_R_RELOAD; + } ++ ++ ++ if (status == ISC_R_TIMESHIFTED){ ++ status = dhcp_set_control_state(server_time_changed, ++ server_time_changed); ++ status = ISC_R_RELOAD; ++ log_info ("System time has been changed. Unable to use existing leases. Restarting"); ++ // do nothing, restart context ++ }; ++ + } while (status == ISC_R_RELOAD); + + log_fatal ("Dispatch routine failed: %s -- exiting", +diff --git a/includes/dhcpd.h b/includes/dhcpd.h +index 635c510..ec6c227 100644 +--- a/includes/dhcpd.h ++++ b/includes/dhcpd.h +@@ -524,7 +524,8 @@ typedef enum { + server_running = 1, + server_shutdown = 2, + server_hibernate = 3, +- server_awaken = 4 ++ server_awaken = 4, ++ server_time_changed = 5 + } control_object_state_t; + + typedef struct { +diff --git a/server/dhcpd.c b/server/dhcpd.c +index e06f6b4..778ef8d 100644 +--- a/server/dhcpd.c ++++ b/server/dhcpd.c +@@ -1779,6 +1779,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, + { + struct timeval tv; + ++ if (newstate == server_time_changed){ ++ log_error ("System time has been changed. Leases information unreliable!"); ++ return ISC_R_SUCCESS; ++ } ++ ++ + if (newstate != server_shutdown) + return DHCP_R_INVALIDARG; + /* Re-entry. */ +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index ad7e108..d2cad1f 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 32%{?dist} +Release: 33%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -81,6 +81,7 @@ Patch43: dhcp-4.3.6-reference_count_overflow.patch Patch44: dhcp-iface_hwaddr_discovery.patch Patch45: dhcp-4.3.6-bind-9.11.5.patch Patch46: dhcp-isc_heap_delete.patch +Patch48: dhcp-detect-system-time-jumps.patch BuildRequires: autoconf BuildRequires: automake @@ -90,7 +91,8 @@ BuildRequires: openldap-devel BuildRequires: krb5-devel BuildRequires: libcap-ng-devel # https://fedorahosted.org/fpc/ticket/502#comment:3 -BuildRequires: bind-export-devel +# https://bugzilla.redhat.com/show_bug.cgi?id=916116 +BuildRequires: bind-export-devel >= 9.11.8-2 BuildRequires: systemd systemd-devel # dhcp-sd_notify.patch BuildRequires: pkgconfig(libsystemd) @@ -363,6 +365,9 @@ rm bind/bind.tar.gz # https://bugs.isc.org/Public/Bug/Display.html?id=46719# %patch46 -p1 -b .heap +# https://bugzilla.redhat.com/show_bug.cgi?id=916116 +%patch48 -p1 -b .time-jump + # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # https://bugzilla.gnome.org/show_bug.cgi?id=656610 sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h @@ -686,6 +691,9 @@ done %endif %changelog +* Thu Jul 25 2019 Petr Menšík - 12:4.3.6-33 +- Detect time change and request lease renewal (#916116) + * Wed Jul 17 2019 Petr Menšík - 12:4.3.6-32 - Rebuilt for bind 9.11.8 From b25b19a69ea76e9d11b188a153b4d7214e36b017 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 22 Aug 2019 17:47:21 +0200 Subject: [PATCH 27/81] Move the NetworkManager dispatcher script out of /etc It's not user configuration and shouldn't ever have been there. Except for that it used to be the only location NetworkManager looked into. With NetworkManager 1.20 that is no longer the case and the dispatcher scripts can be moved to /usr/lib. --- dhcp.spec | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index bc73e58..f8c2fd5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 16%{?dist} +Release: 17%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -97,6 +97,8 @@ Requires(post): coreutils grep sed Requires(post): systemd Requires(preun): systemd Requires(postun): systemd +# Old NetworkManager expects the dispatcher scripts in a different place +Conflicts: NetworkManager < 1.20 %description server DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -144,6 +146,8 @@ Obsoletes: dhclient < %{epoch}:%{version}-%{release} # dhclient-script requires: Requires: coreutils gawk grep ipcalc iproute iputils sed systemd Requires: %{name}-common = %{epoch}:%{version}-%{release} +# Old NetworkManager expects the dispatcher scripts in a different place +Conflicts: NetworkManager < 1.20 %description client DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -280,9 +284,9 @@ install -p -m 0644 %{SOURCE2} . mkdir -p %{buildroot}%{dhcpconfdir}/dhclient.d # NetworkManager dispatcher script -mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d -install -p -m 0755 %{SOURCE3} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d -install -p -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d +mkdir -p %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d +install -p -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d +install -p -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient @@ -461,9 +465,9 @@ done %config(noreplace) %{dhcpconfdir}/dhcpd6.conf %dir %{_sysconfdir}/openldap/schema %config(noreplace) %{_sysconfdir}/openldap/schema/dhcp.schema -%dir %{_sysconfdir}/NetworkManager -%dir %{_sysconfdir}/NetworkManager/dispatcher.d -%{_sysconfdir}/NetworkManager/dispatcher.d/12-dhcpd +%dir %{_prefix}/lib/NetworkManager +%dir %{_prefix}/lib/NetworkManager/dispatcher.d +%{_prefix}/lib/NetworkManager/dispatcher.d/12-dhcpd %attr(0644,root,root) %{_unitdir}/dhcpd.service %attr(0644,root,root) %{_unitdir}/dhcpd6.service %{_sbindir}/dhcpd @@ -489,9 +493,9 @@ done %attr(0750,root,root) %dir %{dhcpconfdir} %dir %{dhcpconfdir}/dhclient.d %dir %{_localstatedir}/lib/dhclient -%dir %{_sysconfdir}/NetworkManager -%dir %{_sysconfdir}/NetworkManager/dispatcher.d -%{_sysconfdir}/NetworkManager/dispatcher.d/11-dhclient +%dir %{_prefix}/lib/NetworkManager +%dir %{_prefix}/lib/NetworkManager/dispatcher.d +%{_prefix}/lib/NetworkManager/dispatcher.d/11-dhclient %{_sbindir}/dhclient %{_sbindir}/dhclient-script %attr(0755,root,root) %{_libdir}/pm-utils/sleep.d/56dhclient @@ -524,6 +528,9 @@ done %endif %changelog +* Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 +- Move the NetworkManager dispatcher script out of /etc + * Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 - Split timers patch to bind and dhcp parts From 5e20bf9fe8e13c4a95fb6a76e9df0ecc6ecccbee Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Fri, 23 Aug 2019 08:15:31 +0200 Subject: [PATCH 28/81] Make the dispatcher script actually executable --- dhcp.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index f8c2fd5..da74cb8 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -286,7 +286,7 @@ mkdir -p %{buildroot}%{dhcpconfdir}/dhclient.d # NetworkManager dispatcher script mkdir -p %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d install -p -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d -install -p -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d +install -p -m 0755 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient @@ -530,6 +530,7 @@ done %changelog * Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 - Move the NetworkManager dispatcher script out of /etc +- Make the dispatcher script actually executable * Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 - Split timers patch to bind and dhcp parts From 3c99462d19a187c6ab473326e5ab0243ab3c5302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Wed, 28 Aug 2019 22:32:40 +0200 Subject: [PATCH 29/81] Rebuilt for bind 9.11.10 --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index d2cad1f..cbf9b20 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -16,7 +16,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.3.6 -Release: 33%{?dist} +Release: 34%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -691,6 +691,9 @@ done %endif %changelog +* Wed Aug 28 2019 Petr Menšík - 12:4.3.6-34 +- Rebuilt for bind 9.11.10 + * Thu Jul 25 2019 Petr Menšík - 12:4.3.6-33 - Detect time change and request lease renewal (#916116) From 6f96789cfe4177cc5d6cc8ff23f3edd41350fe3a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 7 Oct 2019 11:04:10 +0200 Subject: [PATCH 30/81] Revert "Make the dispatcher script actually executable" This reverts commit 5e20bf9fe8e13c4a95fb6a76e9df0ecc6ecccbee. --- dhcp.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index da74cb8..f8c2fd5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -286,7 +286,7 @@ mkdir -p %{buildroot}%{dhcpconfdir}/dhclient.d # NetworkManager dispatcher script mkdir -p %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d install -p -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d -install -p -m 0755 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d +install -p -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient @@ -530,7 +530,6 @@ done %changelog * Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 - Move the NetworkManager dispatcher script out of /etc -- Make the dispatcher script actually executable * Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 - Split timers patch to bind and dhcp parts From 9c49c9e94d25898850cc98ae8afe6ebb2ec5bdb3 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Oct 2019 16:58:01 +0200 Subject: [PATCH 31/81] Rework patches. Add dhclient -B option description --- 0001-change-bug-url.patch | 4 +- 0002-additional-dhclient-options.patch | 4 +- ...ng-interfaces-requested-by-sbin-ifup.patch | 4 +- ...BOOTP-for-IBM-pSeries-systems-and-ma.patch | 4 +- 0005-Change-default-requested-options.patch | 4 +- 0006-Various-man-page-only-fixes.patch | 4 +- ...ge-paths-to-conform-to-our-standards.patch | 4 +- ...en-file-descriptors-are-closed-on-ex.patch | 4 +- 0009-Fix-garbage-in-format-string-error.patch | 4 +- 0010-Handle-null-timeout.patch | 4 +- 0011-Drop-unnecessary-capabilities.patch | 4 +- ...ss-Static-Route-Option-for-DHCPv4-51.patch | 4 +- 0013-DHCPv6-over-PPP-support-626514.patch | 4 +- 0014-IPoIB-support-660681.patch | 4 +- ...-Add-GUID-DUID-to-dhcpd-logs-1064416.patch | 4 +- 0016-Turn-on-creating-sending-of-DUID.patch | 4 +- ...equest-release-via-correct-interface.patch | 4 +- ...ation-for-iface-should-be-info-not-e.patch | 4 +- ...UID_LLT-even-in-stateless-mode-11563.patch | 4 +- ...ver-all-hwaddress-for-xid-uniqueness.patch | 4 +- ...ad-leases-DB-in-non-replay-mode-only.patch | 4 +- ...fy-patch-for-systemd-support-1687040.patch | 97 ------- ...re-link-local-address-is-ready-in-st.patch | 80 ++++++ 0023-option-97-pxe-client-id.patch | 247 ++++++++++++++++++ ...h => 0024-Detect-system-time-changes.patch | 21 +- ...0025-bind-Detect-system-time-changes.patch | 18 ++ ...-Add-dhclient-5-B-option-description.patch | 33 +++ dhcp.spec | 53 ++-- 28 files changed, 466 insertions(+), 167 deletions(-) delete mode 100644 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch create mode 100644 0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch create mode 100644 0023-option-97-pxe-client-id.patch rename 0023-Detect-system-time-jumps.patch => 0024-Detect-system-time-changes.patch (78%) rename 0024-bind-Detect-system-time-jumps.patch => 0025-bind-Detect-system-time-changes.patch (88%) create mode 100644 0026-Add-dhclient-5-B-option-description.patch diff --git a/0001-change-bug-url.patch b/0001-change-bug-url.patch index 150a3b2..b6afa57 100644 --- a/0001-change-bug-url.patch +++ b/0001-change-bug-url.patch @@ -1,7 +1,7 @@ -From 31ef6eadb15c3773b81256a8617eccc7657fd2fd Mon Sep 17 00:00:00 2001 +From 23dfbc560028bf7429196db1a3826f8b80c19d3e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:09:57 +0100 -Subject: [PATCH 01/21] change bug url +Subject: [PATCH 01/26] change bug url Cc: pzhukov@redhat.com --- diff --git a/0002-additional-dhclient-options.patch b/0002-additional-dhclient-options.patch index e112130..d700c00 100644 --- a/0002-additional-dhclient-options.patch +++ b/0002-additional-dhclient-options.patch @@ -1,7 +1,7 @@ -From 3a86bcb58a7c081df22b6f55e973d5e3c99065d8 Mon Sep 17 00:00:00 2001 +From a26161b0fd45cdbeed3038ac63ff04e3b727248f Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:19:47 +0100 -Subject: [PATCH 02/21] additional dhclient options +Subject: [PATCH 02/26] additional dhclient options Cc: pzhukov@redhat.com --- diff --git a/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch index 294b7fe..2953c0f 100644 --- a/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch +++ b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch @@ -1,7 +1,7 @@ -From 692fd8b16ef6f12a57596351e930c65c68597bac Mon Sep 17 00:00:00 2001 +From af504e99abde04b881768d18eaa0054b36b16303 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:21:14 +0100 -Subject: [PATCH 03/21] Handle releasing interfaces requested by /sbin/ifup +Subject: [PATCH 03/26] Handle releasing interfaces requested by /sbin/ifup Cc: pzhukov@redhat.com --- diff --git a/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch index e379480..7f414a3 100644 --- a/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch +++ b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch @@ -1,7 +1,7 @@ -From 9dc17d6086bf140efda84ce434664b60ce2191a1 Mon Sep 17 00:00:00 2001 +From 7e8cc8388ac31c5c2b1a423c6b2da0491b19f6f9 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:22:41 +0100 -Subject: [PATCH 04/21] Support unicast BOOTP for IBM pSeries systems (and +Subject: [PATCH 04/26] Support unicast BOOTP for IBM pSeries systems (and maybe others) Cc: pzhukov@redhat.com diff --git a/0005-Change-default-requested-options.patch b/0005-Change-default-requested-options.patch index 89118b1..34ff7b5 100644 --- a/0005-Change-default-requested-options.patch +++ b/0005-Change-default-requested-options.patch @@ -1,7 +1,7 @@ -From ac21c8b966620cbe79be3508c024ae30f93d6266 Mon Sep 17 00:00:00 2001 +From a2a3554ff9e05d1a8e2c8aa843f1b6a33fce87e3 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:24:24 +0100 -Subject: [PATCH 05/21] Change default requested options +Subject: [PATCH 05/26] Change default requested options Cc: pzhukov@redhat.com Add NIS domain, NIS servers, NTP servers, interface-mtu and domain-search diff --git a/0006-Various-man-page-only-fixes.patch b/0006-Various-man-page-only-fixes.patch index 286dde1..a98783c 100644 --- a/0006-Various-man-page-only-fixes.patch +++ b/0006-Various-man-page-only-fixes.patch @@ -1,7 +1,7 @@ -From dd3053e6f45ac1f149869b7ded3f539d6c046114 Mon Sep 17 00:00:00 2001 +From 846779467f7393b19e8d206405116e1e26e16efc Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:25:53 +0100 -Subject: [PATCH 06/21] Various man-page-only fixes +Subject: [PATCH 06/26] Various man-page-only fixes Cc: pzhukov@redhat.com --- diff --git a/0007-Change-paths-to-conform-to-our-standards.patch b/0007-Change-paths-to-conform-to-our-standards.patch index fb3348c..87c4f8c 100644 --- a/0007-Change-paths-to-conform-to-our-standards.patch +++ b/0007-Change-paths-to-conform-to-our-standards.patch @@ -1,7 +1,7 @@ -From bf4e3f1d181b5b4e6225fe5726c02420157433cc Mon Sep 17 00:00:00 2001 +From ac65289663532db0bc1de449ca2a0eb4c8c2ca6f Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:26:34 +0100 -Subject: [PATCH 07/21] Change paths to conform to our standards +Subject: [PATCH 07/26] Change paths to conform to our standards Cc: pzhukov@redhat.com --- diff --git a/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch index 9759055..8294563 100644 --- a/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch +++ b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch @@ -1,7 +1,7 @@ -From 26d34bc8e55c39ef84d580b6453c65b5cbeab8ff Mon Sep 17 00:00:00 2001 +From d2da34706f140101c34f6a9806c258411806a939 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:27:18 +0100 -Subject: [PATCH 08/21] Make sure all open file descriptors are closed-on-exec +Subject: [PATCH 08/26] Make sure all open file descriptors are closed-on-exec for SELinux Cc: pzhukov@redhat.com diff --git a/0009-Fix-garbage-in-format-string-error.patch b/0009-Fix-garbage-in-format-string-error.patch index 82e224b..f9d81ab 100644 --- a/0009-Fix-garbage-in-format-string-error.patch +++ b/0009-Fix-garbage-in-format-string-error.patch @@ -1,7 +1,7 @@ -From 9ffd73d22b1337aeedef751afd03822cc0a15014 Mon Sep 17 00:00:00 2001 +From a0a2186ce52a31357d4eb3c32d7d6887e4603814 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:28:13 +0100 -Subject: [PATCH 09/21] Fix 'garbage in format string' error +Subject: [PATCH 09/26] Fix 'garbage in format string' error Cc: pzhukov@redhat.com RHBZ: 450042 diff --git a/0010-Handle-null-timeout.patch b/0010-Handle-null-timeout.patch index dae6440..2b6e49b 100644 --- a/0010-Handle-null-timeout.patch +++ b/0010-Handle-null-timeout.patch @@ -1,7 +1,7 @@ -From e269e137c3b7d25a2d089be508e6769731618d54 Mon Sep 17 00:00:00 2001 +From ed7610cdb2e8ebdbaee618e477879e7e008d4f29 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:29:08 +0100 -Subject: [PATCH 10/21] Handle null timeout +Subject: [PATCH 10/26] Handle null timeout Cc: pzhukov@redhat.com Handle cases in add_timeout() where the function is called with a NULL diff --git a/0011-Drop-unnecessary-capabilities.patch b/0011-Drop-unnecessary-capabilities.patch index 1c83f70..4277baf 100644 --- a/0011-Drop-unnecessary-capabilities.patch +++ b/0011-Drop-unnecessary-capabilities.patch @@ -1,7 +1,7 @@ -From 291f738f341a78f8c7974a7603d1a2eaa01ebacc Mon Sep 17 00:00:00 2001 +From 3b37f4b7bb3a17f8bd655be919915a1912062ea6 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:30:28 +0100 -Subject: [PATCH 11/21] Drop unnecessary capabilities +Subject: [PATCH 11/26] Drop unnecessary capabilities Cc: pzhukov@redhat.com dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) diff --git a/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch index a2804a4..866527c 100644 --- a/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch +++ b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch @@ -1,7 +1,7 @@ -From 2756fcc3f88c27d0e12e72dbdd2906fbf45f2362 Mon Sep 17 00:00:00 2001 +From 01b1dcfef129a4eccfaf0f63a216774019f82dca Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:32:35 +0100 -Subject: [PATCH 12/21] RFC 3442 - Classless Static Route Option for DHCPv4 +Subject: [PATCH 12/26] RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) Cc: pzhukov@redhat.com diff --git a/0013-DHCPv6-over-PPP-support-626514.patch b/0013-DHCPv6-over-PPP-support-626514.patch index c9d3811..5e0a6ba 100644 --- a/0013-DHCPv6-over-PPP-support-626514.patch +++ b/0013-DHCPv6-over-PPP-support-626514.patch @@ -1,7 +1,7 @@ -From 43332b29f0c8fef3ddd225e31f5f2b4ff8273b36 Mon Sep 17 00:00:00 2001 +From 234747fbfd6c6429619ba843713d5b39fb4a513d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:33:06 +0100 -Subject: [PATCH 13/21] DHCPv6 over PPP support (#626514) +Subject: [PATCH 13/26] DHCPv6 over PPP support (#626514) Cc: pzhukov@redhat.com --- diff --git a/0014-IPoIB-support-660681.patch b/0014-IPoIB-support-660681.patch index 3f5a274..a792e4f 100644 --- a/0014-IPoIB-support-660681.patch +++ b/0014-IPoIB-support-660681.patch @@ -1,7 +1,7 @@ -From de8468cf16c0fa9d01412446fcf1d44ccd0fd411 Mon Sep 17 00:00:00 2001 +From 6d74c2d0ceadef2eb1c43c2da47f1d5b732adf8c Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:34:21 +0100 -Subject: [PATCH 14/21] IPoIB support (#660681) +Subject: [PATCH 14/26] IPoIB support (#660681) Cc: pzhukov@redhat.com (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249]) diff --git a/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch index a2f740e..1f88d7d 100644 --- a/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch +++ b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch @@ -1,7 +1,7 @@ -From 7ac7d0b00874ee996c7ee75a595c029759368aad Mon Sep 17 00:00:00 2001 +From 3d3e442ed1316930a5360e4d5a56b46a42a29419 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:35:47 +0100 -Subject: [PATCH 15/21] Add GUID/DUID to dhcpd logs (#1064416) +Subject: [PATCH 15/26] Add GUID/DUID to dhcpd logs (#1064416) Cc: pzhukov@redhat.com --- diff --git a/0016-Turn-on-creating-sending-of-DUID.patch b/0016-Turn-on-creating-sending-of-DUID.patch index 216cbab..bafffb5 100644 --- a/0016-Turn-on-creating-sending-of-DUID.patch +++ b/0016-Turn-on-creating-sending-of-DUID.patch @@ -1,7 +1,7 @@ -From 1f0473939bcb17095bbef48cd9a81105a3de9846 Mon Sep 17 00:00:00 2001 +From 2f6b827e89305adcff45288c632785ac054adb8e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:36:30 +0100 -Subject: [PATCH 16/21] Turn on creating/sending of DUID +Subject: [PATCH 16/26] Turn on creating/sending of DUID Cc: pzhukov@redhat.com as client identifier with DHCPv4 clients (#560361c#40, rfc4361) diff --git a/0017-Send-unicast-request-release-via-correct-interface.patch b/0017-Send-unicast-request-release-via-correct-interface.patch index 309e143..26c8b96 100644 --- a/0017-Send-unicast-request-release-via-correct-interface.patch +++ b/0017-Send-unicast-request-release-via-correct-interface.patch @@ -1,7 +1,7 @@ -From 8a2b491f79aab1f04feac89586dfab1e55b47adb Mon Sep 17 00:00:00 2001 +From 193c4d7631fd623efa601f52fdab6018bf8be771 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:39:36 +0100 -Subject: [PATCH 17/21] Send unicast request/release via correct interface +Subject: [PATCH 17/26] Send unicast request/release via correct interface Cc: pzhukov@redhat.com (#800561, #1177351) diff --git a/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch index 752ab77..2ff4030 100644 --- a/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch +++ b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch @@ -1,7 +1,7 @@ -From 588ead2d9a9cfe70f14569a8e950c6c42f15c1e3 Mon Sep 17 00:00:00 2001 +From 2277d041692b8ebdf6b86d41e3a0bc0381cd1e47 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:40:51 +0100 -Subject: [PATCH 18/21] No subnet declaration for ' should be info, not +Subject: [PATCH 18/26] No subnet declaration for ' should be info, not error. Cc: pzhukov@redhat.com diff --git a/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch index 4dbd9ff..3405ea1 100644 --- a/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch +++ b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch @@ -1,7 +1,7 @@ -From 07b333c48a2fc99d7d502a0c88907b38f61c6230 Mon Sep 17 00:00:00 2001 +From 6ea56e988df1da51f7d0bdd8984b38e40102c17b Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:41:14 +0100 -Subject: [PATCH 19/21] dhclient: write DUID_LLT even in stateless mode +Subject: [PATCH 19/26] dhclient: write DUID_LLT even in stateless mode (#1156356) Cc: pzhukov@redhat.com diff --git a/0020-Discover-all-hwaddress-for-xid-uniqueness.patch b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch index 025a1ca..c838d7a 100644 --- a/0020-Discover-all-hwaddress-for-xid-uniqueness.patch +++ b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch @@ -1,7 +1,7 @@ -From f1467835402eee90a350a952f1a411f37475a9df Mon Sep 17 00:00:00 2001 +From 01ce61b8a0331a2f068ca2191bfb897b505c1b9d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:42:50 +0100 -Subject: [PATCH 20/21] Discover all hwaddress for xid uniqueness +Subject: [PATCH 20/26] Discover all hwaddress for xid uniqueness Cc: pzhukov@redhat.com --- diff --git a/0021-Load-leases-DB-in-non-replay-mode-only.patch b/0021-Load-leases-DB-in-non-replay-mode-only.patch index ae72855..72aaeef 100644 --- a/0021-Load-leases-DB-in-non-replay-mode-only.patch +++ b/0021-Load-leases-DB-in-non-replay-mode-only.patch @@ -1,7 +1,7 @@ -From 1c7b876dc558774c40a2a28da53c19c65e123124 Mon Sep 17 00:00:00 2001 +From e2de752020ea51428bbaaa7358f08632c42aa89d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:44:06 +0100 -Subject: [PATCH 21/21] Load leases DB in non-replay mode only +Subject: [PATCH 21/26] Load leases DB in non-replay mode only Cc: pzhukov@redhat.com --- diff --git a/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch b/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch deleted file mode 100644 index 2c9f46b..0000000 --- a/0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 5c6204bab7279050b78b3d03d1211e9d13d3fd71 Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Wed, 27 Mar 2019 09:59:20 +0100 -Subject: [PATCH] Backport sd-notify patch for systemd support (#1687040) -Cc: pzhukov@redhat.com - ---- - configure.ac | 11 +++++++++++ - relay/dhcrelay.c | 12 ++++++++++++ - server/dhcpd.c | 12 ++++++++++++ - 3 files changed, 35 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 15fc0d7..0c08000 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1014,6 +1014,17 @@ if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; - AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) - fi - -+AC_ARG_WITH(systemd, -+ AC_HELP_STRING([--with-systemd], -+ [enable sending status notifications to systemd daemon (default is no)]), -+ [systemd=$withval], -+ [systemd=no]) -+ -+if test x$systemd = xyes ; then -+ AC_CHECK_LIB(systemd, sd_notifyf, , -+ AC_MSG_FAILURE([*** systemd library not present - do you need to install systemd-libs package?])) -+fi -+ - # Append selected warning levels to CFLAGS before substitution (but after - # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). - CFLAGS="$CFLAGS $STD_CWARNINGS" -diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index 7b4f4f1..9eb5bfd 100644 ---- a/relay/dhcrelay.c -+++ b/relay/dhcrelay.c -@@ -37,6 +37,10 @@ - int keep_capabilities = 0; - #endif - -+#ifdef HAVE_LIBSYSTEMD -+#include -+#endif -+ - TIME default_lease_time = 43200; /* 12 hours... */ - TIME max_lease_time = 86400; /* 24 hours... */ - struct tree_cache *global_options[256]; -@@ -845,6 +849,14 @@ main(int argc, char **argv) { - } - #endif - -+#ifdef HAVE_LIBSYSTEMD -+ /* We are ready to process incomming packets. Let's notify systemd */ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Dispatching packets...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+#endif -+ - /* Start dispatching packets and timeouts... */ - dispatch(); - -diff --git a/server/dhcpd.c b/server/dhcpd.c -index 530a923..e06f6b4 100644 ---- a/server/dhcpd.c -+++ b/server/dhcpd.c -@@ -60,6 +60,10 @@ gid_t set_gid = 0; - struct class unknown_class; - struct class known_class; - -+#ifdef HAVE_LIBSYSTEMD -+#include -+#endif -+ - struct iaddr server_identifier; - int server_identifier_matched; - -@@ -1057,6 +1061,14 @@ main(int argc, char **argv) { - /* Log that we are about to start working */ - log_info("Server starting service."); - -+#ifdef HAVE_LIBSYSTEMD -+ /* We are ready to process incomming packets. Let's notify systemd */ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Dispatching packets...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+#endif -+ - /* - * Receive packets and dispatch them... - * dispatch() will never return. --- -2.14.5 - diff --git a/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch b/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch new file mode 100644 index 0000000..85ea650 --- /dev/null +++ b/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch @@ -0,0 +1,80 @@ +From 9975d198a2c02e32c31c3e0f43d2aa79dfa7f508 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 28 Feb 2019 15:30:21 +0100 +Subject: [PATCH 22/26] dhclient: make sure link-local address is ready in + stateless mode +Cc: pzhukov@redhat.com + +Bug-url: https://bugzilla.redhat.com/1263466 +--- + client/dhclient.c | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +diff --git a/client/dhclient.c b/client/dhclient.c +index 4e5546a..9b65438 100644 +--- a/client/dhclient.c ++++ b/client/dhclient.c +@@ -937,6 +937,12 @@ main(int argc, char **argv) { + + inaddr_any.s_addr = INADDR_ANY; + ++ /* Discover all the network interfaces. */ ++ discover_interfaces(DISCOVER_UNCONFIGURED); ++ ++ /* Parse the dhclient.conf file. */ ++ read_client_conf(); ++ + /* Stateless special case. */ + if (stateless) { + if (release_mode || (wanted_ia_na > 0) || +@@ -953,12 +959,6 @@ main(int argc, char **argv) { + finish(0); + } + +- /* Discover all the network interfaces. */ +- discover_interfaces(DISCOVER_UNCONFIGURED); +- +- /* Parse the dhclient.conf file. */ +- read_client_conf(); +- + /* Parse any extra command line configuration arguments: */ + if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) { + arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg); +@@ -1413,20 +1413,30 @@ void run_stateless(int exit_mode, u_int16_t port) + IGNORE_UNUSED(port); + #endif + +- /* Discover the network interface. */ +- discover_interfaces(DISCOVER_REQUESTED); ++ struct interface_info *ip; + + if (!interfaces) + usage("No interfaces available for stateless command: %s", "-S"); + +- /* Parse the dhclient.conf file. */ + #ifdef DHCP4o6 + if (dhcpv4_over_dhcpv6) { + /* Mark we want to request IRT too! */ + dhcpv4_over_dhcpv6++; + } + #endif +- read_client_conf(); ++ ++ for (ip = interfaces; ip; ip = ip->next) { ++ if ((interfaces_requested > 0) && ++ ((ip->flags & (INTERFACE_REQUESTED | ++ INTERFACE_AUTOMATIC)) != ++ INTERFACE_REQUESTED)) ++ continue; ++ script_init(ip->client, "PREINIT6", NULL); ++ script_go(ip->client); ++ } ++ ++ /* Discover the network interface. */ ++ discover_interfaces(DISCOVER_REQUESTED); + + /* Parse the lease database. */ + read_client_leases(); +-- +2.14.5 + diff --git a/0023-option-97-pxe-client-id.patch b/0023-option-97-pxe-client-id.patch new file mode 100644 index 0000000..6cc4328 --- /dev/null +++ b/0023-option-97-pxe-client-id.patch @@ -0,0 +1,247 @@ +From 6fd7894ea57791c8eee16c21d19da34b909e016e Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 28 Feb 2019 16:40:38 +0100 +Subject: [PATCH 23/26] option 97 - pxe-client-id +Cc: pzhukov@redhat.com + +Bug-url: https://bugzilla.redhat.com/1058674 +ISC-Bugs #38110 +--- + common/options.c | 27 ++++++++++++++++++++------- + common/tables.c | 3 ++- + includes/dhcp.h | 1 + + server/dhcp.c | 19 +++++++++++++++++++ + server/dhcpd.conf.5 | 9 ++++++--- + server/dhcpleasequery.c | 18 +++++++++++++++--- + server/failover.c | 3 +++ + server/mdb.c | 5 +++-- + 8 files changed, 69 insertions(+), 16 deletions(-) + +diff --git a/common/options.c b/common/options.c +index 3034cf0..686dd12 100644 +--- a/common/options.c ++++ b/common/options.c +@@ -4465,13 +4465,26 @@ int validate_packet(struct packet *packet) + "a future version of ISC DHCP will reject this"); + } + } else { +- /* +- * If hlen is 0 we don't have any identifier, we warn the user +- * but continue processing the packet as we can. +- */ +- if (packet->raw->hlen == 0) { +- log_debug("Received DHCPv4 packet without client-id" +- " option and empty hlen field."); ++ oc = lookup_option (&dhcp_universe, packet->options, ++ DHO_PXE_CLIENT_ID); ++ if (oc) { ++ /* Let's check if pxe-client-id is sane */ ++ if ((oc->data.len < 2) || ++ (oc->data.data[0] == '\0' && ++ oc->data.len != 17)) { ++ log_debug("Dropped DHCPv4 packet with wrong " ++ "(len == %d) pxe-client-id", oc->data.len); ++ return (0); ++ } ++ } else { ++ /* ++ * If hlen is 0 we don't have any identifier, we warn the user ++ * but continue processing the packet as we can. ++ */ ++ if (packet->raw->hlen == 0) { ++ log_debug("Received DHCPv4 packet without client-id" ++ " option and empty hlen field."); ++ } + } + } + +diff --git a/common/tables.c b/common/tables.c +index f1be07d..4419220 100644 +--- a/common/tables.c ++++ b/common/tables.c +@@ -196,8 +196,9 @@ static struct option dhcp_options[] = { + /* Defined by RFC 4578 */ + { "pxe-system-type", "Sa", &dhcp_universe, 93, 1 }, + { "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 }, +- { "pxe-client-id", "BX", &dhcp_universe, 97, 1 }, + #endif ++ { "pxe-client-id", "BX", &dhcp_universe, 97, 1 }, ++ + { "uap-servers", "t", &dhcp_universe, 98, 1 }, + #if defined(RFC4776_OPTIONS) + { "geoconf-civic", "X", &dhcp_universe, 99, 1 }, +diff --git a/includes/dhcp.h b/includes/dhcp.h +index 4cc547a..4eb9791 100644 +--- a/includes/dhcp.h ++++ b/includes/dhcp.h +@@ -158,6 +158,7 @@ struct dhcp_packet { + #define DHO_AUTHENTICATE 90 /* RFC3118, was 210 */ + #define DHO_CLIENT_LAST_TRANSACTION_TIME 91 + #define DHO_ASSOCIATED_IP 92 ++#define DHO_PXE_CLIENT_ID 97 /* RFC4578 */ + #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ + #define DHO_DOMAIN_SEARCH 119 /* RFC3397 */ + #define DHO_CLASSLESS_STATIC_ROUTES 121 /* RFC3442 */ +diff --git a/server/dhcp.c b/server/dhcp.c +index 0582c4c..4e86262 100644 +--- a/server/dhcp.c ++++ b/server/dhcp.c +@@ -222,6 +222,10 @@ dhcp (struct packet *packet) { + if (lease -> uid_len) { + oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, ++ packet -> options, ++ DHO_PXE_CLIENT_ID); + if (!oc) + goto nolease; + +@@ -820,6 +824,9 @@ void dhcprelease (packet, ms_nulltp) + + oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + memset (&data, 0, sizeof data); + if (oc && + evaluate_option_cache (&data, packet, (struct lease *)0, +@@ -1331,6 +1338,9 @@ void dhcpinform (packet, ms_nulltp) + */ + oc = lookup_option(&dhcp_universe, packet->options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + memset(&d1, 0, sizeof(d1)); + if (oc && + evaluate_option_cache(&d1, packet, NULL, NULL, +@@ -2441,6 +2451,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) + can be used. */ + oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + if (oc && + evaluate_option_cache (&d1, packet, lease, + (struct client_state *)0, +@@ -3033,6 +3046,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) + /* Record the uid, if given... */ + oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + if (oc && + evaluate_option_cache(&d1, packet, lease, NULL, + packet->options, state->options, +@@ -4150,6 +4166,9 @@ int find_lease (struct lease **lp, + specified unique client identifier. */ + oc = lookup_option (&dhcp_universe, packet -> options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option (&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + memset (&client_identifier, 0, sizeof client_identifier); + if (oc && + evaluate_option_cache (&client_identifier, +diff --git a/server/dhcpd.conf.5 b/server/dhcpd.conf.5 +index 89b5540..4751a8b 100644 +--- a/server/dhcpd.conf.5 ++++ b/server/dhcpd.conf.5 +@@ -1664,10 +1664,12 @@ should be a name identifying the host. If a \fIhostname\fR option is + not specified for the host, \fIhostname\fR is used. + .PP + \fIHost\fR declarations are matched to actual DHCP or BOOTP clients +-by matching the \fRdhcp-client-identifier\fR option specified in the ++by matching the \fIdhcp-client-identifier\fR or \fIpxe-client-id\fR ++options specified in the + \fIhost\fR declaration to the one supplied by the client, or, if the + \fIhost\fR declaration or the client does not provide a +-\fRdhcp-client-identifier\fR option, by matching the \fIhardware\fR ++\fIdhcp-client-identifier\fR or \fIpxe-client-id\fR options, ++by matching the \fIhardware\fR + parameter in the \fIhost\fR declaration to the network hardware + address supplied by the client. BOOTP clients do not normally + provide a \fIdhcp-client-identifier\fR, so the hardware address must +@@ -1679,7 +1681,8 @@ to identify hosts. + .PP + Please be aware that + .B only +-the \fIdhcp-client-identifier\fR option and the hardware address can be ++the \fIdhcp-client-identifier\fR and \fIpxe-client-id\fR ++options and the hardware address can be + used to match a host declaration, or the \fIhost-identifier option\fR + parameter for DHCPv6 servers. For example, it is not possible to + match a host declaration to a \fIhost-name\fR option. This is +diff --git a/server/dhcpleasequery.c b/server/dhcpleasequery.c +index 7be0788..2fee698 100644 +--- a/server/dhcpleasequery.c ++++ b/server/dhcpleasequery.c +@@ -276,7 +276,7 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) { + */ + + memset(&uid, 0, sizeof(uid)); +- if (get_option(&uid, ++ i = get_option(&uid, + &dhcp_universe, + packet, + NULL, +@@ -286,8 +286,20 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) { + packet->options, + &global_scope, + DHO_DHCP_CLIENT_IDENTIFIER, +- MDL)) { +- ++ MDL); ++ if (!i) ++ i = get_option(&uid, ++ &dhcp_universe, ++ packet, ++ NULL, ++ NULL, ++ packet->options, ++ NULL, ++ packet->options, ++ &global_scope, ++ DHO_PXE_CLIENT_ID, ++ MDL); ++ if (i) { + snprintf(dbg_info, + sizeof(dbg_info), + "client-id %s", +diff --git a/server/failover.c b/server/failover.c +index 72f7b00..40fa691 100644 +--- a/server/failover.c ++++ b/server/failover.c +@@ -5988,6 +5988,9 @@ int load_balance_mine (struct packet *packet, dhcp_failover_state_t *state) + + oc = lookup_option(&dhcp_universe, packet->options, + DHO_DHCP_CLIENT_IDENTIFIER); ++ if (!oc) ++ oc = lookup_option(&dhcp_universe, packet -> options, ++ DHO_PXE_CLIENT_ID); + memset(&ds, 0, sizeof ds); + if (oc && + evaluate_option_cache(&ds, packet, NULL, NULL, +diff --git a/server/mdb.c b/server/mdb.c +index 052df67..8851366 100644 +--- a/server/mdb.c ++++ b/server/mdb.c +@@ -129,8 +129,9 @@ static int find_uid_statement (struct executable_statement *esp, + esp -> data.option && + (esp -> data.option -> option -> universe == + &dhcp_universe) && +- (esp -> data.option -> option -> code == +- DHO_DHCP_CLIENT_IDENTIFIER)) { ++ ((esp -> data.option -> option -> code == ++ DHO_DHCP_CLIENT_IDENTIFIER) || ++ (esp -> data.option -> option -> code == DHO_PXE_CLIENT_ID))) { + if (condp) { + log_error ("dhcp client identifier may not be %s", + "specified conditionally."); +-- +2.14.5 + diff --git a/0023-Detect-system-time-jumps.patch b/0024-Detect-system-time-changes.patch similarity index 78% rename from 0023-Detect-system-time-jumps.patch rename to 0024-Detect-system-time-changes.patch index 24eae19..cf38d0d 100644 --- a/0023-Detect-system-time-jumps.patch +++ b/0024-Detect-system-time-changes.patch @@ -1,8 +1,21 @@ +From 41c6032ace65119e6a400365f7e90283c930afd4 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Oct 2019 16:23:01 +0200 +Subject: [PATCH 24/26] Detect system time changes +Cc: pzhukov@redhat.com + +--- + client/dhclient.c | 6 ++++++ + common/dispatch.c | 11 ++++++++++- + includes/dhcpd.h | 3 ++- + server/dhcpd.c | 6 ++++++ + 4 files changed, 24 insertions(+), 2 deletions(-) + diff --git a/client/dhclient.c b/client/dhclient.c -index 4e5546a..6085b8e 100644 +index 9b65438..44d508a 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -5398,6 +5398,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, +@@ -5408,6 +5408,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, case server_awaken: state_reboot (client); break; @@ -59,10 +72,10 @@ index 635c510..ec6c227 100644 typedef struct { diff --git a/server/dhcpd.c b/server/dhcpd.c -index e06f6b4..778ef8d 100644 +index 530a923..4aef16b 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c -@@ -1779,6 +1779,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, +@@ -1767,6 +1767,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, { struct timeval tv; diff --git a/0024-bind-Detect-system-time-jumps.patch b/0025-bind-Detect-system-time-changes.patch similarity index 88% rename from 0024-bind-Detect-system-time-jumps.patch rename to 0025-bind-Detect-system-time-changes.patch index eda0c2e..8a52b38 100644 --- a/0024-bind-Detect-system-time-jumps.patch +++ b/0025-bind-Detect-system-time-changes.patch @@ -1,3 +1,18 @@ +From 5917ba14ccf7c7cc2eadf8b6cc666f8be4d2d2a4 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Oct 2019 16:23:24 +0200 +Subject: [PATCH 25/26] bind: Detect system time changes +Cc: pzhukov@redhat.com + +--- + bind/bind-9.11.2-P1/lib/isc/include/isc/result.h | 4 +-- + bind/bind-9.11.2-P1/lib/isc/include/isc/util.h | 4 +++ + bind/bind-9.11.2-P1/lib/isc/result.c | 2 ++ + bind/bind-9.11.2-P1/lib/isc/unix/app.c | 41 ++++++++++++++++++++-- + .../bind-9.11.2-P1/lib/isc/unix/include/isc/time.h | 20 +++++++++++ + bind/bind-9.11.2-P1/lib/isc/unix/time.c | 22 ++++++++++++ + 6 files changed, 89 insertions(+), 4 deletions(-) + diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h index 6f7ecf2..c7ef53c 100644 --- a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h @@ -179,3 +194,6 @@ index 5900846..1197337 100644 + +}; +#endif +-- +2.14.5 + diff --git a/0026-Add-dhclient-5-B-option-description.patch b/0026-Add-dhclient-5-B-option-description.patch new file mode 100644 index 0000000..f76952b --- /dev/null +++ b/0026-Add-dhclient-5-B-option-description.patch @@ -0,0 +1,33 @@ +From 7cae2da1c50c6680b92ca58eb03f9d59315010ba Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Oct 2019 16:28:04 +0200 +Subject: [PATCH 26/26] Add dhclient(5) -B option description +Cc: pzhukov@redhat.com + +Bug-Url: https://bugzilla.redhat.com/1764088 +--- + client/dhclient.8 | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/client/dhclient.8 b/client/dhclient.8 +index 0145b9f..b466ac7 100644 +--- a/client/dhclient.8 ++++ b/client/dhclient.8 +@@ -552,6 +552,14 @@ Path to the network configuration script invoked by + when it gets a lease. If unspecified, the default + .B CLIENTBINDIR/dhclient-script + is used. See \fBdhclient-script(8)\fR for a description of this file. ++.TP ++.BI \-B ++statement instructs dhclient to always set the bootp broadcast flag in ++request packets, so that servers will always broadcast replies. ++This is equivalent to supplying the dhclient -B argument, and has ++the same effect as specifying 'always-broadcast' in the server's dhcpd.conf. ++This option is provided as an extension to enable dhclient to work ++on IBM s390 Linux guests. + .PP + .SH PORTS + During operations the client may use multiple UDP ports +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index f8c2fd5..520deaa 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -33,31 +33,36 @@ Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service -Patch1: 0001-change-bug-url.patch -Patch2: 0002-additional-dhclient-options.patch -Patch3: 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch -Patch4: 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch -Patch5: 0005-Change-default-requested-options.patch -Patch6: 0006-Various-man-page-only-fixes.patch -Patch7: 0007-Change-paths-to-conform-to-our-standards.patch -Patch8: 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch -Patch9: 0009-Fix-garbage-in-format-string-error.patch -Patch10: 0010-Handle-null-timeout.patch -Patch11: 0011-Drop-unnecessary-capabilities.patch -Patch12: 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch -Patch13: 0013-DHCPv6-over-PPP-support-626514.patch -Patch14: 0014-IPoIB-support-660681.patch -Patch15: 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch -Patch16: 0016-Turn-on-creating-sending-of-DUID.patch -Patch17: 0017-Send-unicast-request-release-via-correct-interface.patch -Patch18: 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch -Patch19: 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch -Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch -Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch -Patch22: 0022-Backport-sd-notify-patch-for-systemd-support-1687040.patch -Patch23: 0023-Detect-system-time-jumps.patch -Patch24: 0024-bind-Detect-system-time-jumps.patch + + + +Patch1 : 0001-change-bug-url.patch +Patch2 : 0002-additional-dhclient-options.patch +Patch3 : 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch +Patch4 : 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch +Patch5 : 0005-Change-default-requested-options.patch +Patch6 : 0006-Various-man-page-only-fixes.patch +Patch7 : 0007-Change-paths-to-conform-to-our-standards.patch +Patch8 : 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch +Patch9 : 0009-Fix-garbage-in-format-string-error.patch +Patch10 : 0010-Handle-null-timeout.patch +Patch11 : 0011-Drop-unnecessary-capabilities.patch +Patch12 : 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch +Patch13 : 0013-DHCPv6-over-PPP-support-626514.patch +Patch14 : 0014-IPoIB-support-660681.patch +Patch15 : 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch +Patch16 : 0016-Turn-on-creating-sending-of-DUID.patch +Patch17 : 0017-Send-unicast-request-release-via-correct-interface.patch +Patch18 : 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch +Patch19 : 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch +Patch20 : 0020-Discover-all-hwaddress-for-xid-uniqueness.patch +Patch21 : 0021-Load-leases-DB-in-non-replay-mode-only.patch +Patch22 : 0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch +Patch23 : 0023-option-97-pxe-client-id.patch +Patch24 : 0024-Detect-system-time-changes.patch +Patch25 : 0025-bind-Detect-system-time-changes.patch +Patch26 : 0026-Add-dhclient-5-B-option-description.patch From b5d7414e60ede7a4b4488efa446d2c177bbc2080 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 7 Nov 2019 14:50:40 +0100 Subject: [PATCH 32/81] Readd systemd patch (#1768604) --- ...tify-patch-to-manage-dhcpd-with-syst.patch | 97 +++++++++++++++++++ dhcp.spec | 6 +- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch diff --git a/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch b/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch new file mode 100644 index 0000000..cde51de --- /dev/null +++ b/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch @@ -0,0 +1,97 @@ +From 8d974fd1f667e1b957ad4092fe66a8bb94f5f8fd Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 7 Nov 2019 14:47:45 +0100 +Subject: [PATCH 1/1] Add missed sd notify patch to manage dhcpd with systemd +Cc: pzhukov@redhat.com + +--- + configure.ac | 11 +++++++++++ + relay/dhcrelay.c | 12 ++++++++++++ + server/dhcpd.c | 12 ++++++++++++ + 3 files changed, 35 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 15fc0d7..0c08000 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1014,6 +1014,17 @@ if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; + AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) + fi + ++AC_ARG_WITH(systemd, ++ AC_HELP_STRING([--with-systemd], ++ [enable sending status notifications to systemd daemon (default is no)]), ++ [systemd=$withval], ++ [systemd=no]) ++ ++if test x$systemd = xyes ; then ++ AC_CHECK_LIB(systemd, sd_notifyf, , ++ AC_MSG_FAILURE([*** systemd library not present - do you need to install systemd-libs package?])) ++fi ++ + # Append selected warning levels to CFLAGS before substitution (but after + # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). + CFLAGS="$CFLAGS $STD_CWARNINGS" +diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c +index 7b4f4f1..9eb5bfd 100644 +--- a/relay/dhcrelay.c ++++ b/relay/dhcrelay.c +@@ -37,6 +37,10 @@ + int keep_capabilities = 0; + #endif + ++#ifdef HAVE_LIBSYSTEMD ++#include ++#endif ++ + TIME default_lease_time = 43200; /* 12 hours... */ + TIME max_lease_time = 86400; /* 24 hours... */ + struct tree_cache *global_options[256]; +@@ -845,6 +849,14 @@ main(int argc, char **argv) { + } + #endif + ++#ifdef HAVE_LIBSYSTEMD ++ /* We are ready to process incomming packets. Let's notify systemd */ ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Dispatching packets...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++#endif ++ + /* Start dispatching packets and timeouts... */ + dispatch(); + +diff --git a/server/dhcpd.c b/server/dhcpd.c +index 4aef16b..778ef8d 100644 +--- a/server/dhcpd.c ++++ b/server/dhcpd.c +@@ -60,6 +60,10 @@ gid_t set_gid = 0; + struct class unknown_class; + struct class known_class; + ++#ifdef HAVE_LIBSYSTEMD ++#include ++#endif ++ + struct iaddr server_identifier; + int server_identifier_matched; + +@@ -1057,6 +1061,14 @@ main(int argc, char **argv) { + /* Log that we are about to start working */ + log_info("Server starting service."); + ++#ifdef HAVE_LIBSYSTEMD ++ /* We are ready to process incomming packets. Let's notify systemd */ ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Dispatching packets...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++#endif ++ + /* + * Receive packets and dispatch them... + * dispatch() will never return. +-- +2.14.5 + diff --git a/dhcp.spec b/dhcp.spec index 520deaa..15ca7d8 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 17%{?dist} +Release: 18%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -63,6 +63,7 @@ Patch23 : 0023-option-97-pxe-client-id.patch Patch24 : 0024-Detect-system-time-changes.patch Patch25 : 0025-bind-Detect-system-time-changes.patch Patch26 : 0026-Add-dhclient-5-B-option-description.patch +Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch @@ -533,6 +534,9 @@ done %endif %changelog +* Thu Nov 7 2019 Pavel Zhukov - 12:4.4.1-18 +- Readd sd-notify patch + * Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 - Move the NetworkManager dispatcher script out of /etc From c12398419a70ede3fe4a73f9bedc9d4e4647e250 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 11 Nov 2019 10:18:13 +0100 Subject: [PATCH 33/81] Reword -B option manpage --- ...-Add-dhclient-5-B-option-description.patch | 31 +++++++------------ dhcp.spec | 6 +++- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/0026-Add-dhclient-5-B-option-description.patch b/0026-Add-dhclient-5-B-option-description.patch index f76952b..7ddfacf 100644 --- a/0026-Add-dhclient-5-B-option-description.patch +++ b/0026-Add-dhclient-5-B-option-description.patch @@ -1,33 +1,24 @@ -From 7cae2da1c50c6680b92ca58eb03f9d59315010ba Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Tue, 22 Oct 2019 16:28:04 +0200 -Subject: [PATCH 26/26] Add dhclient(5) -B option description -Cc: pzhukov@redhat.com +commit 6acfd3125546a0e5db8fae8a9964cd2f88bf68c0 +Author: Pavel Zhukov +Date: Tue Oct 22 16:28:04 2019 +0200 -Bug-Url: https://bugzilla.redhat.com/1764088 ---- - client/dhclient.8 | 8 ++++++++ - 1 file changed, 8 insertions(+) + Add dhclient(5) -B option description + + Bug-Url: https://bugzilla.redhat.com/1764088 diff --git a/client/dhclient.8 b/client/dhclient.8 -index 0145b9f..b466ac7 100644 +index 0145b9f..5226de5 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 -@@ -552,6 +552,14 @@ Path to the network configuration script invoked by +@@ -552,6 +552,11 @@ Path to the network configuration script invoked by when it gets a lease. If unspecified, the default .B CLIENTBINDIR/dhclient-script is used. See \fBdhclient-script(8)\fR for a description of this file. +.TP +.BI \-B -+statement instructs dhclient to always set the bootp broadcast flag in -+request packets, so that servers will always broadcast replies. -+This is equivalent to supplying the dhclient -B argument, and has -+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf. -+This option is provided as an extension to enable dhclient to work -+on IBM s390 Linux guests. ++Always set the bootp broadcast flag in request packets, so that ++servers will always broadcast replies. This option is provided as ++an extension to enable dhclient to work on IBM s390 Linux guests. .PP .SH PORTS During operations the client may use multiple UDP ports --- -2.14.5 - diff --git a/dhcp.spec b/dhcp.spec index 15ca7d8..8cb6754 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,8 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 18%{?dist} +Release: 19%{?dist} + # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. @@ -534,6 +535,9 @@ done %endif %changelog +* Mon Nov 11 2019 Pavel Zhukov - 12:4.4.1-19 +- Reword -B option description + * Thu Nov 7 2019 Pavel Zhukov - 12:4.4.1-18 - Readd sd-notify patch From b58c84c8bc3cb3357d3830e5693b6417b721c0eb Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 27 Nov 2019 13:09:00 +0100 Subject: [PATCH 34/81] fix FD leak in confparse --- ...ad-leases-DB-in-non-replay-mode-only.patch | 43 +++++++++---------- dhcp.spec | 5 ++- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/0021-Load-leases-DB-in-non-replay-mode-only.patch b/0021-Load-leases-DB-in-non-replay-mode-only.patch index 72aaeef..d398918 100644 --- a/0021-Load-leases-DB-in-non-replay-mode-only.patch +++ b/0021-Load-leases-DB-in-non-replay-mode-only.patch @@ -1,15 +1,11 @@ -From e2de752020ea51428bbaaa7358f08632c42aa89d Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Thu, 21 Feb 2019 10:44:06 +0100 -Subject: [PATCH 21/26] Load leases DB in non-replay mode only -Cc: pzhukov@redhat.com +commit 50c2b3ba8ce030a47b55dd707bb8a6ab20444a05 +Author: Pavel Zhukov +Date: Thu Feb 21 10:44:06 2019 +0100 ---- - server/confpars.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) + Load leases DB in non-replay mode only diff --git a/server/confpars.c b/server/confpars.c -index 2743979..db21a0b 100644 +index 2743979..6b61964 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, @@ -17,35 +13,38 @@ index 2743979..db21a0b 100644 cfile = (struct parse *)0; #if defined (TRACING) + // No need to dmalloc huge memory region if we're not going to re-play -+ if (!trace_playback()){ ++ if (!trace_record()){ + status = new_parse(&cfile, file, NULL, 0, filename, 0); + goto noreplay; + }; flen = lseek (file, (off_t)0, SEEK_END); if (flen < 0) { boom: -@@ -171,9 +176,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, +@@ -165,7 +170,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, + if (result != ulen) + log_fatal ("%s: short read of %d bytes instead of %d.", + filename, ulen, result); +- close (file); + memfile: + /* If we're recording, write out the filename and file contents. */ if (trace_record ()) - trace_write_packet (ttype, ulen + tflen + 1, dbuf, MDL); - status = new_parse(&cfile, -1, fbuf, ulen, filename, 0); /* XXX */ -+ dfree(dbuf, MDL); +@@ -174,6 +178,9 @@ isc_result_t read_conf_file (const char *filename, struct group *group, #else status = new_parse(&cfile, file, NULL, 0, filename, 0); #endif + noreplay: ++ if (!trace_playback()) ++ close (file); if (status != ISC_R_SUCCESS || cfile == NULL) return status; -@@ -182,9 +189,6 @@ isc_result_t read_conf_file (const char *filename, struct group *group, - else +@@ -183,7 +190,8 @@ isc_result_t read_conf_file (const char *filename, struct group *group, status = conf_file_subparse (cfile, group, group_type); end_parse (&cfile); --#if defined (TRACING) + #if defined (TRACING) - dfree (dbuf, MDL); --#endif ++ if (trace_record()) ++ dfree (dbuf, MDL); + #endif return status; } - --- -2.14.5 - diff --git a/dhcp.spec b/dhcp.spec index 8cb6754..a87cae7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.1 -Release: 19%{?dist} +Release: 20%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -535,6 +535,9 @@ done %endif %changelog +* Wed Nov 27 2019 Pavel Zhukov - 12:4.4.1-20 +- Fix leak of file descriptors + * Mon Nov 11 2019 Pavel Zhukov - 12:4.4.1-19 - Reword -B option description From 80b3b1b833c7cb3455a6fc4b35238b1a451ab4c3 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 6 Jan 2020 14:52:18 +0100 Subject: [PATCH 35/81] New version 4.4.2b1 (#1784898) --- 0025-bind-Detect-system-time-changes.patch | 126 ++- dhcp.spec | 972 +-------------------- 2 files changed, 70 insertions(+), 1028 deletions(-) diff --git a/0025-bind-Detect-system-time-changes.patch b/0025-bind-Detect-system-time-changes.patch index 8a52b38..80191b2 100644 --- a/0025-bind-Detect-system-time-changes.patch +++ b/0025-bind-Detect-system-time-changes.patch @@ -1,39 +1,38 @@ -From 5917ba14ccf7c7cc2eadf8b6cc666f8be4d2d2a4 Mon Sep 17 00:00:00 2001 +From ef4f5e80d8a1ea1507829ea6f5214f276478f475 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Oct 2019 16:23:24 +0200 -Subject: [PATCH 25/26] bind: Detect system time changes +Subject: [PATCH 25/27] bind: Detect system time changes Cc: pzhukov@redhat.com --- - bind/bind-9.11.2-P1/lib/isc/include/isc/result.h | 4 +-- - bind/bind-9.11.2-P1/lib/isc/include/isc/util.h | 4 +++ - bind/bind-9.11.2-P1/lib/isc/result.c | 2 ++ - bind/bind-9.11.2-P1/lib/isc/unix/app.c | 41 ++++++++++++++++++++-- - .../bind-9.11.2-P1/lib/isc/unix/include/isc/time.h | 20 +++++++++++ - bind/bind-9.11.2-P1/lib/isc/unix/time.c | 22 ++++++++++++ + bind/bind/lib/isc/include/isc/result.h | 4 ++- + bind/bind/lib/isc/include/isc/util.h | 4 +++ + bind/bind/lib/isc/result.c | 2 ++ + bind/bind/lib/isc/unix/app.c | 41 ++++++++++++++++++++++++++++--- + bind/bind/lib/isc/unix/include/isc/time.h | 20 +++++++++++++++ + bind/bind/lib/isc/unix/time.c | 22 +++++++++++++++++ 6 files changed, 89 insertions(+), 4 deletions(-) -diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -index 6f7ecf2..c7ef53c 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -+++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/result.h -@@ -81,9 +81,9 @@ - #define ISC_R_UNSET 61 /*%< unset */ - #define ISC_R_MULTIPLE 62 /*%< multiple */ - #define ISC_R_WOULDBLOCK 63 /*%< would block */ -- -+#define ISC_R_TIMESHIFTED 64 /*%< system time changed */ - /*% Not a result code: the number of results. */ --#define ISC_R_NRESULTS 64 -+#define ISC_R_NRESULTS 66 +diff --git a/bind/bind/lib/isc/include/isc/result.h b/bind/bind/lib/isc/include/isc/result.h +index 0389efa..0e35f98 100644 +--- a/bind/bind/lib/isc/include/isc/result.h ++++ b/bind/bind/lib/isc/include/isc/result.h +@@ -89,7 +89,9 @@ + #define ISC_R_DISCFULL 67 /*%< disc full */ + #define ISC_R_DEFAULT 68 /*%< default */ + #define ISC_R_IPV4PREFIX 69 /*%< IPv4 prefix */ +-#define ISC_R_NRESULTS 70 ++#define ISC_R_TIMESHIFTED 70 /*%< system time changed */ ++/*% Not a result code: the number of results. */ ++#define ISC_R_NRESULTS 71 ISC_LANG_BEGINDECLS -diff --git a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -index f2cda26..9d54396 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -+++ b/bind/bind-9.11.2-P1/lib/isc/include/isc/util.h -@@ -238,6 +238,10 @@ +diff --git a/bind/bind/lib/isc/include/isc/util.h b/bind/bind/lib/isc/include/isc/util.h +index 973c348..cceeb5e 100644 +--- a/bind/bind/lib/isc/include/isc/util.h ++++ b/bind/bind/lib/isc/include/isc/util.h +@@ -289,6 +289,10 @@ extern void mock_assert(const int result, const char* const expression, * Time */ #define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS) @@ -43,39 +42,39 @@ index f2cda26..9d54396 100644 + /*% - * Misc. -diff --git a/bind/bind-9.11.2-P1/lib/isc/result.c b/bind/bind-9.11.2-P1/lib/isc/result.c -index 071dac0..e362735 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/result.c -+++ b/bind/bind-9.11.2-P1/lib/isc/result.c -@@ -96,6 +96,7 @@ static const char *description[ISC_R_NRESULTS] = { - "unset", /*%< 61 */ - "multiple", /*%< 62 */ - "would block", /*%< 63 */ -+ "time changed", /*%< 64 */ + * Alignment +diff --git a/bind/bind/lib/isc/result.c b/bind/bind/lib/isc/result.c +index a9db132..7c04831 100644 +--- a/bind/bind/lib/isc/result.c ++++ b/bind/bind/lib/isc/result.c +@@ -105,6 +105,7 @@ static const char *description[ISC_R_NRESULTS] = { + "disc full", /*%< 67 */ + "default", /*%< 68 */ + "IPv4 prefix", /*%< 69 */ ++ "time changed", /*%< 70 */ }; static const char *identifier[ISC_R_NRESULTS] = { -@@ -163,6 +164,7 @@ static const char *identifier[ISC_R_NRESULTS] = { - "ISC_R_UNSET", - "ISC_R_MULTIPLE", - "ISC_R_WOULDBLOCK", +@@ -178,6 +179,7 @@ static const char *identifier[ISC_R_NRESULTS] = { + "ISC_R_DISCFULL", + "ISC_R_DEFAULT", + "ISC_R_IPV4PREFIX", + "ISC_R_TIMESHIFTED", }; #define ISC_RESULT_RESULTSET 2 -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/app.c b/bind/bind-9.11.2-P1/lib/isc/unix/app.c -index 5546922..7d95ad5 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/app.c -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/app.c -@@ -438,15 +438,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, +diff --git a/bind/bind/lib/isc/unix/app.c b/bind/bind/lib/isc/unix/app.c +index a6e9882..dbd23f7 100644 +--- a/bind/bind/lib/isc/unix/app.c ++++ b/bind/bind/lib/isc/unix/app.c +@@ -442,15 +442,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, static isc_result_t evloop(isc__appctx_t *ctx) { isc_result_t result; + isc_time_t now; +#ifdef CLOCK_BOOTTIME + isc_time_t monotonic; -+ isc_uint64_t diff = 0; ++ uint64_t diff = 0; +#else + isc_time_t prev; + TIME_NOW(&prev); @@ -91,10 +90,10 @@ index 5546922..7d95ad5 100644 + struct timeval tv, *tvp; isc_socketwait_t *swait; - isc_boolean_t readytasks; - isc_boolean_t call_timer_dispatch = ISC_FALSE; + bool readytasks; + bool call_timer_dispatch = false; -+ isc_uint64_t us; ++ uint64_t us; + +#ifdef CLOCK_BOOTTIME + // TBD macros for following three lines @@ -121,23 +120,22 @@ index 5546922..7d95ad5 100644 /* * Check the reload (or suspend) case first for exiting the * loop as fast as possible in case: -@@ -471,9 +507,10 @@ evloop(isc__appctx_t *ctx) { +@@ -475,9 +511,8 @@ evloop(isc__appctx_t *ctx) { if (result != ISC_R_SUCCESS) tvp = NULL; else { -- isc_uint64_t us; -+ - +- uint64_t us; +- TIME_NOW(&now); + us = isc_time_microdiff(&when, &now); if (us == 0) - call_timer_dispatch = ISC_TRUE; -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -index 939db5d..e798ee6 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/include/isc/time.h -@@ -127,6 +127,26 @@ isc_time_isepoch(const isc_time_t *t); + call_timer_dispatch = true; +diff --git a/bind/bind/lib/isc/unix/include/isc/time.h b/bind/bind/lib/isc/unix/include/isc/time.h +index b864c29..5dd43c9 100644 +--- a/bind/bind/lib/isc/unix/include/isc/time.h ++++ b/bind/bind/lib/isc/unix/include/isc/time.h +@@ -132,6 +132,26 @@ isc_time_isepoch(const isc_time_t *t); *\li 't' is a valid pointer. */ @@ -164,11 +162,11 @@ index 939db5d..e798ee6 100644 isc_result_t isc_time_now(isc_time_t *t); /*%< -diff --git a/bind/bind-9.11.2-P1/lib/isc/unix/time.c b/bind/bind-9.11.2-P1/lib/isc/unix/time.c -index 5900846..1197337 100644 ---- a/bind/bind-9.11.2-P1/lib/isc/unix/time.c -+++ b/bind/bind-9.11.2-P1/lib/isc/unix/time.c -@@ -452,3 +452,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { +diff --git a/bind/bind/lib/isc/unix/time.c b/bind/bind/lib/isc/unix/time.c +index 8edc9df..fe0bb91 100644 +--- a/bind/bind/lib/isc/unix/time.c ++++ b/bind/bind/lib/isc/unix/time.c +@@ -498,3 +498,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { t->nanoseconds / NS_PER_MS); } } diff --git a/dhcp.spec b/dhcp.spec index a87cae7..e12ff72 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -8,14 +8,14 @@ %global dhcpconfdir %{_sysconfdir}/dhcp -#global prever b1 +%global prever b1 #global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} Summary: Dynamic host configuration protocol software Name: dhcp -Version: 4.4.1 -Release: 20%{?dist} +Version: 4.4.2 +Release: 1.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -216,7 +216,7 @@ This package contains doxygen-generated documentation. %setup -n dhcp-%{DHCPVERSION} pushd bind tar -xvf bind.tar.gz -ln -s bind-9* bind-sources +ln -s bind-9* bind popd %autopatch -p1 @@ -535,6 +535,10 @@ done %endif %changelog +* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-1.b1 +- Dropped all (pre 4.0.0) changelog +- New version (4.4.2b1) + * Wed Nov 27 2019 Pavel Zhukov - 12:4.4.1-20 - Fix leak of file descriptors @@ -1862,963 +1866,3 @@ done - source tree now uses GNU autoconf/automake - Removed the libdhcp4client-static package -* Tue Dec 04 2007 David Cantrell - 12:3.1.0-12 -- Requires line fixes - -* Tue Dec 04 2007 David Cantrell - 12:3.1.0-11 -- Postinstall script fixes - -* Mon Nov 19 2007 David Cantrell - 12:3.1.0-10 -- Remove dhcdbd check from dhcpd init script - -* Thu Nov 15 2007 David Cantrell - 12:3.1.0-9 -- Fix chkconfig lines in dhcpd and dhcrelay init scripts (#384431) -- Improve preun scriptlet - -* Mon Nov 12 2007 David Cantrell - 12:3.1.0-8 -- Put dhcp.schema in /etc/openldap/schema (#330471) -- Remove manpages patch and keep modified man pages as Source files -- Improve dhclient.8 man page to list options in a style consistent - with most other man pages on the planet -- Upgrade to latest dhcp LDAP patch, which brings in a new dhcpd-conf-to-ldap - script, updated schema file, and other bug fixes including SSL support for - LDAP authentication (#375711) -- Do not run dhcpd and dhcrelay services by default (#362321) - -* Fri Oct 26 2007 David Cantrell - 12:3.1.0-7 -- libdhcp4client-devel requires openldap-devel - -* Thu Oct 25 2007 David Cantrell - 12:3.1.0-6 -- Rename Makefile.dist to Makefile.libdhcp4client -- Spec file cleanups -- Include stdarg.h in libdhcp_control.h - -* Thu Oct 25 2007 David Cantrell - 12:3.1.0-5 -- Remove chkconfig usage for ypbind in dhclient-script (#351211) -- Combine dhcp-static and dhcp-devel packages since there are no shared - libraries offered -- Remove Requires: openldap-devel on dhcp-devel and libdhcp4client-devel -- Make libdhcp4client-devel require dhcp-devel (for libdhcp_control.h) -- Do not make dhcp-devel require the dhcp package, those are independent - -* Wed Oct 24 2007 David Cantrell - 12:3.1.0-4 -- Install libdhcp_control.h to /usr/include/isc-dhcp/libdhcp_control.h -- Update libdhcp4client patch to use new libdhcp_control.h location -- Remove __fedora_contrib/ subdirectory in /usr/share/doc/dhcp-3.1.0, - install those docs to /usr/share/doc/dhcp-3.1.0 - -* Wed Oct 24 2007 David Cantrell - 12:3.1.0-3 -- Remove ISC.Cflags variable from libdhcp4client.pc - -* Wed Oct 24 2007 David Cantrell - 12:3.1.0-2 -- Fix 'restart' mode in init script (#349341) - -* Tue Oct 23 2007 David Cantrell - 12:3.1.0-1 -- Upgrade to ISC dhcp-3.1.0 -- Remove unnecessary /usr/include/dhcp4client/isc_dhcp headers -- Make sure restorecon is run on /var/lib/dhcpd/dhcpd.leases (#251688) -- Install dhcp.schema to /etc/openldap/dhcp.schema (#330471) - -* Mon Oct 08 2007 David Cantrell - 12:3.0.6-8 -- Init script fixes (#320761) -- Removed linux.dbus-example script since we aren't using dhcdbd now -- Remove dhcdbd leftovers from dhclient-script (#306381) - -* Wed Sep 26 2007 David Cantrell - 12:3.0.6-7 -- In dhcp.conf.5, explain that if no next-server statement applies to the - requesting client, the address 0.0.0.0 is used (#184484). - -* Wed Sep 26 2007 David Cantrell - 12:3.0.6-6 -- Init script fixes for dhcpd and dhcrelay (#278601) - -* Mon Sep 10 2007 David Cantrell - 12:3.0.6-5 -- Fix typos in ldap.c and correct LDAP macros (#283391) - -* Tue Sep 04 2007 David Cantrell - 12:3.0.6-4 -- Do not override manually configured NTP servers in /etc/ntp.conf (#274761) - -* Wed Aug 15 2007 David Cantrell - 12:3.0.6-3 -- Remove the -x switch enabling extended new option info. If given to - dhclient now, it's ignored. - -* Wed Jul 18 2007 Florian La Roche - 12:3.0.6-2 -- use a new macro name vendor -> vvendor to not overwrite the - RPMTAG_VENDOR setting - -* Tue Jul 10 2007 David Cantrell - 12:3.0.6-1 -- Upgrade to ISC dhcp-3.0.6 -- Remove the -TERM option from killproc command (#245317) - -* Wed Jun 20 2007 David Cantrell - 12:3.0.5-37 -- For init script functions, echo new line after OK or FAIL msg (#244956) - -* Fri Jun 15 2007 David Cantrell - 12:3.0.5-36 -- BOOTP_BROADCAST_ALWAYS is not the same as ATSFP, fixed -- Added anycast mac support to dhclient for OLPC - -* Tue May 22 2007 David Cantrell - 12:3.0.5-35 -- Disable -fvisibility=hidden for now as it breaks dhcpv4_client() from - the shared library (#240804) - -* Thu Apr 26 2007 David Cantrell - 12:3.0.5-34 -- Init script fixes (#237985, #237983) -- Reference correct scripts in dhclient-script.8 man page (#238036) - -* Fri Apr 20 2007 David Cantrell - 12:3.0.5-33 -- Rename -devel-static packages to -static (#225691) - -* Tue Apr 17 2007 David Cantrell - 12:3.0.5-32 -- Added missing newline on usage() screen in dhclient - -* Thu Apr 12 2007 David Cantrell - 12:3.0.5-31 -- Spec file cleanups (#225691) -- Put libdhcpctl.a and libomapi.a in dhcp-devel-static package -- Put libdhcp4client.a in libdhcp4client-devel-static package - -* Wed Apr 11 2007 David Cantrell - 12:3.0.5-30 -- Enable Xen patch again, kernel bits present (#231444) - -* Tue Apr 10 2007 David Cantrell - 12:3.0.5-29 -- Spec file cleanups (#225691) - -* Mon Apr 09 2007 David Cantrell - 12:3.0.5-28 -- Remove Xen patch (#235649, from RHEL-5, doesn't work correctly for Fedora) - -* Sun Apr 01 2007 David Cantrell - 12:3.0.5-27 -- Ensure that Perl and Perl modules are not added as dependencies (#234688) -- Reorganize patches by feature/bug per packaging guidelines (#225691) -- Move the following files from patches to source files: - linux.dbus-example, linux, Makefile.dist, dhcp4client.h, libdhcp_control.h -- Compile with -fno-strict-aliasing as ISC coding standards generally don't - agree well with gcc 4.x.x - -* Wed Mar 21 2007 David Cantrell - 12:3.0.5-26 -- Fix formatting problems in dhclient man page (#233076). - -* Mon Mar 05 2007 David Cantrell - 12:3.0.5-25 -- Man pages need 0644 permissions (#222572) - -* Thu Mar 01 2007 David Cantrell - 12:3.0.5-24 -- Include contrib/ subdirectory in /usr/share/doc (#230476) -- Added back Requires for perl since dhcpd-conf-to-ldap needs it (#225691) -- Put copies of dhcp-options and dhcp-eval man pages in the dhcp and - dhclient packages rather than having the elaborate symlink collection -- Explicitly name man pages in the %%files listings -- Use the %%{_sysconfdir} and %%{_initrddir} macros (#225691) -- Use macros for commands in %%build and %%install -- Split README.ldap, draft-ietf-dhc-ldap-schema-01.txt, and - dhcpd-conf-to-ldap.pl out of the LDAP patch -- Split linux.dbus-example script out of the extended new option info patch -- Remove unnecessary changes from the Makefile patch - -* Wed Feb 28 2007 David Cantrell - 12:3.0.5-23 -- Update Xen partial checksums patch -- Remove perl Requires (#225691) -- Make dhcp-devel depend on dhcp = e:v-r (#225691) -- libdhcp4client-devel Requires pkgconfig (#225691) -- Do not add to RPM_OPT_FLAGS, use COPTS variable instead (#225691) -- Use %%{buildroot} macro instead of RPM_BUILD_ROOT variable (#225691) -- Preserve timestamps on all installed data files (#225691) -- Remove dhcp-options.5.gz and dhcp-eval.5.gz symlinking in post (#225691) -- Use %%defattr(-,root,root,-) (#225691) -- Do not flag init scripts as %%config in %%files section (#225691) - -* Tue Feb 27 2007 David Cantrell - 12:3.0.5-22 -- Change license field to say ISC - -* Sat Feb 17 2007 David Cantrell - 12:3.0.5-21 -- Obsoletes dhcpcd <= 1.3.22 (#225691) - -* Fri Feb 16 2007 David Cantrell - 12:3.0.5-20 -- Review cleanups (#225691) - -* Fri Feb 09 2007 David Cantrell - 12:3.0.5-19 -- Require openldap-devel on dhcp-devel and libdhcp4client-devel packages - -* Thu Feb 08 2007 David Cantrell - 12:3.0.5-18 -- Fix libdhcp4client visibility _again_ (#198496) - -* Thu Feb 08 2007 David Cantrell - 12:3.0.5-17 -- Remove period from summary line (package review) -- Use preferred BuildRoot (package review) - -* Sun Feb 04 2007 David Cantrell - 12:3.0.5-16 -- Disable xen-checksums patch for now as it breaks dhclient (#227266) -- Updated fix-warnings patch - -* Sun Feb 04 2007 David Woodhouse - 12:3.0.5-15 -- Fix broken file reading due to LDAP patch - -* Fri Feb 02 2007 David Cantrell - 12:3.0.5-14 -- Only export the symbols we want in libdhcp4client (#198496) - -* Wed Jan 31 2007 David Cantrell - 12:3.0.5-13 -- Add support for dhcpd(8) to read dhcpd.conf from an LDAP server (#224352) -- Remove invalid ja_JP.eucJP man pages from /usr/share/doc - -* Wed Jan 31 2007 David Cantrell - 12:3.0.5-12 -- Rebuild - -* Tue Jan 30 2007 David Cantrell - 12:3.0.5-11 -- Remove FORTIFY_SOURCE=0 leftovers from testing last week (whoops) - -* Tue Jan 30 2007 David Cantrell - 12:3.0.5-10 -- Fix Xen networking problems with partial checksums (#221964) - -* Mon Jan 29 2007 David Cantrell - 12:3.0.5-9 -- Remove dhcptables.pl from the source package -- Mark libres.a symbols hidden (#198496) -- Set DT_SONAME on libdhcp4client to libdhcp4client-VERSION.so.0 -- Make function definition for dst_hmac_md5_init() match the prototype - -* Wed Nov 29 2006 David Cantrell - 12:3.0.5-8 -- Roll md5 patch in to libdhcp4client patch since it's related -- Do not overwrite /etc/ntp/step-tickers (#217663) -- Resolves: rhbz#217663 - -* Wed Nov 22 2006 Peter Jones - 12:3.0.5-7 -- Build the MD5 functions we link against. - -* Thu Nov 16 2006 David Cantrell - 12:3.0.5-6 -- Set permission of libdhcp4client.so.1 to 0755 (#215910) - -* Tue Nov 14 2006 David Cantrell - 12:3.0.5-5 -- Do not link res_query.o in to libdhcp4client (#215501) - -* Mon Nov 13 2006 David Cantrell - 12:3.0.5-4 -- Enable relinquish_timeouts() and cancel_all_timeouts() even when - DEBUG_MEMORY_LEAKAGE_ON_EXIT is not defined -- Add prototypes for b64_pton() and b64_ntop in dst/ -- Move variable declarations and labels around in the fix-warnings patch -- Expand the list of objects needed for libdhcp4client (#215328) -- Use libres.a in libdhcp4client since it gives correct minires objects -- Remove the dhcp options table in C, Perl, Python, and text format (these - were reference files added to /usr/share/doc) - -* Mon Nov 13 2006 David Cantrell - 12:3.0.5-3 -- Remove struct universe *universe from envadd_state in the client patch -- Add struct universe *universe to envadd_state in the enoi patch -- Add example dbusified dhclient-script in the enoi patch - -* Fri Nov 10 2006 David Cantrell - 12:3.0.5-2 -- Change the way libdhcp4client is compiled (patch main source, create new - Makefile rather than copy and patch code after main patches) -- Fix up problems generating compiler warnings -- Use 'gcc' for making dependencies -- Pass -fPIC instead of -fpie/-fPIE in compiler flags -- Combine the extended new option info changes in to one patch file (makes - it easier for outside projects that want to use dhcdbd and NetworkManager) - -* Tue Nov 07 2006 David Cantrell - 12:3.0.5-1 -- Upgrade to ISC dhcp-3.0.5 - -* Fri Oct 27 2006 David Cantrell - 12:3.0.4-24 -- Put typedef for dhcp_state_e before it's used in libdhcp_control.h (#212612) -- Remove dhcpctl.3 from minires/Makefile.dist because it's in dhcpctl -- Remove findptrsize.c and just set compiler flag for ppc64 and s390x - -* Sat Oct 14 2006 David Cantrell - 12:3.0.4-23 -- Remove NODEBUGINFO junk from the spec file as well as old/unused code -- Rolled all 68 patches in to one patch since more than half of them get - overridden by later patches anyway. - -* Fri Oct 13 2006 David Cantrell - 12:3.0.4-22 -- Send usage() screen in dhclient to stdout rather than the syslog (#210524) - -* Mon Sep 11 2006 David Cantrell - 12:3.0.4-21 -- Rebuild (#205505) - -* Fri Aug 18 2006 Jesse Keating - 12:3.0.4-20 -- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc* - (#203001) - -* Thu Aug 17 2006 David Cantrell - 12:3.0.4-19 -- Fix mkdir problem in libdhcp4client.Makefile - -* Thu Aug 17 2006 David Cantrell - 12:3.0.4-18 -- Fix dhclient on s390x platform (#202911) - -* Wed Jul 12 2006 Jesse Keating - 12:3.0.4-17.1 -- rebuild - -* Wed Jun 28 2006 Peter Jones - 12:3.0.4-17 -- export timeout cancellation functions in libdhcp4client - -* Wed Jun 28 2006 Florian La Roche - 12:3.0.4-16 -- add proper coreutils requires for the scripts - -* Thu Jun 22 2006 Peter Jones - 12:3.0.4-15 -- Make timeout dispatch code not recurse while traversing a linked - list, so it doesn't try to free an entries that have been removed. - (bz #195723) -- Don't patch in a makefile, do it in the spec. - -* Thu Jun 08 2006 Jason Vas Dias - 12:3.0.4-14 -- fix bug 191461: preserve ntp.conf local clock fudge statements -- fix bug 193047: both dhcp and dhclient need to ship common - man-pages: dhcp-options(5) dhcp-eval(5) - -* Tue May 30 2006 Jason Vas Dias - 12:3.0.4-12 -- Make -R option take effect in per-interface client configs - -* Fri May 26 2006 Jason Vas Dias - 12:3.0.4-10 -- fix bug 193047: allow $METRIC to be specified for dhclient routes -- add a '-R ' dhclient argument - -* Fri May 26 2006 Jason Vas Dias - 12:3.0.4-8.1 -- fix a libdhcp4client memory leak (1 strdup) and - fill in client->packet.siaddr before bind_lease() for pump - nextServer option. - -* Fri May 19 2006 Jason Vas Dias - 12:3.0.4-8 -- Make libdhcp4client a versioned .so (BZ 192146) - -* Wed May 17 2006 Jason Vas Dias - 12:3.0.4-4 -- Enable libdhcp4client build - -* Tue May 16 2006 Jason Vas Dias - 12:3.0.4-2 -- Fix bug 191470: prevent dhcpd writing 8 byte dhcp-lease-time - option in packets on 64-bit platforms - -* Sun May 14 2006 Jason Vas Dias - 12:3.0.4-2 -- Add the libdhcp4client library package for use by the new libdhcp - package, which enables dhclient to be invoked by programs in a - single process from the library. The normal dhclient code is - unmodified by this. - -* Mon May 08 2006 Jason Vas Dias - 12:3.0.4-2 -- Add new dhclient command line argument: - -V - -* Sat May 06 2006 Jason Vas Dias - 12:3.0.4-1 -- Upgrade to upstream version 3.0.4, released Friday 2006-05-05 . -- Add new dhclient command line arguments: - -H : parse as dhclient.conf 'send host-name "";' - -F : parse as dhclient.conf 'send fqdn.fqdn "";' - -T : parse as dhclient.conf 'timeout ;' - -* Thu Mar 02 2006 Jason Vas Dias - 11:3.0.3-26 -- fix bug 181908: enable dhclient to operate on IBM zSeries z/OS linux guests: - o add -I dhclient command line option - o add -B "always broadcast" dhclient command line option - o add 'bootp-broadcast-always;' dhclient.conf statement - -* Mon Feb 20 2006 Jason Vas Dias - 11:3.0.3-24 -- Apply upstream fix for bug 176615 / ISC RT#15811 - -* Tue Feb 14 2006 Jason Vas Dias - 11:3.0.3-22 -- fix bug 181482: resolv.conf not updated on RENEW : - since dhcp-3.0.1rc12-RHScript.patch: "$new_domain_servers" should have - been "$new_domain_name_servers" :-( - -* Fri Feb 10 2006 Jesse Keating - 11:3.0.3-21.1.1 -- bump again for double-long bug on ppc(64) - -* Mon Feb 06 2006 Jason Vas Dias - 11:3.0.3-21.1 -- Rebuild for new gcc, glibc and glibc-kernheaders - -* Sun Jan 22 2006 Dan Williams - 11:3.0.3-21 -- Fix dhclient-script to use /bin/dbus-send now that all dbus related - binaries are in /bin rather than /usr/bin - -* Mon Jan 16 2006 Jason Vas Dias - 11:3.0.3-20 -- fix bug 177845: allow client ip-address as default router -- fix bug 176615: fix DDNS update when Windows-NT client sends - host-name with trailing nul - -* Tue Dec 20 2005 Jason Vas Dias - 11:3.0.3-18 -- fix bug 176270: allow routers with an octet of 255 in their IP address - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Mon Dec 05 2005 Jason Vas Dias - 11:3.0.3-16 -- fix gcc 4.1 compile warnings (-Werror) - -* Fri Nov 18 2005 Jason Vas Dias - 11:3.0.3-12 -- fix bug 173619: dhclient-script should reconfig on RENEW if - subnet-mask, broadcast-address, mtu, routers, etc. - have changed -- apply upstream improvements to trailing nul options fix of bug 160655 - -* Tue Nov 15 2005 Jason Vas Dias - 11:3.0.3-11 -- Rebuild for FC-5 -- fix bug 167028 - test IBM's unicast bootp patch (from xma@us.ibm.com) -- fix bug 171312 - silence chkconfig error message if ypbind not installed -- fix dhcpd.init when -cf arg given to dhcpd -- make dhcpd init touch /var/lib/dhcpd/dhcpd.leases, not /var/lib/dhcp/dhcpd.leases - -* Tue Oct 18 2005 Jason Vas Dias - 11:3.0.3-10 -- Allow dhclient route metrics to be specified with DHCP options: - The dhcp-options(5) man-page states: - 'option routers ... Routers should be listed in order of preference' - and - 'option static-routes ... are listed in descending order of priority' . - No preference / priority could be set with previous dhclient-script . - Now, dhclient-script provides: - Default Gateway (option 'routers') metrics: - Instead of allowing only one default gateway, if more than one router - is specified in the routers option, routers following the first router - will have a 'metric' of their position in the list (1,...N>1). - Option static-routes metrics: - If a target appears in the list more than once, routes for duplicate - targets will have successively greater metrics, starting at 1. - -* Mon Oct 17 2005 Jason Vas Dias - 11:3.0.3-8 -- further fix for bug 160655 / ISC bug 15293 - upstream patch: - do NOT always strip trailing nulls in the dhcpd server -- handle static-routes option properly in dhclient-script : - trailing 0 octets in the 'target' IP specify the class - - ie '172.16.0.0 w.x.y.z' specifies '172.16/16 via w.x.y.z'. - -* Fri Sep 23 2005 Jason Vas Dias - 11:3.0.3-7 -- fix bug 169164: separate /var/lib/{dhcpd,dhclient} directories -- fix bug 167292: update failover port info in dhcpd.conf.5; give - failover ports default values in server/confpars.c - -* Mon Sep 12 2005 Jason Vas Dias - 11:3.0.3-6 -- fix bug 167273: time-offset should not set timezone by default - tzdata's Etc/* files are named with reverse sign - for hours west - ie. 'GMT+5' is GMT offset -18000seconds. - -* Mon Aug 29 2005 Jason Vas Dias - 11:3.0.3-4 -- fix bug 166926: make dhclient-script handle interface-mtu option - make dhclient-script support /etc/dhclient{,-$IF}-{up,down}-hooks scripts - to allow easy customization to support other non-default DHCP options - - documented in 'man 8 dhclient-script' . -- handle the 'time-offset' DHCP option, requested by default. - -* Tue Aug 23 2005 Jason Vas Dias - 11:3.0.3-3 -- fix bug 160655: strip trailing '\0' bytes from text options before append -- fix gcc4 compiler warnings ; now compiles with -Werror -- add RPM_OPT_FLAGS to link as suggested in gcc man-page on '-pie' option -- change ISC version string to 'V3.0.3-RedHat' at request of ISC - -* Tue Aug 9 2005 Jeremy Katz - 11:3.0.3-2 -- don't explicitly require 2.2 era kernel, it's fairly overkill at this point - -* Fri Jul 29 2005 Jason Vas Dias 11:3.0.3-1 -- Upgrade to upstream version 3.0.3 -- Don't apply the 'default boot file server' patch: legacy - dhcp behaviour broke RFC 2131, which requires that the siaddr - field only be non-zero if the next-server or tftp-server-name - options are specified. -- Try removing the 1-5 second wait on dhclient startup altogether. -- fix bug 163367: supply default configuration file for dhcpd - -* Thu Jul 14 2005 Jason Vas Dias 10:3.0.3rc1-1 -- Upgrade to upstream version 3.0.3rc1 -- fix bug 163203: silence ISC blurb on configtest -- fix default 'boot file server' value (packet->siaddr): - In dhcp-3.0.2(-), this was defaulted to the server address; - now it defaults to 0.0.0.0 (a rather silly default!) and - must be specified with the 'next-server' option (not the tftp-boot-server - option ?!?) which causes PXE boot clients to fail to load anything after - the boot file. - -* Fri Jul 08 2005 Jason Vas Dias 10:3.0.2-14.FC5 -- Allow package to compile with glibc-headers-2.3.5-11 (tr.c's use of __u16) - -* Fri Jun 17 2005 Jason Vas Dias 10:3.0.2-14 -- Fix bug 159929: prevent dhclient flooding network on repeated DHCPDECLINE -- dhclient fast startup: - remove dhclient's random 1-5 second delay on startup if only - configuring one interface - remove dhclient_script's "sleep 1" on PREINIT -- fix new gcc-4.0.0-11 compiler warnings for binding_state_t - -* Tue May 03 2005 Jason Vas Dias 10:3.0.2-12 -- Rebuild for new glibc -- Fix dhcdbd set for multiple interfaces - -* Wed Apr 27 2005 Jason Vas Dias 10:3.0.2-11 -- as pointed out by Peter Jones, dhclient-script spews -- 'chkconfig: Usage' if run in init state 1 (runlevel returns "unknown".) -- this is now corrected. - -* Mon Apr 25 2005 Jason Vas Dias 10:3.0.2-10 -- dhclient-script dhcdbd extensions. -- Tested to have no effect unless dhcdbd invokes dhclient. - -* Thu Apr 21 2005 Jason Vas Dias 10:3.0.2-9 -- bugs 153244 & 155143 are now fixed with SELinux policy; - autotrans now works for dhcpc_t, so restorecons are not required, - and dhclient runs OK under dhcpc_t with SELinux enforcing. -- fix bug 155506: 'predhclien' typo (emacs!). - -* Mon Apr 18 2005 Jason Vas Dias 10:3.0.2-8 -- Fix bugs 153244 & 155143: - o restore dhclient-script 'restorecon's - o give dhclient and dhclient-script an exec context of - 'system_u:object_r:sbin_t' that allows them to run - domainname / hostname and to update configuration files - in dhclient post script. -- Prevent dhclient emitting verbose ISC 'blurb' on error exit in -q mode - -* Mon Apr 04 2005 Jason Vas Dias 10:3.0.2-7 -- Add '-x' "extended option environment" dhclient argument: -- When -x option given to dhclient: -- dhclient enables arbitrary option processing by writing information -- about user or vendor defined option space options to environment. -- -- fix bug 153244: dhclient should not use restorecon -- fix bug 151023: dhclient no 'headers & libraries' -- fix bug 149780: add 'DHCLIENT_IGNORE_GATEWAY' variable -- remove all usage of /sbin/route from dhclient-script - -* Thu Mar 24 2005 Florian La Roche -- add "exit 0" to post script - -* Mon Mar 07 2005 Jason Vas Dias 10.3.0.2-3 -- rebuild for gcc4/glibc-2.3.4-14; fix bad memset - -* Thu Feb 24 2005 Jason Vas Dias 10:3.0.2-2 -- Fix bug 143640: do not allow more than one dhclient to configure an interface - -* Mon Feb 21 2005 Jason Vas Dias 10:3.0.2-1 -- Upgrade to ISC 3.0.2 Final Release (documentation change only). - -* Wed Feb 16 2005 Jason Vas Dias 8:3.0.2rc3-8 -- Add better execshield security link options -- fix dhcpd.init when no /etc/dhcpd.conf exists and -cf in DHCPDARGS - -* Mon Feb 14 2005 Jason Vas Dias 8:3.0.2rc3-4 -- make dhclient-script TIMEOUT mode do exactly the same configuration -- as BOUND / RENEW / REBIND / REBOOT if router ping succeeds - -* Mon Feb 14 2005 Jason Vas Dias 3.0.2rc3-4 -- fix bug 147926: dhclient-script should do restorecon for modified conf files -- optimize execshield protection - -* Thu Feb 10 2005 Jason Vas Dias 8.3.0.4rc3-3 -- fix bug 147375: dhcpd heap corruption on 32-bit 'subnet' masks -- fix bug 147502: dhclient should honor GATEWAYDEV and GATEWAY settings -- fix bug 146600: dhclient's timeout mode ping should use -I -- fix bug 146524: dhcpd.init should discard dhcpd's initial output message -- fix bug 147739: dhcpd.init configtest should honor -cf in DHCPDARGS - -* Mon Jan 24 2005 Jason Vas Dias 8:3.0.2rc3-2 -- fix bug 145997: allow hex 32-bit integers in user specified options - -* Thu Jan 06 2005 Jason Vas Dias 8:3.0.2rc3-1 -- still need an epoch to get past nvre test - -* Thu Jan 06 2005 Jason Vas Dias 3.0.2rc3-1 -- fix bug 144417: much improved dhclient-script - -* Thu Jan 06 2005 Jason Vas Dias 3.0.2rc3-1 -- Upgrade to latest release from ISC, which includes most of our -- recent patches anyway. - -* Thu Jan 06 2005 Jason Vas Dias 7:3.0.1-17 -- fix bug 144250: gcc-3.4.3-11 is broken : -- log_error ("Lease with bogus binding state: %%d size: %%d", -- comp -> binding_state, -- sizeof(comp->binding_state)); -- prints: 'Lease with bogus binding state: 257 1' ! -- compiling with gcc33 (compat-gcc-8-3.3.4.2 fixes for now). - -* Mon Jan 03 2005 Jason Vas Dias 7:3.0.1-16 -- fix bug 143704: dhclient -r does not work if lease held by -- dhclient run from ifup . dhclient will now look for the pid -- files created by ifup. - -* Wed Nov 17 2004 Jason Vas Dias 7:3.0.1-14 -- NTP: fix bug 139715: merge in new ntp servers only rather than replace -- all the ntp configuration files; restart ntpd if configuration changed. - -* Tue Nov 16 2004 Jason Vas Dias 7:3.0.1-12 -- fix bug 138181 & bug 139468: do not attempt to listen/send on -- unconfigured loopback, point-to-point or non-broadcast -- interfaces (don't generate annoying log messages) -- fix bug 138869: dhclient-script: check if '$new_routers' is -- empty before doing 'set $new_routers;...;ping ... $1' - -* Wed Oct 06 2004 Jason Vas Dias 7:3.0.1-11 -- dhcp-3.0.2b1 came out today. A diff of the 'ack_lease' function -- Dave Hankins and I patched exposed a missing '!' on an if clause -- that got dropped with the 'new-host' patch. Replacing the '!'. -- Also found one missing host_dereference. - -* Wed Oct 06 2004 Jason Vas Dias 7:3.0.1-10 -- clean-up last patch: new-host.patch adds host_reference(host) -- without host_dereference(host) before returns in ack_lease -- (dhcp-3.0.1-host_dereference.patch) - -* Mon Sep 27 2004 Jason Vas Dias 7:3.0.1-9 -- Fix bug 133522: -- PXE Boot clients with static leases not given 'file' option -- 104 by server - PXE booting was disabled for 'fixed-address' -- clients. - -* Fri Sep 10 2004 Jason Vas Dias 7:3.0.1-8 -- Fix bug 131212: -- If "deny booting" is defined for some group of hosts, -- then after one of those hosts is denied booting, all -- hosts are denied booting, because of a pointer not being -- cleared in the lease record. -- An upstream patch was obtained which will be in dhcp-3.0.2. - -* Mon Aug 16 2004 Jason Vas Dias 7:3.0.1-7 -- Forward DNS update by client was disabled by a bug that I -- found in code where 'client->sent_options' was being -- freed too early. -- Re-enabled it after contacting upstream maintainer -- who confirmed that this was a bug (bug #130069) - -- submitted patch dhcp-3.0.1.preserve-sent-options.patch. -- Upstream maintainer informs me this patch will be in dhcp-3.0.2 . - -* Tue Aug 3 2004 Jason Vas Dias 6:3.0.1-6 -- Allow 2.0 kernels to obtain default gateway via dhcp - -* Mon Aug 2 2004 Jason Vas Dias 5:3.0.1-5 -- Invoke 'change_resolv_conf' function to change resolv.conf - -* Fri Jul 16 2004 Jason Vas Dias 3:3.0.1 -- Upgraded to new ISC 3.0.1 version - -* Thu Jun 24 2004 Dan Walsh 1:3.0.1rc14-5 -- Allow dhclient-script to continue without a config file. -- It will use default values. - -* Wed Jun 23 2004 Dan Walsh 1:3.0.1rc14-4 -- fix inherit-leases patch - -* Tue Jun 22 2004 Dan Walsh 1:3.0.1rc14-2 -- Turn on inherit-leases patch - -* Tue Jun 22 2004 Dan Walsh 1:3.0.1rc14-1 -- User kernelversion instead of uname-r -- Update to latest package from ISC -- Remove inherit-leases patch for now. - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Thu Jun 10 2004 Dan Walsh 1:3.0.1rc13-1 -- Update to latest package from ISC - -* Thu Jun 10 2004 Dan Walsh 1:3.0.1rc12-9 -- add route back in after route up call - -* Wed Jun 9 2004 Dan Walsh 1:3.0.1rc12-8 -- add alex's dhcp-3.0.1rc12-inherit-leases.patch patch - -* Tue Jun 8 2004 Bill Nottingham 1:3.0.1rc12-7 -- set device on default gateway route - -* Mon May 17 2004 Thomas Woerner 1:3.0.1rc12-6 -- compiling dhcpd PIE - -* Thu Mar 25 2004 Dan Walsh 1:3.0.1rc12-5 -- Add static routes patch to dhclient-script - -* Thu Mar 25 2004 Dan Walsh 1:3.0.1rc12-4 -- Fix init to check config during restart - -* Wed Mar 24 2004 Dan Walsh 1:3.0.1rc12-3 -- Fix init script to create leases file if missing - -* Tue Mar 02 2004 Elliot Lee -- rebuilt - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Wed Jan 21 2004 Dan Walsh 1:3.0pl2-6.20 -- Fix initialization of memory to prevent compiler error - -* Mon Jan 5 2004 Dan Walsh 1:3.0pl2-6.19 -- Close leaseFile before exec, to fix selinux error message - -* Mon Dec 29 2003 Dan Walsh 1:3.0pl2-6.18 -- Add BuildRequires groff -- Replace resolv.conf if renew and data changes - -* Sun Nov 30 2003 Dan Walsh 1:3.0pl2-6.17 -- Add obsoletes dhcpcd - -* Wed Oct 8 2003 Dan Walsh 1:3.0pl2-6.16 -- Fix location of ntp driftfile - -* Fri Sep 5 2003 Dan Walsh 1:3.0pl2-6.15 -- Bump Release - -* Fri Sep 5 2003 Dan Walsh 1:3.0pl2-6.14 -- Add div0 patch - -* Wed Aug 20 2003 Dan Walsh 1:3.0pl2-6.13 -- Add SEARCH to client script - -* Wed Aug 20 2003 Dan Walsh 1:3.0pl2-6.12 -- Bump Release - -* Wed Aug 20 2003 Dan Walsh 1:3.0pl2-6.11 -- Add configtest - -* Fri Aug 1 2003 Dan Walsh 1:3.0pl2-6.10 -- increment for base - -* Fri Aug 1 2003 Dan Walsh 1:3.0pl2-6.9 -- Don't update resolv.conf on renewals - -* Tue Jul 29 2003 Dan Walsh 1:3.0pl2-6.8 -- increment for base - -* Tue Jul 29 2003 Dan Walsh 1:3.0pl2-6.7 -- Fix name of driftfile - -* Tue Jul 29 2003 Dan Walsh 1:3.0pl2-6.6 -- increment for base - -* Tue Jul 29 2003 Dan Walsh 1:3.0pl2-6.5 -- Change dhcrelay script to check DHCPSERVERS - -* Mon Jul 7 2003 Dan Walsh 1:3.0pl2-6.4 -- increment for base - -* Mon Jul 7 2003 Dan Walsh 1:3.0pl2-6.3 -- Fix dhclient-script to support PEERNTP and PEERNIS flags. -- patch submitted by aoliva@redhat.com - -* Sun Jun 8 2003 Tim Powers 1:3.0pl2-6.1 -- add epoch to dhcp-devel versioned requires on dhcp -- build for RHEL - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Tue May 27 2003 Dan Walsh 3.0pl2-5 -- Fix memory leak in parser. - -* Mon May 19 2003 Dan Walsh 3.0pl2-4 -- Change Rev for RHEL - -* Mon May 19 2003 Dan Walsh 3.0pl2-3 -- Change example to not give out 255 address. - -* Tue Apr 29 2003 Dan Walsh 3.0pl2-2 -- Change Rev for RHEL - -* Mon Apr 28 2003 Dan Walsh 3.0pl2-1 -- upgrade to 3.0pl2 - -* Wed Mar 26 2003 Dan Walsh 3.0pl1-26 -- add usage for dhcprelay -c -- add man page for dhcprelay -c - -* Fri Mar 7 2003 Dan Walsh 3.0pl1-25 -- Fix man dhcpd.conf man page - -* Tue Mar 4 2003 Dan Walsh 3.0pl1-24 -- Fix man dhcpctl.3 page - -* Mon Feb 3 2003 Dan Walsh 3.0pl1-23 -- fix script to handle ntp.conf correctly - -* Wed Jan 29 2003 Dan Walsh 3.0pl1-22 -- Increment release to add to 8.1 - -* Wed Jan 29 2003 Dan Walsh 3.0pl1-21 -- Implement max hops patch - -* Wed Jan 29 2003 Dan Walsh 3.0pl1-20 -- It has now been decided to just have options within dhclient kit - -* Sun Jan 26 2003 Florian La Roche -- add defattr() to have files not owned by root - -* Fri Jan 24 2003 Dan Walsh 3.0pl1-17 -- require kernel version - -* Fri Jan 24 2003 Dan Walsh 3.0pl1-16 -- move dhcp-options to separate package - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Thu Jan 9 2003 Dan Walsh 3.0pl1-15 -- eliminate dhcp-options from dhclient in order to get errata out - -* Wed Jan 8 2003 Dan Walsh 3.0pl1-14 -- VU#284857 - ISC DHCPD minires library contains multiple buffer overflows - -* Mon Jan 6 2003 Dan Walsh 3.0pl1-13 -- Fix when ntp is not installed. - -* Mon Jan 6 2003 Dan Walsh 3.0pl1-12 -- Fix #73079 (dhcpctl man page) - -* Thu Nov 14 2002 Elliot Lee 3.0pl1-11 -- Use generic PTRSIZE_64BIT detection instead of ifarch. - -* Thu Nov 14 2002 Preston Brown 3.0pl1-10 -- fix parsing of command line args in dhclient. It was missing a few. - -* Mon Oct 07 2002 Florian La Roche -- work on 64bit archs - -* Wed Aug 28 2002 Elliot Lee 3.0pl1-9 -- Fix #72795 - -* Mon Aug 26 2002 Elliot Lee 3.0pl1-8 -- More #68650 (modify requested options) -- Fix #71453 (dhcpctl man page) and #71474 (include libdst.a) and - #72622 (hostname setting) - -* Thu Aug 15 2002 Elliot Lee 3.0pl1-7 -- More #68650 (modify existing patch to also set NIS domain) - -* Tue Aug 13 2002 Elliot Lee 3.0pl1-6 -- Patch102 (dhcp-3.0pl1-dhcpctlman-69731.patch) to fix #69731 - -* Tue Aug 13 2002 Elliot Lee 3.0pl1-5 -- Patch101 (dhcp-3.0pl1-dhhostname-68650.patch) to fix #68650 - -* Fri Jul 12 2002 Elliot Lee 3.0pl1-4 -- Fix unaligned accesses when decoding a UDP packet - -* Thu Jul 11 2002 Elliot Lee 3.0pl1-3 -- No apparent reason for the dhclient -> dhcp dep mentioned in #68001, - so removed it - -* Thu Jun 27 2002 David Sainty 3.0pl1-2 -- Move dhclient.conf.sample from dhcp to dhclient - -* Tue Jun 25 2002 David Sainty 3.0pl1-1 -- Change to dhclient, dhcp, dhcp-devel packaging -- Move to 3.0pl1, do not strip binaries -- Drop in sysconfig-enabled dhclient-script - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Sat Jan 26 2002 Florian La Roche -- prereq chkconfig - -* Tue Jan 22 2002 Elliot Lee 3.0-5 -- Split headers/libs into a devel subpackage (#58656) - -* Wed Jan 09 2002 Tim Powers -- automated rebuild - -* Fri Dec 28 2001 Elliot Lee 3.0-3 -- Fix the #52856 nit. -- Include dhcrelay scripts from #49186 - -* Thu Dec 20 2001 Elliot Lee 3.0-2 -- Update to 3.0, include devel files installed by it (as part of the main - package). - -* Sun Aug 26 2001 Elliot Lee 2.0pl5-8 -- Fix #26446 - -* Mon Aug 20 2001 Elliot Lee -- Fix #5405 for real - it is dhcpd.leases not dhcp.leases. - -* Mon Jul 16 2001 Elliot Lee -- /etc/sysconfig/dhcpd -- Include dhcp.leases file (#5405) - -* Sun Jun 24 2001 Elliot Lee -- Bump release + rebuild. - -* Wed Feb 14 2001 Tim Waugh -- Fix initscript typo (bug #27624). - -* Wed Feb 7 2001 Trond Eivind Glomsrød -- Improve spec file i18n - -* Mon Feb 5 2001 Bernhard Rosenkraenzer -- i18nize init script (#26084) - -* Sun Sep 10 2000 Florian La Roche -- update to 2.0pl5 -- redo buildroot patch - -* Wed Aug 30 2000 Matt Wilson -- rebuild to cope with glibc locale binary incompatibility, again - -* Mon Aug 14 2000 Preston Brown -- check for existence of /var/lib/dhcpd.leases in initscript before starting - -* Wed Jul 19 2000 Jakub Jelinek -- rebuild to cope with glibc locale binary incompatibility - -* Sat Jul 15 2000 Bill Nottingham -- move initscript back - -* Wed Jul 12 2000 Prospector -- automatic rebuild - -* Fri Jul 7 2000 Florian La Roche -- /etc/rc.d/init.d -> /etc/init.d -- fix /var/state/dhcp -> /var/lib/dhcp - -* Fri Jun 16 2000 Preston Brown -- condrestart for initscript, graceful upgrades. - -* Thu Feb 03 2000 Erik Troan -- gzipped man pages -- marked /etc/rc.d/init.d/dhcp as a config file - -* Mon Jan 24 2000 Jakub Jelinek -- fix booting of JavaStations - (reported by Pete Zaitcev ). -- fix SIGBUS crashes on SPARC (apparently gcc is too clever). - -* Fri Sep 10 1999 Bill Nottingham -- chkconfig --del in %%preun, not %%postun - -* Mon Aug 16 1999 Bill Nottingham -- initscript munging - -* Fri Jun 25 1999 Jeff Johnson -- update to 2.0. - -* Fri Jun 18 1999 Bill Nottingham -- don't run by default - -* Wed Jun 2 1999 Jeff Johnson -- update to 2.0b1pl28. - -* Tue Apr 06 1999 Preston Brown -- strip binaries - -* Mon Apr 05 1999 Cristian Gafton -- copy the source file in prep, not move - -* Sun Mar 21 1999 Cristian Gafton -- auto rebuild in the new build environment (release 4) - -* Mon Jan 11 1999 Erik Troan -- added a sample dhcpd.conf file -- we don't need to dump rfc's in /usr/doc - -* Sun Sep 13 1998 Cristian Gafton -- modify dhcpd.init to exit if /etc/dhcpd.conf is not present - -* Sat Jun 27 1998 Jeff Johnson -- Upgraded to 2.0b1pl6 (patch1 no longer needed). - -* Thu Jun 11 1998 Erik Troan -- applied patch from Chris Evans which makes the server a bit more paranoid - about dhcp requests coming in from the wire - -* Mon Jun 01 1998 Erik Troan -- updated to dhcp 2.0b1pl1 -- got proper man pages in the package - -* Tue Mar 31 1998 Erik Troan -- updated to build in a buildroot properly -- don't package up the client, as it doens't work very well - -* Tue Mar 17 1998 Bryan C. Andregg -- Build rooted and corrected file listing. - -* Mon Mar 16 1998 Mike Wangsmo -- removed the actual inet.d links (chkconfig takes care of this for us) - and made the %%postun section handle upgrades. - -* Mon Mar 16 1998 Bryan C. Andregg -- First package. From 5fe96d93a8327a64d090a8f0216ced94659d1a19 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 6 Jan 2020 14:55:41 +0100 Subject: [PATCH 36/81] Upload sources --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8e0f50c..499b105 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /dhcp-4.3.6b1.tar.gz /dhcp-4.3.6.tar.gz /dhcp-4.4.1.tar.gz +/dhcp-4.4.2b1.tar.gz diff --git a/sources b/sources index 8c2a355..a05ae07 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dhcp-4.4.1.tar.gz) = 684ae349f224918c9f8cec7bd6c55cd0b83ad2b5827375b2876ca088eb05b7ff1364e50f6dc24f2485c610d9be94d4ba3020f60a0fa0ef63962349d191b887e7 +SHA512 (dhcp-4.4.2b1.tar.gz) = 37f65ba12f578465e55132867f22c1bb082cd631724b7d0ce2e658fbace9b6969708cc4af843688e669f75d94241eaa40e07c384ee6527ec5297c03da3e45d97 From def209d1bfb3ac04e879d6fc91f53155d8166dc7 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 6 Jan 2020 18:21:53 +0100 Subject: [PATCH 37/81] Drop 12-dhcpd dispatcher (#1780861) --- 12-dhcpd | 23 ----------------------- dhcp.spec | 13 ++++--------- 2 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 12-dhcpd diff --git a/12-dhcpd b/12-dhcpd deleted file mode 100644 index 7d933ea..0000000 --- a/12-dhcpd +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -## this script is disabled by default -## if you want one to be executed on NM up events -## please make it executable. See chmod(1) for more details - -INTERFACE=$1 # The interface which is brought up or down -STATUS=$2 # The new state of the interface - -# whenever interface is brought up by NM (rhbz #565921) -if [ "$STATUS" = "up" ]; then - # wait a few seconds to allow interface startup to complete - # (important at boot time without this the service still fails - # time-out for dispatcher script is 3s (rhbz#1003695#8) - sleep 2 - # restart the services - # In case this dispatcher script is called several times in a short period of time, it might happen that - # systemd refuses to further restart the units. Therefore we use reset-failed command to prevent it. - systemctl -q is-enabled dhcpd.service && systemctl restart dhcpd.service && systemctl reset-failed dhcpd.service - systemctl -q is-enabled dhcpd6.service && systemctl restart dhcpd6.service && systemctl reset-failed dhcpd6.service -fi - -exit 0 diff --git a/dhcp.spec b/dhcp.spec index e12ff72..2b11ace 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 1.b1%{?dist} +Release: 2.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -28,16 +28,11 @@ Source0: ftp://ftp.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz Source1: dhclient-script Source2: README.dhclient.d Source3: 11-dhclient -Source4: 12-dhcpd Source5: 56dhclient Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service - - - - Patch1 : 0001-change-bug-url.patch Patch2 : 0002-additional-dhclient-options.patch Patch3 : 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch @@ -104,8 +99,6 @@ Requires(post): coreutils grep sed Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -# Old NetworkManager expects the dispatcher scripts in a different place -Conflicts: NetworkManager < 1.20 %description server DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -293,7 +286,6 @@ mkdir -p %{buildroot}%{dhcpconfdir}/dhclient.d # NetworkManager dispatcher script mkdir -p %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d install -p -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d -install -p -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient @@ -535,6 +527,9 @@ done %endif %changelog +* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-2.b1 +- Drop NetworkManager 12-dhcpd script. It's deprecated by wait-online (#1780861) + * Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-1.b1 - Dropped all (pre 4.0.0) changelog - New version (4.4.2b1) From 335ae6175d36a5f9434f7ef63640b69131d8d44b Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 6 Jan 2020 18:31:58 +0100 Subject: [PATCH 38/81] Drop leftovers of 12-dhcpd from the spec --- dhcp.spec | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 2b11ace..55f120b 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 2.b1%{?dist} +Release: 3.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -464,9 +464,6 @@ done %config(noreplace) %{dhcpconfdir}/dhcpd6.conf %dir %{_sysconfdir}/openldap/schema %config(noreplace) %{_sysconfdir}/openldap/schema/dhcp.schema -%dir %{_prefix}/lib/NetworkManager -%dir %{_prefix}/lib/NetworkManager/dispatcher.d -%{_prefix}/lib/NetworkManager/dispatcher.d/12-dhcpd %attr(0644,root,root) %{_unitdir}/dhcpd.service %attr(0644,root,root) %{_unitdir}/dhcpd6.service %{_sbindir}/dhcpd @@ -527,7 +524,7 @@ done %endif %changelog -* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-2.b1 +* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-3.b1 - Drop NetworkManager 12-dhcpd script. It's deprecated by wait-online (#1780861) * Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-1.b1 From e29bd9e41d501138643355876798fef19d4af45d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 15:46:18 +0000 Subject: [PATCH 39/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 55f120b..dbb785d 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 3.b1%{?dist} +Release: 4.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -524,6 +524,9 @@ done %endif %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 12:4.4.2-4.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-3.b1 - Drop NetworkManager 12-dhcpd script. It's deprecated by wait-online (#1780861) From cff4bf28aa963247c43ecb344b9b80c1739507cc Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Fri, 21 Feb 2020 12:06:57 +0100 Subject: [PATCH 40/81] Build with -fcommon Wordaround to build with gcc10. proper fix will be added once accepted by upstream --- dhcp.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index dbb785d..8afebc5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 4.b1%{?dist} +Release: 5.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -63,6 +63,7 @@ Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch + BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool @@ -237,7 +238,7 @@ sed -i -e 's|/var/db/|%{_localstatedir}/lib/dhcpd/|g' contrib/dhcp-lease-list.pl #libtoolize --copy --force autoreconf --verbose --force --install -CFLAGS="%{optflags} -fno-strict-aliasing" \ +CFLAGS="%{optflags} -fno-strict-aliasing -fcommon" \ %configure \ --with-srv-lease-file=%{_localstatedir}/lib/dhcpd/dhcpd.leases \ --with-srv6-lease-file=%{_localstatedir}/lib/dhcpd/dhcpd6.leases \ @@ -524,6 +525,9 @@ done %endif %changelog +* Fri Feb 21 2020 Pavel Zhukov - 12:4.4.2-5.b1 +- Workarounnd for gcc10 + * Tue Jan 28 2020 Fedora Release Engineering - 12:4.4.2-4.b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 2ddbb6f595ec154ac4f1be0d2dc244ee3a3c8d8a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 22 Apr 2020 09:49:50 +0200 Subject: [PATCH 41/81] Change upstream url (#1823995) --- dhcp.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 8afebc5..1b97090 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 5.b1%{?dist} +Release: 6.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -23,7 +23,7 @@ Release: 5.b1%{?dist} # So we are stuck with it. Epoch: 12 License: ISC -Url: http://isc.org/products/DHCP/ +Url: https://www.isc.org/dhcp/ Source0: ftp://ftp.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz Source1: dhclient-script Source2: README.dhclient.d @@ -525,6 +525,9 @@ done %endif %changelog +* Wed Apr 22 2020 Pavel Zhukov - 12:4.4.2-6.b1 +- Change upstream URL + * Fri Feb 21 2020 Pavel Zhukov - 12:4.4.2-5.b1 - Workarounnd for gcc10 From 3f2a7ed9d0ffb181dd6a93673698ead555fadaa3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 15:19:58 +0000 Subject: [PATCH 42/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 1b97090..784e3e5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 6.b1%{?dist} +Release: 7.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -525,6 +525,9 @@ done %endif %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 12:4.4.2-7.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Wed Apr 22 2020 Pavel Zhukov - 12:4.4.2-6.b1 - Change upstream URL From 8c5f5bc2cd759f3ad6cfbbfcbd13e93adb16bab3 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 29 Jul 2020 15:26:05 +0200 Subject: [PATCH 43/81] Fix IB patch Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1860689 --- 0014-IPoIB-support-660681.patch | 60 ++++++++++++++++++++++++--------- dhcp.spec | 5 ++- 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/0014-IPoIB-support-660681.patch b/0014-IPoIB-support-660681.patch index a792e4f..3d6d316 100644 --- a/0014-IPoIB-support-660681.patch +++ b/0014-IPoIB-support-660681.patch @@ -1,18 +1,18 @@ -From 6d74c2d0ceadef2eb1c43c2da47f1d5b732adf8c Mon Sep 17 00:00:00 2001 +From 042082b4410f158ec86ca8478689b34bc12518e6 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:34:21 +0100 -Subject: [PATCH 14/26] IPoIB support (#660681) +Subject: [PATCH 14/27] IPoIB support (#660681) Cc: pzhukov@redhat.com (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249]) --- - client/dhclient.c | 32 +++++++ - common/bpf.c | 32 +++++++ + client/dhclient.c | 32 ++++++ + common/bpf.c | 32 ++++++ common/discover.c | 4 +- - common/lpf.c | 262 +++++++++++++++++++++++++++++++++++++++++++++++++----- + common/lpf.c | 276 ++++++++++++++++++++++++++++++++++++++++++---- common/socket.c | 8 +- includes/dhcpd.h | 6 +- - 6 files changed, 315 insertions(+), 29 deletions(-) + 6 files changed, 329 insertions(+), 29 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c index 301132c..dc9080e 100644 @@ -142,7 +142,7 @@ index 6ef8852..65881fc 100644 if_register_linklocal6(tmp); } diff --git a/common/lpf.c b/common/lpf.c -index b0ed01c..b732a86 100644 +index b0ed01c..a9e19f4 100644 --- a/common/lpf.c +++ b/common/lpf.c @@ -45,6 +45,17 @@ @@ -230,7 +230,35 @@ index b0ed01c..b732a86 100644 } } } -@@ -330,6 +353,54 @@ static void lpf_tr_filter_setup (info) +@@ -253,6 +276,18 @@ static void lpf_gen_filter_setup (info) + + memset(&p, 0, sizeof(p)); + ++ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) { ++ p.len = dhcp_ib_bpf_filter_len; ++ p.filter = dhcp_ib_bpf_filter; ++ ++ /* Patch the server port into the LPF program... ++ XXX ++ changes to filter program may require changes ++ to the insn number(s) used below! ++ XXX */ ++ dhcp_ib_bpf_filter[6].k = ntohs (local_port); ++ } else { ++ + /* Set up the bpf filter program structure. This is defined in + bpf.c */ + p.len = dhcp_bpf_filter_len; +@@ -275,6 +310,8 @@ static void lpf_gen_filter_setup (info) + #endif + dhcp_bpf_filter [8].k = ntohs (local_port); + ++ } ++ + if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p, + sizeof p) < 0) { + if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || +@@ -330,6 +367,54 @@ static void lpf_tr_filter_setup (info) #endif /* USE_LPF_RECEIVE */ #ifdef USE_LPF_SEND @@ -285,7 +313,7 @@ index b0ed01c..b732a86 100644 ssize_t send_packet (interface, packet, raw, len, from, to, hto) struct interface_info *interface; struct packet *packet; -@@ -350,6 +421,11 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) +@@ -350,6 +435,11 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) return send_fallback (interface, packet, raw, len, from, to, hto); @@ -297,7 +325,7 @@ index b0ed01c..b732a86 100644 if (hto == NULL && interface->anycast_mac_addr.hlen) hto = &interface->anycast_mac_addr; -@@ -370,6 +446,42 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) +@@ -370,6 +460,42 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto) #endif /* USE_LPF_SEND */ #ifdef USE_LPF_RECEIVE @@ -340,7 +368,7 @@ index b0ed01c..b732a86 100644 ssize_t receive_packet (interface, buf, len, from, hfrom) struct interface_info *interface; unsigned char *buf; -@@ -408,6 +520,10 @@ ssize_t receive_packet (interface, buf, len, from, hfrom) +@@ -408,6 +534,10 @@ ssize_t receive_packet (interface, buf, len, from, hfrom) }; #endif /* PACKET_AUXDATA */ @@ -351,7 +379,7 @@ index b0ed01c..b732a86 100644 length = recvmsg (interface->rfdesc, &msg, 0); if (length <= 0) return length; -@@ -521,11 +637,33 @@ void maybe_setup_fallback () +@@ -521,11 +651,33 @@ void maybe_setup_fallback () #endif #if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR) @@ -388,7 +416,7 @@ index b0ed01c..b732a86 100644 if (strlen(name) >= sizeof(tmp.ifr_name)) { log_fatal("Device name too long: \"%s\"", name); -@@ -539,16 +677,61 @@ get_hw_addr(const char *name, struct hardware *hw) { +@@ -539,16 +691,61 @@ get_hw_addr(const char *name, struct hardware *hw) { memset(&tmp, 0, sizeof(tmp)); strcpy(tmp.ifr_name, name); if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) { @@ -453,7 +481,7 @@ index b0ed01c..b732a86 100644 break; case ARPHRD_IEEE802: #ifdef ARPHRD_IEEE802_TR -@@ -556,18 +739,50 @@ get_hw_addr(const char *name, struct hardware *hw) { +@@ -556,18 +753,50 @@ get_hw_addr(const char *name, struct hardware *hw) { #endif /* ARPHRD_IEEE802_TR */ hw->hlen = 7; hw->hbuf[0] = HTYPE_IEEE802; @@ -508,7 +536,7 @@ index b0ed01c..b732a86 100644 hw->hlen = 0; hw->hbuf[0] = HTYPE_RESERVED; /* 0xdeadbeef should never occur on the wire, -@@ -580,10 +795,13 @@ get_hw_addr(const char *name, struct hardware *hw) { +@@ -580,10 +809,13 @@ get_hw_addr(const char *name, struct hardware *hw) { break; #endif default: @@ -597,5 +625,5 @@ index faa9251..0c1a0aa 100644 const char *file, int line); char *format_lease_id(const unsigned char *s, unsigned len, int format, -- -2.14.5 +2.26.2 diff --git a/dhcp.spec b/dhcp.spec index 784e3e5..54b203f 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 7.b1%{?dist} +Release: 8.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -525,6 +525,9 @@ done %endif %changelog +* Wed Jul 29 2020 Pavel Zhukov - 12:4.4.2-8.b1 +- Fix IB patch (#1860689) + * Mon Jul 27 2020 Fedora Release Engineering - 12:4.4.2-7.b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From a70726e79dcbe521c0198d322d26d2470dd3d9ab Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 19 Dec 2020 06:07:48 +0000 Subject: [PATCH 44/81] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- dhcp.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/dhcp.spec b/dhcp.spec index 54b203f..0c668ad 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -66,6 +66,7 @@ Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch BuildRequires: autoconf BuildRequires: automake +BuildRequires: make BuildRequires: libtool BuildRequires: openldap-devel # --with-ldap-gssapi From dd065a0383b1606b3a793f5d2e15683a0f190cc0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 03:20:26 +0000 Subject: [PATCH 45/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 0c668ad..ae71e33 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 8.b1%{?dist} +Release: 9.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -526,6 +526,9 @@ done %endif %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 12:4.4.2-9.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Wed Jul 29 2020 Pavel Zhukov - 12:4.4.2-8.b1 - Fix IB patch (#1860689) From b7f08e9d5ca6bafa791b8c548c23b23414c686b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 2 Mar 2021 16:13:57 +0100 Subject: [PATCH 46/81] Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. --- dhcp.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index ae71e33..202a577 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 9.b1%{?dist} +Release: 10.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -526,6 +526,10 @@ done %endif %changelog +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 12:4.4.2-10.b1 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + * Tue Jan 26 2021 Fedora Release Engineering - 12:4.4.2-9.b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 8aeac5698d36db82a3f314f6a8da69e95f88cf1e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 27 May 2021 09:34:41 +0200 Subject: [PATCH 47/81] Fix for CVE-2021-25217 --- dhcp-statement_parser.patch | 30 ++++++++++++++++++++++++++++++ dhcp.spec | 6 +++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 dhcp-statement_parser.patch diff --git a/dhcp-statement_parser.patch b/dhcp-statement_parser.patch new file mode 100644 index 0000000..8e02a6f --- /dev/null +++ b/dhcp-statement_parser.patch @@ -0,0 +1,30 @@ +diff --git a/common/parse.c b/common/parse.c +index 386a6321..fc7b39c6 100644 +--- a/common/parse.c ++++ b/common/parse.c +@@ -3,7 +3,7 @@ + Common parser code for dhcpd and dhclient. */ + + /* +- * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC") ++ * Copyright (c) 2004-2021 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 1995-2003 by Internet Software Consortium + * + * This Source Code Form is subject to the terms of the Mozilla Public +@@ -5556,13 +5556,14 @@ int parse_X (cfile, buf, max) + skip_to_semi (cfile); + return 0; + } +- convert_num (cfile, &buf [len], val, 16, 8); +- if (len++ > max) { ++ if (len >= max) { + parse_warn (cfile, + "hexadecimal constant too long."); + skip_to_semi (cfile); + return 0; + } ++ convert_num (cfile, &buf [len], val, 16, 8); ++ len++; + token = peek_token (&val, (unsigned *)0, cfile); + if (token == COLON) + token = next_token (&val, diff --git a/dhcp.spec b/dhcp.spec index 202a577..7d71b32 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 10.b1%{?dist} +Release: 11.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -61,6 +61,7 @@ Patch25 : 0025-bind-Detect-system-time-changes.patch Patch26 : 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch +Patch100: dhcp-statement_parser.patch @@ -526,6 +527,9 @@ done %endif %changelog +* Thu May 27 2021 Pavel Zhukov - 12:4.4.2-11.b1 +- Fix for CVE-2021-25217 + * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 12:4.4.2-10.b1 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. From a06a2d7955a63cef86fb5f68ff78983d91e41b9a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Fri, 11 Jun 2021 09:57:32 +0200 Subject: [PATCH 48/81] Drop compat package --- dhcp.spec | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 7d71b32..6efdfd5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 11.b1%{?dist} +Release: 12.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -129,18 +129,6 @@ easier to administer a large network. This package provides the ISC DHCP relay agent. -%package compat -Summary: Utility package to help transition -Provides: dhcp = %{epoch}:%{version}-%{release} -Obsoletes: dhcp < %{epoch}:%{version}-%{release} -Requires: %{name}-server = %{epoch}:%{version}-%{release} -Requires: %{name}-relay = %{epoch}:%{version}-%{release} - -%description compat -This package only exists to help transition dhcp users to the new -package split (dhcp -> dhcp & dhcrelay). -It will be removed after one distribution release cycle, please -do not reference it or depend on it in any way. %package client Summary: Provides the ISC DHCP client daemon and dhclient-script @@ -484,8 +472,6 @@ done %attr(0644,root,root) %{_unitdir}/dhcrelay.service %attr(0644,root,root) %{_mandir}/man8/dhcrelay.8.gz -%files compat - %files client %doc README.dhclient.d %doc client/dhclient.conf.example client/dhclient6.conf.example client/dhclient-enter-hooks @@ -527,6 +513,9 @@ done %endif %changelog +* Fri Jun 11 2021 Pavel Zhukov - 12:4.4.2-12.b1 +- Drop compat package finally + * Thu May 27 2021 Pavel Zhukov - 12:4.4.2-11.b1 - Fix for CVE-2021-25217 From 607f51280f56d0f288ed893e1e68cc1bf382351a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Mon, 14 Jun 2021 13:26:56 +0200 Subject: [PATCH 49/81] Do not use getaddrinfo from rst lib --- bind99-rh1205168.patch | 108 +++++++++++++++++++++++++++++++++++++++++ dhcp.spec | 7 ++- 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 bind99-rh1205168.patch diff --git a/bind99-rh1205168.patch b/bind99-rh1205168.patch new file mode 100644 index 0000000..d397ce2 --- /dev/null +++ b/bind99-rh1205168.patch @@ -0,0 +1,108 @@ +diff --git a/lib/irs/include/irs/netdb.h.in b/lib/irs/include/irs/netdb.h.in +index 299928b..4f11cea 100644 +--- a/bind/bind/lib/irs/include/irs/netdb.h.in ++++ b/bind/bind/lib/irs/include/irs/netdb.h.in +@@ -158,6 +158,100 @@ struct addrinfo { + #define NI_DGRAM 0x00000010 + + /* ++ * Define to map into irs_ namespace. ++ */ ++ ++#define IRS_NAMESPACE ++ ++#ifdef IRS_NAMESPACE ++ ++/* ++ * Use our versions not the ones from the C library. ++ */ ++ ++#ifdef getnameinfo ++#undef getnameinfo ++#endif ++#define getnameinfo irs_getnameinfo ++ ++#ifdef getaddrinfo ++#undef getaddrinfo ++#endif ++#define getaddrinfo irs_getaddrinfo ++ ++#ifdef freeaddrinfo ++#undef freeaddrinfo ++#endif ++#define freeaddrinfo irs_freeaddrinfo ++ ++#ifdef gai_strerror ++#undef gai_strerror ++#endif ++#define gai_strerror irs_gai_strerror ++ ++#endif ++ ++extern int getaddrinfo (const char *name, ++ const char *service, ++ const struct addrinfo *req, ++ struct addrinfo **pai); ++extern int getnameinfo (const struct sockaddr *sa, ++ socklen_t salen, char *host, ++ socklen_t hostlen, char *serv, ++ socklen_t servlen, int flags); ++extern void freeaddrinfo (struct addrinfo *ai); ++extern const char *gai_strerror (int ecode); ++ ++/* ++ * Define to map into irs_ namespace. ++ */ ++ ++#define IRS_NAMESPACE ++ ++#ifdef IRS_NAMESPACE ++ ++/* ++ * Use our versions not the ones from the C library. ++ */ ++ ++#ifdef getnameinfo ++#undef getnameinfo ++#endif ++#define getnameinfo irs_getnameinfo ++ ++#ifdef getaddrinfo ++#undef getaddrinfo ++#endif ++#define getaddrinfo irs_getaddrinfo ++ ++#ifdef freeaddrinfo ++#undef freeaddrinfo ++#endif ++#define freeaddrinfo irs_freeaddrinfo ++ ++#ifdef gai_strerror ++#undef gai_strerror ++#endif ++#define gai_strerror irs_gai_strerror ++ ++int ++getaddrinfo(const char *hostname, const char *servname, ++ const struct addrinfo *hints, struct addrinfo **res); ++ ++int ++getnameinfo(const struct sockaddr *sa, IRS_GETNAMEINFO_SOCKLEN_T salen, ++ char *host, IRS_GETNAMEINFO_BUFLEN_T hostlen, ++ char *serv, IRS_GETNAMEINFO_BUFLEN_T servlen, ++ IRS_GETNAMEINFO_FLAGS_T flags); ++ ++void freeaddrinfo (struct addrinfo *ai); ++ ++IRS_GAISTRERROR_RETURN_T ++gai_strerror(int ecode); ++ ++#endif ++ ++/* + * Tell Emacs to use C mode on this file. + * Local variables: + * mode: c +-- +2.9.5 + diff --git a/dhcp.spec b/dhcp.spec index 6efdfd5..02cf5a7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 12.b1%{?dist} +Release: 13.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -62,7 +62,7 @@ Patch26 : 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch Patch100: dhcp-statement_parser.patch - +Patch101: bind99-rh1205168.patch BuildRequires: autoconf @@ -513,6 +513,9 @@ done %endif %changelog +* Mon Jun 14 2021 Pavel Zhukov - 12:4.4.2-13.b1 +- Do not use getaddrinfo from rst lib (#1823749) + * Fri Jun 11 2021 Pavel Zhukov - 12:4.4.2-12.b1 - Drop compat package finally From 6b289fd5615acc3b5a4eaa00bbf4caaa9b6600c3 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Jun 2021 07:01:54 +0200 Subject: [PATCH 50/81] Refactor patches --- ...patch => 0028-Fix-for-CVE-2021-25217.patch | 26 +++++++++++-------- ...0029-Use-system-getaddrinfo-for-dhcp.patch | 24 ++++++++++++----- dhcp.spec | 6 ++--- 3 files changed, 34 insertions(+), 22 deletions(-) rename dhcp-statement_parser.patch => 0028-Fix-for-CVE-2021-25217.patch (53%) rename bind99-rh1205168.patch => 0029-Use-system-getaddrinfo-for-dhcp.patch (79%) diff --git a/dhcp-statement_parser.patch b/0028-Fix-for-CVE-2021-25217.patch similarity index 53% rename from dhcp-statement_parser.patch rename to 0028-Fix-for-CVE-2021-25217.patch index 8e02a6f..7f9dad9 100644 --- a/dhcp-statement_parser.patch +++ b/0028-Fix-for-CVE-2021-25217.patch @@ -1,17 +1,18 @@ +From 02b4ae1953d39f1b6c3f0e63aefb72114039ab50 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Jun 2021 06:56:29 +0200 +Subject: [PATCH 28/29] Fix for CVE-2021-25217 +Cc: pzhukov@redhat.com + +--- + common/parse.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + diff --git a/common/parse.c b/common/parse.c -index 386a6321..fc7b39c6 100644 +index f17bc0b..4e8b408 100644 --- a/common/parse.c +++ b/common/parse.c -@@ -3,7 +3,7 @@ - Common parser code for dhcpd and dhclient. */ - - /* -- * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC") -+ * Copyright (c) 2004-2021 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1995-2003 by Internet Software Consortium - * - * This Source Code Form is subject to the terms of the Mozilla Public -@@ -5556,13 +5556,14 @@ int parse_X (cfile, buf, max) +@@ -5587,13 +5587,14 @@ int parse_X (cfile, buf, max) skip_to_semi (cfile); return 0; } @@ -28,3 +29,6 @@ index 386a6321..fc7b39c6 100644 token = peek_token (&val, (unsigned *)0, cfile); if (token == COLON) token = next_token (&val, +-- +2.26.3 + diff --git a/bind99-rh1205168.patch b/0029-Use-system-getaddrinfo-for-dhcp.patch similarity index 79% rename from bind99-rh1205168.patch rename to 0029-Use-system-getaddrinfo-for-dhcp.patch index d397ce2..24cbb6b 100644 --- a/bind99-rh1205168.patch +++ b/0029-Use-system-getaddrinfo-for-dhcp.patch @@ -1,11 +1,22 @@ -diff --git a/lib/irs/include/irs/netdb.h.in b/lib/irs/include/irs/netdb.h.in -index 299928b..4f11cea 100644 +From 019021caa791c254a319c71b4f634142dc14b37d Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Jun 2021 06:58:40 +0200 +Subject: [PATCH 29/29] Use system getaddrinfo for dhcp +Cc: pzhukov@redhat.com + +--- + bind/bind/lib/irs/include/irs/netdb.h.in | 94 ++++++++++++++++++++++++ + 1 file changed, 94 insertions(+) + +diff --git a/bind/bind/lib/irs/include/irs/netdb.h.in b/bind/bind/lib/irs/include/irs/netdb.h.in +index 23dcd37..f36113d 100644 --- a/bind/bind/lib/irs/include/irs/netdb.h.in +++ b/bind/bind/lib/irs/include/irs/netdb.h.in -@@ -158,6 +158,100 @@ struct addrinfo { +@@ -149,6 +149,100 @@ struct addrinfo { + #define NI_NUMERICSERV 0x00000008 #define NI_DGRAM 0x00000010 - /* ++/* + * Define to map into irs_ namespace. + */ + @@ -99,10 +110,9 @@ index 299928b..4f11cea 100644 + +#endif + -+/* + /* * Tell Emacs to use C mode on this file. * Local variables: - * mode: c -- -2.9.5 +2.26.3 diff --git a/dhcp.spec b/dhcp.spec index 02cf5a7..c3f45cf 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -60,10 +60,8 @@ Patch24 : 0024-Detect-system-time-changes.patch Patch25 : 0025-bind-Detect-system-time-changes.patch Patch26 : 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch - -Patch100: dhcp-statement_parser.patch -Patch101: bind99-rh1205168.patch - +Patch28: 0028-Fix-for-CVE-2021-25217.patch +Patch29: 0029-Use-system-getaddrinfo-for-dhcp.patch BuildRequires: autoconf BuildRequires: automake From bd690b3286e92368cee9d9cde456b04ce1d482aa Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Jun 2021 07:13:40 +0200 Subject: [PATCH 51/81] Bump NVR --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index c3f45cf..511ffb0 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 13.b1%{?dist} +Release: 14.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -511,6 +511,9 @@ done %endif %changelog +* Tue Jun 22 2021 Pavel Zhukov - 12:4.4.2-14.b1 +- Reformat patches + * Mon Jun 14 2021 Pavel Zhukov - 12:4.4.2-13.b1 - Do not use getaddrinfo from rst lib (#1823749) From 2d23651b7bddfbac6c2c34d76807832219feb99b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 20:43:45 +0000 Subject: [PATCH 52/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 511ffb0..fd04c93 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 14.b1%{?dist} +Release: 15.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -511,6 +511,9 @@ done %endif %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 12:4.4.2-15.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Jun 22 2021 Pavel Zhukov - 12:4.4.2-14.b1 - Reformat patches From da1223a7298981b2f767a3ce88cf8ed907086f5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Wed, 8 Sep 2021 21:16:32 +0200 Subject: [PATCH 53/81] Allow uninstallation of dhcp-compat Resolves: rhbz#2002163 --- dhcp.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index fd04c93..b22ddc9 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 15.b1%{?dist} +Release: 16.b1%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -95,6 +95,7 @@ DHCP (Dynamic Host Configuration Protocol) %package server Summary: Provides the ISC DHCP server Requires: %{name}-common = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-compat < 12:4.4.2-12.b1 Requires(pre): shadow-utils Requires(post): coreutils grep sed Requires(post): systemd @@ -113,6 +114,7 @@ This package provides the ISC DHCP server. %package relay Summary: Provides the ISC DHCP relay agent Requires: %{name}-common = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-compat < 12:4.4.2-12.b1 Requires(post): grep sed Requires(post): systemd Requires(preun): systemd @@ -511,6 +513,9 @@ done %endif %changelog +* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-16.b1 +- Allow uninstallation of dhcp-compat package (#2002163) + * Wed Jul 21 2021 Fedora Release Engineering - 12:4.4.2-15.b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From fba7be377e7cb9e25e591f20c2c9c58d08baf751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Wed, 8 Sep 2021 22:45:45 +0200 Subject: [PATCH 54/81] Update to 4.4.2-P1 CVE is fixed already, but switches from b1 prerelease to patch release. Cosmetic change only. Add verification of source signature. Updated license to match changed license. --- .gitignore | 2 + 0011-Drop-unnecessary-capabilities.patch | 38 +- 0028-Fix-for-CVE-2021-25217.patch | 34 -- codesign2021.txt | 534 +++++++++++++++++++++++ dhcp.spec | 22 +- sources | 3 +- 6 files changed, 572 insertions(+), 61 deletions(-) delete mode 100644 0028-Fix-for-CVE-2021-25217.patch create mode 100644 codesign2021.txt diff --git a/.gitignore b/.gitignore index 499b105..1a080ed 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /dhcp-4.3.6.tar.gz /dhcp-4.4.1.tar.gz /dhcp-4.4.2b1.tar.gz +/dhcp-4.4.2-P1.tar.gz +/dhcp-4.4.2-P1.tar.gz.asc diff --git a/0011-Drop-unnecessary-capabilities.patch b/0011-Drop-unnecessary-capabilities.patch index 4277baf..cfb055e 100644 --- a/0011-Drop-unnecessary-capabilities.patch +++ b/0011-Drop-unnecessary-capabilities.patch @@ -1,8 +1,7 @@ -From 3b37f4b7bb3a17f8bd655be919915a1912062ea6 Mon Sep 17 00:00:00 2001 +From 3863afcdfc5996f25741a41272c1a3bea0476692 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:30:28 +0100 -Subject: [PATCH 11/26] Drop unnecessary capabilities -Cc: pzhukov@redhat.com +Subject: [PATCH] Drop unnecessary capabilities dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) --- @@ -50,10 +49,10 @@ index 0db5516..2eddb8f 100644 dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and dhclient.leases(5). diff --git a/client/dhclient.8 b/client/dhclient.8 -index 6d7fbdb..0145b9f 100644 +index 7155cc5..9f1e435 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 -@@ -134,6 +134,9 @@ dhclient - Dynamic Host Configuration Protocol Client +@@ -135,6 +135,9 @@ dhclient - Dynamic Host Configuration Protocol Client .B -w ] [ @@ -63,7 +62,7 @@ index 6d7fbdb..0145b9f 100644 .B -B ] [ -@@ -328,6 +331,32 @@ not to exit when it doesn't find any such interfaces. The +@@ -329,6 +332,32 @@ not to exit when it doesn't find any such interfaces. The program can then be used to notify the client when a network interface has been added or removed, so that the client can attempt to configure an IP address on that interface. @@ -97,7 +96,7 @@ index 6d7fbdb..0145b9f 100644 .BI \-n Do not configure any interfaces. This is most likely to be useful in diff --git a/client/dhclient.c b/client/dhclient.c -index a86ab9e..5d3f5bc 100644 +index adcce50..7f202f9 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -41,6 +41,10 @@ @@ -111,7 +110,7 @@ index a86ab9e..5d3f5bc 100644 /* * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define * that when building ISC code. -@@ -266,6 +270,9 @@ main(int argc, char **argv) { +@@ -271,6 +275,9 @@ main(int argc, char **argv) { int timeout_arg = 0; char *arg_conf = NULL; int arg_conf_len = 0; @@ -121,7 +120,7 @@ index a86ab9e..5d3f5bc 100644 /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -665,6 +672,10 @@ main(int argc, char **argv) { +@@ -670,6 +677,10 @@ main(int argc, char **argv) { dhclient_request_options = argv[i]; @@ -132,7 +131,7 @@ index a86ab9e..5d3f5bc 100644 } else if (argv[i][0] == '-') { usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -725,6 +736,19 @@ main(int argc, char **argv) { +@@ -730,6 +741,19 @@ main(int argc, char **argv) { path_dhclient_script = s; } @@ -153,10 +152,10 @@ index a86ab9e..5d3f5bc 100644 initialize_common_option_spaces(); diff --git a/configure.ac b/configure.ac -index a797438..15fc0d7 100644 +index 2ca53ff..3276888 100644 --- a/configure.ac +++ b/configure.ac -@@ -612,6 +612,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); +@@ -603,6 +603,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); # Look for optional headers. AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) @@ -199,10 +198,10 @@ index a797438..15fc0d7 100644 AC_SEARCH_LIBS(socket, [socket]) AC_SEARCH_LIBS(inet_ntoa, [nsl]) diff --git a/relay/Makefile.am b/relay/Makefile.am -index 2ba5979..8900e0b 100644 +index 5562b69..4c5cfa6 100644 --- a/relay/Makefile.am +++ b/relay/Makefile.am -@@ -6,7 +6,8 @@ dhcrelay_LDADD = ../common/libdhcp.@A@ ../omapip/libomapi.@A@ \ +@@ -8,6 +8,7 @@ dhcrelay_LDADD = ../common/libdhcp.@A@ ../omapip/libomapi.@A@ \ @BINDLIBIRSDIR@/libirs.@A@ \ @BINDLIBDNSDIR@/libdns.@A@ \ @BINDLIBISCCFGDIR@/libisccfg.@A@ \ @@ -211,9 +210,8 @@ index 2ba5979..8900e0b 100644 + $(CAPNG_LDADD) man_MANS = dhcrelay.8 EXTRA_DIST = $(man_MANS) - diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index ea1be18..7b4f4f1 100644 +index 5e4a6a9..4c472a9 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -32,6 +32,11 @@ @@ -228,7 +226,7 @@ index ea1be18..7b4f4f1 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -590,6 +595,10 @@ main(int argc, char **argv) { +@@ -597,6 +602,10 @@ main(int argc, char **argv) { if (++i == argc) usage(use_noarg, argv[i-1]); dhcrelay_sub_id = argv[i]; @@ -239,7 +237,7 @@ index ea1be18..7b4f4f1 100644 #endif } else if (!strcmp(argv[i], "-pf")) { if (++i == argc) -@@ -660,6 +669,17 @@ main(int argc, char **argv) { +@@ -667,6 +676,17 @@ main(int argc, char **argv) { #endif } @@ -257,7 +255,7 @@ index ea1be18..7b4f4f1 100644 if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -@@ -816,6 +836,15 @@ main(int argc, char **argv) { +@@ -823,6 +843,15 @@ main(int argc, char **argv) { signal(SIGTERM, dhcp_signal_handler); /* kill */ #endif @@ -274,5 +272,5 @@ index ea1be18..7b4f4f1 100644 dispatch(); -- -2.14.5 +2.31.1 diff --git a/0028-Fix-for-CVE-2021-25217.patch b/0028-Fix-for-CVE-2021-25217.patch deleted file mode 100644 index 7f9dad9..0000000 --- a/0028-Fix-for-CVE-2021-25217.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 02b4ae1953d39f1b6c3f0e63aefb72114039ab50 Mon Sep 17 00:00:00 2001 -From: Pavel Zhukov -Date: Tue, 22 Jun 2021 06:56:29 +0200 -Subject: [PATCH 28/29] Fix for CVE-2021-25217 -Cc: pzhukov@redhat.com - ---- - common/parse.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/common/parse.c b/common/parse.c -index f17bc0b..4e8b408 100644 ---- a/common/parse.c -+++ b/common/parse.c -@@ -5587,13 +5587,14 @@ int parse_X (cfile, buf, max) - skip_to_semi (cfile); - return 0; - } -- convert_num (cfile, &buf [len], val, 16, 8); -- if (len++ > max) { -+ if (len >= max) { - parse_warn (cfile, - "hexadecimal constant too long."); - skip_to_semi (cfile); - return 0; - } -+ convert_num (cfile, &buf [len], val, 16, 8); -+ len++; - token = peek_token (&val, (unsigned *)0, cfile); - if (token == COLON) - token = next_token (&val, --- -2.26.3 - diff --git a/codesign2021.txt b/codesign2021.txt new file mode 100644 index 0000000..d021b56 --- /dev/null +++ b/codesign2021.txt @@ -0,0 +1,534 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFwq9BQBEADHjPDCwsHVtxnMNilgu187W8a9rYTMLgLfQwioSbjsF7dUJu8m +r1w2stcsatRs7HBk/j26RNJagY2Jt0QufOQLlTePpTl6UPU8EeiJ8c15DNf45TMk +pa/3MdIVpDnBioyD1JNqsI4z+yCYZ7p/TRVCyh5vCcwmt5pdKjKMTcu7aD2PtTtI +yhTIetJavy1HQmgOl4/t/nKL7Lll2xtZ56JFUt7epo0h69fiUvPewkhykzoEf4UG +ZFHSLZKqdMNPs/Jr9n7zS+iOgEXJnKDkp8SoXpAcgJ5fncROMXpxgY2U+G5rB9n0 +/hvV1zG+EP6OLIGqekiDUga84LdmR/8Cyc7DimUmaoIZXrAo0Alpt0aZ8GimdKmh +qirIguJOSrrsZTeZLilCWu37fRIjCQ3dSMNyhHJaOhRJQpQOEDG7jHxFak7627aF +UnVwBAOK3NlFfbomapXQm64lYNoONGrpV0ctueD3VoPipxIyzNHHgcsXDZ6C00sv +SbuuS9jlFEDonA6S8tApKgkEJuToBuopM4xqqwHNJ4e6QoXYjERIgIBTco3r/76D +o22ZxSK1m2m2i+p0gnWTlFn6RH+r6gfLwZRj8iR4fa0yMn3DztyTO6H8AiaslONt +LV2kvkhBar1/6dzlBvMdiRBejrVnw+Jg2bOmYTncFN00szPOXbEalps8wwARAQAB +tE1JbnRlcm5ldCBTeXN0ZW1zIENvbnNvcnRpdW0sIEluYy4gKFNpZ25pbmcga2V5 +LCAyMDE5LTIwMjApIDxjb2Rlc2lnbkBpc2Mub3JnPokCVAQTAQgAPhYhBK4/rHln +EexZ/AB6pHS7a5pMuz04BQJcKvQUAhsDBQkD7JcABQsJCAcCBhUKCQgLAgQWAgMB +Ah4BAheAAAoJEHS7a5pMuz0476oP/1+UaSHfe4WVHV43QaQ/z1rw7vg2aHEwyWJA +1D1tBr9+LvfohswwWBLIjcKRaoXZ4pLBFjuiYHBTsdaAQFeQQvQTXMmBx21ZyUZj +tjim8f9T1JhmIrMx6tF14NbqFpjw82Mv0rc8y74pdRvkdnFigqLKUoN2tFQlKeG+ +5T24zNwrGrlR3S7gnM47nD1JqKwt4GnczLnMBW/0gbLscMUpAeNo/gY4g0GV/zkn +Rt91bLpcEyDAv+ZhQZbkJ49dnNzl5cTK5+uQWnlAZAdPecdLkvBNRNgj/FKL41RF +JGN6eqq3+jlPbyj9okeJoGQ64Ibv1ZHVTQIx5vT1+PuVX/Nm0GqSUZdLqR33daKI +hjpgUdUK/D0AnN5ulVuE1NnZWjVDTXVEeU8DFvi4lxZVHnZixejxFIZ7vRMvyaHa +xLwbevwEUuPLzWn3XhC5yQeqCe6zmzzaPhPlg6NTnM5wgzcKORqCXgxzmtnX+Pbd +gXTwNKAJId/141vj1OtZQKJexG9QLufMjBg5rg/qdKooozremeM+FovIocbdFnmX +pzP8it8r8FKi7FpXRE3fwxwba4Y9AS2/owtuixlJ2+7M2OXwZEtxyXTXw2v5GFOP +vN64G/b71l9c3yKVlQ3BXD0jErv9XcieeFDR9PK0XGlsxykPcIXZYVy2KSWptkSf +6f2op3tMuQINBFwq9BQBEAC59lflbMmvSVkCHFoakdjokwGviNU4I/hOsNmHALYr +gJc0z88ss2KxbOq6JZoW9QOEHz2QLGsSGKnBUViEGvXoINDGuvzKFqHdEjGsExiF +FPGAgCQA2CSEZZ8MlITNdq4DuSti1LetjCF9d7hw2xOQs9ucxSXIslyqPbCdlxki +33tov40VE/J8jDUp9Rv27e0H2x4Nhu9MRQt4vTtpOcelYzl/dtPAmsnY4U/Nex4I +LM+JU2HcG/5i0nWkxOtz9Qc7kOgm4cuwXTCJw9KukPS3CykV1H/StPp43JyxoK1X +gZDMFww+9jupqLletmYKqCW6jVbqXr4Xlisq9Ey3LIWRQ0Zw/LB2NKU/jgnJGtLa +7O8VRWJKwkCtyYUbZMksKiGex7zCqPDR0hRVuYNsTjONobnrOS+7ST7ThbCndc+A +5mtuXpxuFffIuG78a3R3N30RF6g18peTfaEHMpqz+914HkNl6Ns445Zh+2rJkLUu +8O++tgWEUrpUajN9nosWaXWHOf7E9qGnm1G/3f9P3Nd5U+b3OKUYyqb+CNGCHyiN +bE1Cg3MnKpM9Yi9aZu4Qg/dPdxMWrqUmkmyDf6x/Oh8ZZkIacFlAaqbysQ6hRaJo +p7UG9AJfXHynj/Hz+1dNpUOlAIairFe3T2mWQO4Yy6IMgLEGVodZRHaMugdzZwus +HwARAQABiQI8BBgBCAAmFiEErj+seWcR7Fn8AHqkdLtrmky7PTgFAlwq9BQCGwwF +CQPslwAACgkQdLtrmky7PTikHw/8CZ+DnggV4AuI86spuMLdtUBDOux/T0gvyxSW +f8sJkjH0eAYAmP9/flJDfmwra5yNaINfqoLFWtaYLpxpBcWBc4VIoiWqVp2aaCPi +wh0sznCPiduiYcKGkHmupX8aCQXBYFDeQ8Jq1e9zwGD7Mon7BeBO48Vd5/IT1H5I +u5qzaCtD2ECO9MYdhuqJjFKU0MVzVocsBDdtLvrfnUwe4wc6kvOgHQ6RkMJU1bgY +0Sqstsg12vnREAr4uihnZQEihsRmNdiiv0DYVaRK92PLPpfVAox1Axq2HpH3WT87 +RpsFruXLj/zTl4AZczfDVd/Z4yWmJSzr0F5igkGSUrxo0ye2kNES6cmOGI9TgmgP +NLGXlC/su5fKXKjRgkD1ibJ0qFNNxF3Cwpz/+cav9ySDgFGX5Vu0kFi93fEYHshD +6lP9M5qS/2oKiykCGvcRCNU/9emdYlF37H52rxRerBaZN6dYMTjZw2vsEMUl06pL +llbLiwjPix2OlLFcwH3yKJG0pKkpEImBdJwHtJh5uHzfkSAbZjJAZ2Ekw7sLqiT0 +85hAGovywGpHMiYkqhNUO84fjZYCsrAlZMdriY92IMcQhmWQ416t5zcle2Xgx+/x +zBnktvx9KIH/HwBa+qym5z/uFC2S6zhNyC61LV/CEDCmcUi2lUXr7vcIxCsmxuUF +1ONbRP65Ag0EXFtUfAEQAN5tk4luE92Ed4E92VlgTetGMHyxwOlZ2OsK6l+Z5ML0 +wzomAITgMQwG0FeT6HX7vB+luVhg0XAZUW/K0bme8ZEO0dbHB3Vn07wXHhmq7QXH +/ACftkvevIT610dHskrtIvE5rZfj1P/wtjRTxDrkjhlGj9vhUxxcCkKadzDdBJGo +dP+Zh02d/4cc++LePNqZ3eJWm0JLghqKxzTv0MV1r6G1ZeykFzXeWY+La8ZCRaON +LcHjI7wlpyTJA9WGmyAphtEHM4fQqKLxtebIDo7m4glgR12nlV6B53gUT96PcKuA +Y/UPRiTV6nHyUtuL1EGTAVLsMDmtDbdSdtLLVbJXVmA+tapABa4amMxNVNY3QSUj +cAbECcTyVmVJfIT5fJW4eOMhWtrIGMspWoO5It0pl4K8jhCzIcfoXQ0olCSeC9fE +tljE7qzRzYQUUvN1VZPVX0Yw/xSwOutv4mxmNRWY9HW1M/jGoRAboqN8WhCbldak +a0XCH3U4rWXB/8HHb8KP4+q4ssVyPuEQ/v1UNNRk9AB25NPEh5PMdcf7HU8IcUHX +THEfd7zZVJ0l4FSsnGeuJfMrnRIpNOYX65ikeoTwmDU3ZjWfmSy7F5hTLw8WOEB4 +EKpnplyV1QN/j3317/M9PxvB8IOvyNF2okeurtHFMmI/lGwy51akp6iHMkbBDm5n +ABEBAAGJBHIEGAEIACYWIQSuP6x5ZxHsWfwAeqR0u2uaTLs9OAUCXFtUfAIbAgUJ +A70hAAJACRB0u2uaTLs9OMF0IAQZAQgAHRYhBJXO2iVrHKChXzAvtZUhp+1drOkY +BQJcW1R8AAoJEJUhp+1drOkY94wQAKb2fED9Up/xHEOjZm5ODK5LCVHy0KMATiTf +5SiJhRtqaRbimPH1WB3XMLls3FJZnm+UngIfwCsoWo0rksFUNmqFi6t4Cj/UB/Zv +29EnDT9BAeG5fP+Op5PDCsu4qnLv3oam35oV9yZLRkLhBd/EkRGEA/q27WnpiYCx +Jv5uPOJBWQqu32aE6st23PpY/QWDWOhGPfcWCecu1rIe+2BCs0UjfO0KOT8HYWNh +nGpsEZ+TmDKjRxMTYWKguEb9evEihl6kUwmQZgROdhBes63Yq4ku9rBXvRhCYbwS +odhjx2soDRcNmzxNV1Ply8a+2bwRHPnOeyyxEHFAwjkyXo7ZqGtenwSriG0LOW87 +y3Yw63O+oAlGLIB3psBSj4wZVGme9485HVICAFcJ3jXqsXSIJdzW61nGerB2r2Qk +Bn7yYIvHg3iOToB0alfNw2QuDtCZTNefvlHFnoashRhkk0yWzBerleFJbijx4+Vr +FaOH35BO1T3rgBmGkDW6gewoZMHEcmzTDoxxmbXiRvY+5o7b+ul/yzwhnJz3f5jk +7+Adnr9qAGMD2o3rCRBHV3lSEkLhBL+bfmsEYEor1fd+pDFoEKKjpDP6bgDcZyGv +O0mmr7Y/6ZrnKWxOrmNXieOTLbpY22tXv43QLgyiPcjhCfphT95IxqdNfMfOiI9k +IQf8g7GBciIP/1mbdnMj6Hg0J9IbI/XX/DWATOVMdDhq38VcggOHRjZk2lY99+4V +Au1wRHa/Io/CENikYzI00deSzhrN+tdUK/TCZI0Ft5Lykmti2ilmkIQGsBuD9gu/ +2bmWkNJEdpHeC/+oxntDFj43CpyKpPAarrw+4XiYNK+1+4WZsQRL0jJuKJ754v/o +NTaSd8GOCyFR7q8SVH4tig9DjkZjYjFFMnWkxdpnDX56/AfdS+x5EaRHKCJoGChT ++pHimvKe+MxBxpwJr4JpGddklin+6xUF5jTG6322hz385wsagGvmH2XliOu47a+7 +xUei7w3S1qtVCfdhtBEWL5i021yVYlrw+rUCwpFMIXAPA/p44O/qY06sQXJ01Fym +JCbOnjtVYX9gdF8fMKoDXAcvEtSulBNpXDongWp50BDfVoA7h9oDsxL5kw0GpkJn +uVMYLpO+iOqoEA3bJfsCedilkcz6UamLb+6RXMupKQaZ006Bu75Rm+h6PdicdiKD +jJY/7PbGuUmXxuSFT92v0hATlpEIQ8H8laEcnb8apiX2qOyGUHnb7pfYoNqvCm06 +3NP2igCtiGkzAohiHfhztfy2UApiTtXmPu3EhEUMooB+0Lt0zzY+e1cnFKRbJHvQ +ZidiOJfKuqp6upPvEgKYMRCAU4+nLT3MVbralo726JnDqrDJvCqAamhfuQINBFxb +VNsBEADcRGjaY+/ZVWBlQWvgy08ObhQbTRglb8thrcPeTR7211JJwAJemuTWwCjF +SVDH8JJ0Ss8rBcbitrGI3i3mcgJRQ1hILR2HT0bbmMLufCxZzQBjJm76H8XN++k6 +bd8HCYGXMguUaHRRHAcV+P18e3qGizgL7c8Vln9fbhowkX9yi/WhiL2uoXC3+XSa +C08TzwjKPb9Wnct6uCBAzMp8S7KW6P18vZyBTRBrugA9eZrGEe25rhy9szlJcajc +VeMiDMf058z7ait5t43AfUzd5zrD6c+ZGYIku88oY55LsZVcvn9o7I+UNbNJdiek +IpLae3Dgrie3QgDyfzPV1vXT2X8LaegOsNIkSo6jzjdKE0ZNg4xVSuPdr5jujYBN +z2k1lqV/Q/Ccpqzs0NsgnXnY8RDDrrmJhdy/ZrCMsXpbTK5KryR+JoDEiuyJ7YO2 +jTOCo6zQ631jvi7XUeHAFIdQ7eYRklJwABwj/IMXY++O8JBLO7iZ1dvvu3pfY7pg +dQvPgDttVAIxrNxMMj39LRbb6LE+eclWcTfGCMr3O6LOOLwkMnDWEkJAz7JMtWqr +2l+9xF9Dq7CkxHPP87dLTMNGIDr38bJ83CSmDPlBoaljTYgrlatBTV2hGMjPgEcB +jOgg6QyRGpO2N0SVBnD8PfBI7a7CwQw3BHOJtH8vPUkXZoafoQARAQABiQRyBBgB +CAAmFiEErj+seWcR7Fn8AHqkdLtrmky7PTgFAlxbVNsCGwIFCQO9IQACQAkQdLtr +mky7PTjBdCAEGQEIAB0WIQTXDITmS1WOW8zsByEy4hdfHXV6KgUCXFtU2wAKCRAy +4hdfHXV6KoJ9D/9IUN+s4gSiyWnqfq+UK5q86DTbC+OyQpAY/U/VDi/jQXDUaXzu +f25cCgyl4Xgf6nNTE6IEdgJCL4R6bChxJOHNpZ8/N3ckb/Q5xHKZ/5k5wFv7nxUk +vunzxB0wUgCLkn4oy4B8QbTMuRz1qcSdehUyZAlfkr7o/J5UO8FtgaMuNACxZNlO +JW5AjTDdbEW0MZapAgjx7+oTQMDtz9q4afuPaGJ3fTz4Vx1+mYt59b1h6xaMTXJi +8egJF0U4n/tJ+3gxAIhF7tQRPdNEwG+2Kw/YNyrLMY+nbazhlgUIIkk2IH3Ztd0S +XnNd7gV/slN80T9CtHtaDlH2FkeAd1unynxsDd/TLb1gLHem5iDsFuZBaIyHetdY +TlvT3SlKnDQr0FBTe86Kuv7n/ZNoU4lceXhUXTcataxKdxKEJt2x1Ei/hMHSVjaY +3ir57tuOUDMkl6hpL3sYiq7cMGUAnLH9nBZbbcNdfChDiM24mGmXaNoITutVAHS4 +uNunSL1l13hJ1hnGY79j4l+CgnPx7LHzBmLh4PPWKM3RYqwgaPEkflVQr1JOOKMM +x4bpllEtzpvVAIaF73tlsOQRRN1Aah67gvkWKqiZrXc0Sx/yh8EO/6bImb87rtVr +0kjeDGEiuGYXsszNBCmVjHal5kLUKaESefzd223zeaFe9foO2HrnsFb9B34ZD/9J +W5M+42QFd+tOLh1ue/5xToiyggGh1MX9axDqHiRu2w+E7kNuuws2426aupUQ3yPD +4dSwR428U14ytM90bZXztKFDgFAaQJ/4YVEGPSbLHFc4VlhDHpGljl8J7vI5xPOm +Ruc9aabtXwd065nQ2csk1DliiA4jpS9dUq/flH2oGj4b2OSGFvR5oC7oERHMpUA0 +p+wY3vnjkSVnWqV98yEBCFcZvpOy8J5KDZxYZvZydUvZ3ny5W6QPg8OKriqrCAKW +QXds47vRIiAasK14duLgex6il7HmboaqqOhRhevtBAHBJpB1z6Aq0SMwcKwdtTId +GTSoQd0R77ZGYvR3StpAwl8rJhCNwJHu2euA3hYPWHg0pF0L8pFbfUwOYf1dU+uQ +4xAJQKcCteQ7B0pawp+Hxp/0erB5c5PUUck38ze1ZoGm/oqh24XZ/amPVWE9nYSo +VTJwnbqWsfI6mzKdBHr5MP5zW5ei0PAo3lFb5gvVzJ2TqaGJvrh907I9R5Nwd6GM +wAWAzZ/nCLflSNyPyJ3ftxY6pGyCBJsycY7gBQD9i1xU0bxONltqSyifwQ0rt7yr +iwSI0VRnv8K3M2iTAdDm44bX6oHzljgiYachlV6IGmO3vdVVrCDhm+b+ia1bnQ/1 +H7itWEwllkUCCtaDwEcf8o3OdbS9S5KEbwH7YUD967kCDQRcW1UMARAAvl+0jUaB +UkQWBflWy4Wd8Gcf3lzOqbARdpM/iztebc7RbLnv0TNFQPV4TD9RoP+rY4dJzC8w +/rlxlhD3DiGcI3of3o/3pN6jss4wKyy9Jcg7uCo/fcspOoPOwigAUfBYTd2rWNvI +/pPUl7zmavQR2+TyQ4IHWG52zAABGej/tf3Ma6WGHC4QeTkh7LtHn3JFRCoFy101 +x60bJqIWONfR6+5UAOL/P+zTteEMsO3v7dWCWHX/tcYLrhCEH1CNnyPS7v7TF+Ys +uOGL7sSmQOUAcgldfUfTACw84YqViu5BSYiww18Eg1l66UcQFnhwB3fTGwzb3oPM +npAv2wAZ9gyFGzRgcH8QnXRm/SLDWlTaMIJS//0p/gXifCAdBZA/skBt+E4hQ5Sr +9iXGNMueR3bn7u8Pcoc1DpSJENE5H0nB62l3/OiSl/k7mJMGlUv6wKr42xNnIM6M +hO97axjRXy/XQz5n6ktyn9xRngkQNL9Ynj+i8E0k/xv5jA39EGAKOXxQFf8357sA +DnZ5g/Yf0Yr1c+TNIIRXER/k/KMavB52mguTNqCsewO5aje4Gq4vKd5P+jOKGopA +C4idTLkHutZTiakod7lW2jmjpm6P7oyAeAhDNEroNrbOIw0SaujHBmJtxgK1Q929 +y/EaH5vJyWfMFyUqM7CQBqUU/HRLERsebM8AEQEAAYkEcgQYAQgAJhYhBK4/rHln +EexZ/AB6pHS7a5pMuz04BQJcW1UMAhsCBQkDvSEAAkAJEHS7a5pMuz04wXQgBBkB +CAAdFiEErtYi/gIHfrS1wUbBQqJ50kjNwxAFAlxbVQwACgkQQqJ50kjNwxAf5xAA +hBhcOeqLgeXbUu0CCTKlnG6D7H8sQJWXCSsh9pAXffv58b4f0ntJ1TztKfVd79hS +BCcXRc/9+MhUUzR79NvFWWZMWqJ6MucjAkkOBRoc7c85PawYTI7e1zSapLPJEHG0 +xDzK8ClxwGEvlA4O/eGGVFaCTkxdTQg95fDXfghab6j89GI8Ghc9rC9V8RUgGVQV +qJJkBJ/gECJJp3holB4/w/I/sU+9AHXGKJvSJJ62fpmY143Y5JQk+I8DxoT0kIq4 +W2iZVAQMzQGpAOXkDuHk7a7J/QuL78CuoG98GOsfTd7nNsgPTZ07cPYGOxXeNR5U +9DlYOBWDwsf6d+D+tHLB8KzH3MWnWa3crjE3a/sgrDEad0CmAJzHXuCyPMy8vPQn +uxIai/gw2POq8YQMoKW5S80perLuN73FxAumjK9a2hYVdZNtABwrlW/6ELruv1se +mMjUq6oDyFio0rGy/uzCItl13hIr1Ii7B/SPz9dNnCagV8aiUmKXRk3HKoEXf34I +xWlod0szWopnP31NXNKHihs46ORSMrjnzFKjRcJsnipdins+DHJYroYhtOjNtsb/ +WV3D4tSerG3xKF/v3ssn2VsjcgK5HY/k9iUol/dvoP0bJ+rKs/fzt8oAqEexiRnV +cPnj/zAiBOt1940+0vTWaNYOPDkq872S48GNybOC342u2xAAnAp5myKostxjyQn3 +E/7/G1OWHaJW5kx/HCqHCWjgwwLOmhssNn8kpTf3ybvt5uhMolIF95RjFB3gBOfU +vw0sqMvEoBoGSMSTSc3zD05RBsWWFD9qwvPMXtn0gYaH39ISAFnxXrtrQ7dDD1d2 +LcBErdttnxEhUnT4/0YIat+r2PhmYYDYviKsuOy8MC/sJIxvhYEpbyPQnPksUzA4 +wmAbVNPlzqU2oWPrLT2tlxUue3z6VS/YHDcsLSgjVOMWSusLMh1+D76Y+Lcr9kVz +nRu+dYXh4I6OBnlT1VuzEVmrf69NFwh8j3PaVn0I0NEDU7mMa+5W0QYuJIsXZonq +SI2uIu64ZOVd+D8WmCEZO/Kmk5PMXs+0fMcFD9mOeFaiOdz+PIlHAsrxwKXr4Q5z +zzu/wEOaqAVa2bJywTbl8MntQUY/XeD94MvdlSAwO3Ll1BpQ5NfXjm3YpP6Uyqlj +pkrYQL56iqucgYn61jLSXhFHGLXSZs2G48ggN2mHtf6ZQeAJ4D2DIXRj4uqIHoJf +7MWDui8u+cJsw/F0ZerPsCN/CpkEoj4FW4F4O3JbiieYSUK7lxc0qyDdbQiVCVl/ +08wNToe3RctSzsQ99tCwfVWqLVcTVb+0aeSaNykb+qW30bHW7AUYs/qKiapQFzZz +QZnpHXGmVe93fDfILx3yUCA8Yia5Ag0EXFtVOgEQAOS7GFDH2DGXPMJzSdS7a/zZ +ewP4bM42n2Ku3XiCyXG173p4ppNdOLS3l7JrRflMhjfBtETCOV8B4z0B9wCZZywz +iLOt8+0A0zpY7EHZNvMRjZyq/s0FCKLtnlqo/KNwiJPRvQazZ6+UOSffEQEGpNKs +1ycZIDb1tk8iRpRvtCin8CeLRLf+2BxHbWBewnCSCl80rC89PTcvPf+jmtcDJqDQ +z/blp2CT1JUo1xdzyHYdIa/kQ2PBQo02ejBVs0vDjbzuYVQzZV3q6cYnYwGPtpTB +Ot8GXuA1X3qYx0MlZwGEYpiTFS+Ju4cJrYofuBOudXpfux2uAPkJskw+ro5k1I/q +fptRWDbZ4fGgROmUXBPg29XdyVExYgAbVeBdHWX30sCHs8+c8wzWkdAY/BgdCySg +EVLiDmSfMekH2H1N9ncwzhwNlHk2BaYTR9hWdZ7lrH7BbT8g6SVSge/eqgvjKI33 +AUmragvNQ1B3362yqLK/FJOHyJiYd6DKfkq4E+ysw+C+qIo51qVNkqRqT0M7HhwZ +AvaoeykrGIE5vq6jHa9+MxDlsN5Sf7gNgx2dk0d7LAJR6AmYNqRS2V+837XfogMc +bB90ZyK2rOzDN3f48jaqXA8TX2CSun01RoPdCPZm0M/uxTZxOFzoatrkpEVbx/3x +sjvuPVa7qkKdgUuo/PhBABEBAAGJBHIEGAEIACYWIQSuP6x5ZxHsWfwAeqR0u2ua +TLs9OAUCXFtVOgIbAgUJA70hAAJACRB0u2uaTLs9OMF0IAQZAQgAHRYhBHkdfriO +vI0BOENKrDPfNZrnpgp5BQJcW1U6AAoJEDPfNZrnpgp5JY4QAMry7TcsRIZJCVlC +qecIAjyJizWz5dEwScba0BDU4rv/h42CvXJlySZpbgUEyB4SBggEnu/dKVbsd/t0 +TXRNg80Zs/pTFVbwcg+sDgIg1wZldZbClLfvgk0xLoDl5vq+K4SAQwSLTSPHQyYu +8IxkrKmbBdBSXlgnmcHK2lDXrzWYJDEYEyFPV4pC3cHicCygSc/4eepUz+crEF6Z +IE1df4LRv9h5CgsLewMv5nQ1EjxTo9mX1GiSh3e7KcfS98FgIQl3oy+yO2cmVVVq +x5ggDcRI2sUbXa3D3kjAo2tUIA1nUMFLIrii+aZawOsf64VMdIs2OXEi5XFR+Zdw +t+Bx6lUKZ3/tntStZitJdK8/RUbhmYQ8Tu01vxt/IAN+07VxWyZwcFB5KuC+lKtO +/0vwyhyiOlHm8lzV/5qwFPusB4bNk/2uLPUaavJdrBpmB0t9pol/NFCRzW5MKFvu +Qw35QyFVR0IBeaGjRc5J9yxbzi78umN1iHZbDjXFA7oRa9tkM2AP8V2anxSHUyon +UN6OuLqSM2frA8iZcl0S7qcepYNF1ix9PhdQHXy0H7hoikXMLIiCl/unW5pVTs6q +KnmxmRz9ZcqvvuVXbeY9C+kZE0LOBTZMljuS1Hcs69RU3rA18swfN5CTXw12ZwQZ +SsnRhi2X28Tn8SD0vrEsEf08q3XshDwP/0MvBBfymXd+5MzxlvMg8vGJeFuDMEFN +cpETa7Xzzz5Eir3ETtxpUWPCriqmCpnlIWidNwbg+LlyTeYUDPIDnMtEX5ySmYGn +BI8ykvAKm/XTfr0PWOEAXcmxTC3oMhvYEhIyGHZOFJQxIo7vmrwZKi2wqMnKMPq+ +XXHgvtZe5tNbESI27APeQCMVZLVnVVa0D1JRFYBuwNoJXhWbAIKlIjBGv05NvK71 +e4x0zEY2mXxLBbsxVBvHhpg29HseX/AhHvUAcBehJ+sqnenXZqdeNhgBIeZubXq6 +A/gfscswF/Ocp63Z/vqAjEmvUKwAxNKrKlwLVShVvobPx2N4hH4ZT7p58cjhMhQz +Lm4whTHy1hvBIR6j/Lo2eOkkVhiMlrrvWJIAEic3Gzj5f7XOsVr7CXjkSdoXHOIR +63ZDO/9Wy6ygu8vCdiIFlyRyUBLnGhUYVbRYnTU58tQMfEYy30ZKF4vxz4Ysxoy1 +oJa6emaa33Nn1Z2kE64AaW4wbUJ57nROuFdoYTwJ02vyc51J4s0C94EA+a5VrQkN +J7bT8P9G5gksp4b1WyoFm+O4aU5Sx+XpSO2IZFuBL05anF57Pm6Bz3LJX6sEYima +chv72q7PYeYbETrl4DZxE2xlEiMUvN4DH/RExpPWeUsVMFtS5n60n5+AW1EYyGJ9 +mfWlvZ0xCjQ3uQINBFxbVW4BEAC/gtho2rZl6/+/szkOfEumAdFwyQbtM5CnJyuU +rnrneWWlnNPLeaHml5a9yrcgOZ15QgnFD5YOHZ/S9L40goML8cB118etk9uE7vMv +EtwxbkqZXTlqdxpFI/SzT4jJCa9XFQ2uA+KdmKmGW9EagtdLql2B9ziMhH0Ha6Y9 +5x+9+7/oRYU+ddmAbwrJjdn6bCuYQ7QVpccFC67qdpy2I97v03hst7yGT1FbrIjE +sF4nMig6Uhwma5Edqm2dLaVXeZ+Fl0WeQCnWjprZMvkHCAxjTBlQpmvvwcQwqHot +s832s96l/Sd5R6r+TWU0lTtXpcxL6t7MXfW+BInkqg0ZiHG1Znni6SwfatzDv6W2 +lJW2pj3Ub++JulEIkbct1f+TEeeLU0RbJmWlL/qe24fodKg1ixH0gyxsRKzdBUIf +vgCkrzwLFgJEHRISjQzIASVtDdt8QoIqX8XALgjMBgAnZqtYrAEdFImWys0K1zOu +MbuPcTImufz5ObnKM7rRMdCO9z+cHGs0TT2vUvPPuOsNYL1GX4EfrCp2eLKahjJQ +BCxfatn4mFqHVmR/4a7vqq1j4Qfj3h08z7QVrNwGWAF3r8nmaHdaT0m55xctMRQa +3N3UaYj0IQ08CSUJq5e005Z5Oinbt2O4paxnG4/UbJXpRiLEVU5Ja17IBsDfZydx +W//ZlQARAQABiQRyBBgBCAAmFiEErj+seWcR7Fn8AHqkdLtrmky7PTgFAlxbVW4C +GwIFCQO9IQACQAkQdLtrmky7PTjBdCAEGQEIAB0WIQQVaJBoXqDfahNx7yAXzF2x +8AiEBwUCXFtVbgAKCRAXzF2x8AiEB3iPEACI735VFBDd4E6wlGAA12Av+XnWSruo +Te7zGdKo2SuZ1gN1PYdNgflbifYCYajnQENp92N3q263Sq3MDf+EZYKijJ3EoU6y +chjOJR6ge+UgKPdGQc7Lu61wWECBFaL6TMXCedcZ/Xd0xT2IbvK8qsKsITDjiDOh +DUqdjVeyPXyfkmSrF5P3hvNxJvPbQ6k5Igx9JA+unLXxatljAeh1whnchRQAIKkx +l19Nr1z+odFD+tzCX4HQmUfHRXgBiJICyIxWB+U7USqLtqk+7DE893meceSt0Mz0 +JgLct0E5EFfCdwbehnl5NJeay8XEdcfjUkeyb/VAVxWYUBiG72okUIaIP7xR5MW1 +P6ecdTr0GzOC1SySpfyT0+ot0rtXGSnXrBzpY6nU14hDoV3g/FMas+qz1smTtOVi +1MVakDRf4QyP9Jqf4q4/GosRrgBvXZHi+zWkKuf+DXPcL/q6MfgHvQc6tFMh5ONQ +snrF3Bca3BQDT2GKjSukeG3JmECHmKtQk22jhk6T9DJ3518yw29El9tUgraaZ5Fo +Gen3TYCxA2BhV2LYCSLSHiTPdtUsbDuIP/FXaFXr34nAtKKOSSY6nP8SMzCPSEMN +iscfdjejR1Xd012T/mLqVCBzFJWyX2RaUdygSWUpt/QdvWa4pXCgYZjEVidraOws +VWMbb0zuI9KCseOaD/4jd+awtnRUj2SbGeJSVnqDPk0Hk8ndFebAo70uQGATkLXC +m5ls0RDU2xHZumuUk+b74Y1KjwdqF65NEmfjaSQ6B8gnCO69eKHcUT821ED9bwfa +4XpgsOMEoZklvFByax0JMS4JEJU/xfsLmfeuXVirN9Z82vxAXG8fuK8bso6VLG/J +Mpxhq1Zv24NQ+uevvh9loyWMcaw3IqPvQzNlyuuya3rXJYZHSH7TauYgqWySXiGS +H6oXl6Ej4GR3t5uWwHKvEREQer+KPZV3uXRnrTpgITy+PxZ9ywmPwmPBHcD6c0P+ +g0lNNtDdvw69qy+oh7JaqqYaDvedseN39UgBSx++ewRhq0OTikAD/BCv1zhPizlD +9BHAOsCxrgnz0WsONYKFAE8vtNo/wB//djf/zqMsI3iWdbWqM9e/muEEV4jQRWLW +TWp1XTqqvkc6TsLBBNO5zisJ0VwSfDyRUplr/IWeUl9FrRngjBJqF2nl90US5p3o +uk5wUWdjFa0haFyDgZNFwyFr85mex+o6qIC3oif7UjC4kHPe4wzvHDYAxrHMB6MY +QvrcXzULmInot3qRAr5duUNbQbrjdtVvOQFvjowBP5Scu5ZBSzc0O2TUUSKgnJZS +Bs7+yswfgyhYzusbxlOdA+iE2Y8GuovamGYTbsdCxDStOMfZnaiXuLL04Uy1PQ== +=fX+D +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +4xcYgqlVpv15O7VrD+I= +=Uugw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/dhcp.spec b/dhcp.spec index b22ddc9..6edc75c 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -8,23 +8,25 @@ %global dhcpconfdir %{_sysconfdir}/dhcp -%global prever b1 -#global patchver P1 +#global prever b1 +%global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 16.b1%{?dist} +Release: 17%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. # So we are stuck with it. Epoch: 12 -License: ISC +License: ISC and MPLv2.0 Url: https://www.isc.org/dhcp/ -Source0: ftp://ftp.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz +Source0: https://downloads.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz +Source9: https://downloads.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz.asc +Source10: codesign2021.txt Source1: dhclient-script Source2: README.dhclient.d Source3: 11-dhclient @@ -60,7 +62,6 @@ Patch24 : 0024-Detect-system-time-changes.patch Patch25 : 0025-bind-Detect-system-time-changes.patch Patch26 : 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch -Patch28: 0028-Fix-for-CVE-2021-25217.patch Patch29: 0029-Use-system-getaddrinfo-for-dhcp.patch BuildRequires: autoconf @@ -75,6 +76,7 @@ BuildRequires: libcap-ng-devel BuildRequires: systemd systemd-devel # dhcp-sd_notify.patch BuildRequires: pkgconfig(libsystemd) +BuildRequires: gnupg2 %if ! 0%{?_module_build} BuildRequires: doxygen %endif @@ -197,6 +199,9 @@ This package contains doxygen-generated documentation. %endif %prep +%if 0%{?fedora} +%{gpgverify} --keyring='%{SOURCE10}' --signature='%{SOURCE9}' --data='%{SOURCE0}' +%endif %setup -n dhcp-%{DHCPVERSION} pushd bind tar -xvf bind.tar.gz @@ -513,6 +518,11 @@ done %endif %changelog +* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-17.P1 +- Update to 4.4.2-P1 (#1970903) +- Add source code signature verification +- Updated license tag + * Wed Sep 08 2021 Petr Menšík - 12:4.4.2-16.b1 - Allow uninstallation of dhcp-compat package (#2002163) diff --git a/sources b/sources index a05ae07..5050d55 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (dhcp-4.4.2b1.tar.gz) = 37f65ba12f578465e55132867f22c1bb082cd631724b7d0ce2e658fbace9b6969708cc4af843688e669f75d94241eaa40e07c384ee6527ec5297c03da3e45d97 +SHA512 (dhcp-4.4.2-P1.tar.gz) = 924e8b44f288361dbe837987869e57b929c73cb5e4af37cb2d7b19bca5ea8594048fb41c0792fede003188185f61b25befbc2ccda42f1f68e6b6bc22ef44b040 +SHA512 (dhcp-4.4.2-P1.tar.gz.asc) = a8ef21efe9488785010b393f2cfa212cc4fe11d1e62f807eef52e929833b358676721960d996f57f03082ca300173ef12cb01152244d7ab22a6643ff85953416 From 7feba5cd9454e35c3ac9279c3a0867a1eb13fa12 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 00:36:14 +0000 Subject: [PATCH 55/81] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 6edc75c..20598a9 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.2 -Release: 17%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 18%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -518,6 +518,9 @@ done %endif %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 12:4.4.2-18.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Sep 08 2021 Petr Menšík - 12:4.4.2-17.P1 - Update to 4.4.2-P1 (#1970903) - Add source code signature verification From b5f71e36b32c879cb18a365ac4c91bd669f76683 Mon Sep 17 00:00:00 2001 From: Petr Sklenar Date: Thu, 20 Jan 2022 11:27:52 +0100 Subject: [PATCH 56/81] Adding fmf plan --- .fmf/version | 1 + gating.yaml | 16 ++++++++++++++++ plans/all.fmf | 6 ++++++ plans/tier1-public.fmf | 7 +++++++ 4 files changed, 30 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/all.fmf create mode 100644 plans/tier1-public.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..e4c04e7 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,16 @@ +--- !Policy +product_versions: + - fedora-* +decision_contexts: [bodhi_update_push_testing] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#gating rawhide +--- !Policy +product_versions: + - fedora-* +decision_contexts: [bodhi_update_push_stable] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} diff --git a/plans/all.fmf b/plans/all.fmf new file mode 100644 index 0000000..4312a16 --- /dev/null +++ b/plans/all.fmf @@ -0,0 +1,6 @@ +summary: Test plan with all beakerlib tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/dhcp.git +execute: + how: tmt diff --git a/plans/tier1-public.fmf b/plans/tier1-public.fmf new file mode 100644 index 0000000..b218060 --- /dev/null +++ b/plans/tier1-public.fmf @@ -0,0 +1,7 @@ +summary: Public (Fedora) Tier1 beakerlib tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/dhcp.git + filter: 'tier: 1' +execute: + how: tmt From fea3ac58b85e19f776c13d8ec2b3bec9e2086ac6 Mon Sep 17 00:00:00 2001 From: Petr Sklenar Date: Tue, 25 Jan 2022 10:16:39 +0100 Subject: [PATCH 57/81] ci.fmf to separe more plans --- ci.fmf | 1 + 1 file changed, 1 insertion(+) create mode 100644 ci.fmf diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate From fa1179c35878a92835a9ac26899ab3f9d71fecbd Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Thu, 10 Mar 2022 18:06:31 +0100 Subject: [PATCH 58/81] New version 4.4.3 Add keama migration utility --- .gitignore | 2 + 0001-change-bug-url.patch | 9 +- 0002-additional-dhclient-options.patch | 61 ++++---- ...ng-interfaces-requested-by-sbin-ifup.patch | 13 +- ...BOOTP-for-IBM-pSeries-systems-and-ma.patch | 19 ++- 0005-Change-default-requested-options.patch | 11 +- 0006-Various-man-page-only-fixes.patch | 19 ++- ...ge-paths-to-conform-to-our-standards.patch | 13 +- ...en-file-descriptors-are-closed-on-ex.patch | 63 ++++---- 0009-Fix-garbage-in-format-string-error.patch | 11 +- 0010-Handle-null-timeout.patch | 9 +- 0011-Drop-unnecessary-capabilities.patch | 30 ++-- ...ss-Static-Route-Option-for-DHCPv4-51.patch | 87 +++++------ 0013-DHCPv6-over-PPP-support-626514.patch | 33 ++-- 0014-IPoIB-support-660681.patch | 60 ++++--- ...-Add-GUID-DUID-to-dhcpd-logs-1064416.patch | 147 +++++++++--------- 0016-Turn-on-creating-sending-of-DUID.patch | 19 ++- ...equest-release-via-correct-interface.patch | 17 +- ...ation-for-iface-should-be-info-not-e.patch | 15 +- ...UID_LLT-even-in-stateless-mode-11563.patch | 11 +- ...ver-all-hwaddress-for-xid-uniqueness.patch | 23 ++- ...ad-leases-DB-in-non-replay-mode-only.patch | 16 +- ...re-link-local-address-is-ready-in-st.patch | 15 +- 0023-option-97-pxe-client-id.patch | 41 +++-- 0024-Detect-system-time-changes.patch | 17 +- 0025-bind-Detect-system-time-changes.patch | 69 ++++---- ...-Add-dhclient-5-B-option-description.patch | 21 ++- ...tify-patch-to-manage-dhcpd-with-syst.patch | 17 +- ...0028-Use-system-getaddrinfo-for-dhcp.patch | 19 ++- dhcp.spec | 36 ++++- sources | 4 +- 31 files changed, 464 insertions(+), 463 deletions(-) rename 0029-Use-system-getaddrinfo-for-dhcp.patch => 0028-Use-system-getaddrinfo-for-dhcp.patch (81%) diff --git a/.gitignore b/.gitignore index 1a080ed..90649df 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /dhcp-4.4.2b1.tar.gz /dhcp-4.4.2-P1.tar.gz /dhcp-4.4.2-P1.tar.gz.asc +/dhcp-4.4.3.tar.gz +/dhcp-4.4.3.tar.gz.asc diff --git a/0001-change-bug-url.patch b/0001-change-bug-url.patch index b6afa57..8c8211f 100644 --- a/0001-change-bug-url.patch +++ b/0001-change-bug-url.patch @@ -1,15 +1,14 @@ -From 23dfbc560028bf7429196db1a3826f8b80c19d3e Mon Sep 17 00:00:00 2001 +From 5e9162c5ad7aa98f7f673ac7a7f46905ba2deea4 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:09:57 +0100 -Subject: [PATCH 01/26] change bug url -Cc: pzhukov@redhat.com +Subject: [PATCH 01/28] change bug url --- omapip/errwarn.c | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/omapip/errwarn.c b/omapip/errwarn.c -index e30f8a0..09a3004 100644 +index 38dd9c5..d88e392 100644 --- a/omapip/errwarn.c +++ b/omapip/errwarn.c @@ -48,6 +48,41 @@ void (*log_cleanup) (void); @@ -74,5 +73,5 @@ index e30f8a0..09a3004 100644 log_error ("exiting."); -- -2.14.5 +2.35.1 diff --git a/0002-additional-dhclient-options.patch b/0002-additional-dhclient-options.patch index d700c00..4b5696b 100644 --- a/0002-additional-dhclient-options.patch +++ b/0002-additional-dhclient-options.patch @@ -1,23 +1,22 @@ -From a26161b0fd45cdbeed3038ac63ff04e3b727248f Mon Sep 17 00:00:00 2001 +From af18c830fe55f6be0b89997a36b611d981e3c25d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:19:47 +0100 -Subject: [PATCH 02/26] additional dhclient options -Cc: pzhukov@redhat.com +Subject: [PATCH 02/28] additional dhclient options --- client/clparse.c | 10 +- - client/dhclient.8 | 27 ++++++ - client/dhclient.c | 271 +++++++++++++++++++++++++++++++++++++++++++++++++++- + client/dhclient.8 | 27 +++++ + client/dhclient.c | 271 +++++++++++++++++++++++++++++++++++++++++++- common/conflex.c | 2 + includes/dhcpd.h | 3 + - includes/dhctoken.h | 1 + - 6 files changed, 308 insertions(+), 6 deletions(-) + includes/dhctoken.h | 3 +- + 6 files changed, 309 insertions(+), 7 deletions(-) diff --git a/client/clparse.c b/client/clparse.c -index eaf48a8..7212e3a 100644 +index 74ca499..bb63825 100644 --- a/client/clparse.c +++ b/client/clparse.c -@@ -189,6 +189,7 @@ isc_result_t read_client_conf () +@@ -192,6 +192,7 @@ isc_result_t read_client_conf () /* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache) */ top_level_config.requested_lease = 7200; @@ -25,7 +24,7 @@ index eaf48a8..7212e3a 100644 group_allocate (&top_level_config.on_receipt, MDL); if (!top_level_config.on_receipt) -@@ -394,7 +395,8 @@ void read_client_leases () +@@ -397,7 +398,8 @@ void read_client_leases () interface-declaration | LEASE client-lease-statement | ALIAS client-lease-statement | @@ -35,7 +34,7 @@ index eaf48a8..7212e3a 100644 void parse_client_statement (cfile, ip, config) struct parse *cfile; -@@ -817,6 +819,12 @@ void parse_client_statement (cfile, ip, config) +@@ -820,6 +822,12 @@ void parse_client_statement (cfile, ip, config) parse_lease_id_format(cfile); break; @@ -49,10 +48,10 @@ index eaf48a8..7212e3a 100644 default: lose = 0; diff --git a/client/dhclient.8 b/client/dhclient.8 -index ebc750f..6d7fbdb 100644 +index 861ff56..5029dac 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 -@@ -134,6 +134,33 @@ dhclient - Dynamic Host Configuration Protocol Client +@@ -135,6 +135,33 @@ dhclient - Dynamic Host Configuration Protocol Client .B -w ] [ @@ -87,7 +86,7 @@ index ebc750f..6d7fbdb 100644 .I seconds ] diff --git a/client/dhclient.c b/client/dhclient.c -index 825ab00..26a333c 100644 +index 46dc3a7..6c1c09a 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -41,6 +41,12 @@ @@ -103,7 +102,7 @@ index 825ab00..26a333c 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ -@@ -110,6 +116,10 @@ char *mockup_relay = NULL; +@@ -113,6 +119,10 @@ char *mockup_relay = NULL; char *progname = NULL; @@ -114,7 +113,7 @@ index 825ab00..26a333c 100644 void run_stateless(int exit_mode, u_int16_t port); static isc_result_t write_duid(struct data_string *duid); -@@ -183,8 +193,12 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; +@@ -189,8 +199,12 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; " [-s server-addr] [-cf config-file]\n" \ " [-df duid-file] [-lf lease-file]\n" \ " [-pf pid-file] [--no-pid] [-e VAR=val]\n" \ @@ -129,7 +128,7 @@ index 825ab00..26a333c 100644 #define DHCLIENT_USAGEH "{--version|--help|-h}" static void -@@ -243,6 +257,16 @@ main(int argc, char **argv) { +@@ -249,6 +263,16 @@ main(int argc, char **argv) { #else progname = argv[0]; #endif @@ -146,7 +145,7 @@ index 825ab00..26a333c 100644 /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -558,6 +582,89 @@ main(int argc, char **argv) { +@@ -564,6 +588,89 @@ main(int argc, char **argv) { std_dhcid = 1; } else if (!strcmp(argv[i], "-v")) { quiet = 0; @@ -236,7 +235,7 @@ index 825ab00..26a333c 100644 } else if (argv[i][0] == '-') { usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -754,6 +861,156 @@ main(int argc, char **argv) { +@@ -760,6 +867,156 @@ main(int argc, char **argv) { /* Parse the dhclient.conf file. */ read_client_conf(); @@ -393,7 +392,7 @@ index 825ab00..26a333c 100644 /* Parse the lease database. */ read_client_leases(); -@@ -3226,7 +3483,8 @@ void make_discover (client, lease) +@@ -3472,7 +3729,8 @@ void make_discover (client, lease) client -> packet.xid = random (); client -> packet.secs = 0; /* filled in by send_discover. */ @@ -403,7 +402,7 @@ index 825ab00..26a333c 100644 client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -3311,7 +3569,9 @@ void make_request (client, lease) +@@ -3557,7 +3815,9 @@ void make_request (client, lease) } else { memset (&client -> packet.ciaddr, 0, sizeof client -> packet.ciaddr); @@ -414,7 +413,7 @@ index 825ab00..26a333c 100644 client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -3374,7 +3634,8 @@ void make_decline (client, lease) +@@ -3620,7 +3880,8 @@ void make_decline (client, lease) client -> packet.hops = 0; client -> packet.xid = client -> xid; client -> packet.secs = 0; /* Filled in by send_request. */ @@ -425,7 +424,7 @@ index 825ab00..26a333c 100644 else client -> packet.flags = htons (BOOTP_BROADCAST); diff --git a/common/conflex.c b/common/conflex.c -index 045b655..71c0bf5 100644 +index 8b01dfb..1fa2be3 100644 --- a/common/conflex.c +++ b/common/conflex.c @@ -832,6 +832,8 @@ intern(char *atom, enum dhcp_token dfv) { @@ -438,10 +437,10 @@ index 045b655..71c0bf5 100644 case 'c': if (!strcasecmp(atom + 1, "ase")) diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 5930e6a..018fa34 100644 +index f68b228..3b2e2ca 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -1269,6 +1269,9 @@ struct client_config { +@@ -1284,6 +1284,9 @@ struct client_config { int lease_id_format; /* format for IDs in lease file, TOKEN_OCTAL or TOKEN_HEX */ @@ -452,17 +451,19 @@ index 5930e6a..018fa34 100644 /* Per-interface state used in the dhcp client... */ diff --git a/includes/dhctoken.h b/includes/dhctoken.h -index 5920f4f..7e7215a 100644 +index e6d125f..6daa422 100644 --- a/includes/dhctoken.h +++ b/includes/dhctoken.h -@@ -377,6 +377,7 @@ enum dhcp_token { +@@ -377,7 +377,8 @@ enum dhcp_token { TOKEN_HEX = 677, TOKEN_OCTAL = 678, - KEY_ALGORITHM = 679 -+ BOOTP_BROADCAST_ALWAYS = 680 + KEY_ALGORITHM = 679, +- DISCONNECT = 680 ++ BOOTP_BROADCAST_ALWAYS = 680, ++ DISCONNECT = 681 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ -- -2.14.5 +2.35.1 diff --git a/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch index 2953c0f..c6e9376 100644 --- a/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch +++ b/0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch @@ -1,18 +1,17 @@ -From af504e99abde04b881768d18eaa0054b36b16303 Mon Sep 17 00:00:00 2001 +From be8f73c399c0f89192e57453db153aaa48fcbb2e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:21:14 +0100 -Subject: [PATCH 03/26] Handle releasing interfaces requested by /sbin/ifup -Cc: pzhukov@redhat.com +Subject: [PATCH 03/28] Handle releasing interfaces requested by /sbin/ifup --- - client/dhclient.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + client/dhclient.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/client/dhclient.c b/client/dhclient.c -index 26a333c..2a2e9e6 100644 +index 6c1c09a..07679a7 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -787,9 +787,81 @@ main(int argc, char **argv) { +@@ -793,9 +793,81 @@ main(int argc, char **argv) { } } fclose(pidfd); @@ -95,5 +94,5 @@ index 26a333c..2a2e9e6 100644 log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -- -2.14.5 +2.35.1 diff --git a/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch index 7f414a3..96e0b09 100644 --- a/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch +++ b/0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch @@ -1,9 +1,8 @@ -From 7e8cc8388ac31c5c2b1a423c6b2da0491b19f6f9 Mon Sep 17 00:00:00 2001 +From 0a640394cb6f4a97fb87e53f049fba23523035c8 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:22:41 +0100 -Subject: [PATCH 04/26] Support unicast BOOTP for IBM pSeries systems (and +Subject: [PATCH 04/28] Support unicast BOOTP for IBM pSeries systems (and maybe others) -Cc: pzhukov@redhat.com --- server/bootp.c | 12 +++++++++++- @@ -11,7 +10,7 @@ Cc: pzhukov@redhat.com 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/server/bootp.c b/server/bootp.c -index 26a7607..2212f31 100644 +index 919d483..338aac0 100644 --- a/server/bootp.c +++ b/server/bootp.c @@ -52,6 +52,7 @@ void bootp (packet) @@ -48,10 +47,10 @@ index 26a7607..2212f31 100644 /* If it comes from a client that already knows its address and is not requesting a broadcast response, and we can diff --git a/server/dhcp.c b/server/dhcp.c -index 6f3a91f..20f2a62 100644 +index 0b261c2..ae805a6 100644 --- a/server/dhcp.c +++ b/server/dhcp.c -@@ -5224,6 +5224,7 @@ int locate_network (packet) +@@ -5332,6 +5332,7 @@ int locate_network (packet) struct data_string data; struct subnet *subnet = (struct subnet *)0; struct option_cache *oc; @@ -59,7 +58,7 @@ index 6f3a91f..20f2a62 100644 #if defined(DHCPv6) && defined(DHCP4o6) if (dhcpv4_over_dhcpv6 && (packet->dhcp4o6_response != NULL)) { -@@ -5245,12 +5246,24 @@ int locate_network (packet) +@@ -5353,12 +5354,24 @@ int locate_network (packet) from the interface, if there is one. If not, fail. */ if (!oc && !packet -> raw -> giaddr.s_addr) { if (packet -> interface -> shared_network) { @@ -89,7 +88,7 @@ index 6f3a91f..20f2a62 100644 } /* If there's an option indicating link connection, and it's valid, -@@ -5277,7 +5290,10 @@ int locate_network (packet) +@@ -5384,7 +5397,10 @@ int locate_network (packet) data_string_forget (&data, MDL); } else { ia.len = 4; @@ -101,7 +100,7 @@ index 6f3a91f..20f2a62 100644 } /* If we know the subnet on which the IP address lives, use it. */ -@@ -5285,7 +5301,10 @@ int locate_network (packet) +@@ -5392,7 +5408,10 @@ int locate_network (packet) shared_network_reference (&packet -> shared_network, subnet -> shared_network, MDL); subnet_dereference (&subnet, MDL); @@ -114,5 +113,5 @@ index 6f3a91f..20f2a62 100644 /* Otherwise, fail. */ -- -2.14.5 +2.35.1 diff --git a/0005-Change-default-requested-options.patch b/0005-Change-default-requested-options.patch index 34ff7b5..98c1957 100644 --- a/0005-Change-default-requested-options.patch +++ b/0005-Change-default-requested-options.patch @@ -1,8 +1,7 @@ -From a2a3554ff9e05d1a8e2c8aa843f1b6a33fce87e3 Mon Sep 17 00:00:00 2001 +From f994c4d208a8fe88cbf78d4374c8d44793f0598e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:24:24 +0100 -Subject: [PATCH 05/26] Change default requested options -Cc: pzhukov@redhat.com +Subject: [PATCH 05/28] Change default requested options Add NIS domain, NIS servers, NTP servers, interface-mtu and domain-search to the list of default requested DHCP options @@ -11,7 +10,7 @@ to the list of default requested DHCP options 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/client/clparse.c b/client/clparse.c -index 7212e3a..39b95a0 100644 +index bb63825..e63ea08 100644 --- a/client/clparse.c +++ b/client/clparse.c @@ -31,7 +31,7 @@ @@ -23,7 +22,7 @@ index 7212e3a..39b95a0 100644 /* There can be 2 extra requested options for DHCPv4-over-DHCPv6. */ struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 2 + 1]; -@@ -116,6 +116,31 @@ isc_result_t read_client_conf () +@@ -119,6 +119,31 @@ isc_result_t read_client_conf () option_code_hash_lookup(&default_requested_options[8], dhcpv6_universe.code_hash, &code, 0, MDL); @@ -56,5 +55,5 @@ index 7212e3a..39b95a0 100644 if (default_requested_options[code] == NULL) log_fatal("Unable to find option definition for " -- -2.14.5 +2.35.1 diff --git a/0006-Various-man-page-only-fixes.patch b/0006-Various-man-page-only-fixes.patch index a98783c..9d012de 100644 --- a/0006-Various-man-page-only-fixes.patch +++ b/0006-Various-man-page-only-fixes.patch @@ -1,8 +1,7 @@ -From 846779467f7393b19e8d206405116e1e26e16efc Mon Sep 17 00:00:00 2001 +From d359a7dc30e0423f9b90129291538cad1ee6a6d9 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:25:53 +0100 -Subject: [PATCH 06/26] Various man-page-only fixes -Cc: pzhukov@redhat.com +Subject: [PATCH 06/28] Various man-page-only fixes --- client/dhclient-script.8 | 22 +++++++++++++++++++++- @@ -12,7 +11,7 @@ Cc: pzhukov@redhat.com 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/client/dhclient-script.8 b/client/dhclient-script.8 -index 3553afd..0db5516 100644 +index 5e5bd3d..37ecdc5 100644 --- a/client/dhclient-script.8 +++ b/client/dhclient-script.8 @@ -43,7 +43,7 @@ customizations are needed, they should be possible using the enter and @@ -52,7 +51,7 @@ index 3553afd..0db5516 100644 When dhclient needs to invoke the client configuration script, it defines a set of variables in the environment, and then invokes diff --git a/client/dhclient.conf.5 b/client/dhclient.conf.5 -index fa3b908..566a881 100644 +index dbe6f7e..8bac980 100644 --- a/client/dhclient.conf.5 +++ b/client/dhclient.conf.5 @@ -228,7 +228,8 @@ responding to the client send the client its values for the specified @@ -84,10 +83,10 @@ index fa3b908..566a881 100644 .SH SAMPLE The following configuration file was used on a laptop running NetBSD diff --git a/common/dhcp-options.5 b/common/dhcp-options.5 -index 33d4804..d9e1197 100644 +index 51f80f7..a784b32 100644 --- a/common/dhcp-options.5 +++ b/common/dhcp-options.5 -@@ -1068,6 +1068,21 @@ classless IP routing - it does not include a subnet mask. Since +@@ -1075,6 +1075,21 @@ classless IP routing - it does not include a subnet mask. Since classless IP routing is now the most widely deployed routing standard, this option is virtually useless, and is not implemented by any of the popular DHCP clients, for example the Microsoft DHCP client. @@ -110,7 +109,7 @@ index 33d4804..d9e1197 100644 .PP .nf diff --git a/server/dhcpd.conf.5 b/server/dhcpd.conf.5 -index 17330d4..89b5540 100644 +index 691e5dd..b7e79ea 100644 --- a/server/dhcpd.conf.5 +++ b/server/dhcpd.conf.5 @@ -527,6 +527,9 @@ pool { @@ -153,7 +152,7 @@ index 17330d4..89b5540 100644 secret pRP5FapFoJ95JEL06sv4PQ==; }; -@@ -2912,7 +2915,8 @@ statement +@@ -2918,7 +2921,8 @@ statement The \fInext-server\fR statement is used to specify the host address of the server from which the initial boot file (specified in the \fIfilename\fR statement) is to be loaded. \fIServer-name\fR should @@ -164,5 +163,5 @@ index 17330d4..89b5540 100644 .PP The -- -2.14.5 +2.35.1 diff --git a/0007-Change-paths-to-conform-to-our-standards.patch b/0007-Change-paths-to-conform-to-our-standards.patch index 87c4f8c..40434f6 100644 --- a/0007-Change-paths-to-conform-to-our-standards.patch +++ b/0007-Change-paths-to-conform-to-our-standards.patch @@ -1,8 +1,7 @@ -From ac65289663532db0bc1de449ca2a0eb4c8c2ca6f Mon Sep 17 00:00:00 2001 +From d8da92991d93a3d1c9fc474696aee25b99623c42 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:26:34 +0100 -Subject: [PATCH 07/26] Change paths to conform to our standards -Cc: pzhukov@redhat.com +Subject: [PATCH 07/28] Change paths to conform to our standards --- doc/examples/dhcpd-dhcpv6.conf | 2 +- @@ -23,10 +22,10 @@ index 448a6a6..2357824 100644 # Static definition (must be global) host myclient { diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 018fa34..3632a6b 100644 +index 3b2e2ca..4a57002 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -1545,7 +1545,7 @@ typedef unsigned char option_mask [16]; +@@ -1561,7 +1561,7 @@ typedef unsigned char option_mask [16]; #else /* !DEBUG */ #ifndef _PATH_DHCPD_CONF @@ -35,7 +34,7 @@ index 018fa34..3632a6b 100644 #endif /* DEBUG */ #ifndef _PATH_DHCPD_DB -@@ -1567,11 +1567,11 @@ typedef unsigned char option_mask [16]; +@@ -1583,11 +1583,11 @@ typedef unsigned char option_mask [16]; #endif /* DEBUG */ #ifndef _PATH_DHCLIENT_CONF @@ -50,5 +49,5 @@ index 018fa34..3632a6b 100644 #ifndef _PATH_DHCLIENT_PID -- -2.14.5 +2.35.1 diff --git a/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch index 8294563..46ac860 100644 --- a/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch +++ b/0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch @@ -1,9 +1,8 @@ -From d2da34706f140101c34f6a9806c258411806a939 Mon Sep 17 00:00:00 2001 +From 39ce1ca26128f4a5d018a567157320ba1f68f4ea Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:27:18 +0100 -Subject: [PATCH 08/26] Make sure all open file descriptors are closed-on-exec +Subject: [PATCH 08/28] Make sure all open file descriptors are closed-on-exec for SELinux -Cc: pzhukov@redhat.com ISC-bug: #19148 --- @@ -23,10 +22,10 @@ ISC-bug: #19148 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/client/clparse.c b/client/clparse.c -index 39b95a0..44387ed 100644 +index e63ea08..902b523 100644 --- a/client/clparse.c +++ b/client/clparse.c -@@ -288,7 +288,7 @@ int read_client_conf_file (const char *name, struct interface_info *ip, +@@ -291,7 +291,7 @@ int read_client_conf_file (const char *name, struct interface_info *ip, int token; isc_result_t status; @@ -35,7 +34,7 @@ index 39b95a0..44387ed 100644 return uerr2isc (errno); cfile = NULL; -@@ -364,7 +364,7 @@ void read_client_leases () +@@ -367,7 +367,7 @@ void read_client_leases () /* Open the lease file. If we can't open it, just return - we can safely trust the server to remember our state. */ @@ -45,10 +44,10 @@ index 39b95a0..44387ed 100644 cfile = NULL; diff --git a/client/dhclient.c b/client/dhclient.c -index 2a2e9e6..a86ab9e 100644 +index 07679a7..aefc119 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -273,11 +273,11 @@ main(int argc, char **argv) { +@@ -279,11 +279,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0 (stdin), 1, (stdout), and 2 (stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -63,7 +62,7 @@ index 2a2e9e6..a86ab9e 100644 if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -765,7 +765,7 @@ main(int argc, char **argv) { +@@ -771,7 +771,7 @@ main(int argc, char **argv) { long temp; int e; @@ -72,7 +71,7 @@ index 2a2e9e6..a86ab9e 100644 e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -820,7 +820,7 @@ main(int argc, char **argv) { +@@ -826,7 +826,7 @@ main(int argc, char **argv) { strncpy(new_path_dhclient_pid, path_dhclient_pid, pfx); sprintf(new_path_dhclient_pid + pfx, "-%s.pid", ip->name); @@ -81,7 +80,7 @@ index 2a2e9e6..a86ab9e 100644 e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -845,7 +845,7 @@ main(int argc, char **argv) { +@@ -851,7 +851,7 @@ main(int argc, char **argv) { int dhc_running = 0; char procfn[256] = ""; @@ -90,7 +89,7 @@ index 2a2e9e6..a86ab9e 100644 if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) { snprintf(procfn,256,"/proc/%u",dhcpid); dhc_running = (access(procfn, F_OK) == 0); -@@ -3808,7 +3808,7 @@ void rewrite_client_leases () +@@ -4054,7 +4054,7 @@ void rewrite_client_leases () if (leaseFile != NULL) fclose (leaseFile); @@ -99,7 +98,7 @@ index 2a2e9e6..a86ab9e 100644 if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return; -@@ -4003,7 +4003,7 @@ write_duid(struct data_string *duid) +@@ -4249,7 +4249,7 @@ write_duid(struct data_string *duid) return DHCP_R_INVALIDARG; if (leaseFile == NULL) { /* XXX? */ @@ -108,7 +107,7 @@ index 2a2e9e6..a86ab9e 100644 if (leaseFile == NULL) { log_error("can't create %s: %m", path_dhclient_db); return ISC_R_IOERROR; -@@ -4207,7 +4207,7 @@ int write_client_lease (client, lease, rewrite, makesure) +@@ -4453,7 +4453,7 @@ int write_client_lease (client, lease, rewrite, makesure) return 1; if (leaseFile == NULL) { /* XXX */ @@ -117,7 +116,7 @@ index 2a2e9e6..a86ab9e 100644 if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return 0; -@@ -4786,9 +4786,9 @@ void detach () +@@ -5039,9 +5039,9 @@ void detach () (void) close(2); /* Reopen them on /dev/null. */ @@ -130,7 +129,7 @@ index 2a2e9e6..a86ab9e 100644 write_client_pid_file (); -@@ -4806,14 +4806,14 @@ void write_client_pid_file () +@@ -5059,14 +5059,14 @@ void write_client_pid_file () return; } @@ -148,7 +147,7 @@ index 2a2e9e6..a86ab9e 100644 close(pfdesc); log_error ("Can't fdopen %s: %m", path_dhclient_pid); diff --git a/common/bpf.c b/common/bpf.c -index 16076fe..67b6d64 100644 +index 0bffcbf..d2a0549 100644 --- a/common/bpf.c +++ b/common/bpf.c @@ -94,7 +94,7 @@ int if_register_bpf (info) @@ -161,20 +160,20 @@ index 16076fe..67b6d64 100644 if (errno == EBUSY) { continue; diff --git a/common/dlpi.c b/common/dlpi.c -index 3990bf1..a941258 100644 +index f2332c0..bf6e21f 100644 --- a/common/dlpi.c +++ b/common/dlpi.c @@ -817,7 +817,7 @@ dlpiopen(const char *ifname) { } *dp = '\0'; - + - return open (devname, O_RDWR, 0); + return open (devname, O_RDWR | O_CLOEXEC, 0); } /* diff --git a/common/nit.c b/common/nit.c -index d822c15..a9132bc 100644 +index ba62488..4ebfa4a 100644 --- a/common/nit.c +++ b/common/nit.c @@ -75,7 +75,7 @@ int if_register_nit (info) @@ -187,7 +186,7 @@ index d822c15..a9132bc 100644 log_fatal ("Can't open NIT device for %s: %m", info -> name); diff --git a/common/resolv.c b/common/resolv.c -index a01f520..b209e3f 100644 +index 5fd683f..3535f3e 100644 --- a/common/resolv.c +++ b/common/resolv.c @@ -43,7 +43,7 @@ void read_resolv_conf (parse_time) @@ -200,7 +199,7 @@ index a01f520..b209e3f 100644 return; } diff --git a/common/upf.c b/common/upf.c -index 9785879..e0a524f 100644 +index 37e5cb2..b7c0649 100644 --- a/common/upf.c +++ b/common/upf.c @@ -71,7 +71,7 @@ int if_register_upf (info) @@ -213,7 +212,7 @@ index 9785879..e0a524f 100644 if (errno == EBUSY) { continue; diff --git a/omapip/trace.c b/omapip/trace.c -index 45bd508..5ea7486 100644 +index dc9185f..a605d18 100644 --- a/omapip/trace.c +++ b/omapip/trace.c @@ -136,10 +136,10 @@ isc_result_t trace_begin (const char *filename, @@ -239,10 +238,10 @@ index 45bd508..5ea7486 100644 log_error("Can't open tracefile %s: %m", filename); return; diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index d8caaaf..ea1be18 100644 +index 946ef1b..a7b1286 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c -@@ -296,11 +296,11 @@ main(int argc, char **argv) { +@@ -305,11 +305,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0(stdin), 1,(stdout), and 2(stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -257,7 +256,7 @@ index d8caaaf..ea1be18 100644 if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -776,13 +776,13 @@ main(int argc, char **argv) { +@@ -800,13 +800,13 @@ main(int argc, char **argv) { /* Create the pid file. */ if (no_pid_file == ISC_FALSE) { pfdesc = open(path_dhcrelay_pid, @@ -274,7 +273,7 @@ index d8caaaf..ea1be18 100644 log_error("Can't fdopen %s: %m", path_dhcrelay_pid); diff --git a/server/confpars.c b/server/confpars.c -index d2cedfe..2743979 100644 +index 103af1e..5a6396b 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -118,7 +118,7 @@ isc_result_t read_conf_file (const char *filename, struct group *group, @@ -287,7 +286,7 @@ index d2cedfe..2743979 100644 log_error ("Can't open lease database %s: %m --", path_dhcpd_db); diff --git a/server/db.c b/server/db.c -index 67e6cc1..6181528 100644 +index cecbf6b..4243a92 100644 --- a/server/db.c +++ b/server/db.c @@ -1154,7 +1154,7 @@ int new_lease_file (int test_mode) @@ -309,7 +308,7 @@ index 67e6cc1..6181528 100644 close(db_fd); goto fdfail; diff --git a/server/dhcpd.c b/server/dhcpd.c -index 55ffae7..530a923 100644 +index 3522889..845d0cc 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -300,11 +300,11 @@ main(int argc, char **argv) { @@ -350,10 +349,10 @@ index 55ffae7..530a923 100644 IGNORE_RET (chdir("/")); diff --git a/server/ldap.c b/server/ldap.c -index 5126d24..555545c 100644 +index e3e48f4..1a68936 100644 --- a/server/ldap.c +++ b/server/ldap.c -@@ -1446,7 +1446,7 @@ ldap_start (void) +@@ -1447,7 +1447,7 @@ ldap_start (void) if (ldap_debug_file != NULL && ldap_debug_fd == -1) { @@ -363,5 +362,5 @@ index 5126d24..555545c 100644 log_error ("Error opening debug LDAP log file %s: %s", ldap_debug_file, strerror (errno)); -- -2.14.5 +2.35.1 diff --git a/0009-Fix-garbage-in-format-string-error.patch b/0009-Fix-garbage-in-format-string-error.patch index f9d81ab..5844b73 100644 --- a/0009-Fix-garbage-in-format-string-error.patch +++ b/0009-Fix-garbage-in-format-string-error.patch @@ -1,8 +1,7 @@ -From a0a2186ce52a31357d4eb3c32d7d6887e4603814 Mon Sep 17 00:00:00 2001 +From cfe6414644b68d5b6b5ba150bf57cff0a709a59e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:28:13 +0100 -Subject: [PATCH 09/26] Fix 'garbage in format string' error -Cc: pzhukov@redhat.com +Subject: [PATCH 09/28] Fix 'garbage in format string' error RHBZ: 450042 --- @@ -10,10 +9,10 @@ RHBZ: 450042 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/tables.c b/common/tables.c -index c1aa214..d2294c0 100644 +index be37737..ce12fcd 100644 --- a/common/tables.c +++ b/common/tables.c -@@ -215,7 +215,7 @@ static struct option dhcp_options[] = { +@@ -222,7 +222,7 @@ static struct option dhcp_options[] = { { "name-service-search", "Sa", &dhcp_universe, 117, 1 }, #endif { "subnet-selection", "I", &dhcp_universe, 118, 1 }, @@ -23,5 +22,5 @@ index c1aa214..d2294c0 100644 { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, #if 0 -- -2.14.5 +2.35.1 diff --git a/0010-Handle-null-timeout.patch b/0010-Handle-null-timeout.patch index 2b6e49b..4659e0c 100644 --- a/0010-Handle-null-timeout.patch +++ b/0010-Handle-null-timeout.patch @@ -1,8 +1,7 @@ -From ed7610cdb2e8ebdbaee618e477879e7e008d4f29 Mon Sep 17 00:00:00 2001 +From 7653f3ea80230d4b38bff1c65164aa18c6e51519 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:29:08 +0100 -Subject: [PATCH 10/26] Handle null timeout -Cc: pzhukov@redhat.com +Subject: [PATCH 10/28] Handle null timeout Handle cases in add_timeout() where the function is called with a NULL value for the 'when' parameter @@ -13,7 +12,7 @@ ISC-Bugs: #19867 (rejected) 1 file changed, 4 insertions(+) diff --git a/common/dispatch.c b/common/dispatch.c -index 0207ad3..d7fe200 100644 +index 7def34c..9741ff5 100644 --- a/common/dispatch.c +++ b/common/dispatch.c @@ -209,6 +209,10 @@ void add_timeout (when, where, what, ref, unref) @@ -28,5 +27,5 @@ index 0207ad3..d7fe200 100644 t = (struct timeout *)0; for (q = timeouts; q; q = q->next) { -- -2.14.5 +2.35.1 diff --git a/0011-Drop-unnecessary-capabilities.patch b/0011-Drop-unnecessary-capabilities.patch index cfb055e..ff3b3cc 100644 --- a/0011-Drop-unnecessary-capabilities.patch +++ b/0011-Drop-unnecessary-capabilities.patch @@ -1,7 +1,7 @@ -From 3863afcdfc5996f25741a41272c1a3bea0476692 Mon Sep 17 00:00:00 2001 +From 7ea2433d716172f160c9380ed0bb852fafe845a2 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:30:28 +0100 -Subject: [PATCH] Drop unnecessary capabilities +Subject: [PATCH 11/28] Drop unnecessary capabilities dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) --- @@ -28,10 +28,10 @@ index d177159..0689185 100644 man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 EXTRA_DIST = $(man_MANS) diff --git a/client/dhclient-script.8 b/client/dhclient-script.8 -index 0db5516..2eddb8f 100644 +index 37ecdc5..1a88e0e 100644 --- a/client/dhclient-script.8 +++ b/client/dhclient-script.8 -@@ -243,6 +243,16 @@ repeatedly initialized to the values provided by one server, and then +@@ -249,6 +249,16 @@ repeatedly initialized to the values provided by one server, and then the other. Assuming the information provided by both servers is valid, this shouldn't cause any real problems, but it could be confusing. @@ -49,7 +49,7 @@ index 0db5516..2eddb8f 100644 dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and dhclient.leases(5). diff --git a/client/dhclient.8 b/client/dhclient.8 -index 7155cc5..9f1e435 100644 +index 5029dac..bacf3bc 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 @@ -135,6 +135,9 @@ dhclient - Dynamic Host Configuration Protocol Client @@ -96,7 +96,7 @@ index 7155cc5..9f1e435 100644 .BI \-n Do not configure any interfaces. This is most likely to be useful in diff --git a/client/dhclient.c b/client/dhclient.c -index adcce50..7f202f9 100644 +index aefc119..b49fcb3 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -41,6 +41,10 @@ @@ -110,7 +110,7 @@ index adcce50..7f202f9 100644 /* * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define * that when building ISC code. -@@ -271,6 +275,9 @@ main(int argc, char **argv) { +@@ -272,6 +276,9 @@ main(int argc, char **argv) { int timeout_arg = 0; char *arg_conf = NULL; int arg_conf_len = 0; @@ -120,7 +120,7 @@ index adcce50..7f202f9 100644 /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -670,6 +677,10 @@ main(int argc, char **argv) { +@@ -671,6 +678,10 @@ main(int argc, char **argv) { dhclient_request_options = argv[i]; @@ -131,7 +131,7 @@ index adcce50..7f202f9 100644 } else if (argv[i][0] == '-') { usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -730,6 +741,19 @@ main(int argc, char **argv) { +@@ -731,6 +742,19 @@ main(int argc, char **argv) { path_dhclient_script = s; } @@ -152,7 +152,7 @@ index adcce50..7f202f9 100644 initialize_common_option_spaces(); diff --git a/configure.ac b/configure.ac -index 2ca53ff..3276888 100644 +index b2c306b..300117f 100644 --- a/configure.ac +++ b/configure.ac @@ -603,6 +603,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); @@ -211,7 +211,7 @@ index 5562b69..4c5cfa6 100644 man_MANS = dhcrelay.8 EXTRA_DIST = $(man_MANS) diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index 5e4a6a9..4c472a9 100644 +index a7b1286..0dc17d6 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -32,6 +32,11 @@ @@ -226,7 +226,7 @@ index 5e4a6a9..4c472a9 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -597,6 +602,10 @@ main(int argc, char **argv) { +@@ -614,6 +619,10 @@ main(int argc, char **argv) { if (++i == argc) usage(use_noarg, argv[i-1]); dhcrelay_sub_id = argv[i]; @@ -237,7 +237,7 @@ index 5e4a6a9..4c472a9 100644 #endif } else if (!strcmp(argv[i], "-pf")) { if (++i == argc) -@@ -667,6 +676,17 @@ main(int argc, char **argv) { +@@ -684,6 +693,17 @@ main(int argc, char **argv) { #endif } @@ -255,7 +255,7 @@ index 5e4a6a9..4c472a9 100644 if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -@@ -823,6 +843,15 @@ main(int argc, char **argv) { +@@ -840,6 +860,15 @@ main(int argc, char **argv) { signal(SIGTERM, dhcp_signal_handler); /* kill */ #endif @@ -272,5 +272,5 @@ index 5e4a6a9..4c472a9 100644 dispatch(); -- -2.31.1 +2.35.1 diff --git a/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch index 866527c..2ab5a5e 100644 --- a/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch +++ b/0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch @@ -1,25 +1,24 @@ -From 01b1dcfef129a4eccfaf0f63a216774019f82dca Mon Sep 17 00:00:00 2001 +From 7e6299e72feaaf7e8bd499614999ba8a07dd1a8a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:32:35 +0100 -Subject: [PATCH 12/26] RFC 3442 - Classless Static Route Option for DHCPv4 +Subject: [PATCH 12/28] RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) -Cc: pzhukov@redhat.com (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572]) --- - client/clparse.c | 13 ++++++++++-- - common/dhcp-options.5 | 43 +++++++++++++++++++++++++++++++++++++++ - common/inet.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ - common/options.c | 49 +++++++++++++++++++++++++++++++++++++++++++- - common/parse.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++- + client/clparse.c | 13 ++++++++-- + common/dhcp-options.5 | 43 +++++++++++++++++++++++++++++++++ + common/inet.c | 54 +++++++++++++++++++++++++++++++++++++++++ + common/options.c | 49 ++++++++++++++++++++++++++++++++++++- + common/parse.c | 56 ++++++++++++++++++++++++++++++++++++++++++- common/tables.c | 2 ++ includes/dhcp.h | 1 + includes/dhcpd.h | 2 ++ - includes/dhctoken.h | 5 +++-- - 9 files changed, 219 insertions(+), 6 deletions(-) + includes/dhctoken.h | 3 ++- + 9 files changed, 218 insertions(+), 5 deletions(-) diff --git a/client/clparse.c b/client/clparse.c -index 44387ed..862e4f9 100644 +index 902b523..57f6456 100644 --- a/client/clparse.c +++ b/client/clparse.c @@ -31,7 +31,7 @@ @@ -31,7 +30,7 @@ index 44387ed..862e4f9 100644 /* There can be 2 extra requested options for DHCPv4-over-DHCPv6. */ struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 2 + 1]; -@@ -87,7 +87,11 @@ isc_result_t read_client_conf () +@@ -90,7 +90,11 @@ isc_result_t read_client_conf () dhcp_universe.code_hash, &code, 0, MDL); /* 4 */ @@ -44,7 +43,7 @@ index 44387ed..862e4f9 100644 option_code_hash_lookup(&default_requested_options[3], dhcp_universe.code_hash, &code, 0, MDL); -@@ -141,6 +145,11 @@ isc_result_t read_client_conf () +@@ -144,6 +148,11 @@ isc_result_t read_client_conf () option_code_hash_lookup(&default_requested_options[13], dhcp_universe.code_hash, &code, 0, MDL); @@ -57,10 +56,10 @@ index 44387ed..862e4f9 100644 if (default_requested_options[code] == NULL) log_fatal("Unable to find option definition for " diff --git a/common/dhcp-options.5 b/common/dhcp-options.5 -index d9e1197..2343b19 100644 +index a784b32..86f04ed 100644 --- a/common/dhcp-options.5 +++ b/common/dhcp-options.5 -@@ -110,6 +110,26 @@ hexadecimal, separated by colons. For example: +@@ -117,6 +117,26 @@ hexadecimal, separated by colons. For example: or option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f; .fi @@ -87,7 +86,7 @@ index d9e1197..2343b19 100644 .SH SETTING OPTION VALUES USING EXPRESSIONS Sometimes it's helpful to be able to set the value of a DHCP option based on some value that the client has sent. To do this, you can -@@ -1086,6 +1106,29 @@ dhclient-script will create routes: +@@ -1093,6 +1113,29 @@ dhclient-script will create routes: .RE .PP .nf @@ -118,7 +117,7 @@ index d9e1197..2343b19 100644 [\fB,\fR \fIip-address\fR...]\fB;\fR .fi diff --git a/common/inet.c b/common/inet.c -index c4da73c..981fb92 100644 +index 0f7f168..7c446d4 100644 --- a/common/inet.c +++ b/common/inet.c @@ -519,6 +519,60 @@ free_iaddrcidrnetlist(struct iaddrcidrnetlist **result) { @@ -183,10 +182,10 @@ index c4da73c..981fb92 100644 /* XXX: should use a const pointer rather than passing the structure */ const char * diff --git a/common/options.c b/common/options.c -index fc0e088..3034cf0 100644 +index 92c8fee..66433c4 100644 --- a/common/options.c +++ b/common/options.c -@@ -729,7 +729,11 @@ cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, +@@ -734,7 +734,11 @@ cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, * packet. */ priority_list[priority_len++] = DHO_SUBNET_MASK; @@ -199,7 +198,7 @@ index fc0e088..3034cf0 100644 priority_list[priority_len++] = DHO_DOMAIN_NAME_SERVERS; priority_list[priority_len++] = DHO_HOST_NAME; priority_list[priority_len++] = DHO_FQDN; -@@ -1804,6 +1808,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) +@@ -1812,6 +1816,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) unsigned long tval; isc_boolean_t a_array = ISC_FALSE; int len_used; @@ -207,7 +206,7 @@ index fc0e088..3034cf0 100644 if (emit_commas) comma = ','; -@@ -1812,6 +1817,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) +@@ -1820,6 +1825,7 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) memset (enumbuf, 0, sizeof enumbuf); @@ -215,7 +214,7 @@ index fc0e088..3034cf0 100644 /* Figure out the size of the data. */ for (l = i = 0; option -> format [i]; i++, l++) { if (l >= sizeof(fmtbuf) - 1) -@@ -2004,6 +2010,33 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) +@@ -2029,6 +2035,33 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) if (numhunk < 0) numhunk = 1; @@ -249,7 +248,7 @@ index fc0e088..3034cf0 100644 /* Cycle through the array (or hunk) printing the data. */ for (i = 0; i < numhunk; i++) { if ((a_array == ISC_TRUE) && (i != 0) && (numelem > 0)) { -@@ -2159,6 +2192,20 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) +@@ -2197,6 +2230,20 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) strcpy(op, piaddr(iaddr)); dp += 4; break; @@ -271,12 +270,12 @@ index fc0e088..3034cf0 100644 iaddr.len = 16; memcpy(iaddr.iabuf, dp, 16); diff --git a/common/parse.c b/common/parse.c -index 3ac4ebf..f17bc0b 100644 +index b123a6c..7cf4f2a 100644 --- a/common/parse.c +++ b/common/parse.c @@ -344,6 +344,39 @@ int parse_ip_addr (cfile, addr) return 0; - } + } +/* + * destination-descriptor :== NUMBER DOT NUMBER | @@ -336,7 +335,7 @@ index 3ac4ebf..f17bc0b 100644 case IP6_ADDRESS: type = '6'; break; -@@ -5101,6 +5139,15 @@ int parse_option_token (rv, cfile, fmt, expr, uniform, lookups) +@@ -5124,6 +5162,15 @@ int parse_option_token (rv, cfile, fmt, expr, uniform, lookups) } break; @@ -352,7 +351,7 @@ index 3ac4ebf..f17bc0b 100644 case '6': /* IPv6 address. */ if (!parse_ip6_addr(cfile, &addr)) { return 0; -@@ -5378,6 +5425,13 @@ int parse_option_decl (oc, cfile) +@@ -5401,6 +5448,13 @@ int parse_option_decl (oc, cfile) goto exit; len = ip_addr.len; dp = ip_addr.iabuf; @@ -367,7 +366,7 @@ index 3ac4ebf..f17bc0b 100644 alloc: if (hunkix + len > sizeof hunkbuf) { diff --git a/common/tables.c b/common/tables.c -index d2294c0..f1be07d 100644 +index ce12fcd..96521a6 100644 --- a/common/tables.c +++ b/common/tables.c @@ -45,6 +45,7 @@ HASH_FUNCTIONS (option_code, const unsigned *, struct option, @@ -378,7 +377,7 @@ index d2294c0..f1be07d 100644 6 - IPv6 address l - 32-bit signed integer L - 32-bit unsigned integer -@@ -216,6 +217,7 @@ static struct option dhcp_options[] = { +@@ -223,6 +224,7 @@ static struct option dhcp_options[] = { #endif { "subnet-selection", "I", &dhcp_universe, 118, 1 }, { "domain-search", "D", &dhcp_universe, 119, 1 }, @@ -387,11 +386,11 @@ index d2294c0..f1be07d 100644 { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, #if 0 diff --git a/includes/dhcp.h b/includes/dhcp.h -index 0a74137..95bf539 100644 +index cafe172..5a73129 100644 --- a/includes/dhcp.h +++ b/includes/dhcp.h -@@ -158,6 +158,7 @@ struct dhcp_packet { - #define DHO_ASSOCIATED_IP 92 +@@ -159,6 +159,7 @@ struct dhcp_packet { + #define DHO_V6_ONLY_PREFERRED 108 /* RFC8925 */ #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ #define DHO_DOMAIN_SEARCH 119 /* RFC3397 */ +#define DHO_CLASSLESS_STATIC_ROUTES 121 /* RFC3442 */ @@ -399,10 +398,10 @@ index 0a74137..95bf539 100644 #define DHO_VIVSO_SUBOPTIONS 125 diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 3632a6b..2ac39ae 100644 +index 4a57002..25e1c72 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -2951,6 +2951,7 @@ isc_result_t range2cidr(struct iaddrcidrnetlist **result, +@@ -2967,6 +2967,7 @@ isc_result_t range2cidr(struct iaddrcidrnetlist **result, const struct iaddr *lo, const struct iaddr *hi); isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result); const char *piaddr (struct iaddr); @@ -410,7 +409,7 @@ index 3632a6b..2ac39ae 100644 char *piaddrmask(struct iaddr *, struct iaddr *); char *piaddrcidr(const struct iaddr *, unsigned int); u_int16_t validate_port(char *); -@@ -3169,6 +3170,7 @@ void parse_client_lease_declaration (struct parse *, +@@ -3189,6 +3190,7 @@ void parse_client_lease_declaration (struct parse *, int parse_option_decl (struct option_cache **, struct parse *); void parse_string_list (struct parse *, struct string_list **, int); int parse_ip_addr (struct parse *, struct iaddr *); @@ -419,21 +418,19 @@ index 3632a6b..2ac39ae 100644 void parse_reject_statement (struct parse *, struct client_config *); diff --git a/includes/dhctoken.h b/includes/dhctoken.h -index 7e7215a..b4d93ba 100644 +index 6daa422..3f5334e 100644 --- a/includes/dhctoken.h +++ b/includes/dhctoken.h -@@ -376,8 +376,9 @@ enum dhcp_token { - LEASE_ID_FORMAT = 676, - TOKEN_HEX = 677, +@@ -378,7 +378,8 @@ enum dhcp_token { TOKEN_OCTAL = 678, -- KEY_ALGORITHM = 679 -- BOOTP_BROADCAST_ALWAYS = 680 -+ KEY_ALGORITHM = 679, -+ BOOTP_BROADCAST_ALWAYS = 680, -+ DESTINATION_DESCRIPTOR = 681 + KEY_ALGORITHM = 679, + BOOTP_BROADCAST_ALWAYS = 680, +- DISCONNECT = 681 ++ DESTINATION_DESCRIPTOR = 681, ++ DISCONNECT = 682 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ -- -2.14.5 +2.35.1 diff --git a/0013-DHCPv6-over-PPP-support-626514.patch b/0013-DHCPv6-over-PPP-support-626514.patch index 5e0a6ba..a5d03f4 100644 --- a/0013-DHCPv6-over-PPP-support-626514.patch +++ b/0013-DHCPv6-over-PPP-support-626514.patch @@ -1,8 +1,7 @@ -From 234747fbfd6c6429619ba843713d5b39fb4a513d Mon Sep 17 00:00:00 2001 +From fe89d58ea8627c66feffa81997daa024834eeb15 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:33:06 +0100 -Subject: [PATCH 13/26] DHCPv6 over PPP support (#626514) -Cc: pzhukov@redhat.com +Subject: [PATCH 13/28] DHCPv6 over PPP support (#626514) --- client/dhc6.c | 3 ++- @@ -15,10 +14,10 @@ Cc: pzhukov@redhat.com 7 files changed, 54 insertions(+), 5 deletions(-) diff --git a/client/dhc6.c b/client/dhc6.c -index 16a0838..3171828 100644 +index 35cf3d0..88fd07d 100644 --- a/client/dhc6.c +++ b/client/dhc6.c -@@ -5744,7 +5744,8 @@ make_client6_options(struct client_state *client, struct option_state **op, +@@ -5737,7 +5737,8 @@ make_client6_options(struct client_state *client, struct option_state **op, */ if ((oc = lookup_option(&dhcpv6_universe, *op, D6O_CLIENTID)) == NULL) { @@ -29,10 +28,10 @@ index 16a0838..3171828 100644 log_fatal("Failure assembling a DUID."); diff --git a/client/dhclient.c b/client/dhclient.c -index 5d3f5bc..301132c 100644 +index b49fcb3..a99e21f 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -1202,8 +1202,8 @@ main(int argc, char **argv) { +@@ -1223,8 +1223,8 @@ main(int argc, char **argv) { if (default_duid.buffer != NULL) data_string_forget(&default_duid, MDL); @@ -43,7 +42,7 @@ index 5d3f5bc..301132c 100644 } } -@@ -3956,7 +3956,7 @@ write_options(struct client_state *client, struct option_state *options, +@@ -4202,7 +4202,7 @@ write_options(struct client_state *client, struct option_state *options, * is not how it is intended. Upcoming rearchitecting the client should * address this "one daemon model." */ @@ -52,7 +51,7 @@ index 5d3f5bc..301132c 100644 form_duid(struct data_string *duid, const char *file, int line) { struct interface_info *ip; -@@ -3969,6 +3969,15 @@ form_duid(struct data_string *duid, const char *file, int line) +@@ -4215,6 +4215,15 @@ form_duid(struct data_string *duid, const char *file, int line) if (ip == NULL) log_fatal("Impossible condition at %s:%d.", MDL); @@ -68,7 +67,7 @@ index 5d3f5bc..301132c 100644 if ((ip->hw_address.hlen == 0) || (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); -@@ -4014,6 +4023,8 @@ form_duid(struct data_string *duid, const char *file, int line) +@@ -4260,6 +4269,8 @@ form_duid(struct data_string *duid, const char *file, int line) log_info("Created duid %s.", str); dfree(str, MDL); } @@ -78,7 +77,7 @@ index 5d3f5bc..301132c 100644 /* Write the default DUID to the lease store. */ diff --git a/common/bpf.c b/common/bpf.c -index 67b6d64..ffbd09a 100644 +index d2a0549..aede242 100644 --- a/common/bpf.c +++ b/common/bpf.c @@ -650,6 +650,22 @@ get_hw_addr(const char *name, struct hardware *hw) { @@ -105,7 +104,7 @@ index 67b6d64..ffbd09a 100644 log_fatal("Unsupported device type %d for \"%s\"", sa->sdl_type, name); diff --git a/common/lpf.c b/common/lpf.c -index 82a279b..b0ed01c 100644 +index bd20b3f..bb8822a 100644 --- a/common/lpf.c +++ b/common/lpf.c @@ -563,6 +563,22 @@ get_hw_addr(const char *name, struct hardware *hw) { @@ -132,7 +131,7 @@ index 82a279b..b0ed01c 100644 log_fatal("Unsupported device type %ld for \"%s\"", (long int)sa->sa_family, name); diff --git a/includes/dhcp.h b/includes/dhcp.h -index 95bf539..4cc547a 100644 +index 5a73129..7202f1d 100644 --- a/includes/dhcp.h +++ b/includes/dhcp.h @@ -80,6 +80,8 @@ struct dhcp_packet { @@ -145,10 +144,10 @@ index 95bf539..4cc547a 100644 extensions field). */ #define DHCP_OPTIONS_COOKIE "\143\202\123\143" diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 2ac39ae..faa9251 100644 +index 25e1c72..4c5e877 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -3051,7 +3051,7 @@ void client_dns_remove(struct client_state *client, struct iaddr *addr); +@@ -3071,7 +3071,7 @@ void client_dns_remove(struct client_state *client, struct iaddr *addr); void dhcpv4_client_assignments(void); void dhcpv6_client_assignments(void); @@ -158,7 +157,7 @@ index 2ac39ae..faa9251 100644 void dhcp4o6_start(void); diff --git a/server/dhcpv6.c b/server/dhcpv6.c -index a7110f9..c5ce7e8 100644 +index 0ea0532..7d61dc5 100644 --- a/server/dhcpv6.c +++ b/server/dhcpv6.c @@ -482,6 +482,9 @@ generate_new_server_duid(void) { @@ -172,5 +171,5 @@ index a7110f9..c5ce7e8 100644 if (p == NULL) { return ISC_R_UNEXPECTED; -- -2.14.5 +2.35.1 diff --git a/0014-IPoIB-support-660681.patch b/0014-IPoIB-support-660681.patch index 3d6d316..b9b15e0 100644 --- a/0014-IPoIB-support-660681.patch +++ b/0014-IPoIB-support-660681.patch @@ -1,24 +1,23 @@ -From 042082b4410f158ec86ca8478689b34bc12518e6 Mon Sep 17 00:00:00 2001 +From 90d64318e17df066c27b8e99ba6ab7f51154917b Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:34:21 +0100 -Subject: [PATCH 14/27] IPoIB support (#660681) -Cc: pzhukov@redhat.com +Subject: [PATCH 14/28] IPoIB support (#660681) (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249]) --- - client/dhclient.c | 32 ++++++ + client/dhclient.c | 33 ++++++ common/bpf.c | 32 ++++++ common/discover.c | 4 +- - common/lpf.c | 276 ++++++++++++++++++++++++++++++++++++++++++---- + common/lpf.c | 274 ++++++++++++++++++++++++++++++++++++++++++---- common/socket.c | 8 +- includes/dhcpd.h | 6 +- - 6 files changed, 329 insertions(+), 29 deletions(-) + 6 files changed, 329 insertions(+), 28 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c -index 301132c..dc9080e 100644 +index a99e21f..48edddf 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -205,6 +205,8 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; +@@ -211,6 +211,8 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; #define DHCLIENT_USAGEH "{--version|--help|-h}" @@ -27,9 +26,9 @@ index 301132c..dc9080e 100644 static void usage(const char *sfmt, const char *sarg) { -@@ -1191,6 +1193,13 @@ main(int argc, char **argv) { +@@ -1213,6 +1215,14 @@ main(int argc, char **argv) { } - srandom(seed + cur_time + (unsigned)getpid()); + srandom(seed); + /* Setup specific Infiniband options */ + for (ip = interfaces; ip; ip = ip->next) { @@ -38,10 +37,11 @@ index 301132c..dc9080e 100644 + setup_ib_interface(ip); + } + } - ++ /* * Establish a default DUID. We always do so for v6 and -@@ -1486,6 +1495,29 @@ int find_subnet (struct subnet **sp, + * do so if desired for v4 via the -D or -i options +@@ -1507,6 +1517,29 @@ int find_subnet (struct subnet **sp, return 0; } @@ -72,7 +72,7 @@ index 301132c..dc9080e 100644 * * Each routine is called from the dhclient_state_machine() in one of diff --git a/common/bpf.c b/common/bpf.c -index ffbd09a..568e3d9 100644 +index aede242..812cac3 100644 --- a/common/bpf.c +++ b/common/bpf.c @@ -237,11 +237,43 @@ int dhcp_bpf_relay_filter_len = @@ -120,10 +120,10 @@ index ffbd09a..568e3d9 100644 struct bpf_insn dhcp_bpf_tr_filter [] = { /* accept all token ring packets due to variable length header */ diff --git a/common/discover.c b/common/discover.c -index 6ef8852..65881fc 100644 +index ed338b4..e562225 100644 --- a/common/discover.c +++ b/common/discover.c -@@ -894,7 +894,7 @@ discover_interfaces(int state) { +@@ -899,7 +899,7 @@ discover_interfaces(int state) { if_register_send(tmp); } else { /* get_hw_addr() was called by register. */ @@ -132,7 +132,7 @@ index 6ef8852..65881fc 100644 } break; #ifdef DHCPv6 -@@ -907,7 +907,7 @@ discover_interfaces(int state) { +@@ -912,7 +912,7 @@ discover_interfaces(int state) { so now we have to call it explicitly to not leave the hardware address unknown (some code expects it cannot be. */ @@ -142,7 +142,7 @@ index 6ef8852..65881fc 100644 if_register_linklocal6(tmp); } diff --git a/common/lpf.c b/common/lpf.c -index b0ed01c..a9e19f4 100644 +index bb8822a..fcaa13d 100644 --- a/common/lpf.c +++ b/common/lpf.c @@ -45,6 +45,17 @@ @@ -416,12 +416,8 @@ index b0ed01c..a9e19f4 100644 if (strlen(name) >= sizeof(tmp.ifr_name)) { log_fatal("Device name too long: \"%s\"", name); -@@ -539,16 +691,61 @@ get_hw_addr(const char *name, struct hardware *hw) { - memset(&tmp, 0, sizeof(tmp)); - strcpy(tmp.ifr_name, name); - if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) { -- log_fatal("Error getting hardware address for \"%s\": %m", -+ log_fatal("Error getting hardware address for \"%s\": %m", +@@ -542,13 +694,58 @@ get_hw_addr(const char *name, struct hardware *hw) { + log_fatal("Error getting hardware address for \"%s\": %m", name); } + close(sock); @@ -554,10 +550,10 @@ index b0ed01c..a9e19f4 100644 } #endif diff --git a/common/socket.c b/common/socket.c -index 483eb9c..6e1caac 100644 +index 3953eac..903d034 100644 --- a/common/socket.c +++ b/common/socket.c -@@ -350,7 +350,7 @@ void if_register_send (info) +@@ -358,7 +358,7 @@ void if_register_send (info) info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); /* If this is a normal IPv4 address, get the hardware address. */ if (strcmp(info->name, "fallback") != 0) @@ -566,7 +562,7 @@ index 483eb9c..6e1caac 100644 #if defined (USE_SOCKET_FALLBACK) /* Fallback only registers for send, but may need to receive as well. */ -@@ -413,7 +413,7 @@ void if_register_receive (info) +@@ -421,7 +421,7 @@ void if_register_receive (info) #endif /* IP_PKTINFO... */ /* If this is a normal IPv4 address, get the hardware address. */ if (strcmp(info->name, "fallback") != 0) @@ -575,7 +571,7 @@ index 483eb9c..6e1caac 100644 if (!quiet_interface_discovery) log_info ("Listening on Socket/%s%s%s", -@@ -567,7 +567,7 @@ if_register6(struct interface_info *info, int do_multicast) { +@@ -577,7 +577,7 @@ if_register6(struct interface_info *info, int do_multicast) { if (req_multi) if_register_multicast(info); @@ -584,7 +580,7 @@ index 483eb9c..6e1caac 100644 if (!quiet_interface_discovery) { if (info->shared_network != NULL) { -@@ -623,7 +623,7 @@ if_register_linklocal6(struct interface_info *info) { +@@ -633,7 +633,7 @@ if_register_linklocal6(struct interface_info *info) { info->rfdesc = sock; info->wfdesc = sock; @@ -594,7 +590,7 @@ index 483eb9c..6e1caac 100644 if (!quiet_interface_discovery) { if (info->shared_network != NULL) { diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index faa9251..0c1a0aa 100644 +index 4c5e877..e9e52e7 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h @@ -485,6 +485,9 @@ struct packet { @@ -607,7 +603,7 @@ index faa9251..0c1a0aa 100644 struct hardware { u_int8_t hlen; u_int8_t hbuf[HARDWARE_ADDR_LEN + 1]; -@@ -1365,6 +1368,7 @@ struct interface_info { +@@ -1380,6 +1383,7 @@ struct interface_info { struct shared_network *shared_network; /* Networks connected to this interface. */ struct hardware hw_address; /* Its physical address. */ @@ -615,7 +611,7 @@ index faa9251..0c1a0aa 100644 struct in_addr *addresses; /* Addresses associated with this * interface. */ -@@ -2633,7 +2637,7 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); +@@ -2649,7 +2653,7 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); #endif const char *print_time(TIME); @@ -625,5 +621,5 @@ index faa9251..0c1a0aa 100644 const char *file, int line); char *format_lease_id(const unsigned char *s, unsigned len, int format, -- -2.26.2 +2.35.1 diff --git a/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch index 1f88d7d..d5596b8 100644 --- a/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch +++ b/0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch @@ -1,19 +1,18 @@ -From 3d3e442ed1316930a5360e4d5a56b46a42a29419 Mon Sep 17 00:00:00 2001 +From 3baf35269555e2223dbd1733cb1c475cb7f2ed7a Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:35:47 +0100 -Subject: [PATCH 15/26] Add GUID/DUID to dhcpd logs (#1064416) -Cc: pzhukov@redhat.com +Subject: [PATCH 15/28] Add GUID/DUID to dhcpd logs (#1064416) --- - client/dhclient.c | 75 ++++++++++++++++++++++++++++++++++++++++++---------- - server/dhcp.c | 78 +++++++++++++++++++++++++++++++++---------------------- - 2 files changed, 108 insertions(+), 45 deletions(-) + client/dhclient.c | 70 ++++++++++++++++++++++++++++++++++-------- + server/dhcp.c | 78 ++++++++++++++++++++++++++++------------------- + 2 files changed, 105 insertions(+), 43 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c -index dc9080e..8e57da9 100644 +index 48edddf..181f6e1 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -1170,6 +1170,26 @@ main(int argc, char **argv) { +@@ -1176,6 +1176,26 @@ main(int argc, char **argv) { } } @@ -40,60 +39,56 @@ index dc9080e..8e57da9 100644 /* At this point, all the interfaces that the script thinks are relevant should be running, so now we once again call discover_interfaces(), and this time ask it to actually set -@@ -1184,14 +1204,36 @@ main(int argc, char **argv) { - Not much entropy, but we're booting, so we're not likely to - find anything better. */ - seed = 0; -+ int seed_flag = 0; - for (ip = interfaces; ip; ip = ip->next) { - int junk; -+ if ( ip -> hw_address.hlen <= sizeof seed ) -+ continue; - memcpy(&junk, - &ip->hw_address.hbuf[ip->hw_address.hlen - - sizeof seed], sizeof seed); - seed += junk; -+ seed_flag = 1; - } -- srandom(seed + cur_time + (unsigned)getpid()); -+ if ( seed_flag == 0 ) { -+ if ( backup_seed != 0 ) { -+ seed = backup_seed; -+ log_info ("xid: rand init seed (0x%x) built using all" -+ " available interfaces",seed); -+ } -+ else { -+ seed = cur_time^((unsigned) gethostid()) ; -+ log_info ("xid: warning: no netdev with useable HWADDR found" -+ " for seed's uniqueness enforcement"); -+ log_info ("xid: rand init seed (0x%x) built using gethostid", -+ seed); -+ } -+ /* we only use seed and no current time as a broadcast reply */ -+ /* will certainly be used by the hwaddrless interface */ -+ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); -+ } -+ else -+ srandom(seed + ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid()); +@@ -1204,14 +1224,34 @@ main(int argc, char **argv) { + Not much entropy, but we're booting, so we're not likely to + find anything better. */ - /* Setup specific Infiniband options */ - for (ip = interfaces; ip; ip = ip->next) { -@@ -1746,10 +1788,10 @@ void dhcpack (packet) - #endif ++ int seed_flag = 0; + for (ip = interfaces; ip; ip = ip->next) { + int junk; ++ if ( ip -> hw_address.hlen <= sizeof seed ) ++ continue; + memcpy(&junk, + &ip->hw_address.hbuf[ip->hw_address.hlen - + sizeof seed], sizeof seed); + seed += junk; ++ seed_flag = 1; + } +- seed += cur_time + (unsigned)getpid(); ++ if ( seed_flag == 0 ) { ++ if ( backup_seed != 0 ) { ++ seed = backup_seed; ++ log_info ("xid: rand init seed (0x%x) built using all" ++ " available interfaces",seed); ++ } ++ else { ++ seed = cur_time^((unsigned) gethostid()) ; ++ log_info ("xid: warning: no netdev with useable HWADDR found" ++ " for seed's uniqueness enforcement"); ++ log_info ("xid: rand init seed (0x%x) built using gethostid", ++ seed); ++ } ++ /* we only use seed and no current time as a broadcast reply */ ++ /* will certainly be used by the hwaddrless interface */ ++ } ++ seed += ((unsigned)(cur_tv.tv_usec * 1000000)) + (unsigned)getpid(); + } + srandom(seed); + +@@ -1869,9 +1909,10 @@ void dhcpack (packet) return; } -- -- log_info ("DHCPACK of %s from %s", -- inet_ntoa(packet->raw->yiaddr), -- piaddr (packet->client_addr)); -+ log_info ("DHCPACK of %s from %s (xid=0x%x)", -+ inet_ntoa(packet->raw->yiaddr), -+ piaddr (packet -> client_addr), -+ ntohl(client -> xid)); - lease = packet_to_lease (packet, client); - if (!lease) { -@@ -2669,7 +2711,7 @@ void dhcpnak (packet) +- log_info ("DHCPACK of %s from %s", ++ log_info ("DHCPACK of %s from %s (xid=0x%x)", + inet_ntoa(packet->raw->yiaddr), +- piaddr (packet->client_addr)); ++ piaddr (packet -> client_addr), ++ ntohl(client -> xid)); + + /* Check v6only first. */ + v6only_wait = check_v6only(packet, client); +@@ -2825,7 +2866,7 @@ void dhcpnak (packet) return; } @@ -102,7 +97,7 @@ index dc9080e..8e57da9 100644 if (!client -> active) { #if defined (DEBUG) -@@ -2802,10 +2844,10 @@ void send_discover (cpp) +@@ -2958,10 +2999,10 @@ void send_discover (cpp) (long)(client -> interval)); } else #endif @@ -115,7 +110,7 @@ index dc9080e..8e57da9 100644 /* Send out a packet. */ #if defined(DHCPv6) && defined(DHCP4o6) -@@ -3108,10 +3150,12 @@ void send_request (cpp) +@@ -3355,10 +3396,12 @@ void send_request (cpp) } strncpy(rip_buf, rip_str, sizeof(rip_buf)-1); @@ -130,7 +125,7 @@ index dc9080e..8e57da9 100644 #if defined(DHCPv6) && defined(DHCP4o6) if (dhcpv4_over_dhcpv6) { -@@ -3168,11 +3212,13 @@ void send_decline (cpp) +@@ -3415,11 +3458,13 @@ void send_decline (cpp) log_info ("DHCPDECLINE"); } else #endif @@ -146,7 +141,7 @@ index dc9080e..8e57da9 100644 /* Send out a packet. */ #if defined(DHCPv6) && defined(DHCP4o6) -@@ -3231,11 +3277,12 @@ void send_release (cpp) +@@ -3478,11 +3523,12 @@ void send_release (cpp) log_info ("DHCPRELEASE"); } else #endif @@ -162,10 +157,10 @@ index dc9080e..8e57da9 100644 #if defined(DHCPv6) && defined(DHCP4o6) if (dhcpv4_over_dhcpv6) { diff --git a/server/dhcp.c b/server/dhcp.c -index 20f2a62..0582c4c 100644 +index ae805a6..8363840 100644 --- a/server/dhcp.c +++ b/server/dhcp.c -@@ -87,6 +87,42 @@ const int dhcp_type_name_max = ((sizeof dhcp_type_names) / sizeof (char *)); +@@ -93,6 +93,42 @@ const int dhcp_type_name_max = ((sizeof dhcp_type_names) / sizeof (char *)); static TIME leaseTimeCheck(TIME calculated, TIME alternate); @@ -208,7 +203,7 @@ index 20f2a62..0582c4c 100644 void dhcp (struct packet *packet) { int ms_nulltp = 0; -@@ -129,9 +165,7 @@ dhcp (struct packet *packet) { +@@ -135,9 +171,7 @@ dhcp (struct packet *packet) { log_info("%s from %s via %s: %s", s, (packet->raw->htype @@ -219,7 +214,7 @@ index 20f2a62..0582c4c 100644 : ""), packet->raw->giaddr.s_addr ? inet_ntoa(packet->raw->giaddr) -@@ -328,9 +362,7 @@ void dhcpdiscover (packet, ms_nulltp) +@@ -334,9 +368,7 @@ void dhcpdiscover (packet, ms_nulltp) #endif snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s", (packet -> raw -> htype @@ -230,7 +225,7 @@ index 20f2a62..0582c4c 100644 : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -542,9 +574,7 @@ void dhcprequest (packet, ms_nulltp, ip_lease) +@@ -548,9 +580,7 @@ void dhcprequest (packet, ms_nulltp, ip_lease) "DHCPREQUEST for %s%s from %s %s%s%svia %s", piaddr (cip), smbuf, (packet -> raw -> htype @@ -241,7 +236,7 @@ index 20f2a62..0582c4c 100644 : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -785,9 +815,7 @@ void dhcprelease (packet, ms_nulltp) +@@ -791,9 +821,7 @@ void dhcprelease (packet, ms_nulltp) if ((oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_REQUESTED_ADDRESS))) { log_info ("DHCPRELEASE from %s specified requested-address.", @@ -252,7 +247,7 @@ index 20f2a62..0582c4c 100644 } oc = lookup_option (&dhcp_universe, packet -> options, -@@ -879,9 +907,7 @@ void dhcprelease (packet, ms_nulltp) +@@ -885,9 +913,7 @@ void dhcprelease (packet, ms_nulltp) "DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)", cstr, (packet -> raw -> htype @@ -263,7 +258,7 @@ index 20f2a62..0582c4c 100644 : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -986,9 +1012,7 @@ void dhcpdecline (packet, ms_nulltp) +@@ -992,9 +1018,7 @@ void dhcpdecline (packet, ms_nulltp) "DHCPDECLINE of %s from %s %s%s%svia %s", piaddr (cip), (packet -> raw -> htype @@ -274,7 +269,7 @@ index 20f2a62..0582c4c 100644 : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -1732,8 +1756,7 @@ void dhcpinform (packet, ms_nulltp) +@@ -1740,8 +1764,7 @@ void dhcpinform (packet, ms_nulltp) /* Report what we're sending. */ snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip), (packet->raw->htype && packet->raw->hlen) ? @@ -284,7 +279,7 @@ index 20f2a62..0582c4c 100644 ""); log_info("%s %s", msgbuf, gip.len ? piaddr(gip) : packet->interface->name); -@@ -1918,9 +1941,7 @@ void nak_lease (packet, cip, network_group) +@@ -1926,9 +1949,7 @@ void nak_lease (packet, cip, network_group) #endif log_info ("DHCPNAK on %s to %s via %s", piaddr (*cip), @@ -295,7 +290,7 @@ index 20f2a62..0582c4c 100644 packet -> raw -> giaddr.s_addr ? inet_ntoa (packet -> raw -> giaddr) : packet -> interface -> name); -@@ -3936,7 +3957,7 @@ void dhcp_reply (lease) +@@ -4044,7 +4065,7 @@ void dhcp_reply (lease) ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER") : "BOOTREPLY"), piaddr (lease -> ip_addr), @@ -304,7 +299,7 @@ index 20f2a62..0582c4c 100644 ? print_hw_addr (lease -> hardware_addr.hbuf [0], lease -> hardware_addr.hlen - 1, &lease -> hardware_addr.hbuf [1]) -@@ -4497,10 +4518,7 @@ int find_lease (struct lease **lp, +@@ -4605,10 +4626,7 @@ int find_lease (struct lease **lp, if (uid_lease) { if (uid_lease->binding_state == FTS_ACTIVE) { log_error ("client %s has duplicate%s on %s", @@ -316,7 +311,7 @@ index 20f2a62..0582c4c 100644 " leases", (ip_lease -> subnet -> shared_network -> name)); -@@ -4667,9 +4685,7 @@ int find_lease (struct lease **lp, +@@ -4775,9 +4793,7 @@ int find_lease (struct lease **lp, log_error("uid lease %s for client %s is duplicate " "on %s", piaddr(uid_lease->ip_addr), @@ -328,5 +323,5 @@ index 20f2a62..0582c4c 100644 if (!packet -> raw -> ciaddr.s_addr && -- -2.14.5 +2.35.1 diff --git a/0016-Turn-on-creating-sending-of-DUID.patch b/0016-Turn-on-creating-sending-of-DUID.patch index bafffb5..e7f4e7e 100644 --- a/0016-Turn-on-creating-sending-of-DUID.patch +++ b/0016-Turn-on-creating-sending-of-DUID.patch @@ -1,19 +1,18 @@ -From 2f6b827e89305adcff45288c632785ac054adb8e Mon Sep 17 00:00:00 2001 +From 0a0a7e1afa171289b9e9d855c519101bbd71b5fe Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:36:30 +0100 -Subject: [PATCH 16/26] Turn on creating/sending of DUID -Cc: pzhukov@redhat.com +Subject: [PATCH 16/28] Turn on creating/sending of DUID as client identifier with DHCPv4 clients (#560361c#40, rfc4361) --- - client/dhclient.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- + client/dhclient.c | 74 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 4 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c -index 8e57da9..ccc98e4 100644 +index 181f6e1..444d251 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -4021,6 +4021,59 @@ write_options(struct client_state *client, struct option_state *options, +@@ -4267,6 +4267,59 @@ write_options(struct client_state *client, struct option_state *options, } } @@ -73,7 +72,7 @@ index 8e57da9..ccc98e4 100644 /* * The "best" default DUID, since we cannot predict any information * about the system (such as whether or not the hardware addresses are -@@ -4041,6 +4094,7 @@ form_duid(struct data_string *duid, const char *file, int line) +@@ -4287,6 +4340,7 @@ form_duid(struct data_string *duid, const char *file, int line) struct interface_info *ip; int len; char *str; @@ -81,7 +80,7 @@ index 8e57da9..ccc98e4 100644 /* For now, just use the first interface on the list. */ ip = interfaces; -@@ -4061,9 +4115,16 @@ form_duid(struct data_string *duid, const char *file, int line) +@@ -4307,9 +4361,16 @@ form_duid(struct data_string *duid, const char *file, int line) (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); @@ -101,7 +100,7 @@ index 8e57da9..ccc98e4 100644 /* * 2 bytes for the 'duid type' field. * 2 bytes for the 'htype' field. -@@ -4074,13 +4135,18 @@ form_duid(struct data_string *duid, const char *file, int line) +@@ -4320,13 +4381,18 @@ form_duid(struct data_string *duid, const char *file, int line) len = 4 + (ip->hw_address.hlen - 1); if (duid_type == DUID_LLT) len += 4; @@ -122,5 +121,5 @@ index 8e57da9..ccc98e4 100644 putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]); putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH); -- -2.14.5 +2.35.1 diff --git a/0017-Send-unicast-request-release-via-correct-interface.patch b/0017-Send-unicast-request-release-via-correct-interface.patch index 26c8b96..37482a0 100644 --- a/0017-Send-unicast-request-release-via-correct-interface.patch +++ b/0017-Send-unicast-request-release-via-correct-interface.patch @@ -1,8 +1,7 @@ -From 193c4d7631fd623efa601f52fdab6018bf8be771 Mon Sep 17 00:00:00 2001 +From d45463c2007a78623f2c90c250bb8e2f3e34a852 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:39:36 +0100 -Subject: [PATCH 17/26] Send unicast request/release via correct interface -Cc: pzhukov@redhat.com +Subject: [PATCH 17/28] Send unicast request/release via correct interface (#800561, #1177351) (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544]) @@ -11,10 +10,10 @@ Cc: pzhukov@redhat.com 1 file changed, 30 insertions(+) diff --git a/client/dhclient.c b/client/dhclient.c -index ccc98e4..27fde69 100644 +index 444d251..d607975 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -3171,6 +3171,14 @@ void send_request (cpp) +@@ -3417,6 +3417,14 @@ void send_request (cpp) #endif if (destination.sin_addr.s_addr != INADDR_BROADCAST && fallback_interface) { @@ -29,7 +28,7 @@ index ccc98e4..27fde69 100644 result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -3180,6 +3188,13 @@ void send_request (cpp) +@@ -3426,6 +3434,13 @@ void send_request (cpp) client->packet_length, fallback_interface->name); } @@ -43,7 +42,7 @@ index ccc98e4..27fde69 100644 } else { /* Send out a packet. */ -@@ -3297,6 +3312,14 @@ void send_release (cpp) +@@ -3543,6 +3558,14 @@ void send_release (cpp) } else #endif if (fallback_interface) { @@ -58,7 +57,7 @@ index ccc98e4..27fde69 100644 result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -3306,6 +3329,13 @@ void send_release (cpp) +@@ -3552,6 +3575,13 @@ void send_release (cpp) client->packet_length, fallback_interface->name); } @@ -73,5 +72,5 @@ index ccc98e4..27fde69 100644 /* Send out a packet. */ result = send_packet(client->interface, NULL, &client->packet, -- -2.14.5 +2.35.1 diff --git a/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch index 2ff4030..ec608cd 100644 --- a/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch +++ b/0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch @@ -1,19 +1,18 @@ -From 2277d041692b8ebdf6b86d41e3a0bc0381cd1e47 Mon Sep 17 00:00:00 2001 +From 840c4f2175d14fa485f2a5e50a005847940b7e1f Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:40:51 +0100 -Subject: [PATCH 18/26] No subnet declaration for ' should be info, not +Subject: [PATCH 18/28] No subnet declaration for ' should be info, not error. -Cc: pzhukov@redhat.com --- common/discover.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/common/discover.c b/common/discover.c -index 65881fc..056342c 100644 +index e562225..b4b1959 100644 --- a/common/discover.c +++ b/common/discover.c -@@ -801,9 +801,9 @@ discover_interfaces(int state) { +@@ -806,9 +806,9 @@ discover_interfaces(int state) { /* We must have a subnet declaration for each interface. */ if (!tmp->shared_network && (state == DISCOVER_SERVER)) { @@ -22,10 +21,10 @@ index 65881fc..056342c 100644 if (local_family == AF_INET) { - log_error("No subnet declaration for %s (%s).", + log_info("No subnet declaration for %s (%s).", - tmp->name, + tmp->name, (tmp->addresses == NULL) ? "no IPv4 addresses" : -@@ -818,26 +818,26 @@ discover_interfaces(int state) { +@@ -823,26 +823,26 @@ discover_interfaces(int state) { } else { strcpy(abuf, "no IPv6 addresses"); } @@ -59,5 +58,5 @@ index 65881fc..056342c 100644 } else { log_error ("You must write a %s", -- -2.14.5 +2.35.1 diff --git a/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch index 3405ea1..95a311c 100644 --- a/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch +++ b/0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch @@ -1,9 +1,8 @@ -From 6ea56e988df1da51f7d0bdd8984b38e40102c17b Mon Sep 17 00:00:00 2001 +From eeb2e5bcedd62f21472da165b80741f8072420cf Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:41:14 +0100 -Subject: [PATCH 19/26] dhclient: write DUID_LLT even in stateless mode +Subject: [PATCH 19/28] dhclient: write DUID_LLT even in stateless mode (#1156356) -Cc: pzhukov@redhat.com (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144]) --- @@ -11,10 +10,10 @@ Cc: pzhukov@redhat.com 1 file changed, 3 insertions(+) diff --git a/client/dhclient.c b/client/dhclient.c -index 27fde69..4e5546a 100644 +index d607975..6bbefc7 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -1442,6 +1442,9 @@ void run_stateless(int exit_mode, u_int16_t port) +@@ -1462,6 +1462,9 @@ void run_stateless(int exit_mode, u_int16_t port) data_string_forget(&default_duid, MDL); form_duid(&default_duid, MDL); @@ -25,5 +24,5 @@ index 27fde69..4e5546a 100644 #ifdef DHCP4o6 -- -2.14.5 +2.35.1 diff --git a/0020-Discover-all-hwaddress-for-xid-uniqueness.patch b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch index c838d7a..8148980 100644 --- a/0020-Discover-all-hwaddress-for-xid-uniqueness.patch +++ b/0020-Discover-all-hwaddress-for-xid-uniqueness.patch @@ -1,8 +1,7 @@ -From 01ce61b8a0331a2f068ca2191bfb897b505c1b9d Mon Sep 17 00:00:00 2001 +From 908ea5f3a45a050a878de16d5acde6eda1b77d9f Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 21 Feb 2019 10:42:50 +0100 -Subject: [PATCH 20/26] Discover all hwaddress for xid uniqueness -Cc: pzhukov@redhat.com +Subject: [PATCH 20/28] Discover all hwaddress for xid uniqueness --- common/discover.c | 2 ++ @@ -11,10 +10,10 @@ Cc: pzhukov@redhat.com 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/common/discover.c b/common/discover.c -index 056342c..e66e1c5 100644 +index b4b1959..96dcdcf 100644 --- a/common/discover.c +++ b/common/discover.c -@@ -648,6 +648,8 @@ discover_interfaces(int state) { +@@ -653,6 +653,8 @@ discover_interfaces(int state) { interface_dereference(&tmp, MDL); tmp = interfaces; /* XXX */ } @@ -24,10 +23,10 @@ index 056342c..e66e1c5 100644 if (dhcp_interface_discovery_hook) { (*dhcp_interface_discovery_hook)(tmp); diff --git a/common/lpf.c b/common/lpf.c -index b732a86..a708a5d 100644 +index fcaa13d..77a5668 100644 --- a/common/lpf.c +++ b/common/lpf.c -@@ -699,8 +699,22 @@ ioctl_get_ll(char *name) +@@ -713,8 +713,22 @@ ioctl_get_ll(char *name) return sll; } @@ -50,7 +49,7 @@ index b732a86..a708a5d 100644 { struct hardware *hw = &info->hw_address; char *name = info->name; -@@ -710,7 +724,8 @@ get_hw_addr(struct interface_info *info) +@@ -724,7 +738,8 @@ get_hw_addr(struct interface_info *info) int sll_allocated = 0; char *dup = NULL; char *colon = NULL; @@ -60,7 +59,7 @@ index b732a86..a708a5d 100644 if (getifaddrs(&ifaddrs) == -1) log_fatal("Failed to get interfaces"); -@@ -794,14 +809,16 @@ get_hw_addr(struct interface_info *info) +@@ -808,14 +823,16 @@ get_hw_addr(struct interface_info *info) hw->hbuf[4] = 0xef; break; #endif @@ -82,10 +81,10 @@ index b732a86..a708a5d 100644 } #endif diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 0c1a0aa..635c510 100644 +index e9e52e7..fabad01 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h -@@ -2637,7 +2637,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); +@@ -2653,7 +2653,10 @@ void print_dns_status (int, struct dhcp_ddns_cb *, isc_result_t); #endif const char *print_time(TIME); @@ -97,5 +96,5 @@ index 0c1a0aa..635c510 100644 const char *file, int line); char *format_lease_id(const unsigned char *s, unsigned len, int format, -- -2.14.5 +2.35.1 diff --git a/0021-Load-leases-DB-in-non-replay-mode-only.patch b/0021-Load-leases-DB-in-non-replay-mode-only.patch index d398918..25824fd 100644 --- a/0021-Load-leases-DB-in-non-replay-mode-only.patch +++ b/0021-Load-leases-DB-in-non-replay-mode-only.patch @@ -1,11 +1,14 @@ -commit 50c2b3ba8ce030a47b55dd707bb8a6ab20444a05 -Author: Pavel Zhukov -Date: Thu Feb 21 10:44:06 2019 +0100 +From bdbbb4be07bb33fe083baef2bd0ef38b91c11120 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Thu, 21 Feb 2019 10:44:06 +0100 +Subject: [PATCH 21/28] Load leases DB in non-replay mode only - Load leases DB in non-replay mode only +--- + server/confpars.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/confpars.c b/server/confpars.c -index 2743979..6b61964 100644 +index 5a6396b..6e08ad7 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -134,6 +134,11 @@ isc_result_t read_conf_file (const char *filename, struct group *group, @@ -48,3 +51,6 @@ index 2743979..6b61964 100644 #endif return status; } +-- +2.35.1 + diff --git a/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch b/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch index 85ea650..4011c9a 100644 --- a/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch +++ b/0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch @@ -1,9 +1,8 @@ -From 9975d198a2c02e32c31c3e0f43d2aa79dfa7f508 Mon Sep 17 00:00:00 2001 +From 1f8681acba9ab70fbe17c85e5a1f4ce6a648b55d Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 28 Feb 2019 15:30:21 +0100 -Subject: [PATCH 22/26] dhclient: make sure link-local address is ready in +Subject: [PATCH 22/28] dhclient: make sure link-local address is ready in stateless mode -Cc: pzhukov@redhat.com Bug-url: https://bugzilla.redhat.com/1263466 --- @@ -11,10 +10,10 @@ Bug-url: https://bugzilla.redhat.com/1263466 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c -index 4e5546a..9b65438 100644 +index 6bbefc7..60836b4 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -937,6 +937,12 @@ main(int argc, char **argv) { +@@ -943,6 +943,12 @@ main(int argc, char **argv) { inaddr_any.s_addr = INADDR_ANY; @@ -27,7 +26,7 @@ index 4e5546a..9b65438 100644 /* Stateless special case. */ if (stateless) { if (release_mode || (wanted_ia_na > 0) || -@@ -953,12 +959,6 @@ main(int argc, char **argv) { +@@ -959,12 +965,6 @@ main(int argc, char **argv) { finish(0); } @@ -40,7 +39,7 @@ index 4e5546a..9b65438 100644 /* Parse any extra command line configuration arguments: */ if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) { arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg); -@@ -1413,20 +1413,30 @@ void run_stateless(int exit_mode, u_int16_t port) +@@ -1433,20 +1433,30 @@ void run_stateless(int exit_mode, u_int16_t port) IGNORE_UNUSED(port); #endif @@ -76,5 +75,5 @@ index 4e5546a..9b65438 100644 /* Parse the lease database. */ read_client_leases(); -- -2.14.5 +2.35.1 diff --git a/0023-option-97-pxe-client-id.patch b/0023-option-97-pxe-client-id.patch index 6cc4328..f254eb6 100644 --- a/0023-option-97-pxe-client-id.patch +++ b/0023-option-97-pxe-client-id.patch @@ -1,8 +1,7 @@ -From 6fd7894ea57791c8eee16c21d19da34b909e016e Mon Sep 17 00:00:00 2001 +From f01a29a90269c98a86accb0923d65aecf5f59b44 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 28 Feb 2019 16:40:38 +0100 -Subject: [PATCH 23/26] option 97 - pxe-client-id -Cc: pzhukov@redhat.com +Subject: [PATCH 23/28] option 97 - pxe-client-id Bug-url: https://bugzilla.redhat.com/1058674 ISC-Bugs #38110 @@ -18,10 +17,10 @@ ISC-Bugs #38110 8 files changed, 69 insertions(+), 16 deletions(-) diff --git a/common/options.c b/common/options.c -index 3034cf0..686dd12 100644 +index 66433c4..4e26094 100644 --- a/common/options.c +++ b/common/options.c -@@ -4465,13 +4465,26 @@ int validate_packet(struct packet *packet) +@@ -4551,13 +4551,26 @@ int validate_packet(struct packet *packet) "a future version of ISC DHCP will reject this"); } } else { @@ -56,10 +55,10 @@ index 3034cf0..686dd12 100644 } diff --git a/common/tables.c b/common/tables.c -index f1be07d..4419220 100644 +index 96521a6..8034d94 100644 --- a/common/tables.c +++ b/common/tables.c -@@ -196,8 +196,9 @@ static struct option dhcp_options[] = { +@@ -200,8 +200,9 @@ static struct option dhcp_options[] = { /* Defined by RFC 4578 */ { "pxe-system-type", "Sa", &dhcp_universe, 93, 1 }, { "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 }, @@ -71,7 +70,7 @@ index f1be07d..4419220 100644 #if defined(RFC4776_OPTIONS) { "geoconf-civic", "X", &dhcp_universe, 99, 1 }, diff --git a/includes/dhcp.h b/includes/dhcp.h -index 4cc547a..4eb9791 100644 +index 7202f1d..4ad3874 100644 --- a/includes/dhcp.h +++ b/includes/dhcp.h @@ -158,6 +158,7 @@ struct dhcp_packet { @@ -79,14 +78,14 @@ index 4cc547a..4eb9791 100644 #define DHO_CLIENT_LAST_TRANSACTION_TIME 91 #define DHO_ASSOCIATED_IP 92 +#define DHO_PXE_CLIENT_ID 97 /* RFC4578 */ + #define DHO_V6_ONLY_PREFERRED 108 /* RFC8925 */ #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ #define DHO_DOMAIN_SEARCH 119 /* RFC3397 */ - #define DHO_CLASSLESS_STATIC_ROUTES 121 /* RFC3442 */ diff --git a/server/dhcp.c b/server/dhcp.c -index 0582c4c..4e86262 100644 +index 8363840..29d9c69 100644 --- a/server/dhcp.c +++ b/server/dhcp.c -@@ -222,6 +222,10 @@ dhcp (struct packet *packet) { +@@ -228,6 +228,10 @@ dhcp (struct packet *packet) { if (lease -> uid_len) { oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -97,7 +96,7 @@ index 0582c4c..4e86262 100644 if (!oc) goto nolease; -@@ -820,6 +824,9 @@ void dhcprelease (packet, ms_nulltp) +@@ -826,6 +830,9 @@ void dhcprelease (packet, ms_nulltp) oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -107,7 +106,7 @@ index 0582c4c..4e86262 100644 memset (&data, 0, sizeof data); if (oc && evaluate_option_cache (&data, packet, (struct lease *)0, -@@ -1331,6 +1338,9 @@ void dhcpinform (packet, ms_nulltp) +@@ -1338,6 +1345,9 @@ void dhcpinform (packet, ms_nulltp) */ oc = lookup_option(&dhcp_universe, packet->options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -117,7 +116,7 @@ index 0582c4c..4e86262 100644 memset(&d1, 0, sizeof(d1)); if (oc && evaluate_option_cache(&d1, packet, NULL, NULL, -@@ -2441,6 +2451,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) +@@ -2448,6 +2458,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) can be used. */ oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -127,7 +126,7 @@ index 0582c4c..4e86262 100644 if (oc && evaluate_option_cache (&d1, packet, lease, (struct client_state *)0, -@@ -3033,6 +3046,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) +@@ -3040,6 +3053,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) /* Record the uid, if given... */ oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -137,7 +136,7 @@ index 0582c4c..4e86262 100644 if (oc && evaluate_option_cache(&d1, packet, lease, NULL, packet->options, state->options, -@@ -4150,6 +4166,9 @@ int find_lease (struct lease **lp, +@@ -4258,6 +4274,9 @@ int find_lease (struct lease **lp, specified unique client identifier. */ oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_CLIENT_IDENTIFIER); @@ -148,7 +147,7 @@ index 0582c4c..4e86262 100644 if (oc && evaluate_option_cache (&client_identifier, diff --git a/server/dhcpd.conf.5 b/server/dhcpd.conf.5 -index 89b5540..4751a8b 100644 +index b7e79ea..2354b1d 100644 --- a/server/dhcpd.conf.5 +++ b/server/dhcpd.conf.5 @@ -1664,10 +1664,12 @@ should be a name identifying the host. If a \fIhostname\fR option is @@ -177,7 +176,7 @@ index 89b5540..4751a8b 100644 parameter for DHCPv6 servers. For example, it is not possible to match a host declaration to a \fIhost-name\fR option. This is diff --git a/server/dhcpleasequery.c b/server/dhcpleasequery.c -index 7be0788..2fee698 100644 +index 0f1d4f7..dae4ae7 100644 --- a/server/dhcpleasequery.c +++ b/server/dhcpleasequery.c @@ -276,7 +276,7 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) { @@ -213,7 +212,7 @@ index 7be0788..2fee698 100644 sizeof(dbg_info), "client-id %s", diff --git a/server/failover.c b/server/failover.c -index 72f7b00..40fa691 100644 +index 5b36d3a..a641e86 100644 --- a/server/failover.c +++ b/server/failover.c @@ -5988,6 +5988,9 @@ int load_balance_mine (struct packet *packet, dhcp_failover_state_t *state) @@ -227,7 +226,7 @@ index 72f7b00..40fa691 100644 if (oc && evaluate_option_cache(&ds, packet, NULL, NULL, diff --git a/server/mdb.c b/server/mdb.c -index 052df67..8851366 100644 +index 60a40e1..2cd5605 100644 --- a/server/mdb.c +++ b/server/mdb.c @@ -129,8 +129,9 @@ static int find_uid_statement (struct executable_statement *esp, @@ -243,5 +242,5 @@ index 052df67..8851366 100644 log_error ("dhcp client identifier may not be %s", "specified conditionally."); -- -2.14.5 +2.35.1 diff --git a/0024-Detect-system-time-changes.patch b/0024-Detect-system-time-changes.patch index cf38d0d..77df3fd 100644 --- a/0024-Detect-system-time-changes.patch +++ b/0024-Detect-system-time-changes.patch @@ -1,8 +1,7 @@ -From 41c6032ace65119e6a400365f7e90283c930afd4 Mon Sep 17 00:00:00 2001 +From a2fb8759ab48c88e3f8df94ae6e156c357d932a2 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Oct 2019 16:23:01 +0200 -Subject: [PATCH 24/26] Detect system time changes -Cc: pzhukov@redhat.com +Subject: [PATCH 24/28] Detect system time changes --- client/dhclient.c | 6 ++++++ @@ -12,10 +11,10 @@ Cc: pzhukov@redhat.com 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/client/dhclient.c b/client/dhclient.c -index 9b65438..44d508a 100644 +index 60836b4..fd18813 100644 --- a/client/dhclient.c +++ b/client/dhclient.c -@@ -5408,6 +5408,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, +@@ -5665,6 +5665,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, case server_awaken: state_reboot (client); break; @@ -29,7 +28,7 @@ index 9b65438..44d508a 100644 } } diff --git a/common/dispatch.c b/common/dispatch.c -index d7fe200..8a24499 100644 +index 9741ff5..11c1787 100644 --- a/common/dispatch.c +++ b/common/dispatch.c @@ -118,7 +118,6 @@ dispatch(void) @@ -58,7 +57,7 @@ index d7fe200..8a24499 100644 log_fatal ("Dispatch routine failed: %s -- exiting", diff --git a/includes/dhcpd.h b/includes/dhcpd.h -index 635c510..ec6c227 100644 +index fabad01..9663508 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h @@ -524,7 +524,8 @@ typedef enum { @@ -72,7 +71,7 @@ index 635c510..ec6c227 100644 typedef struct { diff --git a/server/dhcpd.c b/server/dhcpd.c -index 530a923..4aef16b 100644 +index 845d0cc..3b3bd3b 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -1767,6 +1767,12 @@ isc_result_t dhcp_set_control_state (control_object_state_t oldstate, @@ -89,5 +88,5 @@ index 530a923..4aef16b 100644 return DHCP_R_INVALIDARG; /* Re-entry. */ -- -2.14.5 +2.35.1 diff --git a/0025-bind-Detect-system-time-changes.patch b/0025-bind-Detect-system-time-changes.patch index 80191b2..5a26a6f 100644 --- a/0025-bind-Detect-system-time-changes.patch +++ b/0025-bind-Detect-system-time-changes.patch @@ -1,22 +1,21 @@ -From ef4f5e80d8a1ea1507829ea6f5214f276478f475 Mon Sep 17 00:00:00 2001 +From 8e49f4b460ad20890c63a385c17d3e5decd45a82 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Oct 2019 16:23:24 +0200 -Subject: [PATCH 25/27] bind: Detect system time changes -Cc: pzhukov@redhat.com +Subject: [PATCH 25/28] bind: Detect system time changes --- - bind/bind/lib/isc/include/isc/result.h | 4 ++- - bind/bind/lib/isc/include/isc/util.h | 4 +++ - bind/bind/lib/isc/result.c | 2 ++ - bind/bind/lib/isc/unix/app.c | 41 ++++++++++++++++++++++++++++--- - bind/bind/lib/isc/unix/include/isc/time.h | 20 +++++++++++++++ - bind/bind/lib/isc/unix/time.c | 22 +++++++++++++++++ + .../bind-9.11.36/lib/isc/include/isc/result.h | 4 +- + bind/bind-9.11.36/lib/isc/include/isc/util.h | 4 ++ + bind/bind-9.11.36/lib/isc/result.c | 2 + + bind/bind-9.11.36/lib/isc/unix/app.c | 41 +++++++++++++++++-- + .../lib/isc/unix/include/isc/time.h | 20 +++++++++ + bind/bind-9.11.36/lib/isc/unix/time.c | 22 ++++++++++ 6 files changed, 89 insertions(+), 4 deletions(-) -diff --git a/bind/bind/lib/isc/include/isc/result.h b/bind/bind/lib/isc/include/isc/result.h -index 0389efa..0e35f98 100644 ---- a/bind/bind/lib/isc/include/isc/result.h -+++ b/bind/bind/lib/isc/include/isc/result.h +diff --git a/bind/bind-9.11.36/lib/isc/include/isc/result.h b/bind/bind-9.11.36/lib/isc/include/isc/result.h +index 916641f..51c2468 100644 +--- a/bind/bind-9.11.36/lib/isc/include/isc/result.h ++++ b/bind/bind-9.11.36/lib/isc/include/isc/result.h @@ -89,7 +89,9 @@ #define ISC_R_DISCFULL 67 /*%< disc full */ #define ISC_R_DEFAULT 68 /*%< default */ @@ -28,11 +27,11 @@ index 0389efa..0e35f98 100644 ISC_LANG_BEGINDECLS -diff --git a/bind/bind/lib/isc/include/isc/util.h b/bind/bind/lib/isc/include/isc/util.h -index 973c348..cceeb5e 100644 ---- a/bind/bind/lib/isc/include/isc/util.h -+++ b/bind/bind/lib/isc/include/isc/util.h -@@ -289,6 +289,10 @@ extern void mock_assert(const int result, const char* const expression, +diff --git a/bind/bind-9.11.36/lib/isc/include/isc/util.h b/bind/bind-9.11.36/lib/isc/include/isc/util.h +index 9111c2a..20a05b4 100644 +--- a/bind/bind-9.11.36/lib/isc/include/isc/util.h ++++ b/bind/bind-9.11.36/lib/isc/include/isc/util.h +@@ -325,6 +325,10 @@ extern void mock_assert(const int result, const char* const expression, * Time */ #define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS) @@ -43,10 +42,10 @@ index 973c348..cceeb5e 100644 /*% * Alignment -diff --git a/bind/bind/lib/isc/result.c b/bind/bind/lib/isc/result.c -index a9db132..7c04831 100644 ---- a/bind/bind/lib/isc/result.c -+++ b/bind/bind/lib/isc/result.c +diff --git a/bind/bind-9.11.36/lib/isc/result.c b/bind/bind-9.11.36/lib/isc/result.c +index 887b08c..2106a3a 100644 +--- a/bind/bind-9.11.36/lib/isc/result.c ++++ b/bind/bind-9.11.36/lib/isc/result.c @@ -105,6 +105,7 @@ static const char *description[ISC_R_NRESULTS] = { "disc full", /*%< 67 */ "default", /*%< 68 */ @@ -63,10 +62,10 @@ index a9db132..7c04831 100644 }; #define ISC_RESULT_RESULTSET 2 -diff --git a/bind/bind/lib/isc/unix/app.c b/bind/bind/lib/isc/unix/app.c -index a6e9882..dbd23f7 100644 ---- a/bind/bind/lib/isc/unix/app.c -+++ b/bind/bind/lib/isc/unix/app.c +diff --git a/bind/bind-9.11.36/lib/isc/unix/app.c b/bind/bind-9.11.36/lib/isc/unix/app.c +index 8189c63..4aabaa4 100644 +--- a/bind/bind-9.11.36/lib/isc/unix/app.c ++++ b/bind/bind-9.11.36/lib/isc/unix/app.c @@ -442,15 +442,51 @@ isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task, static isc_result_t evloop(isc__appctx_t *ctx) { @@ -131,10 +130,10 @@ index a6e9882..dbd23f7 100644 us = isc_time_microdiff(&when, &now); if (us == 0) call_timer_dispatch = true; -diff --git a/bind/bind/lib/isc/unix/include/isc/time.h b/bind/bind/lib/isc/unix/include/isc/time.h -index b864c29..5dd43c9 100644 ---- a/bind/bind/lib/isc/unix/include/isc/time.h -+++ b/bind/bind/lib/isc/unix/include/isc/time.h +diff --git a/bind/bind-9.11.36/lib/isc/unix/include/isc/time.h b/bind/bind-9.11.36/lib/isc/unix/include/isc/time.h +index 03512c1..99e0dfa 100644 +--- a/bind/bind-9.11.36/lib/isc/unix/include/isc/time.h ++++ b/bind/bind-9.11.36/lib/isc/unix/include/isc/time.h @@ -132,6 +132,26 @@ isc_time_isepoch(const isc_time_t *t); *\li 't' is a valid pointer. */ @@ -162,10 +161,10 @@ index b864c29..5dd43c9 100644 isc_result_t isc_time_now(isc_time_t *t); /*%< -diff --git a/bind/bind/lib/isc/unix/time.c b/bind/bind/lib/isc/unix/time.c -index 8edc9df..fe0bb91 100644 ---- a/bind/bind/lib/isc/unix/time.c -+++ b/bind/bind/lib/isc/unix/time.c +diff --git a/bind/bind-9.11.36/lib/isc/unix/time.c b/bind/bind-9.11.36/lib/isc/unix/time.c +index bcca41b..af6ea7f 100644 +--- a/bind/bind-9.11.36/lib/isc/unix/time.c ++++ b/bind/bind-9.11.36/lib/isc/unix/time.c @@ -498,3 +498,25 @@ isc_time_formatISO8601ms(const isc_time_t *t, char *buf, unsigned int len) { t->nanoseconds / NS_PER_MS); } @@ -193,5 +192,5 @@ index 8edc9df..fe0bb91 100644 +}; +#endif -- -2.14.5 +2.35.1 diff --git a/0026-Add-dhclient-5-B-option-description.patch b/0026-Add-dhclient-5-B-option-description.patch index 7ddfacf..b9f5db5 100644 --- a/0026-Add-dhclient-5-B-option-description.patch +++ b/0026-Add-dhclient-5-B-option-description.patch @@ -1,16 +1,18 @@ -commit 6acfd3125546a0e5db8fae8a9964cd2f88bf68c0 -Author: Pavel Zhukov -Date: Tue Oct 22 16:28:04 2019 +0200 +From aa328eef58ff93110f2a52cb3a80002ab8cee36e Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Tue, 22 Oct 2019 16:28:04 +0200 +Subject: [PATCH 26/28] Add dhclient(5) -B option description - Add dhclient(5) -B option description - - Bug-Url: https://bugzilla.redhat.com/1764088 +Bug-Url: https://bugzilla.redhat.com/1764088 +--- + client/dhclient.8 | 5 +++++ + 1 file changed, 5 insertions(+) diff --git a/client/dhclient.8 b/client/dhclient.8 -index 0145b9f..5226de5 100644 +index bacf3bc..76f0cc0 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 -@@ -552,6 +552,11 @@ Path to the network configuration script invoked by +@@ -553,6 +553,11 @@ Path to the network configuration script invoked by when it gets a lease. If unspecified, the default .B CLIENTBINDIR/dhclient-script is used. See \fBdhclient-script(8)\fR for a description of this file. @@ -22,3 +24,6 @@ index 0145b9f..5226de5 100644 .PP .SH PORTS During operations the client may use multiple UDP ports +-- +2.35.1 + diff --git a/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch b/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch index cde51de..437f916 100644 --- a/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch +++ b/0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch @@ -1,8 +1,7 @@ -From 8d974fd1f667e1b957ad4092fe66a8bb94f5f8fd Mon Sep 17 00:00:00 2001 +From d1b1f91a7982be28acdfb580996c93aafcc76cc2 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Thu, 7 Nov 2019 14:47:45 +0100 -Subject: [PATCH 1/1] Add missed sd notify patch to manage dhcpd with systemd -Cc: pzhukov@redhat.com +Subject: [PATCH 27/28] Add missed sd notify patch to manage dhcpd with systemd --- configure.ac | 11 +++++++++++ @@ -11,10 +10,10 @@ Cc: pzhukov@redhat.com 3 files changed, 35 insertions(+) diff --git a/configure.ac b/configure.ac -index 15fc0d7..0c08000 100644 +index 300117f..f644e71 100644 --- a/configure.ac +++ b/configure.ac -@@ -1014,6 +1014,17 @@ if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; +@@ -1005,6 +1005,17 @@ if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) fi @@ -33,7 +32,7 @@ index 15fc0d7..0c08000 100644 # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). CFLAGS="$CFLAGS $STD_CWARNINGS" diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c -index 7b4f4f1..9eb5bfd 100644 +index 0dc17d6..d3ad31e 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -37,6 +37,10 @@ @@ -47,7 +46,7 @@ index 7b4f4f1..9eb5bfd 100644 TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -845,6 +849,14 @@ main(int argc, char **argv) { +@@ -869,6 +873,14 @@ main(int argc, char **argv) { } #endif @@ -63,7 +62,7 @@ index 7b4f4f1..9eb5bfd 100644 dispatch(); diff --git a/server/dhcpd.c b/server/dhcpd.c -index 4aef16b..778ef8d 100644 +index 3b3bd3b..9223d5b 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -60,6 +60,10 @@ gid_t set_gid = 0; @@ -93,5 +92,5 @@ index 4aef16b..778ef8d 100644 * Receive packets and dispatch them... * dispatch() will never return. -- -2.14.5 +2.35.1 diff --git a/0029-Use-system-getaddrinfo-for-dhcp.patch b/0028-Use-system-getaddrinfo-for-dhcp.patch similarity index 81% rename from 0029-Use-system-getaddrinfo-for-dhcp.patch rename to 0028-Use-system-getaddrinfo-for-dhcp.patch index 24cbb6b..b86936e 100644 --- a/0029-Use-system-getaddrinfo-for-dhcp.patch +++ b/0028-Use-system-getaddrinfo-for-dhcp.patch @@ -1,18 +1,17 @@ -From 019021caa791c254a319c71b4f634142dc14b37d Mon Sep 17 00:00:00 2001 +From 9970114f558927564d9c19be969c3c35db3b0edf Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 22 Jun 2021 06:58:40 +0200 -Subject: [PATCH 29/29] Use system getaddrinfo for dhcp -Cc: pzhukov@redhat.com +Subject: [PATCH 28/28] Use system getaddrinfo for dhcp --- - bind/bind/lib/irs/include/irs/netdb.h.in | 94 ++++++++++++++++++++++++ + .../lib/irs/include/irs/netdb.h.in | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) -diff --git a/bind/bind/lib/irs/include/irs/netdb.h.in b/bind/bind/lib/irs/include/irs/netdb.h.in -index 23dcd37..f36113d 100644 ---- a/bind/bind/lib/irs/include/irs/netdb.h.in -+++ b/bind/bind/lib/irs/include/irs/netdb.h.in -@@ -149,6 +149,100 @@ struct addrinfo { +diff --git a/bind/bind-9.11.36/lib/irs/include/irs/netdb.h.in b/bind/bind-9.11.36/lib/irs/include/irs/netdb.h.in +index 427fef8..74069b5 100644 +--- a/bind/bind-9.11.36/lib/irs/include/irs/netdb.h.in ++++ b/bind/bind-9.11.36/lib/irs/include/irs/netdb.h.in +@@ -150,6 +150,100 @@ struct addrinfo { #define NI_NUMERICSERV 0x00000008 #define NI_DGRAM 0x00000010 @@ -114,5 +113,5 @@ index 23dcd37..f36113d 100644 * Tell Emacs to use C mode on this file. * Local variables: -- -2.26.3 +2.35.1 diff --git a/dhcp.spec b/dhcp.spec index 20598a9..0f7a4f6 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -9,13 +9,13 @@ #global prever b1 -%global patchver P1 +#global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} Summary: Dynamic host configuration protocol software Name: dhcp -Version: 4.4.2 -Release: 18%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Version: 4.4.3 +Release: 1%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -62,7 +62,7 @@ Patch24 : 0024-Detect-system-time-changes.patch Patch25 : 0025-bind-Detect-system-time-changes.patch Patch26 : 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch -Patch29: 0029-Use-system-getaddrinfo-for-dhcp.patch +Patch28: 0028-Use-system-getaddrinfo-for-dhcp.patch BuildRequires: autoconf BuildRequires: automake @@ -131,7 +131,6 @@ easier to administer a large network. This package provides the ISC DHCP relay agent. - %package client Summary: Provides the ISC DHCP client daemon and dhclient-script Provides: dhclient = %{epoch}:%{version}-%{release} @@ -156,8 +155,6 @@ Summary: Common files used by ISC dhcp client, server and relay agent BuildArch: noarch Obsoletes: dhcp-libs < %{epoch}:%{version} - - %description common DHCP (Dynamic Host Configuration Protocol) is a protocol which allows individual devices on an IP network to get their own network @@ -177,7 +174,6 @@ Provides: bundled(bind) %description libs-static This package contains shared libraries used by ISC dhcp client and server - %package devel Summary: Development headers and libraries for interfacing to the DHCP server Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} @@ -198,6 +194,14 @@ programmers that are interested in internal operation of the code. This package contains doxygen-generated documentation. %endif +%package keama +Summary: Experimental migration assistant for Kea + +%description keama +The KEA Migration Assistant is an experimental tool which helps to translate +ISC DHCP configurations to Kea. + + %prep %if 0%{?fedora} %{gpgverify} --keyring='%{SOURCE10}' --signature='%{SOURCE9}' --data='%{SOURCE0}' @@ -263,9 +267,17 @@ make %{?_smp_mflags} devel popd %endif +pushd keama +make -j1 +popd + %install make DESTDIR=%{buildroot} install %{?_smp_mflags} +pushd keama +make DESTDIR=%{buildroot} install %{?_smp_mflags} +popd + # We don't want example conf files in /etc rm -f %{buildroot}%{_sysconfdir}/dhclient.conf.example rm -f %{buildroot}%{_sysconfdir}/dhcpd.conf.example @@ -517,7 +529,15 @@ done %doc doc/html/ %endif +%files keama +%{_sbindir}/keama +%attr(0644,root,root) %{_mandir}/man8/keama.8.gz + %changelog +* Thu Mar 10 2022 Martin Osvald - 12:4.4.3-1 +- New version 4.4.3 +- Add keama migration utility + * Thu Jan 20 2022 Fedora Release Engineering - 12:4.4.2-18.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 5050d55..f2adc6d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dhcp-4.4.2-P1.tar.gz) = 924e8b44f288361dbe837987869e57b929c73cb5e4af37cb2d7b19bca5ea8594048fb41c0792fede003188185f61b25befbc2ccda42f1f68e6b6bc22ef44b040 -SHA512 (dhcp-4.4.2-P1.tar.gz.asc) = a8ef21efe9488785010b393f2cfa212cc4fe11d1e62f807eef52e929833b358676721960d996f57f03082ca300173ef12cb01152244d7ab22a6643ff85953416 +SHA512 (dhcp-4.4.3.tar.gz) = 4472d6794af80b482560956cee6895889cc1aca39980f851faf56824627e95731f2983cf7c7454bc3decb0a12c874fcbd29bd6c5a9695412def6bc14c6df17e0 +SHA512 (dhcp-4.4.3.tar.gz.asc) = d6555cb2454062676f6450008ba0a45b761871a71e62e84d155aa458508655a565f8d2a9690f56d905c951a94633204800941a0e71e3230a86deae2655e38d8b From a8f6fd046fe5ff39631ab8da4ebad00f96fd4f15 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Tue, 12 Apr 2022 13:56:01 +0200 Subject: [PATCH 59/81] Fix for CVE-2021-25220 --- CVE-2021-25220.patch | 200 +++++++++++++++++++++++++++++++++++++++++++ dhcp.spec | 62 +++++++------- 2 files changed, 233 insertions(+), 29 deletions(-) create mode 100644 CVE-2021-25220.patch diff --git a/CVE-2021-25220.patch b/CVE-2021-25220.patch new file mode 100644 index 0000000..acaef04 --- /dev/null +++ b/CVE-2021-25220.patch @@ -0,0 +1,200 @@ +diff --git a/bind/bind-9.11.36/lib/dns/resolver.c b/bind/bind-9.11.36/lib/dns/resolver.c +index b34cb12..8ae9a99 100644 +--- a/bind/bind-9.11.36/lib/dns/resolver.c ++++ b/bind/bind-9.11.36/lib/dns/resolver.c +@@ -63,6 +63,7 @@ + #include + #include + #include ++#include + + #ifdef WANT_QUERYTRACE + #define RTRACE(m) isc_log_write(dns_lctx, \ +@@ -311,6 +312,8 @@ struct fetchctx { + bool ns_ttl_ok; + uint32_t ns_ttl; + isc_counter_t * qc; ++ dns_fixedname_t fwdfname; ++ dns_name_t *fwdname; + + /*% + * The number of events we're waiting for. +@@ -3389,6 +3392,7 @@ fctx_getaddresses(fetchctx_t *fctx, bool badcache) { + if (result == ISC_R_SUCCESS) { + fwd = ISC_LIST_HEAD(forwarders->fwdrs); + fctx->fwdpolicy = forwarders->fwdpolicy; ++ dns_name_copy(domain, fctx->fwdname, NULL); + if (fctx->fwdpolicy == dns_fwdpolicy_only && + isstrictsubdomain(domain, &fctx->domain)) { + fcount_decr(fctx); +@@ -4418,6 +4422,9 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, + fctx->restarts = 0; + fctx->querysent = 0; + fctx->referrals = 0; ++ ++ fctx->fwdname = dns_fixedname_initname(&fctx->fwdfname); ++ + TIME_NOW(&fctx->start); + fctx->timeouts = 0; + fctx->lamecount = 0; +@@ -4476,8 +4483,10 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, + domain = dns_fixedname_initname(&fixed); + result = dns_fwdtable_find2(fctx->res->view->fwdtable, fwdname, + domain, &forwarders); +- if (result == ISC_R_SUCCESS) ++ if (result == ISC_R_SUCCESS) { + fctx->fwdpolicy = forwarders->fwdpolicy; ++ dns_name_copy(domain, fctx->fwdname, NULL); ++ } + + if (fctx->fwdpolicy != dns_fwdpolicy_only) { + /* +@@ -6226,6 +6235,112 @@ mark_related(dns_name_t *name, dns_rdataset_t *rdataset, + rdataset->attributes |= DNS_RDATASETATTR_EXTERNAL; + } + ++/* ++ * Returns true if 'name' is external to the namespace for which ++ * the server being queried can answer, either because it's not a ++ * subdomain or because it's below a forward declaration or a ++ * locally served zone. ++ */ ++static inline bool ++name_external(dns_name_t *name, dns_rdatatype_t type, fetchctx_t *fctx) { ++ isc_result_t result; ++ dns_forwarders_t *forwarders = NULL; ++ dns_fixedname_t fixed, zfixed; ++ dns_name_t *fname = dns_fixedname_initname(&fixed); ++ dns_name_t *zfname = dns_fixedname_initname(&zfixed); ++ dns_name_t *apex = NULL; ++ dns_name_t suffix; ++ dns_zone_t *zone = NULL; ++ unsigned int labels; ++ dns_namereln_t rel; ++ /* ++ * The following two variables do not influence code flow; they are ++ * only necessary for calling dns_name_fullcompare(). ++ */ ++ int _orderp = 0; ++ unsigned int _nlabelsp = 0; ++ ++ apex = ISFORWARDER(fctx->addrinfo) ? fctx->fwdname : &fctx->domain; ++ ++ /* ++ * The name is outside the queried namespace. ++ */ ++ rel = dns_name_fullcompare(name, apex, &_orderp, &_nlabelsp); ++ if (rel != dns_namereln_subdomain && rel != dns_namereln_equal) { ++ return (true); ++ } ++ ++ /* ++ * If the record lives in the parent zone, adjust the name so we ++ * look for the correct zone or forward clause. ++ */ ++ labels = dns_name_countlabels(name); ++ if (dns_rdatatype_atparent(type) && labels > 1U) { ++ dns_name_init(&suffix, NULL); ++ dns_name_getlabelsequence(name, 1, labels - 1, &suffix); ++ name = &suffix; ++ } else if (rel == dns_namereln_equal) { ++ /* If 'name' is 'apex', no further checking is needed. */ ++ return (false); ++ } ++ ++ /* ++ * If there is a locally served zone between 'apex' and 'name' ++ * then don't cache. ++ */ ++ LOCK(&fctx->res->view->lock); ++ if (fctx->res->view->zonetable != NULL) { ++ unsigned int options = DNS_ZTFIND_NOEXACT; ++ result = dns_zt_find(fctx->res->view->zonetable, name, options, ++ zfname, &zone); ++ if (zone != NULL) { ++ dns_zone_detach(&zone); ++ } ++ if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH) { ++ if (dns_name_fullcompare(zfname, apex, &_orderp, ++ &_nlabelsp) == ++ dns_namereln_subdomain) ++ { ++ UNLOCK(&fctx->res->view->lock); ++ return (true); ++ } ++ } ++ } ++ UNLOCK(&fctx->res->view->lock); ++ ++ /* ++ * Look for a forward declaration below 'name'. ++ */ ++ result = dns_fwdtable_find2(fctx->res->view->fwdtable, name, fname, ++ &forwarders); ++ ++ if (ISFORWARDER(fctx->addrinfo)) { ++ /* ++ * See if the forwarder declaration is better. ++ */ ++ if (result == ISC_R_SUCCESS) { ++ return (!dns_name_equal(fname, fctx->fwdname)); ++ } ++ ++ /* ++ * If the lookup failed, the configuration must have ++ * changed: play it safe and don't cache. ++ */ ++ return (true); ++ } else if (result == ISC_R_SUCCESS && ++ forwarders->fwdpolicy == dns_fwdpolicy_only && ++ !ISC_LIST_EMPTY(forwarders->fwdrs)) ++ { ++ /* ++ * If 'name' is covered by a 'forward only' clause then we ++ * can't cache this repsonse. ++ */ ++ return (true); ++ } ++ ++ return (false); ++} ++ + static isc_result_t + check_section(void *arg, dns_name_t *addname, dns_rdatatype_t type, + dns_section_t section) +@@ -6254,7 +6369,7 @@ check_section(void *arg, dns_name_t *addname, dns_rdatatype_t type, + result = dns_message_findname(rmessage, section, addname, + dns_rdatatype_any, 0, &name, NULL); + if (result == ISC_R_SUCCESS) { +- external = !dns_name_issubdomain(name, &fctx->domain); ++ external = name_external(name, type, fctx); + if (type == dns_rdatatype_a) { + for (rdataset = ISC_LIST_HEAD(name->list); + rdataset != NULL; +@@ -7136,6 +7251,13 @@ answer_response(fetchctx_t *fctx, dns_message_t *message) { + break; + + case dns_namereln_subdomain: ++ /* ++ * Don't accept DNAME from parent namespace. ++ */ ++ if (name_external(name, dns_rdatatype_dname, fctx)) { ++ continue; ++ } ++ + /* + * In-scope DNAME records must have at least + * as many labels as the domain being queried. +@@ -7371,11 +7493,9 @@ answer_response(fetchctx_t *fctx, dns_message_t *message) { + */ + result = dns_message_firstname(message, DNS_SECTION_AUTHORITY); + while (!done && result == ISC_R_SUCCESS) { +- bool external; + name = NULL; + dns_message_currentname(message, DNS_SECTION_AUTHORITY, &name); +- external = !dns_name_issubdomain(name, &fctx->domain); +- if (!external) { ++ if (!name_external(name, dns_rdatatype_ns, fctx)) { + /* + * We expect to find NS or SIG NS rdatasets, and + * nothing else. diff --git a/dhcp.spec b/dhcp.spec index 0f7a4f6..d71d5c4 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 1%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 2%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -35,34 +35,35 @@ Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service -Patch1 : 0001-change-bug-url.patch -Patch2 : 0002-additional-dhclient-options.patch -Patch3 : 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch -Patch4 : 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch -Patch5 : 0005-Change-default-requested-options.patch -Patch6 : 0006-Various-man-page-only-fixes.patch -Patch7 : 0007-Change-paths-to-conform-to-our-standards.patch -Patch8 : 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch -Patch9 : 0009-Fix-garbage-in-format-string-error.patch -Patch10 : 0010-Handle-null-timeout.patch -Patch11 : 0011-Drop-unnecessary-capabilities.patch -Patch12 : 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch -Patch13 : 0013-DHCPv6-over-PPP-support-626514.patch -Patch14 : 0014-IPoIB-support-660681.patch -Patch15 : 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch -Patch16 : 0016-Turn-on-creating-sending-of-DUID.patch -Patch17 : 0017-Send-unicast-request-release-via-correct-interface.patch -Patch18 : 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch -Patch19 : 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch -Patch20 : 0020-Discover-all-hwaddress-for-xid-uniqueness.patch -Patch21 : 0021-Load-leases-DB-in-non-replay-mode-only.patch -Patch22 : 0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch -Patch23 : 0023-option-97-pxe-client-id.patch -Patch24 : 0024-Detect-system-time-changes.patch -Patch25 : 0025-bind-Detect-system-time-changes.patch -Patch26 : 0026-Add-dhclient-5-B-option-description.patch -Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch -Patch28: 0028-Use-system-getaddrinfo-for-dhcp.patch +Patch1: 0001-change-bug-url.patch +Patch2: 0002-additional-dhclient-options.patch +Patch3: 0003-Handle-releasing-interfaces-requested-by-sbin-ifup.patch +Patch4: 0004-Support-unicast-BOOTP-for-IBM-pSeries-systems-and-ma.patch +Patch5: 0005-Change-default-requested-options.patch +Patch6: 0006-Various-man-page-only-fixes.patch +Patch7: 0007-Change-paths-to-conform-to-our-standards.patch +Patch8: 0008-Make-sure-all-open-file-descriptors-are-closed-on-ex.patch +Patch9: 0009-Fix-garbage-in-format-string-error.patch +Patch10: 0010-Handle-null-timeout.patch +Patch11: 0011-Drop-unnecessary-capabilities.patch +Patch12: 0012-RFC-3442-Classless-Static-Route-Option-for-DHCPv4-51.patch +Patch13: 0013-DHCPv6-over-PPP-support-626514.patch +Patch14: 0014-IPoIB-support-660681.patch +Patch15: 0015-Add-GUID-DUID-to-dhcpd-logs-1064416.patch +Patch16: 0016-Turn-on-creating-sending-of-DUID.patch +Patch17: 0017-Send-unicast-request-release-via-correct-interface.patch +Patch18: 0018-No-subnet-declaration-for-iface-should-be-info-not-e.patch +Patch19: 0019-dhclient-write-DUID_LLT-even-in-stateless-mode-11563.patch +Patch20: 0020-Discover-all-hwaddress-for-xid-uniqueness.patch +Patch21: 0021-Load-leases-DB-in-non-replay-mode-only.patch +Patch22: 0022-dhclient-make-sure-link-local-address-is-ready-in-st.patch +Patch23: 0023-option-97-pxe-client-id.patch +Patch24: 0024-Detect-system-time-changes.patch +Patch25: 0025-bind-Detect-system-time-changes.patch +Patch26: 0026-Add-dhclient-5-B-option-description.patch +Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch +Patch28: 0028-Use-system-getaddrinfo-for-dhcp.patch +Patch29: CVE-2021-25220.patch BuildRequires: autoconf BuildRequires: automake @@ -534,6 +535,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Mon Apr 11 2022 Martin Osvald - 12:4.4.3-2 +- Fix for CVE-2021-25220 + * Thu Mar 10 2022 Martin Osvald - 12:4.4.3-1 - New version 4.4.3 - Add keama migration utility From 2d94f9ef33cae74298783e2a4ea37c78eddd6cd7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 00:23:38 +0000 Subject: [PATCH 60/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index d71d5c4..04f38fb 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 2%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 3%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -535,6 +535,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 12:4.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Mon Apr 11 2022 Martin Osvald - 12:4.4.3-2 - Fix for CVE-2021-25220 From 16c600305dba7fe553428c5052ab1f59685c7f2f Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 10 Oct 2022 10:53:30 +0200 Subject: [PATCH 61/81] New version 4.4.3-P1 (rhbz#2132240) Fix for CVE-2022-2928 (rhbz#2132429) Fix for CVE-2022-2929 (rhbz#2132430) --- .gitignore | 2 ++ dhcp.spec | 11 ++++++++--- sources | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 90649df..168e771 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ /dhcp-4.4.2-P1.tar.gz.asc /dhcp-4.4.3.tar.gz /dhcp-4.4.3.tar.gz.asc +/dhcp-4.4.3-P1.tar.gz +/dhcp-4.4.3-P1.tar.gz.asc diff --git a/dhcp.spec b/dhcp.spec index 04f38fb..f07cb4e 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -9,13 +9,13 @@ #global prever b1 -#global patchver P1 +%global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 3%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 4%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -209,7 +209,7 @@ ISC DHCP configurations to Kea. %endif %setup -n dhcp-%{DHCPVERSION} pushd bind -tar -xvf bind.tar.gz +tar -xf bind.tar.gz ln -s bind-9* bind popd %autopatch -p1 @@ -535,6 +535,11 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Wed Oct 05 2022 Martin Osvald - 12:4.4.3-4.P1 +- New version 4.4.3-P1 (rhbz#2132240) +- Fix for CVE-2022-2928 (rhbz#2132429) +- Fix for CVE-2022-2929 (rhbz#2132430) + * Thu Jul 21 2022 Fedora Release Engineering - 12:4.4.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index f2adc6d..1e95ffe 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dhcp-4.4.3.tar.gz) = 4472d6794af80b482560956cee6895889cc1aca39980f851faf56824627e95731f2983cf7c7454bc3decb0a12c874fcbd29bd6c5a9695412def6bc14c6df17e0 -SHA512 (dhcp-4.4.3.tar.gz.asc) = d6555cb2454062676f6450008ba0a45b761871a71e62e84d155aa458508655a565f8d2a9690f56d905c951a94633204800941a0e71e3230a86deae2655e38d8b +SHA512 (dhcp-4.4.3-P1.tar.gz) = d14dc44d1c015780ae19769816cb01015959927a1ad7a3e84b89e0463253aaf46451af88e3260347196373906d5b438c7c616fee45ec3f128aa82af6702b7154 +SHA512 (dhcp-4.4.3-P1.tar.gz.asc) = b24a81eda6fea2727e520d83c52ef25717db3a7c05b55f6e61f03cbf484e8b17b46ef11f2c46b223f30014866f32ed4170f223ce1d2233c63d7a6cfd7f9fa444 From 51194ddffd45451d309f2c0d90d9b842c99439ad Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 31 Oct 2022 16:24:23 +0100 Subject: [PATCH 62/81] Use systemd-sysusers for dhcp user and group (rhbz#2138822) https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation --- dhcp.spec | 33 ++++++++++++++------------------- dhcp.sysusers | 3 +++ 2 files changed, 17 insertions(+), 19 deletions(-) create mode 100644 dhcp.sysusers diff --git a/dhcp.spec b/dhcp.spec index f07cb4e..5e9656c 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 4%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 5%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -34,6 +34,7 @@ Source5: 56dhclient Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service +Source11: dhcp.sysusers Patch1: 0001-change-bug-url.patch Patch2: 0002-additional-dhclient-options.patch @@ -85,6 +86,7 @@ BuildRequires: doxygen BuildRequires: systemtap-sdt-devel %global tapsetdir /usr/share/systemtap/tapset %endif +BuildRequires: systemd-rpm-macros # In _docdir we ship some perl scripts and module from contrib subdirectory. # Because nothing under _docdir is allowed to "require" anything, @@ -99,11 +101,9 @@ DHCP (Dynamic Host Configuration Protocol) Summary: Provides the ISC DHCP server Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-compat < 12:4.4.2-12.b1 -Requires(pre): shadow-utils Requires(post): coreutils grep sed -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?sysusers_requires_compat} +%{?systemd_requires} %description server DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -119,9 +119,7 @@ Summary: Provides the ISC DHCP relay agent Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-compat < 12:4.4.2-12.b1 Requires(post): grep sed -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description relay DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -305,6 +303,9 @@ install -m 644 %{SOURCE6} %{buildroot}%{_unitdir} install -m 644 %{SOURCE7} %{buildroot}%{_unitdir} install -m 644 %{SOURCE8} %{buildroot}%{_unitdir} +# systemd-sysusers +install -p -D -m 0644 %{SOURCE11} %{buildroot}%{_sysusersdir}/dhcp.conf + # Start empty lease databases mkdir -p %{buildroot}%{_localstatedir}/lib/dhcpd/ touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd.leases @@ -381,17 +382,7 @@ install -D -p -m 0644 contrib/ldap/dhcp.schema %{buildroot}%{_sysconfdir}/openld find %{buildroot} -type f -name "*.la" -delete -print %pre server -# /usr/share/doc/setup/uidgid -%global gid_uid 177 -getent group dhcpd >/dev/null || groupadd --force --gid %{gid_uid} --system dhcpd -if ! getent passwd dhcpd >/dev/null ; then - if ! getent passwd %{gid_uid} >/dev/null ; then - useradd --system --uid %{gid_uid} --gid dhcpd --home / --shell /sbin/nologin --comment "DHCP server" dhcpd - else - useradd --system --gid dhcpd --home / --shell /sbin/nologin --comment "DHCP server" dhcpd - fi -fi -exit 0 +%sysusers_create_compat %{SOURCE11} %post server # Initial installation @@ -475,6 +466,7 @@ done %config(noreplace) %{_sysconfdir}/openldap/schema/dhcp.schema %attr(0644,root,root) %{_unitdir}/dhcpd.service %attr(0644,root,root) %{_unitdir}/dhcpd6.service +%{_sysusersdir}/dhcp.conf %{_sbindir}/dhcpd %{_bindir}/omshell %attr(0644,root,root) %{_mandir}/man1/omshell.1.gz @@ -535,6 +527,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Mon Oct 31 2022 Martin Osvald - 12:4.4.3-5.P1 +- Use systemd-sysusers for dhcp user and group (rhbz#2138822) + * Wed Oct 05 2022 Martin Osvald - 12:4.4.3-4.P1 - New version 4.4.3-P1 (rhbz#2132240) - Fix for CVE-2022-2928 (rhbz#2132429) diff --git a/dhcp.sysusers b/dhcp.sysusers new file mode 100644 index 0000000..3d59bf3 --- /dev/null +++ b/dhcp.sysusers @@ -0,0 +1,3 @@ +#Type Name ID GECOS Home directory Shell +u dhcpd 177 "DHCP server" / /sbin/nologin +g dhcpd 177 From 098933dca646325bc743357e53833f222f1a4e50 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Thu, 3 Nov 2022 08:09:53 +0100 Subject: [PATCH 63/81] Fix order of user and group in sysusers file --- dhcp.spec | 5 ++++- dhcp.sysusers | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 5e9656c..58b1764 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 5%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 6%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -527,6 +527,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Thu Nov 03 2022 Martin Osvald - 12:4.4.3-6.P1 +- Fix order of user and group in sysusers file + * Mon Oct 31 2022 Martin Osvald - 12:4.4.3-5.P1 - Use systemd-sysusers for dhcp user and group (rhbz#2138822) diff --git a/dhcp.sysusers b/dhcp.sysusers index 3d59bf3..4841cdd 100644 --- a/dhcp.sysusers +++ b/dhcp.sysusers @@ -1,3 +1,3 @@ #Type Name ID GECOS Home directory Shell -u dhcpd 177 "DHCP server" / /sbin/nologin g dhcpd 177 +u dhcpd 177 "DHCP server" / /sbin/nologin From dd209c46b747d7f51d059e7d1c82b27c527a1777 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 01:19:50 +0000 Subject: [PATCH 64/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 58b1764..d8e2556 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 6%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 7%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -527,6 +527,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 12:4.4.3-7.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Thu Nov 03 2022 Martin Osvald - 12:4.4.3-6.P1 - Fix order of user and group in sysusers file From 5a0c1922defd9dbb94fa7d9fd3294031ffe72df9 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Mon, 24 Apr 2023 14:59:32 +0200 Subject: [PATCH 65/81] Port bind9 configure script to C99 Related to: --- 0030-bind-configure-c99.patch | 151 ++++++++++++++++++++++++++++++++++ dhcp.spec | 6 +- 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 0030-bind-configure-c99.patch diff --git a/0030-bind-configure-c99.patch b/0030-bind-configure-c99.patch new file mode 100644 index 0000000..32e16ea --- /dev/null +++ b/0030-bind-configure-c99.patch @@ -0,0 +1,151 @@ +Downstream-only patch. +Upstream bind9 development has changed configure significantly: +https://gitlab.isc.org/isc-projects/bind9 + +From 035224d94d4cf93257cf5440a2e4e129540e81e8 Mon Sep 17 00:00:00 2001 +From: Arjun Shankar +Date: Thu, 20 Apr 2023 15:34:01 +0200 +Subject: [PATCH] Port to C99 + +--- + bind/bind-9.11.36/configure | 14 +++++++------- + bind/bind-9.11.36/configure.ac | 14 +++++++------- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/bind/bind-9.11.36/configure b/bind/bind-9.11.36/configure +index 368112f..c50d873 100755 +--- a/bind/bind-9.11.36/configure ++++ b/bind/bind-9.11.36/configure +@@ -20016,7 +20016,7 @@ else + #include + #include + #include +-main() { ++int main() { + char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);} + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +@@ -20056,7 +20056,7 @@ else + #include + #include + #include +-main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 : ++int main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 : + inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 : + (inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); } + _ACEOF +@@ -21346,7 +21346,7 @@ else + #include + #include + #include +-main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));} ++int main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));} + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: int" >&5 +@@ -21363,7 +21363,7 @@ else + #include + #include + #include +-main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));} ++int main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));} + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: long int" >&5 +@@ -21380,7 +21380,7 @@ else + #include + #include + #include +-main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));} ++int main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));} + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: long long int" >&5 +@@ -21759,7 +21759,7 @@ int + main () + { + +- main() { asm("ics"); exit(0); } ++ int main() { asm("ics"); exit(0); } + + ; + return 0; +@@ -21782,7 +21782,7 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +- main() { asm("ics"); exit(0); } ++ int main() { asm("ics"); exit(0); } + + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +diff --git a/bind/bind-9.11.36/configure.ac b/bind/bind-9.11.36/configure.ac +index 030c4d7..e74af09 100644 +--- a/bind/bind-9.11.36/configure.ac ++++ b/bind/bind-9.11.36/configure.ac +@@ -3274,7 +3274,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() { ++int main() { + char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);}], + [AC_MSG_RESULT(yes) + ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"], +@@ -3297,7 +3297,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 : ++int main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 : + inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 : + (inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); }], + [AC_MSG_RESULT(yes) +@@ -3901,7 +3901,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}], ++int main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}], + [AC_MSG_RESULT(int) + ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"], + [ +@@ -3909,7 +3909,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}], ++int main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}], + [AC_MSG_RESULT(long int) + ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"], + [ +@@ -3917,7 +3917,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}], ++int main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}], + [AC_MSG_RESULT(long long int) + ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"], + [AC_MSG_ERROR([unable to determine sizeof rlim_cur]) +@@ -4117,7 +4117,7 @@ case "$enable_atomic" in + if test "X$GCC" = "Xyes"; then + AC_MSG_CHECKING([if asm("ics"); works]) + AC_TRY_COMPILE(,[ +- main() { asm("ics"); exit(0); } ++ int main() { asm("ics"); exit(0); } + ], + [AC_MSG_RESULT(yes) + use_atomic=yes], +@@ -4125,7 +4125,7 @@ case "$enable_atomic" in + saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wa,-many" + AC_TRY_RUN([ +- main() { asm("ics"); exit(0); } ++ int main() { asm("ics"); exit(0); } + ], + [AC_MSG_RESULT([yes, required -Wa,-many]) + use_atomic=yes], +-- +2.40.0 + diff --git a/dhcp.spec b/dhcp.spec index d8e2556..db974e8 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 7%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 8%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -65,6 +65,7 @@ Patch26: 0026-Add-dhclient-5-B-option-description.patch Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch Patch28: 0028-Use-system-getaddrinfo-for-dhcp.patch Patch29: CVE-2021-25220.patch +Patch30: 0030-bind-configure-c99.patch BuildRequires: autoconf BuildRequires: automake @@ -527,6 +528,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Mon Apr 24 2023 Arjun Shankar - 12:4.4.3-8.P1 +- Port bind9 configure script to C99 + * Thu Jan 19 2023 Fedora Release Engineering - 12:4.4.3-7.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 62019bf483ac4219657fb3f06d048fa337e0a2ed Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 17:23:25 +0000 Subject: [PATCH 66/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index db974e8..f518cb7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 8%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 9%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -528,6 +528,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 12:4.4.3-9.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Mon Apr 24 2023 Arjun Shankar - 12:4.4.3-8.P1 - Port bind9 configure script to C99 From abc5de5e2ffe14abefa848457c4ef2356fbf9125 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Mon, 2 Oct 2023 14:28:51 +0200 Subject: [PATCH 67/81] SPDX migration --- dhcp.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index f518cb7..6bfd84d 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,14 +15,14 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 9%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 10%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and # that's why it is at 12 now. It should have never been used, but it was. # So we are stuck with it. Epoch: 12 -License: ISC and MPLv2.0 +License: ISC AND MPL-2.0 Url: https://www.isc.org/dhcp/ Source0: https://downloads.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz Source9: https://downloads.isc.org/isc/dhcp/%{DHCPVERSION}/dhcp-%{DHCPVERSION}.tar.gz.asc @@ -528,6 +528,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Mon Oct 02 2023 Martin Osvald - 12:4.4.3-10.P1 +- SPDX migration + * Wed Jul 19 2023 Fedora Release Engineering - 12:4.4.3-9.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From e226f99ab06956f44a527ef17ade621543e7e14b Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Tue, 21 Nov 2023 10:02:24 +0100 Subject: [PATCH 68/81] Mark dhcp (sub)packages as deprecated Add rpminspect.yaml badfuncs waiver --- dhcp.spec | 20 +++++++++++++++++++- rpminspect.yaml | 22 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 rpminspect.yaml diff --git a/dhcp.spec b/dhcp.spec index 6bfd84d..72b72e7 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,14 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 10%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 11%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} + +# We want to get rid of DHCP in favour of Kea package, because ISC has announced +# the end of maintenance for ISC DHCP as of the end of 2022. No package depends +# on dhcp-server, but dhcp-client is still being used, so we keep it around as +# deprecated package. There is ongoing effort to replace it with other options: +# https://fedoraproject.org/wiki/Changes/dhclient_deprecation +Provides: deprecated() # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # dcantrell maintaining the package) made incorrect use of the epoch and @@ -105,6 +112,7 @@ Obsoletes: %{name}-compat < 12:4.4.2-12.b1 Requires(post): coreutils grep sed %{?sysusers_requires_compat} %{?systemd_requires} +Provides: deprecated() %description server DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -121,6 +129,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-compat < 12:4.4.2-12.b1 Requires(post): grep sed %{?systemd_requires} +Provides: deprecated() %description relay DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -140,6 +149,7 @@ Requires: coreutils gawk grep ipcalc iproute iputils sed systemd Requires: %{name}-common = %{epoch}:%{version}-%{release} # Old NetworkManager expects the dispatcher scripts in a different place Conflicts: NetworkManager < 1.20 +Provides: deprecated() %description client DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -154,6 +164,7 @@ This package provides the ISC DHCP client. Summary: Common files used by ISC dhcp client, server and relay agent BuildArch: noarch Obsoletes: dhcp-libs < %{epoch}:%{version} +Provides: deprecated() %description common DHCP (Dynamic Host Configuration Protocol) is a protocol which allows @@ -170,6 +181,7 @@ Provides: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Provides: %{name}-libs = %{epoch}:%{version}-%{release} Provides: bundled(bind-export-libs) Provides: bundled(bind) +Provides: deprecated() %description libs-static This package contains shared libraries used by ISC dhcp client and server @@ -177,6 +189,7 @@ This package contains shared libraries used by ISC dhcp client and server %package devel Summary: Development headers and libraries for interfacing to the DHCP server Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Provides: deprecated() %description devel Header files and API documentation for using the ISC DHCP libraries. The @@ -187,6 +200,7 @@ libdhcpctl and libomapi static libraries are also included in this package. Summary: Developer's Guide for ISC DHCP Requires: %{name}-libs = %{epoch}:%{version}-%{release} BuildArch: noarch +Provides: deprecated() %description devel-doc This documentation is intended for developers, contributors and other @@ -196,6 +210,7 @@ This package contains doxygen-generated documentation. %package keama Summary: Experimental migration assistant for Kea +Provides: deprecated() %description keama The KEA Migration Assistant is an experimental tool which helps to translate @@ -528,6 +543,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Wed Nov 15 2023 Martin Osvald - 12:4.4.3-11.P1 +- Mark dhcp (sub)packages as deprecated + * Mon Oct 02 2023 Martin Osvald - 12:4.4.3-10.P1 - SPDX migration diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..08f1098 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,22 @@ +--- +badfuncs: + # Adding waiver for all these functions to stop rpminspec to complain about them. + # The DHCP is EOL software so there is no chance to get them replaced + # with alternatives upstream. + allowed: + /usr/bin/omshell: + - gethostbyname + - inet_ntoa + /usr/sbin/dhcpd: + - gethostbyaddr + - gethostbyname + - inet_ntoa + /usr/sbin/dhclient: + - gethostbyname + - inet_ntoa + /usr/sbin/dhcrelay: + - gethostbyname + - inet_ntoa + /usr/sbin/keama: + - gethostbyname + From 214610d6035be8985f3efcb080f8bedd7a1b228f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 17:05:44 +0000 Subject: [PATCH 69/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 72b72e7..d96aa2c 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 11%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 12%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -543,6 +543,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 12:4.4.3-12.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Nov 15 2023 Martin Osvald - 12:4.4.3-11.P1 - Mark dhcp (sub)packages as deprecated From baddcc1dad4cdabaa38993d1eb21a3d3308f9daa Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 09:22:32 +0000 Subject: [PATCH 70/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index d96aa2c..71a8dc5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 12%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 13%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -543,6 +543,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 12:4.4.3-13.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 12:4.4.3-12.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 5b60d71c11a2b0f9a75c76f6b42191b03393122d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 20:54:14 +0000 Subject: [PATCH 71/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 71a8dc5..99a2dd6 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 13%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 14%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -543,6 +543,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 12:4.4.3-14.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 12:4.4.3-13.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 2b135856ff2254ca33210afbfc283e84a640542f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 15:40:23 +0000 Subject: [PATCH 72/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- dhcp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhcp.spec b/dhcp.spec index 99a2dd6..eec5606 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 14%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 15%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -543,6 +543,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 12:4.4.3-15.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jul 17 2024 Fedora Release Engineering - 12:4.4.3-14.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 5f057ac436bef2c8fbcc6acf8608803aa00b37a4 Mon Sep 17 00:00:00 2001 From: Stepan Broz Date: Fri, 24 Jan 2025 16:04:53 +0100 Subject: [PATCH 73/81] Correct function declarations in server/dhcpv6.c --- ...ions-of-ia_na_-no-match-and-ia_pd_-n.patch | 39 +++++++++++++++++++ dhcp.spec | 6 ++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 0031-Correct-declarations-of-ia_na_-no-match-and-ia_pd_-n.patch diff --git a/0031-Correct-declarations-of-ia_na_-no-match-and-ia_pd_-n.patch b/0031-Correct-declarations-of-ia_na_-no-match-and-ia_pd_-n.patch new file mode 100644 index 0000000..b809b16 --- /dev/null +++ b/0031-Correct-declarations-of-ia_na_-no-match-and-ia_pd_-n.patch @@ -0,0 +1,39 @@ +From f7eb324f5b0deef285b0eaa0d504af77f06c779f Mon Sep 17 00:00:00 2001 +From: Stepan Broz +Date: Fri, 24 Jan 2025 15:41:41 +0100 +Subject: [PATCH] Correct declarations of ia_na_[no]match and ia_pd_[no]match + in server/dhcpv6.c. + +--- + server/dhcpv6.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/server/dhcpv6.c b/server/dhcpv6.c +index 7d61dc5..c1f227c 100644 +--- a/server/dhcpv6.c ++++ b/server/dhcpv6.c +@@ -5852,8 +5852,8 @@ iterate_over_ia_na(struct data_string *reply_ret, + const struct data_string *client_id, + const struct data_string *server_id, + const char *packet_type, +- void (*ia_na_match)(), +- void (*ia_na_nomatch)()) ++ void (*ia_na_match)(const struct data_string *, const struct data_string *, struct iasubopt *), ++ void (*ia_na_nomatch)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int)) + { + struct option_state *opt_state; + struct host_decl *packet_host; +@@ -6354,8 +6354,8 @@ iterate_over_ia_pd(struct data_string *reply_ret, + const struct data_string *client_id, + const struct data_string *server_id, + const char *packet_type, +- void (*ia_pd_match)(), +- void (*ia_pd_nomatch)()) ++ void (*ia_pd_match)(const struct data_string *, const struct data_string *, struct iasubopt *), ++ void (*ia_pd_nomatch)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int)) + { + struct data_string reply_new; + int reply_len; +-- +2.48.1 + diff --git a/dhcp.spec b/dhcp.spec index eec5606..c12eb90 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 15%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: 16%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -73,6 +73,7 @@ Patch27: 0027-Add-missed-sd-notify-patch-to-manage-dhcpd-with-syst.patch Patch28: 0028-Use-system-getaddrinfo-for-dhcp.patch Patch29: CVE-2021-25220.patch Patch30: 0030-bind-configure-c99.patch +Patch31: 0031-Correct-declarations-of-ia_na_-no-match-and-ia_pd_-n.patch BuildRequires: autoconf BuildRequires: automake @@ -543,6 +544,9 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog +* Fri Jan 24 2025 Stepan Broz - 12:4.4.3-16.P1 +- Correct function declarations in server/dhcpv6.c + * Thu Jan 16 2025 Fedora Release Engineering - 12:4.4.3-15.P1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From c19a20e0d2f11c49bf6d8055ddd0c326b7854f45 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sun, 2 Mar 2025 08:59:05 +0100 Subject: [PATCH 74/81] Convert to %autorelease and %autochangelog [skip changelog] --- changelog | 1432 ++++++++++++++++++++++++++++++++++++++++++++++++++++ dhcp.spec | 1436 +---------------------------------------------------- 2 files changed, 1434 insertions(+), 1434 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..f0b60ff --- /dev/null +++ b/changelog @@ -0,0 +1,1432 @@ +* Fri Jan 24 2025 Stepan Broz - 12:4.4.3-16.P1 +- Correct function declarations in server/dhcpv6.c + +* Thu Jan 16 2025 Fedora Release Engineering - 12:4.4.3-15.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 12:4.4.3-14.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 12:4.4.3-13.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 12:4.4.3-12.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Nov 15 2023 Martin Osvald - 12:4.4.3-11.P1 +- Mark dhcp (sub)packages as deprecated + +* Mon Oct 02 2023 Martin Osvald - 12:4.4.3-10.P1 +- SPDX migration + +* Wed Jul 19 2023 Fedora Release Engineering - 12:4.4.3-9.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Apr 24 2023 Arjun Shankar - 12:4.4.3-8.P1 +- Port bind9 configure script to C99 + +* Thu Jan 19 2023 Fedora Release Engineering - 12:4.4.3-7.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Nov 03 2022 Martin Osvald - 12:4.4.3-6.P1 +- Fix order of user and group in sysusers file + +* Mon Oct 31 2022 Martin Osvald - 12:4.4.3-5.P1 +- Use systemd-sysusers for dhcp user and group (rhbz#2138822) + +* Wed Oct 05 2022 Martin Osvald - 12:4.4.3-4.P1 +- New version 4.4.3-P1 (rhbz#2132240) +- Fix for CVE-2022-2928 (rhbz#2132429) +- Fix for CVE-2022-2929 (rhbz#2132430) + +* Thu Jul 21 2022 Fedora Release Engineering - 12:4.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Apr 11 2022 Martin Osvald - 12:4.4.3-2 +- Fix for CVE-2021-25220 + +* Thu Mar 10 2022 Martin Osvald - 12:4.4.3-1 +- New version 4.4.3 +- Add keama migration utility + +* Thu Jan 20 2022 Fedora Release Engineering - 12:4.4.2-18.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-17.P1 +- Update to 4.4.2-P1 (#1970903) +- Add source code signature verification +- Updated license tag + +* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-16.b1 +- Allow uninstallation of dhcp-compat package (#2002163) + +* Wed Jul 21 2021 Fedora Release Engineering - 12:4.4.2-15.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 22 2021 Pavel Zhukov - 12:4.4.2-14.b1 +- Reformat patches + +* Mon Jun 14 2021 Pavel Zhukov - 12:4.4.2-13.b1 +- Do not use getaddrinfo from rst lib (#1823749) + +* Fri Jun 11 2021 Pavel Zhukov - 12:4.4.2-12.b1 +- Drop compat package finally + +* Thu May 27 2021 Pavel Zhukov - 12:4.4.2-11.b1 +- Fix for CVE-2021-25217 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 12:4.4.2-10.b1 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Tue Jan 26 2021 Fedora Release Engineering - 12:4.4.2-9.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Pavel Zhukov - 12:4.4.2-8.b1 +- Fix IB patch (#1860689) + +* Mon Jul 27 2020 Fedora Release Engineering - 12:4.4.2-7.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Apr 22 2020 Pavel Zhukov - 12:4.4.2-6.b1 +- Change upstream URL + +* Fri Feb 21 2020 Pavel Zhukov - 12:4.4.2-5.b1 +- Workarounnd for gcc10 + +* Tue Jan 28 2020 Fedora Release Engineering - 12:4.4.2-4.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-3.b1 +- Drop NetworkManager 12-dhcpd script. It's deprecated by wait-online (#1780861) + +* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-1.b1 +- Dropped all (pre 4.0.0) changelog +- New version (4.4.2b1) + +* Wed Nov 27 2019 Pavel Zhukov - 12:4.4.1-20 +- Fix leak of file descriptors + +* Mon Nov 11 2019 Pavel Zhukov - 12:4.4.1-19 +- Reword -B option description + +* Thu Nov 7 2019 Pavel Zhukov - 12:4.4.1-18 +- Readd sd-notify patch + +* Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 +- Move the NetworkManager dispatcher script out of /etc + +* Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 +- Split timers patch to bind and dhcp parts + +* Wed Jul 24 2019 Fedora Release Engineering - 12:4.4.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jul 11 2019 Pavel Zhukov - 12:4.4.1-14 +- Detect time change and request lease renewal + +* Mon May 20 2019 Pavel Zhukov - 12:4.4.1-13 +- Unpack bind prior to patching +- Provide noarch libs + +* Sat May 04 2019 Björn Esser - 12:4.4.1-12 +- rebuilt (bind) + +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-11 +- Specify epoch for obsolete + +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-10 +- Cherry-pick 00b7f9a Specify architecture for provides - + +* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-9 +- Move obsolete to common section + +* Wed Mar 27 2019 Pavel Zhukov - 12:4.4.1-8 +- Add sd_notify patch to support systemd notify (1687040) + +* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-7 +- Provides specific version of libs + +* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-6 +- Obsolete dhcp-libs + +* Wed Mar 13 2019 Pavel Zhukov - 12:4.4.1-5 +- Do not require static libs for non devel installations + +* Thu Feb 28 2019 Pavel Zhukov - 12:4.4.1-3 +- New version 4.4.1 + +* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-29 +- Resolves: 1632246 - Do not fail if iface has no hwaddr + +* Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 +- Do not try to map leases file in memory if not in replay mode + +* Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 +- Update to bind 9.11.4 + +* Thu Jul 12 2018 Fedora Release Engineering - 12:4.3.6-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Pavel Zhukov - 12:4.3.6-25 +- Resolves: 1592239 - Handle dhcp4-change event properly + +* Mon May 21 2018 Pavel Zhukov - 12:4.3.6-24 +- Fix few more shellcheck warnings + +* Fri May 18 2018 Pavel Zhukov - 12:4.3.6-23 +- Get rid of eval in 11-dhclient +- Credits to legolegs user of linux.org.ru + +* Tue May 15 2018 Pavel Zhukov - 12:4.3.6-21 +- Fix for CVE-2018-1111 + +* Fri Apr 6 2018 Pavel Zhukov - 12:4.3.6-20 +- Discover hwaddr for all interfaces for xid uniqueness + +* Wed Mar 21 2018 Pavel Zhukov - 12:4.3.6-19 +- Don't use run-parts for hooks discovery (#1558612) + +* Fri Mar 09 2018 Pavel Zhukov - 12:4.3.6-18 +- Own ldap schema directory (#1553432) + +* Thu Mar 1 2018 Pavel Zhukov - 12:4.3.6-17 +- Fix CVE-2018-5732 CVE-2018-5733 (#1550246) + +* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-16 +- Compile with recent bind includes, that does not include isc/util.h + +* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-15 +- Do not rely on ignoring case sensitivity of VERSION variable + +* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-14 +- Use bind-export-libs package instead of bind99 +- Use isc-config.sh to configure bind libs +- Change requirement to bind-export-devel + +* Thu Feb 22 2018 Pavel Zhukov - 12:4.3.6-13 +- Do not parse sysconfig/network-scripts if initscripts not installed (#1098172) + +* Wed Feb 07 2018 Fedora Release Engineering - 12:4.3.6-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 12:4.3.6-11 +- Switch to %%ldconfig_scriptlets + +* Wed Jan 10 2018 Pavel Zhukov - 12:4.3.6-10 +- Use released version + +* Wed Dec 20 2017 Pavel Zhukov - 12:4.3.5-9 +- Change duid_uuid patch to not use std99 feature + +* Fri Dec 8 2017 Pavel Zhukov - 12:4.3.6-8 +- Fix omapi SD leak (#1523547) + +* Thu Nov 9 2017 Pavel Zhukov - 12:4.3.6-7 +- Add patch for proper signal handling with shared context (#1457871) + +* Wed Sep 20 2017 Pavel Zhukov - 12:4.3.6-6 +- Do now override hostname variable in script + +* Sun Sep 10 2017 Peter Robinson 12:4.3.6-5 +- Rebuild for bind 9.9.11 + +* Tue Aug 1 2017 Pavel Zhukov - 12:4.3.6-4 +- Fix typos in dhclient-script + +* Thu Jul 27 2017 Pavel Zhukov - 12:4.3.6-3 +- Recreate /etc/resolv.conf if NetworkManager screwed it up (#1475279) + +* Wed Jul 26 2017 Fedora Release Engineering - 12:4.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + + +* Fri Jul 14 2017 Pavel Zhukov - 12:4.3.6-1 +- New version 4.3.6 + +* Fri Jul 07 2017 Igor Gnatenko - 12:4.3.5-10 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Mon Jul 03 2017 Petr Menšík - 12:4.3.5-9 +- Rebuild for bind 9.9.10 + +* Wed May 31 2017 Pavel Zhukov - 12:4.3.5-8 +- Drop chown from the post section + +* Tue May 23 2017 Pavel Zhukov - 12:4.3.5-7 +- Don't open ddns port until it's needed. Credits to Petr Menšík for the original idea + +* Wed Apr 19 2017 Dominika Hodovska - 12:4.3.5-5 +- don't build doxygen documentation during modular build + +* Tue Apr 04 2017 Pavel Zhukov - 12:4.3.5-4 +- Add EnvironmentFile parameter for backward compatibility + +* Fri Feb 10 2017 Fedora Release Engineering - 12:4.3.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Nov 30 2016 Jiri Popelka - 12:4.3.5-2 +- get BUG_REPORT_URL from /etc/os-release (#1399351) + +* Wed Oct 05 2016 Jiri Popelka - 12:4.3.5-1 +- 4.3.5 + +* Mon Sep 12 2016 Jiri Popelka - 12:4.3.5-0.1b1 +- 4.3.5b1 + +* Wed Aug 03 2016 Jiri Popelka - 12:4.3.4-3 +- [dhclient] rename -R option to --request-options (#1357947) +- [dhclient] rename -timeout option to --timeout + +* Thu May 26 2016 Tomas Hozza - 12:4.3.4-2 +- Rebuild against bind99-9.9.9-P1 + +* Fri Apr 29 2016 Jiri Popelka - 12:4.3.4-1 +- 4.3.4 +- disable systemtap (I don't think anybody ever used it) + +* Wed Mar 23 2016 Zdenek Dohnal zdohnal@redhat.com - 12:4.3.3-13.P1 +- Mentioning the bash script is needed in README.dhclient.d + +* Wed Feb 03 2016 Fedora Release Engineering - 12:4.3.3-12.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 13 2016 Jiri Popelka - 12:4.3.3-11.P1 +- 4.3.3-P1 - fix for CVE-2015-8605 (#1298077) + +* Wed Dec 16 2015 Tomas Hozza - 12:4.3.3-10 +- Rebuild against bind-9.9.8-P2 + +* Mon Dec 14 2015 Jiri Popelka - 12:4.3.3-9 +- implement DUID-UUID (RFC 6355) and make it default DUID type (#560361#60) + +* Tue Nov 24 2015 Jiri Popelka - 12:4.3.3-8 +- dispatcher.d/12-dhcpd: use reset-failed command + +* Mon Nov 23 2015 Jiri Popelka - 12:4.3.3-7 +- dhclient-script: hostname -> hostnamectl --transient + +* Tue Nov 03 2015 Jiri Popelka - 12:4.3.3-6 +- dhclient-script: source ifcfg-* because of PEERDNS (#1277253) + +* Tue Oct 13 2015 Jiri Popelka - 12:4.3.3-5 +- dhclient-script: fix for gateway not in the end of rfc3442 routes list (#1251644) + +* Tue Oct 13 2015 Jiri Popelka - 12:4.3.3-4 +- dhclient-script: make_resolv_conf(): keep old nameservers + if server sends domain-name/search, but no nameservers (#1269595) + +* Tue Sep 22 2015 Jiri Popelka - 12:4.3.3-3 +- dhclient: make sure link-local address is ready in stateless mode (#1263466) + +* Mon Sep 07 2015 Jiri Popelka - 12:4.3.3-2 +- VLAN ID is only bottom 12-bits of TCI (#1259552) + +* Fri Sep 04 2015 Jiri Popelka - 12:4.3.3-1 +- 4.3.3 + +* Tue Aug 11 2015 Jiri Popelka - 12:4.3.3-0.2b1 +- dhclient-script: respect DEFROUTE/GATEWAYDEV if Classless Static Routes are offered (#1251644) + +* Mon Aug 10 2015 Jiri Popelka - 12:4.3.3-0.1b1 +- 4.3.3b1 +- enable krb5/gssapi authentication for OpenLDAP +- enable support for binary insertion of leases + +* Wed Jul 15 2015 Jiri Popelka - 12:4.3.2-12 +- fix ipcalc requires + +* Tue Jul 14 2015 Jiri Popelka - 12:4.3.2-11 +- remove dependency on initscripts (#1098172) +- make path to resolv.conf configurable (#1086425) + +* Thu Jul 09 2015 Jiri Popelka - 12:4.3.2-10 +- spec cleanup + +* Thu Jul 02 2015 Jiri Popelka - 12:4.3.2-9 +- test upstream fix for #866714 (paranoia.patch) + +* Wed Jun 24 2015 Jiri Popelka - 12:4.3.2-8 +- add more randomness into xid generation (#1195693) + +* Wed Jun 17 2015 Fedora Release Engineering - 12:4.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 26 2015 Jiri Popelka - 12:4.3.2-6 +- dhclient-script: run also scripts in dhclient-[enter/exit]-hooks.d dir + +* Tue Apr 21 2015 Jiri Popelka - 12:4.3.2-5 +- dhclient-script: add a minute to address lifetimes (#1188423) + +* Mon Apr 13 2015 Jiri Popelka - 12:4.3.2-4 +- dhclient-script: amend previous change (#1210984) + +* Wed Mar 25 2015 Jiri Popelka - 12:4.3.2-3 +- dhclient-script: fix shellcheck.net suggestions + +* Fri Mar 13 2015 Tomas Hozza - 12:4.3.2-2 +- rebuild against bind99 9.9.7 package + +* Thu Mar 05 2015 Jiri Popelka - 12:4.3.2-1 +- 4.3.2 + +* Wed Feb 25 2015 Jiri Popelka - 12:4.3.2-0.6b1 +- correctly set IB's hw->hlen (#1185075) + +* Wed Feb 25 2015 Tomas Hozza - 12:4.3.2-0.5b1 +- Rebuild against bind-9.10.2rc2 + +* Tue Feb 17 2015 Jiri Popelka - 12:4.3.2-0.4b1 +- dhclient-script: use 'ip addr replace' for both BOUND & RENEW + +* Tue Feb 17 2015 Jiri Popelka - 12:4.3.2-0.3b1 +- doc/dhclient/dhclient-enter-hooks for dhclient-script debugging + +* Fri Feb 13 2015 Jiri Popelka - 12:4.3.2-0.2b1 +- dhclient-script: s/addr add/addr replace/ + +* Sun Feb 08 2015 Jiri Popelka - 12:4.3.2-0.1b1 +- 4.3.2b1 + +* Tue Feb 03 2015 Jiri Popelka - 12:4.3.1-21 +- send unicast request/release via correct interface (#800561, #1177351) + +* Mon Feb 02 2015 Tomas Hozza - 12:4.3.1-20 +- rebuild against bind-9.10.2rc1 + +* Wed Jan 14 2015 Tomas Hozza - 12:4.3.1-19 +- rebuild against bind 9.10.1-P1 + +* Thu Dec 18 2014 Jiri Popelka - 12:4.3.1-18 +- dhclient: write DUID_LLT even in stateless mode (#1156356) + +* Wed Dec 17 2014 Jiri Popelka - 12:4.3.1-17 +- option 97 - pxe-client-id (#1058674) + +* Wed Nov 19 2014 Jiri Popelka - 12:4.3.1-16 +- amend post scriptlets for #1120656 + +* Mon Nov 10 2014 Jiri Popelka - 12:4.3.1-15 +- dhclient-script: restorecon calls shouldn't be needed + as we have SELinux transition rules (#1161500) + +* Tue Nov 04 2014 Jiri Popelka - 12:4.3.1-14 +- GSSAPI support for ldap authentication (#1150542) + +* Fri Oct 31 2014 Jiri Popelka - 12:4.3.1-13 +- redefine DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 + +* Fri Oct 10 2014 Jiri Popelka - 12:4.3.1-12 +- Relay-forward Message's Hop Limit should be 32 (#1147240) + +* Wed Oct 08 2014 Jiri Popelka - 12:4.3.1-11 +- dhcpd generates spurious responses when seeing requests + from vlans on plain interface (#1150587) + +* Fri Oct 03 2014 Tomas Hozza - 12:4.3.1-10 +- rebuild against bind-9.9.6 + +* Thu Sep 04 2014 Jiri Popelka - 12:4.3.1-9 +- [dhclient -6] infinite preferred/valid lifetime represented as -1 (#1133839) + +* Mon Sep 01 2014 Jiri Popelka - 12:4.3.1-8 +- better obsoletes for server & client + +* Sat Aug 30 2014 Kalev Lember - 12:4.3.1-7 +- Fix dhclient obsoletes version + +* Tue Aug 26 2014 Jiri Popelka - 12:4.3.1-6 +- dhclient-script: another improvement of add_ipv6_addr_with_DAD() + +* Mon Aug 25 2014 Jiri Popelka - 12:4.3.1-5 +- spec: use -D with 'install' +- dhclient-script: IPv6 address which fails DAD is auto-removed when it was + added with valid_lft/preferred_lft other then 'forever' (#1133465) + +* Sat Aug 16 2014 Fedora Release Engineering - 12:4.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Aug 14 2014 Jiri Popelka - 12:4.3.1-3 +- dhclient-script: one more fix for #1129500 + +* Thu Aug 14 2014 Jiri Popelka - 12:4.3.1-2 +- dhclient-script: PREINIT6: make sure link-local address is available (#1129500) + +* Tue Aug 12 2014 Jiri Popelka - 12:4.3.1-1 +- 4.3.1 + +* Tue Aug 05 2014 Jiri Popelka - 12:4.3.1-0.4.b1 +- dhclient-script: it's OK if the arping reply comes from our system (#1116004) + +* Tue Jul 22 2014 Jiri Popelka - 12:4.3.1-0.3.b1 +- Use network-online.target instead of network.target (#1120656) + +* Fri Jul 11 2014 Tom Callaway 12:4.3.1-0.2.b1 +- fix license handling + +* Thu Jul 10 2014 Jiri Popelka - 12:4.3.1-0.1.b1 +- 4.3.1b1 + +* Thu Jun 12 2014 Filipe Brandenburger - 12:4.3.0-15 +- dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830) + +* Sat Jun 07 2014 Fedora Release Engineering - 12:4.3.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 30 2014 Jiri Popelka - 12:4.3.0-13 +- systemtap: fixed dtrace input file (#1102797) + +* Thu May 29 2014 Jiri Popelka - 12:4.3.0-12 +- dhcp-sd_notify.patch BuildRequires: pkgconfig(libsystemd) + +* Wed May 28 2014 Jiri Popelka - 12:4.3.0-11 +- dhclient-script: fix stateless DHCPv6 mode (#1101149) + +* Wed May 07 2014 Jiri Popelka - 12:4.3.0-10 +- use StandardError=null instead of log_perror.patch + +* Tue Mar 18 2014 Jiri Popelka - 12:4.3.0-9 +- support for sending startup notifications to systemd (#1077666) + +* Fri Mar 07 2014 Jiri Popelka - 12:4.3.0-8 +- rename doc subpackage do devel-doc + +* Mon Mar 03 2014 Jaromír Končický - 12:4.3.0-7 +- added 'doc' package containing doxygen-generated documentation + +* Wed Feb 19 2014 Jiri Popelka - 12:4.3.0-6 +- dhclient: rename our -I option to -C as upstream now uses -I + +* Wed Feb 19 2014 Jiri Popelka - 12:4.3.0-5 +- dhclient-script: don't flush all addresses, just the used one + +* Tue Feb 18 2014 Jiri Popelka - 12:4.3.0-4 +- IPoIB: add GUID/DUID to dhcpd logs (#1064416) + +* Mon Feb 17 2014 Jiri Popelka - 12:4.3.0-3 +- don't try to run tests because there's no atf package since F21 + +* Mon Feb 17 2014 Jiri Popelka - 12:4.3.0-2 +- turn on using of DUID with DHCPv4 clients (#560361,c#40) +- remove default /etc/dhcp/dhclient.conf + +* Tue Feb 04 2014 Jiri Popelka - 12:4.3.0-1 +- 4.3.0 + +* Wed Jan 29 2014 Jiri Popelka - 12:4.3.0-0.7.rc1 +- 4.3.0rc1 + +* Tue Jan 28 2014 Jiri Popelka - 12:4.3.0-0.6.b1 +- don't apply retransmission.patch for now (RHBZ#1026565) + +* Sun Jan 26 2014 Kevin Fenzi 12:4.3.0-0.5.b1 +- Rebuild for new bind + +* Tue Jan 21 2014 Jiri Popelka - 12:4.3.0-0.4.b1 +- 4.3.0b1 +- ship dhcp-lease-list.pl +- dhclient-script: don't ping router (#1055181) + +* Mon Jan 13 2014 Jiri Popelka - 12:4.3.0-0.3.a1 +- update address lifetimes on RENEW/RENEW6 (#1032809) + +* Tue Jan 07 2014 Jiri Popelka - 12:4.3.0-0.2.a1 +- make it actually build + +* Thu Dec 19 2013 Jiri Popelka - 12:4.3.0-0.1.a1 +- 4.3.0a1: requires bind-9.9.5 + +* Thu Nov 21 2013 Jiri Popelka - 12:4.2.5-28 +- dhclient-script: set address lifetimes (#1032809) + +* Thu Nov 14 2013 Jiri Popelka - 12:4.2.5-27 +- dhclient-script(RENEW6|REBIND6): delete old ip6_address if it changed (#1015729) + +* Thu Oct 31 2013 Jiri Popelka - 12:4.2.5-26 +- Provide default /etc/dhcp/dhclient.conf +- Client always sends dhcp-client-identifier (#560361) + +* Thu Oct 24 2013 Jiri Popelka - 12:4.2.5-25 +- use upstream patch for #1001742 ([ISC-Bugs #34784]) + +* Mon Oct 07 2013 Jiri Popelka - 12:4.2.5-24 +- dhcpd rejects the udp packet with checksum=0xffff (#1015997) + +* Fri Sep 27 2013 Jiri Popelka - 12:4.2.5-23 +- 'No subnet declaration for ' should be info, not error +- decrease the sleep in 12-dhcpd due to timeout (#1003695#8) + +* Wed Sep 18 2013 Jiri Popelka - 12:4.2.5-22 +- fix segfault introduced with previous commit + +* Tue Sep 17 2013 Jiri Popelka - 12:4.2.5-21 +- 12-dhcpd: wait a few seconds before restarting services (#1003695) +- another solution for #1001742 (#1005814#c10) + +* Thu Sep 12 2013 Jiri Popelka - 12:4.2.5-20 +- bind DHCPv6 client to link-local address instead of 0 address (#1001742) + +* Mon Aug 26 2013 Jiri Popelka - 12:4.2.5-19 +- don't crash on aliased infiniband interface (#996518) + +* Sun Aug 04 2013 Jiri Popelka - 12:4.2.5-18 +- BuildRequires: systemd due to %%{_unitdir} + +* Mon Jul 29 2013 Jiri Popelka - 12:4.2.5-17 +- 12-dhcpd previously exited with error status 1 (#989207) + +* Mon Jul 15 2013 Tomas Hozza - 12:4.2.5-16 +- rebuild against new bind + +* Tue Jul 02 2013 Jiri Popelka - 12:4.2.5-15 +- fix several memory leaks in omapi (#978420) +- remove send_release.patch (#979510) + +* Tue Jun 18 2013 Jiri Popelka - 12:4.2.5-14 +- rebuilt against bind once more + +* Fri Jun 14 2013 Jiri Popelka - 12:4.2.5-13 +- return /etc/sysconfig/dhcpd back, but do NOT use it (#909733) + +* Tue May 14 2013 Adam Williamson - 12:4.2.5-12 +- rebuild against new bind + +* Tue Apr 30 2013 Jiri Popelka - 12:4.2.5-11 +- add missing conversion specifier in log_fatal() call (#957371) + +* Tue Apr 16 2013 Adam Tkac - 12:4.2.5-10 +- rebuild against new bind + +* Wed Apr 03 2013 Tomas Hozza - 12:4.2.5-9 +- Expose next-server DHCPv4 option to dhclient script + +* Tue Mar 26 2013 Jiri Popelka - 12:4.2.5-8 +- describe -user/-group/-chroot in dhcpd.8 + +* Fri Feb 22 2013 Jiri Popelka - 12:4.2.5-7 +- remove triggerun condition (#895475) + +* Wed Feb 13 2013 Fedora Release Engineering - 12:4.2.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jan 24 2013 Jiri Popelka - 12:4.2.5-5 +- remove missing-ipv6-not-fatal.patch because the concerning code is later + removed with getifaddrs.patch + +* Wed Jan 23 2013 Jiri Popelka - 12:4.2.5-4 +- Make sure range6 is correct for subnet6 where it's declared (#902966) + +* Fri Jan 18 2013 Jiri Popelka - 12:4.2.5-3 +- simplify the previously added triggerun scriptlet + +* Thu Jan 17 2013 Jiri Popelka - 12:4.2.5-2 +- during update convert DHC*ARGS from /etc/sysconfig/dhc* + to /etc/systemd/system/dhc*.service (#895475) +- 12-dhcpd NM dispatcher script now restarts also dhcpd6 service + +* Thu Jan 10 2013 Jiri Popelka - 12:4.2.5-1 +- 4.2.5 + +* Wed Jan 02 2013 Jiri Popelka - 12:4.2.5-0.3.rc1 +- run %%check in Fedora only, there's no atf package in RHEL + +* Thu Dec 20 2012 Jiri Popelka - 12:4.2.5-0.2.rc1 +- don't package ancient contrib/* files + +* Thu Dec 20 2012 Jiri Popelka - 12:4.2.5-0.1.rc1 +- 4.2.5rc1 + - added %%check - upstream unit tests (Automated Test Framework - ATF) + +* Fri Nov 30 2012 Jiri Popelka - 12:4.2.4-23.P2 +- fix two resource leaks in lpf-ib.patch + +* Mon Nov 26 2012 Jiri Popelka - 12:4.2.4-22.P2 +- add After=time-sync.target to dhcpd[6].service (#878293) +- remove groff from BuildRequires (no idea why it's been there) + +* Fri Nov 16 2012 Jiri Popelka - 12:4.2.4-21.P2 +- multiple key statements in zone definition causes inappropriate error (#873794) + +* Fri Oct 26 2012 Jiri Popelka - 12:4.2.4-20.P2 +- fix path to dhcpd6.leases in dhcpd6.conf.sample (#870458) + +* Wed Oct 17 2012 Jiri Popelka - 12:4.2.4-19.P2 +- dhcpd needs to chown leases file created before de-rooting itself (#866714) + +* Thu Oct 11 2012 Adam Tkac - 12:4.2.4-18.P2 +- rebuild against new bind-libs-lite + +* Tue Oct 09 2012 Jiri Popelka - 12:4.2.4-17.P2 +- do-forward-updates statement wasn't recognized (#863646) + +* Wed Sep 26 2012 Jiri Popelka - 12:4.2.4-16.P2 +- dhclient-usage.patch+part of manpages.patch merged with dhclient-options.patch + +* Thu Sep 13 2012 Tomas Hozza - 12:4.2.4-15.P2 +- 4.2.4-P2: fix for CVE-2012-3955 (#856770) + +* Fri Aug 24 2012 Tomas Hozza - 12:4.2.4-14.P1 +- SystemD unit files don't use Environment files any more (#850558) +- NetworkManager dispatcher script doesn't use DHCPDARGS any more + +* Wed Aug 22 2012 Tomas Hozza - 12:4.2.4-13.P1 +- fixed SPEC file so it comply with new systemd-rpm macros guidelines (#850089) + +* Mon Aug 20 2012 Tomas Hozza - 12:4.2.4-12.P1 +- dhclient-script: fixed CONFIG variable value passed to need_config (#848858) +- dhclient-script: calling dhclient-up-hooks after setting up route, gateways + & interface alias (#848869) + +* Fri Aug 17 2012 Jiri Popelka - 12:4.2.4-11.P1 +- don't build libdst, it hasn't been used since 4.2.0 (#849166) + +* Fri Jul 27 2012 Jiri Popelka - 12:4.2.4-10.P1 +- isc_time_nowplusinterval() is not safe with 64-bit time_t (#662254, #789601) + +* Fri Jul 27 2012 Fedora Release Engineering - 12:4.2.4-9.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-8.P1 +- Dhclient does not correctly parse zero-length options in + dhclient6.leases (#633318) + +* Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-7.P1 +- 4.2.4-P1: fix for CVE-2012-3570 CVE-2012-3571 and CVE-2012-3954 (#842892) + +* Mon Jul 23 2012 Jiri Popelka - 12:4.2.4-6 +- ib.patch: added fall-back method (using ioctl(SIOCGIFHWADDR)) when getting + of HW address with getifaddrs() fails (#626514-c#63, #840601). + +* Mon Jul 23 2012 Tomas Hozza - 12:4.2.4-5 +- Dhcpd does not correctly follow DhcpFailOverPeerDN (#838400) + +* Wed Jul 18 2012 Jiri Popelka - 12:4.2.4-4 +- allow dhcpd to listen on alias interfaces (#840601) + +* Mon Jul 09 2012 Tomas Hozza - 12:4.2.4-3 +- changed list of %%verify on the leases files (#837474) + +* Mon Jun 18 2012 Jiri Popelka - 12:4.2.4-2 +- define $SAVEDIR in dhclient-script (#833054) + +* Wed Jun 06 2012 Jiri Popelka - 12:4.2.4-1 +- 4.2.4 + +* Tue Jun 05 2012 Jiri Popelka - 12:4.2.4-0.8.rc2 +- return prematurely removed 12-dhcpd (NM dispatcher script) (#828522) + +* Fri May 25 2012 Jiri Popelka - 12:4.2.4-0.7.rc2 +- getifaddrs.patch: use HAVE_SA_LEN macro + +* Wed May 23 2012 Jiri Popelka - 12:4.2.4-0.6.rc2 +- 4.2.4rc2 + +* Mon May 07 2012 Jiri Popelka - 12:4.2.4-0.5.rc1 +- dhcpd.service: explicitly add -cf to indicate what conf file we use (#819325) +- no need to copy /etc/*.conf to /etc/dhcp/*.conf in %%prep anymore + +* Tue May 01 2012 Jiri Popelka - 12:4.2.4-0.4.rc1 +- 4.2.4rc1 + +* Thu Apr 26 2012 Jiri Popelka - 12:4.2.4-0.3.b1 +- remove inherit-leases.patch - it's probably not needed anymore (#815355) + +* Wed Apr 18 2012 Jiri Popelka - 12:4.2.4-0.2.b1 +- update paths.patch and source URL + +* Mon Apr 16 2012 Jiri Popelka - 12:4.2.4-0.1.b1 +- 4.2.4b1: noprefixavail.patch merged upstream + +* Fri Mar 30 2012 Jiri Popelka - 12:4.2.3-25.P2 +- move dhclient & dhclient-script from /sbin to /usr/sbin + +* Fri Mar 23 2012 Jiri Popelka - 12:4.2.3-24.P2 +- one more fix (#806342) + +* Fri Mar 23 2012 Jiri Popelka - 12:4.2.3-23.P2 +- improve #449946 fix (#806342) + +* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-22.P2 +- RFC5970 - DHCPv6 Options for Network Boot (#798735) + +* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-21.P2 +- don't use fallback_interface when releasing lease (#800561) + +* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-20.P2 +- use getifaddrs() to scan for interfaces on Linux (#449946) + +* Wed Feb 22 2012 Jiri Popelka - 12:4.2.3-19.P2 +- don't send log messages to the standard error descriptor by default (#790387) + +* Mon Feb 13 2012 Jiri Popelka - 12:4.2.3-18.P2 +- -timeout option (command line) with value 3 or less was driving dhclient mad (#789719) + +* Tue Feb 07 2012 Jiri Popelka - 12:4.2.3-17.P2 +- dhclient-script: install link-local static routes with correct scope (#787318) + +* Wed Feb 1 2012 Adam Williamson - 12:4.2.3-16.P2 +- rebuild for new bind-libs-lite + +* Tue Jan 31 2012 Jiri Popelka - 12:4.2.3-15.P2 +- revert previous change (#782499) +- remove the rest of the sysvinit scriptlets + +* Tue Jan 17 2012 Jiri Popelka - 12:4.2.3-14.P2 +- use PrivateTmp=true in service files (#782499) + +* Fri Jan 13 2012 Jiri Popelka - 12:4.2.3-13.P2 +- 4.2.3-P2: fix for CVE-2011-4868 (#781246) +- clean up old Provides and Obsoletes + +* Fri Jan 13 2012 Fedora Release Engineering - 12:4.2.3-12.P1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Dec 21 2011 Jiri Popelka - 12:4.2.3-11.P1 +- revert change made in 4.2.3-3 because of failing failover inicialization (#765967) + the procedure is now: + init lease file, init failover, init PID file, change effective user/group ID +- don't need to fix lease files ownership before starting service +- dhclient-script: allow static route with a 0.0.0.0 next-hop address (#769463) + +* Tue Dec 20 2011 Jiri Popelka - 12:4.2.3-10.P1 +- hopefully we don't need 12-dhcpd anymore as 'After=network.target' + in dhcpd[6].service should take care of the original problem (#565921) + +* Mon Dec 19 2011 Jiri Popelka - 12:4.2.3-9.P1 +- don't ship legacy SysV initscripts +- dhcpd6: move '-cf /etc/dhcp/dhcpd6.conf' from sysconfig/dhcpd6 to dhcpd6.service +- run 'chown -R dhcpd:dhcpd /var/lib/dhcpd/' before starting dhcpd/dhcpd6 service + for the case where leases file is owned by root:root as a + consequence of running dhcpd without '-user dhcpd -group dhcpd' (#744292) + +* Fri Dec 09 2011 Jiri Popelka - 12:4.2.3-8.P1 +- 4.2.3-P1: fix for CVE-2011-4539 (#765681) + +* Thu Nov 24 2011 Jiri Popelka - 12:4.2.3-7 +- Send DHCPDECLINE and exit(2) when duplicate address was detected and + dhclient had been started with '-1' (#756759). +- Don't build with -D_GNU_SOURCE, configure.ac uses AC_USE_SYSTEM_EXTENSIONS + +* Mon Nov 14 2011 Adam Tkac - 12:4.2.3-6 +- rebuild against new bind + +* Fri Nov 11 2011 Jiri Popelka - 12:4.2.3-5 +- dhclient-script: arping address in BOUND|RENEW|REBIND|REBOOT (#752116) + +* Wed Oct 26 2011 Fedora Release Engineering - 12:4.2.3-4 +- Rebuilt for glibc bug#747377 + +* Wed Oct 26 2011 Jiri Popelka - 12:4.2.3-3 +- Write lease file AFTER changing of the effective user/group ID. +- Move omshell from dhcp-common to main package (where it originally was). + +* Thu Oct 20 2011 Jiri Popelka - 12:4.2.3-2 +- Write PID file BEFORE changing of the effective user/group ID. +- Really define _hardened_build this time + +* Thu Oct 20 2011 Jiri Popelka - 12:4.2.3-1 +- 4.2.3 + +* Tue Oct 18 2011 Jiri Popelka - 12:4.2.3-0.1.rc1 +- 4.2.3rc1 + +* Sun Oct 09 2011 Jiri Popelka - 12:4.2.2-12 +- change ownership of /var/lib/dhcpd/ to dhcpd:dhcpd (#744292) +- no need to drop capabilies in dhcpd since it's been running as regular user + +* Fri Sep 30 2011 Jiri Popelka - 12:4.2.2-11 +- 56dhclient: ifcfg file was not sourced (#742482) + +* Thu Sep 29 2011 Jiri Popelka - 12:4.2.2-10 +- dhclient-script: address alias handling fixes from Scott Shambarger (#741786) + +* Thu Sep 22 2011 Jiri Popelka - 12:4.2.2-9 +- dhclient-script: do not backup&restore /etc/resolv.conf and /etc/localtime. + +* Wed Sep 21 2011 Jiri Popelka - 12:4.2.2-8 +- SystemTap support: spec file change, some dummy probes, tapset, simple script + +* Mon Sep 19 2011 Jiri Popelka - 12:4.2.2-7 +- Support for IPoIB (IP over InfiniBand) interfaces (#660681) +- Hopefully last tweak of adding of user and group (#699713) + +* Fri Sep 09 2011 Jiri Popelka - 12:4.2.2-6 +- PIE-RELRO.patch is not needed anymore, defining _hardened_build does the same +- One more tweak of adding of user and group (#699713) + +* Fri Sep 09 2011 Adam Tkac - 12:4.2.2-5 +- rebuild against new bind + +* Fri Aug 26 2011 Jiri Popelka - 12:4.2.2-4 +- Fix adding of user and group (#699713) + +* Fri Aug 19 2011 Jiri Popelka - 12:4.2.2-3 +- Tighten explicit libs sub-package requirement so that it includes + the correct architecture as well. + +* Fri Aug 12 2011 Jiri Popelka - 12:4.2.2-2 +- #699713: + - Use '--enable-paranoia --enable-early-chroot' configure flags + - Create/delete dhcpd user in %%post/%%postun + - Run dhcpd/dhcpd6 services with '-user dhcpd -group dhcpd' + +* Thu Aug 11 2011 Jiri Popelka - 12:4.2.2-1 +- 4.2.2: fix for CVE-2011-2748, CVE-2011-2749 (#729850) + +* Wed Aug 10 2011 Jiri Popelka - 12:4.2.2-0.4.rc1 +- Do not ship default /etc/dhcp/dhclient.conf (#560361,c#9) + +* Mon Jul 25 2011 Jiri Popelka - 12:4.2.2-0.3.rc1 +- Improve capabilities patch to be able to run with PARANOIA & EARLY_CHROOT (#699713) + +* Mon Jul 18 2011 Jiri Popelka - 12:4.2.2-0.2.rc1 +- 4.2.2rc1 + +* Fri Jul 01 2011 Jiri Popelka - 12:4.2.2-0.1.b1 +- 4.2.2b1: upstream merged initialization-delay.patch +- Drop all capabilities in dhcpd/dhcrelay (#699713) + +* Fri Jun 17 2011 Jiri Popelka - 12:4.2.1-12.P1 +- Removed upstream-merged IFNAMSIZ.patch +- Polished patches according to results from static analysis of code. + +* Thu Jun 16 2011 Jiri Popelka - 12:4.2.1-11.P1 +- Add triggerpostun scriptlet tied to dhcp-sysvinit +- Make it possible to build without downstream patches (Kamil Dudka) + +* Tue May 17 2011 Jiri Popelka - 12:4.2.1-10.P1 +- Fix typo in triggerun scriptlet (#705417) + +* Mon May 16 2011 Jiri Popelka - 12:4.2.1-9.P1 +- Packages dhcp/dhclient/dhcp-common explicitly require the libs sub-package + with the same version and release (bug #705037). +- Fix triggerun scriptlet + +* Mon May 09 2011 Jiri Popelka - 12:4.2.1-8.P1 +- Fix 11-dhclient to export variables (#702735) + +* Fri Apr 29 2011 Jiri Popelka - 12:4.2.1-7.P1 +- Comply with guidelines for systemd services + +* Wed Apr 27 2011 Jiri Popelka - 12:4.2.1-6.P1 +- Fix NetworkManager dispatcher script for dhcpd to support arbitrary interface names + +* Wed Apr 06 2011 Jiri Popelka - 12:4.2.1-5.P1 +- Better fix for CVE-2011-0997: making domain-name check more lenient (#694005) + +* Wed Apr 06 2011 Jiri Popelka - 12:4.2.1-4.P1 +- 4.2.1-P1: fix for CVE-2011-0997 (#694005) + +* Fri Mar 25 2011 Jiri Popelka - 12:4.2.1-3 +- Polished patches according to results from static analysis of code. + +* Mon Mar 07 2011 Rex Dieter - 12:4.2.1-2 +- rebuild (bind) + +* Wed Mar 02 2011 Jiri Popelka - 12:4.2.1-1 +- 4.2.1 + +* Wed Feb 23 2011 Jiri Popelka - 12:4.2.1-0.6.rc1 +- 4.2.1rc1 +- Fixed typo in dhclient.leases(5) (#676284) + +* Mon Feb 21 2011 Adam Tkac - 12:4.2.1-0.5.b1 +- rebuild against new bind-libs-lite + +* Tue Feb 08 2011 Fedora Release Engineering - 12:4.2.1-0.4.b1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 31 2011 Jiri Popelka - 12:4.2.1-0.3.b1 +- Prevent anything under _docdir from being scanned. (#674058) + +* Fri Jan 28 2011 Jiri Popelka - 12:4.2.1-0.2.b1 +- dhclient-script improvements, thanks to Ville Skyttä (#672279) + +* Thu Jan 27 2011 Jiri Popelka - 12:4.2.1-0.1.b1 +- 4.2.1b1: fix for CVE-2011-0413 (#672996) +- No longer need invalid-dhclient-conf, parse_date and release6-elapsed patches + +* Thu Jan 13 2011 Jiri Popelka - 12:4.2.0-26.P2 +- Fix loading of configuration when LDAP is used (#668276) + +* Mon Jan 03 2011 Jiri Popelka - 12:4.2.0-25.P2 +- Fix OMAPI (#666441) + +* Tue Dec 21 2010 Jiri Popelka - 12:4.2.0-24.P2 +- Provide default /etc/dhcp/dhclient.conf +- Client always sends dhcp-client-identifier (#560361) + +* Wed Dec 15 2010 Jiri Popelka - 12:4.2.0-23.P2 +- Add dhcp-common subpackage (#634673) + +* Mon Dec 13 2010 Jiri Popelka - 12:4.2.0-22.P2 +- 4.2.0-P2: fix for CVE-2010-3616 (#662326) +- Use upstream fix for #628258 +- Provide versioned symbols for rpmlint + +* Tue Dec 07 2010 Jiri Popelka - 12:4.2.0-21.P1 +- Porting dhcpd/dhcpd6/dhcrelay services from SysV to Systemd + +* Tue Nov 23 2010 Jiri Popelka - 12:4.2.0-20.P1 +- Remove explicit Obsoletes (#656310) + +* Fri Nov 19 2010 Dan Horák - 12:4.2.0-19.P1 +- fix build on sparc and s390 + +* Tue Nov 09 2010 Jiri Popelka - 12:4.2.0-18.P1 +- Applied Patrik Lahti's patch for DHCPv6 over PPP support (#626514) + +* Fri Nov 05 2010 Jiri Popelka - 12:4.2.0-17.P1 +- fix broken dependencies + +* Thu Nov 04 2010 Jiri Popelka - 12:4.2.0-16.P1 +- 4.2.0-P1: fix for CVE-2010-3611 (#649880) +- dhclient-script: when updating 'search' statement in resolv.conf, + add domain part of hostname if it's not already there (#637763) + +* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-15 +- build dhcp's libraries as shared libs instead of static libs + +* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-14 +- fire away bundled BIND source + +* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-13 +- improve PIE patch (build libraries with -fpic, not with -fpie) + +* Wed Oct 13 2010 Jiri Popelka - 12:4.2.0-12 +- Server was ignoring client's + Solicit (where client included address/prefix as a preference) (#634842) + +* Thu Oct 07 2010 Jiri Popelka - 12:4.2.0-11 +- Use ping instead of arping in dhclient-script to handle + not-on-local-net gateway in ARP-less device (#524298) + +* Thu Oct 07 2010 Jiri Popelka - 12:4.2.0-10 +- Check whether there is any unexpired address in previous lease + prior to confirming (INIT-REBOOT) the lease (#585418) + +* Mon Oct 04 2010 Jiri Popelka - 12:4.2.0-9 +- RFC 3442 - ignore Router option only if + Classless Static Routes option contains default router + +* Thu Sep 30 2010 Jiri Popelka - 12:4.2.0-8 +- Explicitly clear the ARP cache and flush all addresses & routes + instead of bringing the interface down (#574568) + +* Tue Sep 07 2010 Jiri Popelka - 12:4.2.0-7 +- Hardening dhcpd/dhcrelay/dhclient by making them PIE & RELRO + +* Thu Sep 02 2010 Jiri Popelka - 12:4.2.0-6 +- Another fix for handling time values on 64-bit platforms (#628258) + +* Wed Sep 01 2010 Jiri Popelka - 12:4.2.0-5 +- Fix parsing of lease file dates & times on 64-bit platforms (#628258) + +* Tue Aug 31 2010 Jiri Popelka - 12:4.2.0-4 +- RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) + +* Fri Aug 20 2010 Jiri Popelka - 12:4.2.0-3 +- Add DHCRELAYARGS variable to /etc/sysconfig/dhcrelay + +* Fri Jul 30 2010 Jiri Popelka - 12:4.2.0-2 +- Add 12-dhcpd NM dispatcher script (#565921) +- Rename 10-dhclient to 11-dhclient (10-sendmail already exists) + +* Wed Jul 21 2010 Jiri Popelka - 12:4.2.0-1 +- 4.2.0: includes ldap-for-dhcp + +* Mon Jul 12 2010 Jiri Popelka - 12:4.1.1-26.P1 +- Add LICENSE file to dhclient subpackage. + +* Thu Jul 01 2010 Jiri Popelka - 12:4.1.1-25.P1 +- Adhere to Static Library Packaging Guidelines (#609605) + +* Tue Jun 29 2010 Jiri Popelka - 12:4.1.1-24.P1 +- Fix parsing of date (#514828) + +* Thu Jun 03 2010 Jiri Popelka - 12:4.1.1-23.P1 +- 4.1.1-P1: pair of bug fixes including one for CVE-2010-2156 (#601405) +- Compile with -fno-strict-aliasing + +* Mon May 03 2010 Jiri Popelka - 12:4.1.1-22 +- Fix the initialization-delay.patch (#587070) + +* Thu Apr 29 2010 Jiri Popelka - 12:4.1.1-21 +- Cut down the 0-4 second delay before sending first DHCPDISCOVER (#587070) + +* Wed Apr 28 2010 Jiri Popelka - 12:4.1.1-20 +- Move /etc/NetworkManager/dispatcher.d/10-dhclient script + from dhcp to dhclient subpackage (#586999) + +* Wed Apr 28 2010 Jiri Popelka - 12:4.1.1-19 +- Add domain-search to the list of default requested DHCP options (#586906) + +* Wed Apr 21 2010 Jiri Popelka - 12:4.1.1-18 +- If the Reply was received in response to Renew or Rebind message, + client adds any new addresses in the IA option to the IA (#578097) + +* Mon Apr 19 2010 Jiri Popelka - 12:4.1.1-17 +- Fill in Elapsed Time Option in Release/Decline messages (#582939) + +* Thu Mar 25 2010 Jiri Popelka - 12:4.1.1-16 +- In client initiated message exchanges stop retransmission + upon reaching the MRD rather than at some point after it (#559153) + +* Wed Mar 24 2010 Jiri Popelka - 12:4.1.1-15 +- In dhclient-script check whether bound address + passed duplicate address detection (DAD) (#559147) +- If the bound address failed DAD (is found to be in use on the link), + the dhcpv6 client sends a Decline message to the server + as described in section 18.1.7 of RFC-3315 (#559147) + +* Fri Mar 19 2010 Jiri Popelka - 12:4.1.1-14 +- Fix UseMulticast.patch to not repeatedly parse dhcpd.conf for unicast option +- Fix dhclient-script to set interface MTU only when it's greater than 576 (#574629) + +* Fri Mar 12 2010 Jiri Popelka - 12:4.1.1-13 +- Discard unicast Request/Renew/Release/Decline message + (unless we set unicast option) and respond with Reply + with UseMulticast Status Code option (#573090) +- Remove DHCPV6 OPERATION section from dhclient.conf.5 + describing deprecated 'send dhcp6.oro' syntax + +* Thu Feb 25 2010 Jiri Popelka - 12:4.1.1-12 +- Fix paths in man pages (#568031) +- Remove odd tests in %%preun + +* Mon Feb 22 2010 Jiri Popelka - 12:4.1.1-11 +- Add interface-mtu to the list of default requested DHCP options (#566873) + +* Fri Feb 19 2010 Jiri Popelka - 12:4.1.1-10 +- Fix pm-utils/sleep.d/ directory ownership conflict + +* Fri Feb 19 2010 Jiri Popelka - 12:4.1.1-9 +- In dhclient-script: + - use ip command options '-4' or '-6' as shortcuts for '-f[amily] inet' resp. '-f[amily] inet6' + - do not use IP protocol family identifier with 'ip link' + +* Thu Feb 18 2010 Jiri Popelka - 12:4.1.1-8 +- Fix installation of pm-utils script (#479639, c#16) + +* Tue Feb 16 2010 Jiri Popelka - 12:4.1.1-7 +- ldap-for-dhcp-4.1.1-2 (#564810) + +* Tue Feb 16 2010 Jiri Popelka - 12:4.1.1-6 +- Fix ldap patch to explicitly link with liblber (#564810) + +* Mon Feb 08 2010 Jiri Popelka - 12:4.1.1-5 +- Fix dhclient-decline-backoff.patch (#562854) + +* Fri Feb 05 2010 Jiri Popelka - 12:4.1.1-4 +- Fix dhclient-script to delete address which the client is going to release + as soon as it begins the Release message exchange process (#559142) + +* Wed Feb 03 2010 Jiri Popelka - 12:4.1.1-3 +- move /etc/dhcp.conf to /etc/dhcp.conf.rpmsave in %%post (#561094) +- document -nc option in dhclient(8) man page + +* Tue Feb 02 2010 Jiri Popelka - 12:4.1.1-2 +- Fix capability patch (#546765) + +* Wed Jan 20 2010 Jiri Popelka - 12:4.1.1-1 +- Upgraded to ISC dhcp-4.1.1 + +* Mon Jan 18 2010 Jiri Popelka - 12:4.1.0p1-18 +- Hide startup info when starting dhcpd6 service. +- Remove -TERM from calling killproc when stopping dhcrelay (#555672) + +* Fri Jan 15 2010 Jiri Popelka - 12:4.1.0p1-17 +- Added init script to also start dhcpd for IPv6 (#552453) +- Added dhcpd6.conf.sample + +* Thu Jan 07 2010 Jiri Popelka - 12:4.1.0p1-16 +- Use %%global instead of %%define. + +* Mon Dec 14 2009 Jiri Popelka - 12:4.1.0p1-15 +- dhclient logs its pid to make troubleshooting NM managed systems + with multiple dhclients running easier (#546792) + +* Mon Nov 23 2009 Jiri Popelka - 12:4.1.0p1-14 +- Honor DEFROUTE=yes|no for all connection types (#530209) + +* Fri Oct 30 2009 Jiri Popelka - 12:4.1.0p1-13 +- Make dhclient-script add IPv6 address to interface (#531997) + +* Tue Oct 13 2009 Jiri Popelka - 12:4.1.0p1-12 +- Fix 56dhclient so network comes back after suspend/hibernate (#527641) + +* Thu Sep 24 2009 Jiri Popelka - 12:4.1.0p1-11 +- Make dhcpd and dhcrelay init scripts LSB compliant (#522134, #522146) + +* Mon Sep 21 2009 David Cantrell - 12:4.1.0p1-10 +- Obsolete the dhcpv6 and dhcpv6-client packages + +* Fri Sep 18 2009 David Cantrell - 12:4.1.0p1-9 +- Update dhclient-script with handlers for DHCPv6 states + +* Wed Aug 26 2009 David Cantrell - 12:4.1.0p1-8 +- Conditionalize restorecon calls in post scriptlets (#519479) + +* Wed Aug 26 2009 David Cantrell - 12:4.1.0p1-7 +- Do not require policycoreutils for post scriptlet (#519479) + +* Fri Aug 21 2009 David Cantrell - 12:4.1.0p1-6 +- BR libcap-ng-devel (#517649) + +* Tue Aug 18 2009 David Cantrell - 12:4.1.0p1-5 +- Drop unnecessary capabilities in dhclient (#517649) + +* Fri Aug 14 2009 David Cantrell - 12:4.1.0p1-4 +- Upgrade to latest ldap-for-dhcp patch which makes sure that only + dhcpd links with OpenLDAP (#517474) + +* Wed Aug 12 2009 David Cantrell - 12:4.1.0p1-3 +- Update NetworkManager dispatcher script to remove case conversion + and source /etc/sysconfig/network + +* Thu Aug 06 2009 David Cantrell - 12:4.1.0p1-2 +- Add /usr/lib[64]/pm-utils/sleep.d/56dhclient to handle suspend and + resume with active dhclient leases (#479639) + +* Wed Aug 05 2009 David Cantrell - 12:4.1.0p1-1 +- Upgrade to dhcp-4.1.0p1, which is the official upstream release to fix + CVE-2009-0692 + +* Wed Aug 05 2009 David Cantrell - 12:4.1.0-27 +- Fix for CVE-2009-0692 +- Fix for CVE-2009-1892 (#511834) + +* Fri Jul 24 2009 Fedora Release Engineering - 12:4.1.0-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 23 2009 David Cantrell - 12:4.1.0-25 +- Include NetworkManager dispatcher script to run dhclient.d scripts (#459276) + +* Thu Jul 09 2009 David Cantrell - 12:4.1.0-24 +- Ensure 64-bit platforms parse lease file dates & times correctly (#448615) + +* Thu Jul 09 2009 David Cantrell - 12:4.1.0-23 +- Upgrade to ldap-for-dhcp-4.1.0-4 + +* Wed Jul 01 2009 David Cantrell - 12:4.1.0-22 +- Set permissions on /etc/dhcp to 0750 (#508247) +- Update to new ldap-for-dhcp patch set +- Correct problems when upgrading from a previous release and your + dhcpd.conf file not being placed in /etc/dhcp (#506600) + +* Fri Jun 26 2009 David Cantrell - 12:4.1.0-21 +- Handle cases in add_timeout() where the function is called with a NULL + value for the 'when' parameter (#506626) +- Fix SELinux denials in dhclient-script when the script makes backup + configuration files and restores them later (#483747) + +* Wed May 06 2009 David Cantrell - 12:4.1.0-20 +- Obsolete libdhcp4client <= 12:4.0.0-34.fc10 (#499290) + +* Mon Apr 20 2009 David Cantrell - 12:4.1.0-19 +- Restrict interface names given on the dhcpd command line to length + IFNAMSIZ or shorter (#441524) +- Change to /etc/sysconfig/network-scripts in dhclient-script before + calling need_config or source_config (#496233) + +* Mon Apr 20 2009 David Cantrell - 12:4.1.0-18 +- Make dhclient-script work with pre-configured wireless interfaces (#491157) + +* Thu Apr 16 2009 David Cantrell - 12:4.1.0-17 +- Fix setting default route when client IP address changes (#486512, #473658) +- 'reload' and 'try-restart' on dhcpd and dhcrelay init scripts + will display usage information and return code 3 + +* Mon Apr 13 2009 David Cantrell - 12:4.1.0-16 +- Correct %%post problems in dhclient package (#495361) +- Read hooks scripts from /etc/dhcp (#495361) +- Update to latest ldap-for-dhcp + +* Fri Apr 03 2009 David Cantrell - 12:4.1.0-15 +- Obsolete libdhcp and libdhcp-devel (#493547) + +* Thu Apr 02 2009 David Cantrell - 12:4.1.0-14 +- Obsolete libdhcp and libdhcp-devel (#493547) + +* Tue Mar 31 2009 David Cantrell - 12:4.1.0-13 +- dhclient obsoletes libdhcp4client (#493213) +- dhcp-devel obsolets libdhcp4client-devel (#493213) + +* Wed Mar 11 2009 David Cantrell - 12:4.1.0-12 +- Fix problems with dhclient.d script execution (#488864) + +* Mon Mar 09 2009 David Cantrell - 12:4.1.0-11 +- Use LDAP configuration patch from upstream tarball + +* Thu Mar 05 2009 David Cantrell - 12:4.1.0-10 +- restorecon fixes for /etc/localtime and /etc/resolv.conf (#488470) + +* Tue Feb 24 2009 Fedora Release Engineering - 12:4.1.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 18 2009 David Cantrell - 12:4.1.0-8 +- Correct subsystem execution in dhclient-script (#486251) + +* Wed Feb 18 2009 David Cantrell - 12:4.1.0-7 +- Do not segfault if the ipv6 kernel module is not loaded (#486097) + +* Mon Feb 16 2009 David Cantrell - 12:4.1.0-6 +- Enable dhcpv6 support (#480798) +- Fix config file migration in scriptlets (#480543) +- Allow dhclient-script expansion with /etc/dhcp/dhclient.d/*.sh scripts + +* Thu Jan 15 2009 Tomas Mraz - 12:4.1.0-5 +- rebuild with new openssl + +* Tue Jan 13 2009 David Cantrell - 12:4.1.0-4 +- Updated LSB init script header to reference /etc/dhcp/dhcpd.conf (#479012) + +* Sun Jan 11 2009 David Cantrell - 12:4.1.0-3 +- Correct syntax errors in %%post script (#479012) + +* Sat Jan 10 2009 David Cantrell - 12:4.1.0-2 +- Make sure all /etc/dhcp config files are marked in the manifest +- Include new config file directies in the dhcp and dhclient packages +- Do not overwrite new config files if they already exist + +* Tue Jan 06 2009 David Cantrell - 12:4.1.0-1 +- Upgraded to ISC dhcp-4.1.0 +- Had to rename the -T option to -timeout as ISC is now using -T +- Allow package rebuilders to easily enable DHCPv6 support with: + rpmbuild --with DHCPv6 dhcp.spec + Note that Fedora is still using the 'dhcpv6' package, but some + users may want to experiment with the ISC DHCPv6 implementation + locally. + +* Thu Dec 18 2008 David Cantrell - 12:4.0.0-34 +- Move /etc/dhclient.conf to /etc/dhcp/dhclient.conf +- Move /etc/dhcpd.conf to /etc/dhcp/dhcpd.conf + +* Thu Dec 18 2008 David Cantrell - 12:4.0.0-33 +- Remove unnecessary success/failure lines in init scripts (#476846) + +* Wed Dec 03 2008 David Cantrell - 12:4.0.0-32 +- Enable LDAP/SSL support in dhcpd (#467740) +- Do not calculate a prefix for an address we did not receive (#473885) +- Removed libdhcp4client because libdhcp has been removed from Fedora + +* Wed Oct 29 2008 David Cantrell - 12:4.0.0-31 +- Use O_CLOEXEC in open(2) calls and "e" mode in fopen(3) calls, build + with -D_GNU_SOURCE so we pick up O_CLOEXEC (#468984) +- Add missing prototype for validate_port() in common/inet.c + +* Thu Oct 23 2008 David Cantrell - 12:4.0.0-30 +- Fix dhclient.conf man page and sample config file to say 'supersede + domain-search', which is what was actually demonstrated (#467955) + +* Wed Oct 01 2008 David Cantrell - 12:4.0.0-29 +- Make sure /etc/resolv.conf has restorecon run on it (#451560) + +* Tue Sep 30 2008 David Cantrell - 12:4.0.0-28 +- Forgot to actually include (#438149) + +* Tue Sep 30 2008 David Cantrell - 12:4.0.0-27 +- Fix patch fuzziness and include errno.h in includes/dhcpd.h (#438149) + +* Tue Sep 30 2008 David Cantrell - 12:4.0.0-26 +- Validate port numbers for dhclient, dhcpd, and dhcrelay to ensure + that are within the correct range (#438149) + +* Mon Sep 29 2008 David Cantrell - 12:4.0.0-25 +- Fix dhcpd so it can find configuration data via LDAP (#452985) + +* Tue Sep 16 2008 David Cantrell - 12:4.0.0-24 +- 'server' -> 'service' in dhclient-script (#462343) + +* Fri Aug 29 2008 David Cantrell - 12:4.0.0-23 +- Prevent $metric from being set to '' (#460640) +- Remove unnecessary warning messages +- Do not source config file (ifcfg-DEVICE) unless it exists + +* Sun Aug 24 2008 David Cantrell - 12:4.0.0-22 +- Add missing '[' to dhclient-script (#459860) +- Correct test statement in add_default_gateway() in dhclient-script (#459860) + +* Sat Aug 23 2008 David Cantrell - 12:4.0.0-21 +- Fix syntax error in dhclient-script (#459860) + +* Fri Aug 22 2008 David Cantrell - 12:4.0.0-20 +- Rewrite of /sbin/dhclient-script (make the script a little more readable, + discontinue use of ifconfig in favor of ip, store backup copies of orig + files in /var rather than in /etc) + +* Wed Aug 06 2008 David Cantrell - 12:4.0.0-19 +- Remove 'c' from the domain-search format string in common/tables.c +- Prevent \032 from appearing in resolv.conf search line (#450042) +- Restore SELinux context on saved /etc files (#451560) + +* Sun Aug 03 2008 Tom "spot" Callaway - 12:4.0.0-18 +- filter out false positive perl requires + +* Fri Aug 01 2008 David Cantrell - 12:4.0.0-17 +- Carry over RES_OPTIONS from ifcfg-ethX files to /etc/resolv.conf (#202923) +- Clean up Requires tags for devel packages +- Allow SEARCH variable in ifcfg files to override search path (#454152) +- Do not down interface if there is an active lease (#453982) +- Clean up how dhclient-script restarts ypbind +- Set close-on-exec on dhclient.leases for SELinux (#446632) + +* Sat Jun 21 2008 David Cantrell - 12:4.0.0-16 +- Remove instaces of \032 in domain search option (#450042) +- Make 'service dhcpd configtest' display text indicating the status + +* Fri May 16 2008 David Cantrell - 12:4.0.0-15 +- Set close-on-exec on dhclient.leases for SELinux (#446632) + +* Tue Apr 01 2008 David Cantrell - 12:4.0.0-14 +- Avoid dhclient crash when run via NetworkManager (#439796) + +* Tue Mar 25 2008 David Cantrell - 12:4.0.0-13 +- Update dhclient-script to handle domain-search correctly (#437840) + +* Tue Mar 25 2008 David Cantrell - 12:4.0.0-12 +- Remove Requires on openldap-server (#432180) +- Replace CLIENTBINDIR, ETCDIR, DBDIR, and RUNDIR in the man pages with the + correct paths + +* Wed Feb 13 2008 David Cantrell - 12:4.0.0-11 +- Add missing newline to usage() screen in dhclient + +* Thu Feb 07 2008 David Cantrell - 12:4.0.0-10 +- Save conf files adding '.predhclient.$interface' to the name (#306381) +- Only restore conf files on EXPIRE/FAIL/RELEASE/STOP if there are no other + dhclient processes running (#306381) + +* Wed Feb 06 2008 David Cantrell - 12:4.0.0-9 +- Match LDAP server option values in stables.c and dhcpd.h (#431003) +- Fix invalid sprintf() statement in server/ldap.c (#431003) + +* Wed Feb 06 2008 David Cantrell - 12:4.0.0-8 +- Remove invalid fclose() patch + +* Tue Feb 05 2008 David Cantrell - 12:4.0.0-7 +- Don't leak /var/lib/dhclient/dhclient.leases file descriptors (#429890) + +* Tue Jan 22 2008 David Cantrell - 12:4.0.0-6 +- read_function() comes from the LDAP patch, so fix it there +- Init new struct universe structs in libdhcp4client so we don't crash on + multiple DHCP attempts (#428203) + +* Thu Jan 17 2008 David Cantrell - 12:4.0.0-5 +- Patch read_function() to handle size_t from read() correctly (#429207) + +* Wed Jan 16 2008 David Cantrell - 12:4.0.0-4 +- Fix dhclient.lease file parsing problems (#428785) +- Disable IPv6 support for now as we already ship dhcpv6 (#428987) + +* Tue Jan 15 2008 David Cantrell - 12:4.0.0-3 +- Fix segfault in next_iface4() and next_iface6() (#428870) + +* Mon Jan 14 2008 David Cantrell - 12:4.0.0-2 +- -fvisibility fails me again + +* Mon Jan 14 2008 David Cantrell - 12:4.0.0-1 +- Upgrade to ISC dhcp-4.0.0 (#426634) + - first ISC release to incorporate DHCPv6 protocol support + - source tree now uses GNU autoconf/automake +- Removed the libdhcp4client-static package diff --git a/dhcp.spec b/dhcp.spec index c12eb90..0644445 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -15,7 +15,7 @@ Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 -Release: 16%{?prever:.%prever}%{?patchver:.%patchver}%{?dist} +Release: %autorelease # We want to get rid of DHCP in favour of Kea package, because ISC has announced # the end of maintenance for ISC DHCP as of the end of 2022. No package depends @@ -544,1436 +544,4 @@ done %attr(0644,root,root) %{_mandir}/man8/keama.8.gz %changelog -* Fri Jan 24 2025 Stepan Broz - 12:4.4.3-16.P1 -- Correct function declarations in server/dhcpv6.c - -* Thu Jan 16 2025 Fedora Release Engineering - 12:4.4.3-15.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jul 17 2024 Fedora Release Engineering - 12:4.4.3-14.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Wed Jan 24 2024 Fedora Release Engineering - 12:4.4.3-13.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 12:4.4.3-12.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Nov 15 2023 Martin Osvald - 12:4.4.3-11.P1 -- Mark dhcp (sub)packages as deprecated - -* Mon Oct 02 2023 Martin Osvald - 12:4.4.3-10.P1 -- SPDX migration - -* Wed Jul 19 2023 Fedora Release Engineering - 12:4.4.3-9.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Apr 24 2023 Arjun Shankar - 12:4.4.3-8.P1 -- Port bind9 configure script to C99 - -* Thu Jan 19 2023 Fedora Release Engineering - 12:4.4.3-7.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Nov 03 2022 Martin Osvald - 12:4.4.3-6.P1 -- Fix order of user and group in sysusers file - -* Mon Oct 31 2022 Martin Osvald - 12:4.4.3-5.P1 -- Use systemd-sysusers for dhcp user and group (rhbz#2138822) - -* Wed Oct 05 2022 Martin Osvald - 12:4.4.3-4.P1 -- New version 4.4.3-P1 (rhbz#2132240) -- Fix for CVE-2022-2928 (rhbz#2132429) -- Fix for CVE-2022-2929 (rhbz#2132430) - -* Thu Jul 21 2022 Fedora Release Engineering - 12:4.4.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Apr 11 2022 Martin Osvald - 12:4.4.3-2 -- Fix for CVE-2021-25220 - -* Thu Mar 10 2022 Martin Osvald - 12:4.4.3-1 -- New version 4.4.3 -- Add keama migration utility - -* Thu Jan 20 2022 Fedora Release Engineering - 12:4.4.2-18.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-17.P1 -- Update to 4.4.2-P1 (#1970903) -- Add source code signature verification -- Updated license tag - -* Wed Sep 08 2021 Petr Menšík - 12:4.4.2-16.b1 -- Allow uninstallation of dhcp-compat package (#2002163) - -* Wed Jul 21 2021 Fedora Release Engineering - 12:4.4.2-15.b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jun 22 2021 Pavel Zhukov - 12:4.4.2-14.b1 -- Reformat patches - -* Mon Jun 14 2021 Pavel Zhukov - 12:4.4.2-13.b1 -- Do not use getaddrinfo from rst lib (#1823749) - -* Fri Jun 11 2021 Pavel Zhukov - 12:4.4.2-12.b1 -- Drop compat package finally - -* Thu May 27 2021 Pavel Zhukov - 12:4.4.2-11.b1 -- Fix for CVE-2021-25217 - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 12:4.4.2-10.b1 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Jan 26 2021 Fedora Release Engineering - 12:4.4.2-9.b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Pavel Zhukov - 12:4.4.2-8.b1 -- Fix IB patch (#1860689) - -* Mon Jul 27 2020 Fedora Release Engineering - 12:4.4.2-7.b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Apr 22 2020 Pavel Zhukov - 12:4.4.2-6.b1 -- Change upstream URL - -* Fri Feb 21 2020 Pavel Zhukov - 12:4.4.2-5.b1 -- Workarounnd for gcc10 - -* Tue Jan 28 2020 Fedora Release Engineering - 12:4.4.2-4.b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-3.b1 -- Drop NetworkManager 12-dhcpd script. It's deprecated by wait-online (#1780861) - -* Mon Jan 6 2020 Pavel Zhukov - 12:4.4.2-1.b1 -- Dropped all (pre 4.0.0) changelog -- New version (4.4.2b1) - -* Wed Nov 27 2019 Pavel Zhukov - 12:4.4.1-20 -- Fix leak of file descriptors - -* Mon Nov 11 2019 Pavel Zhukov - 12:4.4.1-19 -- Reword -B option description - -* Thu Nov 7 2019 Pavel Zhukov - 12:4.4.1-18 -- Readd sd-notify patch - -* Thu Aug 22 2019 Lubomir Rintel - 12:4.4.1-17 -- Move the NetworkManager dispatcher script out of /etc - -* Thu Jul 25 2019 Pavel Zhukov - 12:4.4.1-16 -- Split timers patch to bind and dhcp parts - -* Wed Jul 24 2019 Fedora Release Engineering - 12:4.4.1-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jul 11 2019 Pavel Zhukov - 12:4.4.1-14 -- Detect time change and request lease renewal - -* Mon May 20 2019 Pavel Zhukov - 12:4.4.1-13 -- Unpack bind prior to patching -- Provide noarch libs - -* Sat May 04 2019 Björn Esser - 12:4.4.1-12 -- rebuilt (bind) - -* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-11 -- Specify epoch for obsolete - -* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-10 -- Cherry-pick 00b7f9a Specify architecture for provides - - -* Tue Apr 2 2019 Pavel Zhukov - 12:4.4.1-9 -- Move obsolete to common section - -* Wed Mar 27 2019 Pavel Zhukov - 12:4.4.1-8 -- Add sd_notify patch to support systemd notify (1687040) - -* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-7 -- Provides specific version of libs - -* Mon Mar 18 2019 Pavel Zhukov - 12:4.4.1-6 -- Obsolete dhcp-libs - -* Wed Mar 13 2019 Pavel Zhukov - 12:4.4.1-5 -- Do not require static libs for non devel installations - -* Thu Feb 28 2019 Pavel Zhukov - 12:4.4.1-3 -- New version 4.4.1 - -* Mon Sep 24 2018 Pavel Zhukov - 12:4.3.6-29 -- Resolves: 1632246 - Do not fail if iface has no hwaddr - -* Thu Aug 30 2018 Pavel Zhukov - 12:4.3.6-28 -- Do not try to map leases file in memory if not in replay mode - -* Fri Jul 13 2018 Petr Menšík - 12:4.3.6-27 -- Update to bind 9.11.4 - -* Thu Jul 12 2018 Fedora Release Engineering - 12:4.3.6-26 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jun 18 2018 Pavel Zhukov - 12:4.3.6-25 -- Resolves: 1592239 - Handle dhcp4-change event properly - -* Mon May 21 2018 Pavel Zhukov - 12:4.3.6-24 -- Fix few more shellcheck warnings - -* Fri May 18 2018 Pavel Zhukov - 12:4.3.6-23 -- Get rid of eval in 11-dhclient -- Credits to legolegs user of linux.org.ru - -* Tue May 15 2018 Pavel Zhukov - 12:4.3.6-21 -- Fix for CVE-2018-1111 - -* Fri Apr 6 2018 Pavel Zhukov - 12:4.3.6-20 -- Discover hwaddr for all interfaces for xid uniqueness - -* Wed Mar 21 2018 Pavel Zhukov - 12:4.3.6-19 -- Don't use run-parts for hooks discovery (#1558612) - -* Fri Mar 09 2018 Pavel Zhukov - 12:4.3.6-18 -- Own ldap schema directory (#1553432) - -* Thu Mar 1 2018 Pavel Zhukov - 12:4.3.6-17 -- Fix CVE-2018-5732 CVE-2018-5733 (#1550246) - -* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-16 -- Compile with recent bind includes, that does not include isc/util.h - -* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-15 -- Do not rely on ignoring case sensitivity of VERSION variable - -* Thu Feb 22 2018 Petr Menšík - 12:4.3.6-14 -- Use bind-export-libs package instead of bind99 -- Use isc-config.sh to configure bind libs -- Change requirement to bind-export-devel - -* Thu Feb 22 2018 Pavel Zhukov - 12:4.3.6-13 -- Do not parse sysconfig/network-scripts if initscripts not installed (#1098172) - -* Wed Feb 07 2018 Fedora Release Engineering - 12:4.3.6-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Feb 03 2018 Igor Gnatenko - 12:4.3.6-11 -- Switch to %%ldconfig_scriptlets - -* Wed Jan 10 2018 Pavel Zhukov - 12:4.3.6-10 -- Use released version - -* Wed Dec 20 2017 Pavel Zhukov - 12:4.3.5-9 -- Change duid_uuid patch to not use std99 feature - -* Fri Dec 8 2017 Pavel Zhukov - 12:4.3.6-8 -- Fix omapi SD leak (#1523547) - -* Thu Nov 9 2017 Pavel Zhukov - 12:4.3.6-7 -- Add patch for proper signal handling with shared context (#1457871) - -* Wed Sep 20 2017 Pavel Zhukov - 12:4.3.6-6 -- Do now override hostname variable in script - -* Sun Sep 10 2017 Peter Robinson 12:4.3.6-5 -- Rebuild for bind 9.9.11 - -* Tue Aug 1 2017 Pavel Zhukov - 12:4.3.6-4 -- Fix typos in dhclient-script - -* Thu Jul 27 2017 Pavel Zhukov - 12:4.3.6-3 -- Recreate /etc/resolv.conf if NetworkManager screwed it up (#1475279) - -* Wed Jul 26 2017 Fedora Release Engineering - 12:4.3.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - - -* Fri Jul 14 2017 Pavel Zhukov - 12:4.3.6-1 -- New version 4.3.6 - -* Fri Jul 07 2017 Igor Gnatenko - 12:4.3.5-10 -- Rebuild due to bug in RPM (RHBZ #1468476) - -* Mon Jul 03 2017 Petr Menšík - 12:4.3.5-9 -- Rebuild for bind 9.9.10 - -* Wed May 31 2017 Pavel Zhukov - 12:4.3.5-8 -- Drop chown from the post section - -* Tue May 23 2017 Pavel Zhukov - 12:4.3.5-7 -- Don't open ddns port until it's needed. Credits to Petr Menšík for the original idea - -* Wed Apr 19 2017 Dominika Hodovska - 12:4.3.5-5 -- don't build doxygen documentation during modular build - -* Tue Apr 04 2017 Pavel Zhukov - 12:4.3.5-4 -- Add EnvironmentFile parameter for backward compatibility - -* Fri Feb 10 2017 Fedora Release Engineering - 12:4.3.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Nov 30 2016 Jiri Popelka - 12:4.3.5-2 -- get BUG_REPORT_URL from /etc/os-release (#1399351) - -* Wed Oct 05 2016 Jiri Popelka - 12:4.3.5-1 -- 4.3.5 - -* Mon Sep 12 2016 Jiri Popelka - 12:4.3.5-0.1b1 -- 4.3.5b1 - -* Wed Aug 03 2016 Jiri Popelka - 12:4.3.4-3 -- [dhclient] rename -R option to --request-options (#1357947) -- [dhclient] rename -timeout option to --timeout - -* Thu May 26 2016 Tomas Hozza - 12:4.3.4-2 -- Rebuild against bind99-9.9.9-P1 - -* Fri Apr 29 2016 Jiri Popelka - 12:4.3.4-1 -- 4.3.4 -- disable systemtap (I don't think anybody ever used it) - -* Wed Mar 23 2016 Zdenek Dohnal zdohnal@redhat.com - 12:4.3.3-13.P1 -- Mentioning the bash script is needed in README.dhclient.d - -* Wed Feb 03 2016 Fedora Release Engineering - 12:4.3.3-12.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jan 13 2016 Jiri Popelka - 12:4.3.3-11.P1 -- 4.3.3-P1 - fix for CVE-2015-8605 (#1298077) - -* Wed Dec 16 2015 Tomas Hozza - 12:4.3.3-10 -- Rebuild against bind-9.9.8-P2 - -* Mon Dec 14 2015 Jiri Popelka - 12:4.3.3-9 -- implement DUID-UUID (RFC 6355) and make it default DUID type (#560361#60) - -* Tue Nov 24 2015 Jiri Popelka - 12:4.3.3-8 -- dispatcher.d/12-dhcpd: use reset-failed command - -* Mon Nov 23 2015 Jiri Popelka - 12:4.3.3-7 -- dhclient-script: hostname -> hostnamectl --transient - -* Tue Nov 03 2015 Jiri Popelka - 12:4.3.3-6 -- dhclient-script: source ifcfg-* because of PEERDNS (#1277253) - -* Tue Oct 13 2015 Jiri Popelka - 12:4.3.3-5 -- dhclient-script: fix for gateway not in the end of rfc3442 routes list (#1251644) - -* Tue Oct 13 2015 Jiri Popelka - 12:4.3.3-4 -- dhclient-script: make_resolv_conf(): keep old nameservers - if server sends domain-name/search, but no nameservers (#1269595) - -* Tue Sep 22 2015 Jiri Popelka - 12:4.3.3-3 -- dhclient: make sure link-local address is ready in stateless mode (#1263466) - -* Mon Sep 07 2015 Jiri Popelka - 12:4.3.3-2 -- VLAN ID is only bottom 12-bits of TCI (#1259552) - -* Fri Sep 04 2015 Jiri Popelka - 12:4.3.3-1 -- 4.3.3 - -* Tue Aug 11 2015 Jiri Popelka - 12:4.3.3-0.2b1 -- dhclient-script: respect DEFROUTE/GATEWAYDEV if Classless Static Routes are offered (#1251644) - -* Mon Aug 10 2015 Jiri Popelka - 12:4.3.3-0.1b1 -- 4.3.3b1 -- enable krb5/gssapi authentication for OpenLDAP -- enable support for binary insertion of leases - -* Wed Jul 15 2015 Jiri Popelka - 12:4.3.2-12 -- fix ipcalc requires - -* Tue Jul 14 2015 Jiri Popelka - 12:4.3.2-11 -- remove dependency on initscripts (#1098172) -- make path to resolv.conf configurable (#1086425) - -* Thu Jul 09 2015 Jiri Popelka - 12:4.3.2-10 -- spec cleanup - -* Thu Jul 02 2015 Jiri Popelka - 12:4.3.2-9 -- test upstream fix for #866714 (paranoia.patch) - -* Wed Jun 24 2015 Jiri Popelka - 12:4.3.2-8 -- add more randomness into xid generation (#1195693) - -* Wed Jun 17 2015 Fedora Release Engineering - 12:4.3.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue May 26 2015 Jiri Popelka - 12:4.3.2-6 -- dhclient-script: run also scripts in dhclient-[enter/exit]-hooks.d dir - -* Tue Apr 21 2015 Jiri Popelka - 12:4.3.2-5 -- dhclient-script: add a minute to address lifetimes (#1188423) - -* Mon Apr 13 2015 Jiri Popelka - 12:4.3.2-4 -- dhclient-script: amend previous change (#1210984) - -* Wed Mar 25 2015 Jiri Popelka - 12:4.3.2-3 -- dhclient-script: fix shellcheck.net suggestions - -* Fri Mar 13 2015 Tomas Hozza - 12:4.3.2-2 -- rebuild against bind99 9.9.7 package - -* Thu Mar 05 2015 Jiri Popelka - 12:4.3.2-1 -- 4.3.2 - -* Wed Feb 25 2015 Jiri Popelka - 12:4.3.2-0.6b1 -- correctly set IB's hw->hlen (#1185075) - -* Wed Feb 25 2015 Tomas Hozza - 12:4.3.2-0.5b1 -- Rebuild against bind-9.10.2rc2 - -* Tue Feb 17 2015 Jiri Popelka - 12:4.3.2-0.4b1 -- dhclient-script: use 'ip addr replace' for both BOUND & RENEW - -* Tue Feb 17 2015 Jiri Popelka - 12:4.3.2-0.3b1 -- doc/dhclient/dhclient-enter-hooks for dhclient-script debugging - -* Fri Feb 13 2015 Jiri Popelka - 12:4.3.2-0.2b1 -- dhclient-script: s/addr add/addr replace/ - -* Sun Feb 08 2015 Jiri Popelka - 12:4.3.2-0.1b1 -- 4.3.2b1 - -* Tue Feb 03 2015 Jiri Popelka - 12:4.3.1-21 -- send unicast request/release via correct interface (#800561, #1177351) - -* Mon Feb 02 2015 Tomas Hozza - 12:4.3.1-20 -- rebuild against bind-9.10.2rc1 - -* Wed Jan 14 2015 Tomas Hozza - 12:4.3.1-19 -- rebuild against bind 9.10.1-P1 - -* Thu Dec 18 2014 Jiri Popelka - 12:4.3.1-18 -- dhclient: write DUID_LLT even in stateless mode (#1156356) - -* Wed Dec 17 2014 Jiri Popelka - 12:4.3.1-17 -- option 97 - pxe-client-id (#1058674) - -* Wed Nov 19 2014 Jiri Popelka - 12:4.3.1-16 -- amend post scriptlets for #1120656 - -* Mon Nov 10 2014 Jiri Popelka - 12:4.3.1-15 -- dhclient-script: restorecon calls shouldn't be needed - as we have SELinux transition rules (#1161500) - -* Tue Nov 04 2014 Jiri Popelka - 12:4.3.1-14 -- GSSAPI support for ldap authentication (#1150542) - -* Fri Oct 31 2014 Jiri Popelka - 12:4.3.1-13 -- redefine DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 - -* Fri Oct 10 2014 Jiri Popelka - 12:4.3.1-12 -- Relay-forward Message's Hop Limit should be 32 (#1147240) - -* Wed Oct 08 2014 Jiri Popelka - 12:4.3.1-11 -- dhcpd generates spurious responses when seeing requests - from vlans on plain interface (#1150587) - -* Fri Oct 03 2014 Tomas Hozza - 12:4.3.1-10 -- rebuild against bind-9.9.6 - -* Thu Sep 04 2014 Jiri Popelka - 12:4.3.1-9 -- [dhclient -6] infinite preferred/valid lifetime represented as -1 (#1133839) - -* Mon Sep 01 2014 Jiri Popelka - 12:4.3.1-8 -- better obsoletes for server & client - -* Sat Aug 30 2014 Kalev Lember - 12:4.3.1-7 -- Fix dhclient obsoletes version - -* Tue Aug 26 2014 Jiri Popelka - 12:4.3.1-6 -- dhclient-script: another improvement of add_ipv6_addr_with_DAD() - -* Mon Aug 25 2014 Jiri Popelka - 12:4.3.1-5 -- spec: use -D with 'install' -- dhclient-script: IPv6 address which fails DAD is auto-removed when it was - added with valid_lft/preferred_lft other then 'forever' (#1133465) - -* Sat Aug 16 2014 Fedora Release Engineering - 12:4.3.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Thu Aug 14 2014 Jiri Popelka - 12:4.3.1-3 -- dhclient-script: one more fix for #1129500 - -* Thu Aug 14 2014 Jiri Popelka - 12:4.3.1-2 -- dhclient-script: PREINIT6: make sure link-local address is available (#1129500) - -* Tue Aug 12 2014 Jiri Popelka - 12:4.3.1-1 -- 4.3.1 - -* Tue Aug 05 2014 Jiri Popelka - 12:4.3.1-0.4.b1 -- dhclient-script: it's OK if the arping reply comes from our system (#1116004) - -* Tue Jul 22 2014 Jiri Popelka - 12:4.3.1-0.3.b1 -- Use network-online.target instead of network.target (#1120656) - -* Fri Jul 11 2014 Tom Callaway 12:4.3.1-0.2.b1 -- fix license handling - -* Thu Jul 10 2014 Jiri Popelka - 12:4.3.1-0.1.b1 -- 4.3.1b1 - -* Thu Jun 12 2014 Filipe Brandenburger - 12:4.3.0-15 -- dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830) - -* Sat Jun 07 2014 Fedora Release Engineering - 12:4.3.0-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 30 2014 Jiri Popelka - 12:4.3.0-13 -- systemtap: fixed dtrace input file (#1102797) - -* Thu May 29 2014 Jiri Popelka - 12:4.3.0-12 -- dhcp-sd_notify.patch BuildRequires: pkgconfig(libsystemd) - -* Wed May 28 2014 Jiri Popelka - 12:4.3.0-11 -- dhclient-script: fix stateless DHCPv6 mode (#1101149) - -* Wed May 07 2014 Jiri Popelka - 12:4.3.0-10 -- use StandardError=null instead of log_perror.patch - -* Tue Mar 18 2014 Jiri Popelka - 12:4.3.0-9 -- support for sending startup notifications to systemd (#1077666) - -* Fri Mar 07 2014 Jiri Popelka - 12:4.3.0-8 -- rename doc subpackage do devel-doc - -* Mon Mar 03 2014 Jaromír Končický - 12:4.3.0-7 -- added 'doc' package containing doxygen-generated documentation - -* Wed Feb 19 2014 Jiri Popelka - 12:4.3.0-6 -- dhclient: rename our -I option to -C as upstream now uses -I - -* Wed Feb 19 2014 Jiri Popelka - 12:4.3.0-5 -- dhclient-script: don't flush all addresses, just the used one - -* Tue Feb 18 2014 Jiri Popelka - 12:4.3.0-4 -- IPoIB: add GUID/DUID to dhcpd logs (#1064416) - -* Mon Feb 17 2014 Jiri Popelka - 12:4.3.0-3 -- don't try to run tests because there's no atf package since F21 - -* Mon Feb 17 2014 Jiri Popelka - 12:4.3.0-2 -- turn on using of DUID with DHCPv4 clients (#560361,c#40) -- remove default /etc/dhcp/dhclient.conf - -* Tue Feb 04 2014 Jiri Popelka - 12:4.3.0-1 -- 4.3.0 - -* Wed Jan 29 2014 Jiri Popelka - 12:4.3.0-0.7.rc1 -- 4.3.0rc1 - -* Tue Jan 28 2014 Jiri Popelka - 12:4.3.0-0.6.b1 -- don't apply retransmission.patch for now (RHBZ#1026565) - -* Sun Jan 26 2014 Kevin Fenzi 12:4.3.0-0.5.b1 -- Rebuild for new bind - -* Tue Jan 21 2014 Jiri Popelka - 12:4.3.0-0.4.b1 -- 4.3.0b1 -- ship dhcp-lease-list.pl -- dhclient-script: don't ping router (#1055181) - -* Mon Jan 13 2014 Jiri Popelka - 12:4.3.0-0.3.a1 -- update address lifetimes on RENEW/RENEW6 (#1032809) - -* Tue Jan 07 2014 Jiri Popelka - 12:4.3.0-0.2.a1 -- make it actually build - -* Thu Dec 19 2013 Jiri Popelka - 12:4.3.0-0.1.a1 -- 4.3.0a1: requires bind-9.9.5 - -* Thu Nov 21 2013 Jiri Popelka - 12:4.2.5-28 -- dhclient-script: set address lifetimes (#1032809) - -* Thu Nov 14 2013 Jiri Popelka - 12:4.2.5-27 -- dhclient-script(RENEW6|REBIND6): delete old ip6_address if it changed (#1015729) - -* Thu Oct 31 2013 Jiri Popelka - 12:4.2.5-26 -- Provide default /etc/dhcp/dhclient.conf -- Client always sends dhcp-client-identifier (#560361) - -* Thu Oct 24 2013 Jiri Popelka - 12:4.2.5-25 -- use upstream patch for #1001742 ([ISC-Bugs #34784]) - -* Mon Oct 07 2013 Jiri Popelka - 12:4.2.5-24 -- dhcpd rejects the udp packet with checksum=0xffff (#1015997) - -* Fri Sep 27 2013 Jiri Popelka - 12:4.2.5-23 -- 'No subnet declaration for ' should be info, not error -- decrease the sleep in 12-dhcpd due to timeout (#1003695#8) - -* Wed Sep 18 2013 Jiri Popelka - 12:4.2.5-22 -- fix segfault introduced with previous commit - -* Tue Sep 17 2013 Jiri Popelka - 12:4.2.5-21 -- 12-dhcpd: wait a few seconds before restarting services (#1003695) -- another solution for #1001742 (#1005814#c10) - -* Thu Sep 12 2013 Jiri Popelka - 12:4.2.5-20 -- bind DHCPv6 client to link-local address instead of 0 address (#1001742) - -* Mon Aug 26 2013 Jiri Popelka - 12:4.2.5-19 -- don't crash on aliased infiniband interface (#996518) - -* Sun Aug 04 2013 Jiri Popelka - 12:4.2.5-18 -- BuildRequires: systemd due to %%{_unitdir} - -* Mon Jul 29 2013 Jiri Popelka - 12:4.2.5-17 -- 12-dhcpd previously exited with error status 1 (#989207) - -* Mon Jul 15 2013 Tomas Hozza - 12:4.2.5-16 -- rebuild against new bind - -* Tue Jul 02 2013 Jiri Popelka - 12:4.2.5-15 -- fix several memory leaks in omapi (#978420) -- remove send_release.patch (#979510) - -* Tue Jun 18 2013 Jiri Popelka - 12:4.2.5-14 -- rebuilt against bind once more - -* Fri Jun 14 2013 Jiri Popelka - 12:4.2.5-13 -- return /etc/sysconfig/dhcpd back, but do NOT use it (#909733) - -* Tue May 14 2013 Adam Williamson - 12:4.2.5-12 -- rebuild against new bind - -* Tue Apr 30 2013 Jiri Popelka - 12:4.2.5-11 -- add missing conversion specifier in log_fatal() call (#957371) - -* Tue Apr 16 2013 Adam Tkac - 12:4.2.5-10 -- rebuild against new bind - -* Wed Apr 03 2013 Tomas Hozza - 12:4.2.5-9 -- Expose next-server DHCPv4 option to dhclient script - -* Tue Mar 26 2013 Jiri Popelka - 12:4.2.5-8 -- describe -user/-group/-chroot in dhcpd.8 - -* Fri Feb 22 2013 Jiri Popelka - 12:4.2.5-7 -- remove triggerun condition (#895475) - -* Wed Feb 13 2013 Fedora Release Engineering - 12:4.2.5-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Thu Jan 24 2013 Jiri Popelka - 12:4.2.5-5 -- remove missing-ipv6-not-fatal.patch because the concerning code is later - removed with getifaddrs.patch - -* Wed Jan 23 2013 Jiri Popelka - 12:4.2.5-4 -- Make sure range6 is correct for subnet6 where it's declared (#902966) - -* Fri Jan 18 2013 Jiri Popelka - 12:4.2.5-3 -- simplify the previously added triggerun scriptlet - -* Thu Jan 17 2013 Jiri Popelka - 12:4.2.5-2 -- during update convert DHC*ARGS from /etc/sysconfig/dhc* - to /etc/systemd/system/dhc*.service (#895475) -- 12-dhcpd NM dispatcher script now restarts also dhcpd6 service - -* Thu Jan 10 2013 Jiri Popelka - 12:4.2.5-1 -- 4.2.5 - -* Wed Jan 02 2013 Jiri Popelka - 12:4.2.5-0.3.rc1 -- run %%check in Fedora only, there's no atf package in RHEL - -* Thu Dec 20 2012 Jiri Popelka - 12:4.2.5-0.2.rc1 -- don't package ancient contrib/* files - -* Thu Dec 20 2012 Jiri Popelka - 12:4.2.5-0.1.rc1 -- 4.2.5rc1 - - added %%check - upstream unit tests (Automated Test Framework - ATF) - -* Fri Nov 30 2012 Jiri Popelka - 12:4.2.4-23.P2 -- fix two resource leaks in lpf-ib.patch - -* Mon Nov 26 2012 Jiri Popelka - 12:4.2.4-22.P2 -- add After=time-sync.target to dhcpd[6].service (#878293) -- remove groff from BuildRequires (no idea why it's been there) - -* Fri Nov 16 2012 Jiri Popelka - 12:4.2.4-21.P2 -- multiple key statements in zone definition causes inappropriate error (#873794) - -* Fri Oct 26 2012 Jiri Popelka - 12:4.2.4-20.P2 -- fix path to dhcpd6.leases in dhcpd6.conf.sample (#870458) - -* Wed Oct 17 2012 Jiri Popelka - 12:4.2.4-19.P2 -- dhcpd needs to chown leases file created before de-rooting itself (#866714) - -* Thu Oct 11 2012 Adam Tkac - 12:4.2.4-18.P2 -- rebuild against new bind-libs-lite - -* Tue Oct 09 2012 Jiri Popelka - 12:4.2.4-17.P2 -- do-forward-updates statement wasn't recognized (#863646) - -* Wed Sep 26 2012 Jiri Popelka - 12:4.2.4-16.P2 -- dhclient-usage.patch+part of manpages.patch merged with dhclient-options.patch - -* Thu Sep 13 2012 Tomas Hozza - 12:4.2.4-15.P2 -- 4.2.4-P2: fix for CVE-2012-3955 (#856770) - -* Fri Aug 24 2012 Tomas Hozza - 12:4.2.4-14.P1 -- SystemD unit files don't use Environment files any more (#850558) -- NetworkManager dispatcher script doesn't use DHCPDARGS any more - -* Wed Aug 22 2012 Tomas Hozza - 12:4.2.4-13.P1 -- fixed SPEC file so it comply with new systemd-rpm macros guidelines (#850089) - -* Mon Aug 20 2012 Tomas Hozza - 12:4.2.4-12.P1 -- dhclient-script: fixed CONFIG variable value passed to need_config (#848858) -- dhclient-script: calling dhclient-up-hooks after setting up route, gateways - & interface alias (#848869) - -* Fri Aug 17 2012 Jiri Popelka - 12:4.2.4-11.P1 -- don't build libdst, it hasn't been used since 4.2.0 (#849166) - -* Fri Jul 27 2012 Jiri Popelka - 12:4.2.4-10.P1 -- isc_time_nowplusinterval() is not safe with 64-bit time_t (#662254, #789601) - -* Fri Jul 27 2012 Fedora Release Engineering - 12:4.2.4-9.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-8.P1 -- Dhclient does not correctly parse zero-length options in - dhclient6.leases (#633318) - -* Wed Jul 25 2012 Tomas Hozza - 12:4.2.4-7.P1 -- 4.2.4-P1: fix for CVE-2012-3570 CVE-2012-3571 and CVE-2012-3954 (#842892) - -* Mon Jul 23 2012 Jiri Popelka - 12:4.2.4-6 -- ib.patch: added fall-back method (using ioctl(SIOCGIFHWADDR)) when getting - of HW address with getifaddrs() fails (#626514-c#63, #840601). - -* Mon Jul 23 2012 Tomas Hozza - 12:4.2.4-5 -- Dhcpd does not correctly follow DhcpFailOverPeerDN (#838400) - -* Wed Jul 18 2012 Jiri Popelka - 12:4.2.4-4 -- allow dhcpd to listen on alias interfaces (#840601) - -* Mon Jul 09 2012 Tomas Hozza - 12:4.2.4-3 -- changed list of %%verify on the leases files (#837474) - -* Mon Jun 18 2012 Jiri Popelka - 12:4.2.4-2 -- define $SAVEDIR in dhclient-script (#833054) - -* Wed Jun 06 2012 Jiri Popelka - 12:4.2.4-1 -- 4.2.4 - -* Tue Jun 05 2012 Jiri Popelka - 12:4.2.4-0.8.rc2 -- return prematurely removed 12-dhcpd (NM dispatcher script) (#828522) - -* Fri May 25 2012 Jiri Popelka - 12:4.2.4-0.7.rc2 -- getifaddrs.patch: use HAVE_SA_LEN macro - -* Wed May 23 2012 Jiri Popelka - 12:4.2.4-0.6.rc2 -- 4.2.4rc2 - -* Mon May 07 2012 Jiri Popelka - 12:4.2.4-0.5.rc1 -- dhcpd.service: explicitly add -cf to indicate what conf file we use (#819325) -- no need to copy /etc/*.conf to /etc/dhcp/*.conf in %%prep anymore - -* Tue May 01 2012 Jiri Popelka - 12:4.2.4-0.4.rc1 -- 4.2.4rc1 - -* Thu Apr 26 2012 Jiri Popelka - 12:4.2.4-0.3.b1 -- remove inherit-leases.patch - it's probably not needed anymore (#815355) - -* Wed Apr 18 2012 Jiri Popelka - 12:4.2.4-0.2.b1 -- update paths.patch and source URL - -* Mon Apr 16 2012 Jiri Popelka - 12:4.2.4-0.1.b1 -- 4.2.4b1: noprefixavail.patch merged upstream - -* Fri Mar 30 2012 Jiri Popelka - 12:4.2.3-25.P2 -- move dhclient & dhclient-script from /sbin to /usr/sbin - -* Fri Mar 23 2012 Jiri Popelka - 12:4.2.3-24.P2 -- one more fix (#806342) - -* Fri Mar 23 2012 Jiri Popelka - 12:4.2.3-23.P2 -- improve #449946 fix (#806342) - -* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-22.P2 -- RFC5970 - DHCPv6 Options for Network Boot (#798735) - -* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-21.P2 -- don't use fallback_interface when releasing lease (#800561) - -* Wed Mar 21 2012 Jiri Popelka - 12:4.2.3-20.P2 -- use getifaddrs() to scan for interfaces on Linux (#449946) - -* Wed Feb 22 2012 Jiri Popelka - 12:4.2.3-19.P2 -- don't send log messages to the standard error descriptor by default (#790387) - -* Mon Feb 13 2012 Jiri Popelka - 12:4.2.3-18.P2 -- -timeout option (command line) with value 3 or less was driving dhclient mad (#789719) - -* Tue Feb 07 2012 Jiri Popelka - 12:4.2.3-17.P2 -- dhclient-script: install link-local static routes with correct scope (#787318) - -* Wed Feb 1 2012 Adam Williamson - 12:4.2.3-16.P2 -- rebuild for new bind-libs-lite - -* Tue Jan 31 2012 Jiri Popelka - 12:4.2.3-15.P2 -- revert previous change (#782499) -- remove the rest of the sysvinit scriptlets - -* Tue Jan 17 2012 Jiri Popelka - 12:4.2.3-14.P2 -- use PrivateTmp=true in service files (#782499) - -* Fri Jan 13 2012 Jiri Popelka - 12:4.2.3-13.P2 -- 4.2.3-P2: fix for CVE-2011-4868 (#781246) -- clean up old Provides and Obsoletes - -* Fri Jan 13 2012 Fedora Release Engineering - 12:4.2.3-12.P1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Dec 21 2011 Jiri Popelka - 12:4.2.3-11.P1 -- revert change made in 4.2.3-3 because of failing failover inicialization (#765967) - the procedure is now: - init lease file, init failover, init PID file, change effective user/group ID -- don't need to fix lease files ownership before starting service -- dhclient-script: allow static route with a 0.0.0.0 next-hop address (#769463) - -* Tue Dec 20 2011 Jiri Popelka - 12:4.2.3-10.P1 -- hopefully we don't need 12-dhcpd anymore as 'After=network.target' - in dhcpd[6].service should take care of the original problem (#565921) - -* Mon Dec 19 2011 Jiri Popelka - 12:4.2.3-9.P1 -- don't ship legacy SysV initscripts -- dhcpd6: move '-cf /etc/dhcp/dhcpd6.conf' from sysconfig/dhcpd6 to dhcpd6.service -- run 'chown -R dhcpd:dhcpd /var/lib/dhcpd/' before starting dhcpd/dhcpd6 service - for the case where leases file is owned by root:root as a - consequence of running dhcpd without '-user dhcpd -group dhcpd' (#744292) - -* Fri Dec 09 2011 Jiri Popelka - 12:4.2.3-8.P1 -- 4.2.3-P1: fix for CVE-2011-4539 (#765681) - -* Thu Nov 24 2011 Jiri Popelka - 12:4.2.3-7 -- Send DHCPDECLINE and exit(2) when duplicate address was detected and - dhclient had been started with '-1' (#756759). -- Don't build with -D_GNU_SOURCE, configure.ac uses AC_USE_SYSTEM_EXTENSIONS - -* Mon Nov 14 2011 Adam Tkac - 12:4.2.3-6 -- rebuild against new bind - -* Fri Nov 11 2011 Jiri Popelka - 12:4.2.3-5 -- dhclient-script: arping address in BOUND|RENEW|REBIND|REBOOT (#752116) - -* Wed Oct 26 2011 Fedora Release Engineering - 12:4.2.3-4 -- Rebuilt for glibc bug#747377 - -* Wed Oct 26 2011 Jiri Popelka - 12:4.2.3-3 -- Write lease file AFTER changing of the effective user/group ID. -- Move omshell from dhcp-common to main package (where it originally was). - -* Thu Oct 20 2011 Jiri Popelka - 12:4.2.3-2 -- Write PID file BEFORE changing of the effective user/group ID. -- Really define _hardened_build this time - -* Thu Oct 20 2011 Jiri Popelka - 12:4.2.3-1 -- 4.2.3 - -* Tue Oct 18 2011 Jiri Popelka - 12:4.2.3-0.1.rc1 -- 4.2.3rc1 - -* Sun Oct 09 2011 Jiri Popelka - 12:4.2.2-12 -- change ownership of /var/lib/dhcpd/ to dhcpd:dhcpd (#744292) -- no need to drop capabilies in dhcpd since it's been running as regular user - -* Fri Sep 30 2011 Jiri Popelka - 12:4.2.2-11 -- 56dhclient: ifcfg file was not sourced (#742482) - -* Thu Sep 29 2011 Jiri Popelka - 12:4.2.2-10 -- dhclient-script: address alias handling fixes from Scott Shambarger (#741786) - -* Thu Sep 22 2011 Jiri Popelka - 12:4.2.2-9 -- dhclient-script: do not backup&restore /etc/resolv.conf and /etc/localtime. - -* Wed Sep 21 2011 Jiri Popelka - 12:4.2.2-8 -- SystemTap support: spec file change, some dummy probes, tapset, simple script - -* Mon Sep 19 2011 Jiri Popelka - 12:4.2.2-7 -- Support for IPoIB (IP over InfiniBand) interfaces (#660681) -- Hopefully last tweak of adding of user and group (#699713) - -* Fri Sep 09 2011 Jiri Popelka - 12:4.2.2-6 -- PIE-RELRO.patch is not needed anymore, defining _hardened_build does the same -- One more tweak of adding of user and group (#699713) - -* Fri Sep 09 2011 Adam Tkac - 12:4.2.2-5 -- rebuild against new bind - -* Fri Aug 26 2011 Jiri Popelka - 12:4.2.2-4 -- Fix adding of user and group (#699713) - -* Fri Aug 19 2011 Jiri Popelka - 12:4.2.2-3 -- Tighten explicit libs sub-package requirement so that it includes - the correct architecture as well. - -* Fri Aug 12 2011 Jiri Popelka - 12:4.2.2-2 -- #699713: - - Use '--enable-paranoia --enable-early-chroot' configure flags - - Create/delete dhcpd user in %%post/%%postun - - Run dhcpd/dhcpd6 services with '-user dhcpd -group dhcpd' - -* Thu Aug 11 2011 Jiri Popelka - 12:4.2.2-1 -- 4.2.2: fix for CVE-2011-2748, CVE-2011-2749 (#729850) - -* Wed Aug 10 2011 Jiri Popelka - 12:4.2.2-0.4.rc1 -- Do not ship default /etc/dhcp/dhclient.conf (#560361,c#9) - -* Mon Jul 25 2011 Jiri Popelka - 12:4.2.2-0.3.rc1 -- Improve capabilities patch to be able to run with PARANOIA & EARLY_CHROOT (#699713) - -* Mon Jul 18 2011 Jiri Popelka - 12:4.2.2-0.2.rc1 -- 4.2.2rc1 - -* Fri Jul 01 2011 Jiri Popelka - 12:4.2.2-0.1.b1 -- 4.2.2b1: upstream merged initialization-delay.patch -- Drop all capabilities in dhcpd/dhcrelay (#699713) - -* Fri Jun 17 2011 Jiri Popelka - 12:4.2.1-12.P1 -- Removed upstream-merged IFNAMSIZ.patch -- Polished patches according to results from static analysis of code. - -* Thu Jun 16 2011 Jiri Popelka - 12:4.2.1-11.P1 -- Add triggerpostun scriptlet tied to dhcp-sysvinit -- Make it possible to build without downstream patches (Kamil Dudka) - -* Tue May 17 2011 Jiri Popelka - 12:4.2.1-10.P1 -- Fix typo in triggerun scriptlet (#705417) - -* Mon May 16 2011 Jiri Popelka - 12:4.2.1-9.P1 -- Packages dhcp/dhclient/dhcp-common explicitly require the libs sub-package - with the same version and release (bug #705037). -- Fix triggerun scriptlet - -* Mon May 09 2011 Jiri Popelka - 12:4.2.1-8.P1 -- Fix 11-dhclient to export variables (#702735) - -* Fri Apr 29 2011 Jiri Popelka - 12:4.2.1-7.P1 -- Comply with guidelines for systemd services - -* Wed Apr 27 2011 Jiri Popelka - 12:4.2.1-6.P1 -- Fix NetworkManager dispatcher script for dhcpd to support arbitrary interface names - -* Wed Apr 06 2011 Jiri Popelka - 12:4.2.1-5.P1 -- Better fix for CVE-2011-0997: making domain-name check more lenient (#694005) - -* Wed Apr 06 2011 Jiri Popelka - 12:4.2.1-4.P1 -- 4.2.1-P1: fix for CVE-2011-0997 (#694005) - -* Fri Mar 25 2011 Jiri Popelka - 12:4.2.1-3 -- Polished patches according to results from static analysis of code. - -* Mon Mar 07 2011 Rex Dieter - 12:4.2.1-2 -- rebuild (bind) - -* Wed Mar 02 2011 Jiri Popelka - 12:4.2.1-1 -- 4.2.1 - -* Wed Feb 23 2011 Jiri Popelka - 12:4.2.1-0.6.rc1 -- 4.2.1rc1 -- Fixed typo in dhclient.leases(5) (#676284) - -* Mon Feb 21 2011 Adam Tkac - 12:4.2.1-0.5.b1 -- rebuild against new bind-libs-lite - -* Tue Feb 08 2011 Fedora Release Engineering - 12:4.2.1-0.4.b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Jan 31 2011 Jiri Popelka - 12:4.2.1-0.3.b1 -- Prevent anything under _docdir from being scanned. (#674058) - -* Fri Jan 28 2011 Jiri Popelka - 12:4.2.1-0.2.b1 -- dhclient-script improvements, thanks to Ville Skyttä (#672279) - -* Thu Jan 27 2011 Jiri Popelka - 12:4.2.1-0.1.b1 -- 4.2.1b1: fix for CVE-2011-0413 (#672996) -- No longer need invalid-dhclient-conf, parse_date and release6-elapsed patches - -* Thu Jan 13 2011 Jiri Popelka - 12:4.2.0-26.P2 -- Fix loading of configuration when LDAP is used (#668276) - -* Mon Jan 03 2011 Jiri Popelka - 12:4.2.0-25.P2 -- Fix OMAPI (#666441) - -* Tue Dec 21 2010 Jiri Popelka - 12:4.2.0-24.P2 -- Provide default /etc/dhcp/dhclient.conf -- Client always sends dhcp-client-identifier (#560361) - -* Wed Dec 15 2010 Jiri Popelka - 12:4.2.0-23.P2 -- Add dhcp-common subpackage (#634673) - -* Mon Dec 13 2010 Jiri Popelka - 12:4.2.0-22.P2 -- 4.2.0-P2: fix for CVE-2010-3616 (#662326) -- Use upstream fix for #628258 -- Provide versioned symbols for rpmlint - -* Tue Dec 07 2010 Jiri Popelka - 12:4.2.0-21.P1 -- Porting dhcpd/dhcpd6/dhcrelay services from SysV to Systemd - -* Tue Nov 23 2010 Jiri Popelka - 12:4.2.0-20.P1 -- Remove explicit Obsoletes (#656310) - -* Fri Nov 19 2010 Dan Horák - 12:4.2.0-19.P1 -- fix build on sparc and s390 - -* Tue Nov 09 2010 Jiri Popelka - 12:4.2.0-18.P1 -- Applied Patrik Lahti's patch for DHCPv6 over PPP support (#626514) - -* Fri Nov 05 2010 Jiri Popelka - 12:4.2.0-17.P1 -- fix broken dependencies - -* Thu Nov 04 2010 Jiri Popelka - 12:4.2.0-16.P1 -- 4.2.0-P1: fix for CVE-2010-3611 (#649880) -- dhclient-script: when updating 'search' statement in resolv.conf, - add domain part of hostname if it's not already there (#637763) - -* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-15 -- build dhcp's libraries as shared libs instead of static libs - -* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-14 -- fire away bundled BIND source - -* Wed Oct 20 2010 Adam Tkac - 12:4.2.0-13 -- improve PIE patch (build libraries with -fpic, not with -fpie) - -* Wed Oct 13 2010 Jiri Popelka - 12:4.2.0-12 -- Server was ignoring client's - Solicit (where client included address/prefix as a preference) (#634842) - -* Thu Oct 07 2010 Jiri Popelka - 12:4.2.0-11 -- Use ping instead of arping in dhclient-script to handle - not-on-local-net gateway in ARP-less device (#524298) - -* Thu Oct 07 2010 Jiri Popelka - 12:4.2.0-10 -- Check whether there is any unexpired address in previous lease - prior to confirming (INIT-REBOOT) the lease (#585418) - -* Mon Oct 04 2010 Jiri Popelka - 12:4.2.0-9 -- RFC 3442 - ignore Router option only if - Classless Static Routes option contains default router - -* Thu Sep 30 2010 Jiri Popelka - 12:4.2.0-8 -- Explicitly clear the ARP cache and flush all addresses & routes - instead of bringing the interface down (#574568) - -* Tue Sep 07 2010 Jiri Popelka - 12:4.2.0-7 -- Hardening dhcpd/dhcrelay/dhclient by making them PIE & RELRO - -* Thu Sep 02 2010 Jiri Popelka - 12:4.2.0-6 -- Another fix for handling time values on 64-bit platforms (#628258) - -* Wed Sep 01 2010 Jiri Popelka - 12:4.2.0-5 -- Fix parsing of lease file dates & times on 64-bit platforms (#628258) - -* Tue Aug 31 2010 Jiri Popelka - 12:4.2.0-4 -- RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) - -* Fri Aug 20 2010 Jiri Popelka - 12:4.2.0-3 -- Add DHCRELAYARGS variable to /etc/sysconfig/dhcrelay - -* Fri Jul 30 2010 Jiri Popelka - 12:4.2.0-2 -- Add 12-dhcpd NM dispatcher script (#565921) -- Rename 10-dhclient to 11-dhclient (10-sendmail already exists) - -* Wed Jul 21 2010 Jiri Popelka - 12:4.2.0-1 -- 4.2.0: includes ldap-for-dhcp - -* Mon Jul 12 2010 Jiri Popelka - 12:4.1.1-26.P1 -- Add LICENSE file to dhclient subpackage. - -* Thu Jul 01 2010 Jiri Popelka - 12:4.1.1-25.P1 -- Adhere to Static Library Packaging Guidelines (#609605) - -* Tue Jun 29 2010 Jiri Popelka - 12:4.1.1-24.P1 -- Fix parsing of date (#514828) - -* Thu Jun 03 2010 Jiri Popelka - 12:4.1.1-23.P1 -- 4.1.1-P1: pair of bug fixes including one for CVE-2010-2156 (#601405) -- Compile with -fno-strict-aliasing - -* Mon May 03 2010 Jiri Popelka - 12:4.1.1-22 -- Fix the initialization-delay.patch (#587070) - -* Thu Apr 29 2010 Jiri Popelka - 12:4.1.1-21 -- Cut down the 0-4 second delay before sending first DHCPDISCOVER (#587070) - -* Wed Apr 28 2010 Jiri Popelka - 12:4.1.1-20 -- Move /etc/NetworkManager/dispatcher.d/10-dhclient script - from dhcp to dhclient subpackage (#586999) - -* Wed Apr 28 2010 Jiri Popelka - 12:4.1.1-19 -- Add domain-search to the list of default requested DHCP options (#586906) - -* Wed Apr 21 2010 Jiri Popelka - 12:4.1.1-18 -- If the Reply was received in response to Renew or Rebind message, - client adds any new addresses in the IA option to the IA (#578097) - -* Mon Apr 19 2010 Jiri Popelka - 12:4.1.1-17 -- Fill in Elapsed Time Option in Release/Decline messages (#582939) - -* Thu Mar 25 2010 Jiri Popelka - 12:4.1.1-16 -- In client initiated message exchanges stop retransmission - upon reaching the MRD rather than at some point after it (#559153) - -* Wed Mar 24 2010 Jiri Popelka - 12:4.1.1-15 -- In dhclient-script check whether bound address - passed duplicate address detection (DAD) (#559147) -- If the bound address failed DAD (is found to be in use on the link), - the dhcpv6 client sends a Decline message to the server - as described in section 18.1.7 of RFC-3315 (#559147) - -* Fri Mar 19 2010 Jiri Popelka - 12:4.1.1-14 -- Fix UseMulticast.patch to not repeatedly parse dhcpd.conf for unicast option -- Fix dhclient-script to set interface MTU only when it's greater than 576 (#574629) - -* Fri Mar 12 2010 Jiri Popelka - 12:4.1.1-13 -- Discard unicast Request/Renew/Release/Decline message - (unless we set unicast option) and respond with Reply - with UseMulticast Status Code option (#573090) -- Remove DHCPV6 OPERATION section from dhclient.conf.5 - describing deprecated 'send dhcp6.oro' syntax - -* Thu Feb 25 2010 Jiri Popelka - 12:4.1.1-12 -- Fix paths in man pages (#568031) -- Remove odd tests in %%preun - -* Mon Feb 22 2010 Jiri Popelka - 12:4.1.1-11 -- Add interface-mtu to the list of default requested DHCP options (#566873) - -* Fri Feb 19 2010 Jiri Popelka - 12:4.1.1-10 -- Fix pm-utils/sleep.d/ directory ownership conflict - -* Fri Feb 19 2010 Jiri Popelka - 12:4.1.1-9 -- In dhclient-script: - - use ip command options '-4' or '-6' as shortcuts for '-f[amily] inet' resp. '-f[amily] inet6' - - do not use IP protocol family identifier with 'ip link' - -* Thu Feb 18 2010 Jiri Popelka - 12:4.1.1-8 -- Fix installation of pm-utils script (#479639, c#16) - -* Tue Feb 16 2010 Jiri Popelka - 12:4.1.1-7 -- ldap-for-dhcp-4.1.1-2 (#564810) - -* Tue Feb 16 2010 Jiri Popelka - 12:4.1.1-6 -- Fix ldap patch to explicitly link with liblber (#564810) - -* Mon Feb 08 2010 Jiri Popelka - 12:4.1.1-5 -- Fix dhclient-decline-backoff.patch (#562854) - -* Fri Feb 05 2010 Jiri Popelka - 12:4.1.1-4 -- Fix dhclient-script to delete address which the client is going to release - as soon as it begins the Release message exchange process (#559142) - -* Wed Feb 03 2010 Jiri Popelka - 12:4.1.1-3 -- move /etc/dhcp.conf to /etc/dhcp.conf.rpmsave in %%post (#561094) -- document -nc option in dhclient(8) man page - -* Tue Feb 02 2010 Jiri Popelka - 12:4.1.1-2 -- Fix capability patch (#546765) - -* Wed Jan 20 2010 Jiri Popelka - 12:4.1.1-1 -- Upgraded to ISC dhcp-4.1.1 - -* Mon Jan 18 2010 Jiri Popelka - 12:4.1.0p1-18 -- Hide startup info when starting dhcpd6 service. -- Remove -TERM from calling killproc when stopping dhcrelay (#555672) - -* Fri Jan 15 2010 Jiri Popelka - 12:4.1.0p1-17 -- Added init script to also start dhcpd for IPv6 (#552453) -- Added dhcpd6.conf.sample - -* Thu Jan 07 2010 Jiri Popelka - 12:4.1.0p1-16 -- Use %%global instead of %%define. - -* Mon Dec 14 2009 Jiri Popelka - 12:4.1.0p1-15 -- dhclient logs its pid to make troubleshooting NM managed systems - with multiple dhclients running easier (#546792) - -* Mon Nov 23 2009 Jiri Popelka - 12:4.1.0p1-14 -- Honor DEFROUTE=yes|no for all connection types (#530209) - -* Fri Oct 30 2009 Jiri Popelka - 12:4.1.0p1-13 -- Make dhclient-script add IPv6 address to interface (#531997) - -* Tue Oct 13 2009 Jiri Popelka - 12:4.1.0p1-12 -- Fix 56dhclient so network comes back after suspend/hibernate (#527641) - -* Thu Sep 24 2009 Jiri Popelka - 12:4.1.0p1-11 -- Make dhcpd and dhcrelay init scripts LSB compliant (#522134, #522146) - -* Mon Sep 21 2009 David Cantrell - 12:4.1.0p1-10 -- Obsolete the dhcpv6 and dhcpv6-client packages - -* Fri Sep 18 2009 David Cantrell - 12:4.1.0p1-9 -- Update dhclient-script with handlers for DHCPv6 states - -* Wed Aug 26 2009 David Cantrell - 12:4.1.0p1-8 -- Conditionalize restorecon calls in post scriptlets (#519479) - -* Wed Aug 26 2009 David Cantrell - 12:4.1.0p1-7 -- Do not require policycoreutils for post scriptlet (#519479) - -* Fri Aug 21 2009 David Cantrell - 12:4.1.0p1-6 -- BR libcap-ng-devel (#517649) - -* Tue Aug 18 2009 David Cantrell - 12:4.1.0p1-5 -- Drop unnecessary capabilities in dhclient (#517649) - -* Fri Aug 14 2009 David Cantrell - 12:4.1.0p1-4 -- Upgrade to latest ldap-for-dhcp patch which makes sure that only - dhcpd links with OpenLDAP (#517474) - -* Wed Aug 12 2009 David Cantrell - 12:4.1.0p1-3 -- Update NetworkManager dispatcher script to remove case conversion - and source /etc/sysconfig/network - -* Thu Aug 06 2009 David Cantrell - 12:4.1.0p1-2 -- Add /usr/lib[64]/pm-utils/sleep.d/56dhclient to handle suspend and - resume with active dhclient leases (#479639) - -* Wed Aug 05 2009 David Cantrell - 12:4.1.0p1-1 -- Upgrade to dhcp-4.1.0p1, which is the official upstream release to fix - CVE-2009-0692 - -* Wed Aug 05 2009 David Cantrell - 12:4.1.0-27 -- Fix for CVE-2009-0692 -- Fix for CVE-2009-1892 (#511834) - -* Fri Jul 24 2009 Fedora Release Engineering - 12:4.1.0-26 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Thu Jul 23 2009 David Cantrell - 12:4.1.0-25 -- Include NetworkManager dispatcher script to run dhclient.d scripts (#459276) - -* Thu Jul 09 2009 David Cantrell - 12:4.1.0-24 -- Ensure 64-bit platforms parse lease file dates & times correctly (#448615) - -* Thu Jul 09 2009 David Cantrell - 12:4.1.0-23 -- Upgrade to ldap-for-dhcp-4.1.0-4 - -* Wed Jul 01 2009 David Cantrell - 12:4.1.0-22 -- Set permissions on /etc/dhcp to 0750 (#508247) -- Update to new ldap-for-dhcp patch set -- Correct problems when upgrading from a previous release and your - dhcpd.conf file not being placed in /etc/dhcp (#506600) - -* Fri Jun 26 2009 David Cantrell - 12:4.1.0-21 -- Handle cases in add_timeout() where the function is called with a NULL - value for the 'when' parameter (#506626) -- Fix SELinux denials in dhclient-script when the script makes backup - configuration files and restores them later (#483747) - -* Wed May 06 2009 David Cantrell - 12:4.1.0-20 -- Obsolete libdhcp4client <= 12:4.0.0-34.fc10 (#499290) - -* Mon Apr 20 2009 David Cantrell - 12:4.1.0-19 -- Restrict interface names given on the dhcpd command line to length - IFNAMSIZ or shorter (#441524) -- Change to /etc/sysconfig/network-scripts in dhclient-script before - calling need_config or source_config (#496233) - -* Mon Apr 20 2009 David Cantrell - 12:4.1.0-18 -- Make dhclient-script work with pre-configured wireless interfaces (#491157) - -* Thu Apr 16 2009 David Cantrell - 12:4.1.0-17 -- Fix setting default route when client IP address changes (#486512, #473658) -- 'reload' and 'try-restart' on dhcpd and dhcrelay init scripts - will display usage information and return code 3 - -* Mon Apr 13 2009 David Cantrell - 12:4.1.0-16 -- Correct %%post problems in dhclient package (#495361) -- Read hooks scripts from /etc/dhcp (#495361) -- Update to latest ldap-for-dhcp - -* Fri Apr 03 2009 David Cantrell - 12:4.1.0-15 -- Obsolete libdhcp and libdhcp-devel (#493547) - -* Thu Apr 02 2009 David Cantrell - 12:4.1.0-14 -- Obsolete libdhcp and libdhcp-devel (#493547) - -* Tue Mar 31 2009 David Cantrell - 12:4.1.0-13 -- dhclient obsoletes libdhcp4client (#493213) -- dhcp-devel obsolets libdhcp4client-devel (#493213) - -* Wed Mar 11 2009 David Cantrell - 12:4.1.0-12 -- Fix problems with dhclient.d script execution (#488864) - -* Mon Mar 09 2009 David Cantrell - 12:4.1.0-11 -- Use LDAP configuration patch from upstream tarball - -* Thu Mar 05 2009 David Cantrell - 12:4.1.0-10 -- restorecon fixes for /etc/localtime and /etc/resolv.conf (#488470) - -* Tue Feb 24 2009 Fedora Release Engineering - 12:4.1.0-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Wed Feb 18 2009 David Cantrell - 12:4.1.0-8 -- Correct subsystem execution in dhclient-script (#486251) - -* Wed Feb 18 2009 David Cantrell - 12:4.1.0-7 -- Do not segfault if the ipv6 kernel module is not loaded (#486097) - -* Mon Feb 16 2009 David Cantrell - 12:4.1.0-6 -- Enable dhcpv6 support (#480798) -- Fix config file migration in scriptlets (#480543) -- Allow dhclient-script expansion with /etc/dhcp/dhclient.d/*.sh scripts - -* Thu Jan 15 2009 Tomas Mraz - 12:4.1.0-5 -- rebuild with new openssl - -* Tue Jan 13 2009 David Cantrell - 12:4.1.0-4 -- Updated LSB init script header to reference /etc/dhcp/dhcpd.conf (#479012) - -* Sun Jan 11 2009 David Cantrell - 12:4.1.0-3 -- Correct syntax errors in %%post script (#479012) - -* Sat Jan 10 2009 David Cantrell - 12:4.1.0-2 -- Make sure all /etc/dhcp config files are marked in the manifest -- Include new config file directies in the dhcp and dhclient packages -- Do not overwrite new config files if they already exist - -* Tue Jan 06 2009 David Cantrell - 12:4.1.0-1 -- Upgraded to ISC dhcp-4.1.0 -- Had to rename the -T option to -timeout as ISC is now using -T -- Allow package rebuilders to easily enable DHCPv6 support with: - rpmbuild --with DHCPv6 dhcp.spec - Note that Fedora is still using the 'dhcpv6' package, but some - users may want to experiment with the ISC DHCPv6 implementation - locally. - -* Thu Dec 18 2008 David Cantrell - 12:4.0.0-34 -- Move /etc/dhclient.conf to /etc/dhcp/dhclient.conf -- Move /etc/dhcpd.conf to /etc/dhcp/dhcpd.conf - -* Thu Dec 18 2008 David Cantrell - 12:4.0.0-33 -- Remove unnecessary success/failure lines in init scripts (#476846) - -* Wed Dec 03 2008 David Cantrell - 12:4.0.0-32 -- Enable LDAP/SSL support in dhcpd (#467740) -- Do not calculate a prefix for an address we did not receive (#473885) -- Removed libdhcp4client because libdhcp has been removed from Fedora - -* Wed Oct 29 2008 David Cantrell - 12:4.0.0-31 -- Use O_CLOEXEC in open(2) calls and "e" mode in fopen(3) calls, build - with -D_GNU_SOURCE so we pick up O_CLOEXEC (#468984) -- Add missing prototype for validate_port() in common/inet.c - -* Thu Oct 23 2008 David Cantrell - 12:4.0.0-30 -- Fix dhclient.conf man page and sample config file to say 'supersede - domain-search', which is what was actually demonstrated (#467955) - -* Wed Oct 01 2008 David Cantrell - 12:4.0.0-29 -- Make sure /etc/resolv.conf has restorecon run on it (#451560) - -* Tue Sep 30 2008 David Cantrell - 12:4.0.0-28 -- Forgot to actually include (#438149) - -* Tue Sep 30 2008 David Cantrell - 12:4.0.0-27 -- Fix patch fuzziness and include errno.h in includes/dhcpd.h (#438149) - -* Tue Sep 30 2008 David Cantrell - 12:4.0.0-26 -- Validate port numbers for dhclient, dhcpd, and dhcrelay to ensure - that are within the correct range (#438149) - -* Mon Sep 29 2008 David Cantrell - 12:4.0.0-25 -- Fix dhcpd so it can find configuration data via LDAP (#452985) - -* Tue Sep 16 2008 David Cantrell - 12:4.0.0-24 -- 'server' -> 'service' in dhclient-script (#462343) - -* Fri Aug 29 2008 David Cantrell - 12:4.0.0-23 -- Prevent $metric from being set to '' (#460640) -- Remove unnecessary warning messages -- Do not source config file (ifcfg-DEVICE) unless it exists - -* Sun Aug 24 2008 David Cantrell - 12:4.0.0-22 -- Add missing '[' to dhclient-script (#459860) -- Correct test statement in add_default_gateway() in dhclient-script (#459860) - -* Sat Aug 23 2008 David Cantrell - 12:4.0.0-21 -- Fix syntax error in dhclient-script (#459860) - -* Fri Aug 22 2008 David Cantrell - 12:4.0.0-20 -- Rewrite of /sbin/dhclient-script (make the script a little more readable, - discontinue use of ifconfig in favor of ip, store backup copies of orig - files in /var rather than in /etc) - -* Wed Aug 06 2008 David Cantrell - 12:4.0.0-19 -- Remove 'c' from the domain-search format string in common/tables.c -- Prevent \032 from appearing in resolv.conf search line (#450042) -- Restore SELinux context on saved /etc files (#451560) - -* Sun Aug 03 2008 Tom "spot" Callaway - 12:4.0.0-18 -- filter out false positive perl requires - -* Fri Aug 01 2008 David Cantrell - 12:4.0.0-17 -- Carry over RES_OPTIONS from ifcfg-ethX files to /etc/resolv.conf (#202923) -- Clean up Requires tags for devel packages -- Allow SEARCH variable in ifcfg files to override search path (#454152) -- Do not down interface if there is an active lease (#453982) -- Clean up how dhclient-script restarts ypbind -- Set close-on-exec on dhclient.leases for SELinux (#446632) - -* Sat Jun 21 2008 David Cantrell - 12:4.0.0-16 -- Remove instaces of \032 in domain search option (#450042) -- Make 'service dhcpd configtest' display text indicating the status - -* Fri May 16 2008 David Cantrell - 12:4.0.0-15 -- Set close-on-exec on dhclient.leases for SELinux (#446632) - -* Tue Apr 01 2008 David Cantrell - 12:4.0.0-14 -- Avoid dhclient crash when run via NetworkManager (#439796) - -* Tue Mar 25 2008 David Cantrell - 12:4.0.0-13 -- Update dhclient-script to handle domain-search correctly (#437840) - -* Tue Mar 25 2008 David Cantrell - 12:4.0.0-12 -- Remove Requires on openldap-server (#432180) -- Replace CLIENTBINDIR, ETCDIR, DBDIR, and RUNDIR in the man pages with the - correct paths - -* Wed Feb 13 2008 David Cantrell - 12:4.0.0-11 -- Add missing newline to usage() screen in dhclient - -* Thu Feb 07 2008 David Cantrell - 12:4.0.0-10 -- Save conf files adding '.predhclient.$interface' to the name (#306381) -- Only restore conf files on EXPIRE/FAIL/RELEASE/STOP if there are no other - dhclient processes running (#306381) - -* Wed Feb 06 2008 David Cantrell - 12:4.0.0-9 -- Match LDAP server option values in stables.c and dhcpd.h (#431003) -- Fix invalid sprintf() statement in server/ldap.c (#431003) - -* Wed Feb 06 2008 David Cantrell - 12:4.0.0-8 -- Remove invalid fclose() patch - -* Tue Feb 05 2008 David Cantrell - 12:4.0.0-7 -- Don't leak /var/lib/dhclient/dhclient.leases file descriptors (#429890) - -* Tue Jan 22 2008 David Cantrell - 12:4.0.0-6 -- read_function() comes from the LDAP patch, so fix it there -- Init new struct universe structs in libdhcp4client so we don't crash on - multiple DHCP attempts (#428203) - -* Thu Jan 17 2008 David Cantrell - 12:4.0.0-5 -- Patch read_function() to handle size_t from read() correctly (#429207) - -* Wed Jan 16 2008 David Cantrell - 12:4.0.0-4 -- Fix dhclient.lease file parsing problems (#428785) -- Disable IPv6 support for now as we already ship dhcpv6 (#428987) - -* Tue Jan 15 2008 David Cantrell - 12:4.0.0-3 -- Fix segfault in next_iface4() and next_iface6() (#428870) - -* Mon Jan 14 2008 David Cantrell - 12:4.0.0-2 -- -fvisibility fails me again - -* Mon Jan 14 2008 David Cantrell - 12:4.0.0-1 -- Upgrade to ISC dhcp-4.0.0 (#426634) - - first ISC release to incorporate DHCPv6 protocol support - - source tree now uses GNU autoconf/automake -- Removed the libdhcp4client-static package - +%autochangelog From b90c6969296d86a42d70b766143237424a0b06ed Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sun, 2 Mar 2025 09:12:58 +0100 Subject: [PATCH 75/81] Remove old dhcp-keama sub-package Keama is provided by Kea's sub-package kea-keama. --- dhcp.spec | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 0644445..cf6b9a1 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -7,7 +7,6 @@ # Where dhcp configuration files are stored %global dhcpconfdir %{_sysconfdir}/dhcp - #global prever b1 %global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} @@ -209,15 +208,6 @@ programmers that are interested in internal operation of the code. This package contains doxygen-generated documentation. %endif -%package keama -Summary: Experimental migration assistant for Kea -Provides: deprecated() - -%description keama -The KEA Migration Assistant is an experimental tool which helps to translate -ISC DHCP configurations to Kea. - - %prep %if 0%{?fedora} %{gpgverify} --keyring='%{SOURCE10}' --signature='%{SOURCE9}' --data='%{SOURCE0}' @@ -283,17 +273,9 @@ make %{?_smp_mflags} devel popd %endif -pushd keama -make -j1 -popd - %install make DESTDIR=%{buildroot} install %{?_smp_mflags} -pushd keama -make DESTDIR=%{buildroot} install %{?_smp_mflags} -popd - # We don't want example conf files in /etc rm -f %{buildroot}%{_sysconfdir}/dhclient.conf.example rm -f %{buildroot}%{_sysconfdir}/dhcpd.conf.example @@ -539,9 +521,5 @@ done %doc doc/html/ %endif -%files keama -%{_sbindir}/keama -%attr(0644,root,root) %{_mandir}/man8/keama.8.gz - %changelog %autochangelog From 696d558837515eea4e611ce151d692428f08e8f5 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sun, 2 Mar 2025 09:24:40 +0100 Subject: [PATCH 76/81] Add provided bind version to libs-static --- dhcp.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index cf6b9a1..fa953b1 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -10,6 +10,8 @@ #global prever b1 %global patchver P1 %global DHCPVERSION %{version}%{?prever}%{?patchver:-%{patchver}} +# Bundled bind version +%global BINDVERSION 9.11.36 Summary: Dynamic host configuration protocol software Name: dhcp @@ -179,8 +181,8 @@ This package provides common files used by dhcp and dhclient package. Summary: Shared libraries used by ISC dhcp client and server Provides: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Provides: %{name}-libs = %{epoch}:%{version}-%{release} -Provides: bundled(bind-export-libs) -Provides: bundled(bind) +Provides: bundled(bind-export-libs) = %{BINDVERSION} +Provides: bundled(bind) = %{BINDVERSION} Provides: deprecated() %description libs-static @@ -215,7 +217,9 @@ This package contains doxygen-generated documentation. %setup -n dhcp-%{DHCPVERSION} pushd bind tar -xf bind.tar.gz -ln -s bind-9* bind +# Ensure we have correct bundled bind version specified. +ls -1 bind-%{BINDVERSION} +ln -s bind-%{BINDVERSION} bind popd %autopatch -p1 From 42af780724fe45c716eb51bda7c6285aa87621cd Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 5 Mar 2025 07:16:37 +0100 Subject: [PATCH 77/81] Replace %filter_requires_in macro with __requires_exclude_from --- dhcp.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index fa953b1..11adb0b 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -101,8 +101,7 @@ BuildRequires: systemd-rpm-macros # In _docdir we ship some perl scripts and module from contrib subdirectory. # Because nothing under _docdir is allowed to "require" anything, # prevent _docdir from being scanned. (#674058) -%filter_requires_in %{_docdir} -%{filter_setup} +%global __requires_exclude_from ^%{_docdir}/.*$ %description DHCP (Dynamic Host Configuration Protocol) From 7716face33d8f4f19d9e15d76520f78f03cd0652 Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Sun, 2 Mar 2025 13:06:54 +0100 Subject: [PATCH 78/81] Do not ship dhclient and dhcpd in EPEL10 --- dhcp.spec | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 96 insertions(+), 5 deletions(-) diff --git a/dhcp.spec b/dhcp.spec index 11adb0b..226d1c1 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -1,8 +1,13 @@ # SystemTap support is disabled by default %{!?sdt:%global sdt 0} -#http://lists.fedoraproject.org/pipermail/devel/2011-August/155358.html -%global _hardened_build 1 +%if 0%{?rhel} >= 10 +%bcond_with dhclient +%bcond_with dhcpd +%else +%bcond_without dhclient +%bcond_without dhcpd +%endif # Where dhcp configuration files are stored %global dhcpconfdir %{_sysconfdir}/dhcp @@ -13,6 +18,10 @@ # Bundled bind version %global BINDVERSION 9.11.36 +%global dhcp_EOL_text DHCP is no longer maintained by ISC. This package is provided on\ +best effort basis to cover functionality that is not provided by Kea\ +and should not be used on production systems. + Summary: Dynamic host configuration protocol software Name: dhcp Version: 4.4.3 @@ -106,6 +115,9 @@ BuildRequires: systemd-rpm-macros %description DHCP (Dynamic Host Configuration Protocol) +%{dhcp_EOL_text} + +%if %{with dhcpd} %package server Summary: Provides the ISC DHCP server Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -124,6 +136,9 @@ easier to administer a large network. This package provides the ISC DHCP server. +%{dhcp_EOL_text} +%endif + %package relay Summary: Provides the ISC DHCP relay agent Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -141,6 +156,9 @@ easier to administer a large network. This package provides the ISC DHCP relay agent. +%{dhcp_EOL_text} + +%if %{with dhclient} %package client Summary: Provides the ISC DHCP client daemon and dhclient-script Provides: dhclient = %{epoch}:%{version}-%{release} @@ -161,6 +179,9 @@ easier to administer a large network. This package provides the ISC DHCP client. +%{dhcp_EOL_text} +%endif + %package common Summary: Common files used by ISC dhcp client, server and relay agent BuildArch: noarch @@ -176,6 +197,8 @@ easier to administer a large network. This package provides common files used by dhcp and dhclient package. +%{dhcp_EOL_text} + %package libs-static Summary: Shared libraries used by ISC dhcp client and server Provides: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} @@ -187,6 +210,8 @@ Provides: deprecated() %description libs-static This package contains shared libraries used by ISC dhcp client and server +%{dhcp_EOL_text} + %package devel Summary: Development headers and libraries for interfacing to the DHCP server Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} @@ -196,6 +221,8 @@ Provides: deprecated() Header files and API documentation for using the ISC DHCP libraries. The libdhcpctl and libomapi static libraries are also included in this package. +%{dhcp_EOL_text} + %if ! 0%{?_module_build} %package devel-doc Summary: Developer's Guide for ISC DHCP @@ -209,6 +236,8 @@ programmers that are interested in internal operation of the code. This package contains doxygen-generated documentation. %endif +%{dhcp_EOL_text} + %prep %if 0%{?fedora} %{gpgverify} --keyring='%{SOURCE10}' --signature='%{SOURCE9}' --data='%{SOURCE0}' @@ -268,7 +297,7 @@ CFLAGS="%{optflags} -fno-strict-aliasing -fcommon" \ --enable-paranoia --enable-early-chroot \ --enable-binary-leases \ --with-systemd -make -j1 +%make_build %if ! 0%{?_module_build} pushd doc @@ -277,12 +306,13 @@ popd %endif %install -make DESTDIR=%{buildroot} install %{?_smp_mflags} +%make_install # We don't want example conf files in /etc rm -f %{buildroot}%{_sysconfdir}/dhclient.conf.example rm -f %{buildroot}%{_sysconfdir}/dhcpd.conf.example +%if %{with dhclient} # dhclient-script install -D -p -m 0755 %{SOURCE1} %{buildroot}%{_sbindir}/dhclient-script @@ -298,22 +328,30 @@ install -p -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/NetworkManager/dispatch # pm-utils script to handle suspend/resume and dhclient leases install -D -p -m 0755 %{SOURCE5} %{buildroot}%{_libdir}/pm-utils/sleep.d/56dhclient +%endif # systemd unit files mkdir -p %{buildroot}%{_unitdir} +%if %{with dhcpd} install -m 644 %{SOURCE6} %{buildroot}%{_unitdir} install -m 644 %{SOURCE7} %{buildroot}%{_unitdir} +%endif install -m 644 %{SOURCE8} %{buildroot}%{_unitdir} # systemd-sysusers install -p -D -m 0644 %{SOURCE11} %{buildroot}%{_sysusersdir}/dhcp.conf +%if %{with dhcpd} # Start empty lease databases mkdir -p %{buildroot}%{_localstatedir}/lib/dhcpd/ touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd.leases touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd6.leases +%endif +%if %{with dhclient} mkdir -p %{buildroot}%{_localstatedir}/lib/dhclient/ +%endif +%if %{with dhcpd} # default sysconfig file for dhcpd mkdir -p %{buildroot}%{_sysconfdir}/sysconfig cat < %{buildroot}%{_sysconfdir}/sysconfig/dhcpd @@ -336,11 +374,15 @@ cat < %{buildroot}%{_sysconfdir}/sysconfig/dhcpd # $ systemctl --system daemon-reload # $ systemctl restart dhcpd.service EOF +%endif +%if %{with dhcpd} # Copy sample conf files into position (called by doc macro) cp -p doc/examples/dhclient-dhcpv6.conf client/dhclient6.conf.example cp -p doc/examples/dhcpd-dhcpv6.conf server/dhcpd6.conf.example +%endif +%if %{with dhclient} cat << EOF > client/dhclient-enter-hooks #!/bin/bash @@ -357,7 +399,9 @@ echo "reason: ${reason}" ( set -o posix ; set ) | grep "alias_" ( set -o posix ; set ) | grep "requested_" EOF +%endif +%if %{with dhcpd} # Install default (empty) dhcpd.conf: mkdir -p %{buildroot}%{dhcpconfdir} cat << EOF > %{buildroot}%{dhcpconfdir}/dhcpd.conf @@ -379,10 +423,41 @@ EOF # Install dhcp.schema for LDAP configuration install -D -p -m 0644 contrib/ldap/dhcp.schema %{buildroot}%{_sysconfdir}/openldap/schema/dhcp.schema +%endif # Don't package libtool *.la files find %{buildroot} -type f -name "*.la" -delete -print +%if %{without dhcpd} +rm -frv \ + %{buildroot}%{_sysusersdir}/dhcp.conf \ + %{buildroot}%{_sbindir}/dhcpd \ + %{buildroot}%{_bindir}/omshell \ + %{buildroot}%{_mandir}/man1/omshell.1 \ + %{buildroot}%{_mandir}/man3/dhcpctl.3 \ + %{buildroot}%{_mandir}/man3/omapi.3 \ + %{buildroot}%{_mandir}/man5/dhcpd.conf.5 \ + %{buildroot}%{_mandir}/man5/dhcpd.leases.5 \ + %{buildroot}%{_mandir}/man8/dhcpd.8 \ + %{buildroot}%{_includedir} \ + %{buildroot}/usr/lib64/libdhcp.a \ + %{buildroot}/usr/lib64/libdhcpctl.a \ + %{buildroot}/usr/lib64/libomapi.a \ + %{buildroot}/usr/lib/debug/usr/bin/omshell-*.debug \ + %{buildroot}/usr/lib/debug/usr/sbin/dhcpd-*.debug +%endif + +%if %{without dhclient} +rm -fv \ + %{buildroot}%{_sbindir}/dhclient \ + %{buildroot}%{_mandir}/man5/dhclient.conf.5 \ + %{buildroot}%{_mandir}/man5/dhclient.leases.5 \ + %{buildroot}%{_mandir}/man8/dhclient-script.8 \ + %{buildroot}%{_mandir}/man8/dhclient.8 \ + %{buildroot}/usr/lib/debug/usr/sbin/dhclient-*.debug +%endif + +%if %{with dhcpd} %pre server %sysusers_create_compat %{SOURCE11} @@ -399,6 +474,7 @@ for servicename in dhcpd dhcpd6; do fi done exit 0 +%endif %post relay # Initial installation @@ -413,18 +489,22 @@ for servicename in dhcrelay; do done exit 0 +%if %{with dhcpd} %preun server # Package removal, not upgrade %systemd_preun dhcpd.service dhcpd6.service +%endif %preun relay # Package removal, not upgrade %systemd_preun dhcrelay.service +%if %{with dhcpd} %postun server # Package upgrade, not uninstall %systemd_postun_with_restart dhcpd.service dhcpd6.service +%endif %postun relay # Package upgrade, not uninstall @@ -433,7 +513,12 @@ exit 0 %triggerun -- dhcp # convert DHC*ARGS from /etc/sysconfig/dhc* to /etc/systemd/system/dhc*.service -for servicename in dhcpd dhcpd6 dhcrelay; do +%if %{with dhcpd} +SERVICE_NAMES="dhcpd dhcpd6 dhcrelay" +%else +SERVICE_NAMES="dhcrelay" +%endif +for servicename in ${SERVICE_NAMES}; do if [ -f %{_sysconfdir}/sysconfig/${servicename} ]; then # get DHCPDARGS/DHCRELAYARGS value from /etc/sysconfig/${servicename} source %{_sysconfdir}/sysconfig/${servicename} @@ -454,6 +539,7 @@ for servicename in dhcpd dhcpd6 dhcrelay; do fi done +%if %{with dhcpd} %files server %doc server/dhcpd.conf.example server/dhcpd6.conf.example %doc contrib/ldap/ contrib/dhcp-lease-list.pl @@ -478,12 +564,14 @@ done %if %{sdt} %{tapsetdir}/*.stp %endif +%endif %files relay %{_sbindir}/dhcrelay %attr(0644,root,root) %{_unitdir}/dhcrelay.service %attr(0644,root,root) %{_mandir}/man8/dhcrelay.8.gz +%if %{with dhclient} %files client %doc README.dhclient.d %doc client/dhclient.conf.example client/dhclient6.conf.example client/dhclient-enter-hooks @@ -500,6 +588,7 @@ done %attr(0644,root,root) %{_mandir}/man5/dhclient.leases.5.gz %attr(0644,root,root) %{_mandir}/man8/dhclient.8.gz %attr(0644,root,root) %{_mandir}/man8/dhclient-script.8.gz +%endif %files common %{!?_licensedir:%global license %%doc} @@ -508,6 +597,7 @@ done %attr(0644,root,root) %{_mandir}/man5/dhcp-options.5.gz %attr(0644,root,root) %{_mandir}/man5/dhcp-eval.5.gz +%if %{with dhcpd} %files libs-static %{_libdir}/libdhcp*.a %{_libdir}/libomapi.a @@ -523,6 +613,7 @@ done %files devel-doc %doc doc/html/ %endif +%endif %changelog %autochangelog From 2d6dab7b83ca2fdf42a05bc14b0f01abbb08ba7e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 19:14:26 +0000 Subject: [PATCH 79/81] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From d900da1822e6fc94b58b0e2e6477797db32442ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Hrdina?= Date: Fri, 1 Aug 2025 10:46:46 +0200 Subject: [PATCH 80/81] Update fmf plans and gating --- gating.yaml | 15 ++++++++++++--- plans.fmf | 35 +++++++++++++++++++++++++++++++++++ plans/all.fmf | 6 ------ plans/tier1-public.fmf | 7 ------- 4 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 plans.fmf delete mode 100644 plans/all.fmf delete mode 100644 plans/tier1-public.fmf diff --git a/gating.yaml b/gating.yaml index e4c04e7..71d105b 100644 --- a/gating.yaml +++ b/gating.yaml @@ -1,16 +1,25 @@ --- !Policy product_versions: - fedora-* -decision_contexts: [bodhi_update_push_testing] +decision_context: bodhi_update_push_testing subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} -#gating rawhide +#Rawhide --- !Policy product_versions: - fedora-* -decision_contexts: [bodhi_update_push_stable] +decision_context: bodhi_update_push_stable subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#gating rhel +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..d08e98a --- /dev/null +++ b/plans.fmf @@ -0,0 +1,35 @@ +/tier1-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/tier1/internal + +/tier1-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/tier1/public + +/tier2-tier3-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/tier2-tier3/internal + +/tier2-tier3-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/tier2-tier3/public + +/others-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/others/internal + +/others-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/dhcp.git + name: /plans/others/public diff --git a/plans/all.fmf b/plans/all.fmf deleted file mode 100644 index 4312a16..0000000 --- a/plans/all.fmf +++ /dev/null @@ -1,6 +0,0 @@ -summary: Test plan with all beakerlib tests -discover: - how: fmf - url: https://src.fedoraproject.org/tests/dhcp.git -execute: - how: tmt diff --git a/plans/tier1-public.fmf b/plans/tier1-public.fmf deleted file mode 100644 index b218060..0000000 --- a/plans/tier1-public.fmf +++ /dev/null @@ -1,7 +0,0 @@ -summary: Public (Fedora) Tier1 beakerlib tests -discover: - how: fmf - url: https://src.fedoraproject.org/tests/dhcp.git - filter: 'tier: 1' -execute: - how: tmt From 296b65af2c01f9247a6cc9bd68e1bb4dc10eaadc Mon Sep 17 00:00:00 2001 From: Martin Osvald Date: Wed, 7 Jan 2026 07:54:21 +0100 Subject: [PATCH 81/81] Create /var/lib/dhcpd through systemd-tmpfiles --- dhcp.spec | 8 ++++++-- dhcp.sysusers => systemd-sysusers.conf | 0 systemd-tmpfiles.conf | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) rename dhcp.sysusers => systemd-sysusers.conf (100%) create mode 100644 systemd-tmpfiles.conf diff --git a/dhcp.spec b/dhcp.spec index 226d1c1..f35b98b 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -51,7 +51,8 @@ Source5: 56dhclient Source6: dhcpd.service Source7: dhcpd6.service Source8: dhcrelay.service -Source11: dhcp.sysusers +Source11: systemd-sysusers.conf +Source12: systemd-tmpfiles.conf Patch1: 0001-change-bug-url.patch Patch2: 0002-additional-dhclient-options.patch @@ -338,8 +339,9 @@ install -m 644 %{SOURCE7} %{buildroot}%{_unitdir} %endif install -m 644 %{SOURCE8} %{buildroot}%{_unitdir} -# systemd-sysusers +# Install systemd sysusers and tmpfiles configs install -p -D -m 0644 %{SOURCE11} %{buildroot}%{_sysusersdir}/dhcp.conf +install -p -D -m 0644 %{SOURCE12} %{buildroot}%{_tmpfilesdir}/dhcp.conf %if %{with dhcpd} # Start empty lease databases @@ -431,6 +433,7 @@ find %{buildroot} -type f -name "*.la" -delete -print %if %{without dhcpd} rm -frv \ %{buildroot}%{_sysusersdir}/dhcp.conf \ + %{buildroot}%{_tmpfilesdir}/dhcp.conf \ %{buildroot}%{_sbindir}/dhcpd \ %{buildroot}%{_bindir}/omshell \ %{buildroot}%{_mandir}/man1/omshell.1 \ @@ -555,6 +558,7 @@ done %attr(0644,root,root) %{_unitdir}/dhcpd.service %attr(0644,root,root) %{_unitdir}/dhcpd6.service %{_sysusersdir}/dhcp.conf +%{_tmpfilesdir}/dhcp.conf %{_sbindir}/dhcpd %{_bindir}/omshell %attr(0644,root,root) %{_mandir}/man1/omshell.1.gz diff --git a/dhcp.sysusers b/systemd-sysusers.conf similarity index 100% rename from dhcp.sysusers rename to systemd-sysusers.conf diff --git a/systemd-tmpfiles.conf b/systemd-tmpfiles.conf new file mode 100644 index 0000000..14fae32 --- /dev/null +++ b/systemd-tmpfiles.conf @@ -0,0 +1 @@ +d /var/lib/dhcpd 0755 dhcpd dhcpd -