summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Hieber <rhi@pengutronix.de>2021-05-24 20:35:00 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2021-05-26 11:40:54 +0200
commit2285cb6aa70847c7a2bf793b3f50a7338ea6c789 (patch)
tree5804639df3c6a266eb9b810da678595889e36550
parent5269b5ba6b58a2fc7a977fd797eba67dec9beb2c (diff)
downloadptxdist-2285cb6aa70847c7a2bf793b3f50a7338ea6c789.tar.gz
ptxdist-2285cb6aa70847c7a2bf793b3f50a7338ea6c789.tar.xz
dhcp: version bump 4.1.2 -> 4.4.2
Don't use the in-tree bind because dhcp's make will try to configure it in the compile stage. Zlib is now required too. Clean up the old-style variable names too, and pin down all configure options. The package now builds fine without the need for removing the -Werror compiler option. The license was changed to MPL-2.0 in most places, also add the respective license MD5 sums. A patch is needed to make it build with GCC 10. Signed-off-by: Roland Hieber <rhi@pengutronix.de> Message-Id: <20210524183500.32170-3-rhi@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch82
-rw-r--r--patches/dhcp-4.4.2/series4
-rw-r--r--rules/dhcp.in2
-rw-r--r--rules/dhcp.make48
4 files changed, 126 insertions, 10 deletions
diff --git a/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch b/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
new file mode 100644
index 000000000..f0e3cc450
--- /dev/null
+++ b/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
@@ -0,0 +1,82 @@
+From: Thomas Markwalder <tmark@isc.org>
+Date: Thu, 30 Jul 2020 10:01:36 -0400
+Subject: [PATCH] Fixed gcc 10 compilation issues
+
+client/dhclient.c
+relay/dhcrelay.c
+ extern'ed local_port,remote_port
+
+common/discover.c
+ init local_port,remote_port to 0
+
+server/mdb.c
+ extern'ed dhcp_type_host
+
+server/mdb6.c
+ create_prefix6() - eliminated memcpy string overflow error
+
+Origin: https://sources.debian.org/patches/isc-dhcp/4.4.1-2.2/Fixed_gcc_10_compilation_issues.patch/
+---
+ client/dhclient.c | 5 +++--
+ relay/dhcrelay.c | 4 ++--
+ server/mdb.c | 2 +-
+ server/mdb6.c | 2 +-
+ 4 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/client/dhclient.c b/client/dhclient.c
+index 189e527094e8..7a7837cb8152 100644
+--- a/client/dhclient.c
++++ b/client/dhclient.c
+@@ -83,8 +83,9 @@ static const char message [] = "Internet Systems Consortium DHCP Client";
+ static const char url [] = "For info, please visit https://www.isc.org/software/dhcp/";
+ #endif /* UNIT_TEST */
+
+-u_int16_t local_port = 0;
+-u_int16_t remote_port = 0;
++extern u_int16_t local_port;
++extern u_int16_t remote_port;
++
+ #if defined(DHCPv6) && defined(DHCP4o6)
+ int dhcp4o6_state = -1; /* -1 = stopped, 0 = polling, 1 = started */
+ #endif
+diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c
+index 883d5058f2ee..7211e3bbbec9 100644
+--- a/relay/dhcrelay.c
++++ b/relay/dhcrelay.c
+@@ -95,8 +95,8 @@ enum { forward_and_append, /* Forward and append our own relay option. */
+ forward_untouched, /* Forward without changes. */
+ discard } agent_relay_mode = forward_and_replace;
+
+-u_int16_t local_port;
+-u_int16_t remote_port;
++extern u_int16_t local_port;
++extern u_int16_t remote_port;
+
+ /* Relay agent server list. */
+ struct server_list {
+diff --git a/server/mdb.c b/server/mdb.c
+index ff8a707fac1b..8266d76432b8 100644
+--- a/server/mdb.c
++++ b/server/mdb.c
+@@ -67,7 +67,7 @@ static host_id_info_t *host_id_info = NULL;
+
+ int numclasseswritten;
+
+-omapi_object_type_t *dhcp_type_host;
++extern omapi_object_type_t *dhcp_type_host;
+
+ isc_result_t enter_class(cd, dynamicp, commit)
+ struct class *cd;
+diff --git a/server/mdb6.c b/server/mdb6.c
+index da7baf6e50df..ebe01e5607cb 100644
+--- a/server/mdb6.c
++++ b/server/mdb6.c
+@@ -1945,7 +1945,7 @@ create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref,
+ }
+ new_ds.data = new_ds.buffer->data;
+ memcpy(new_ds.buffer->data, ds.data, ds.len);
+- memcpy(new_ds.buffer->data + ds.len, &tmp, sizeof(tmp));
++ memcpy(&new_ds.buffer->data[0] + ds.len, &tmp, sizeof(tmp));
+ data_string_forget(&ds, MDL);
+ data_string_copy(&ds, &new_ds, MDL);
+ data_string_forget(&new_ds, MDL);
diff --git a/patches/dhcp-4.4.2/series b/patches/dhcp-4.4.2/series
new file mode 100644
index 000000000..de5f31877
--- /dev/null
+++ b/patches/dhcp-4.4.2/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Fixed-gcc-10-compilation-issues.patch
+# dd19bdbd49b780e973ed9392604d03fe - git-ptx-patches magic
diff --git a/rules/dhcp.in b/rules/dhcp.in
index 924882bf9..7e609f74d 100644
--- a/rules/dhcp.in
+++ b/rules/dhcp.in
@@ -2,6 +2,8 @@
menuconfig DHCP
tristate
prompt "dhcp "
+ select BIND
+ select ZLIB
help
This is the DHCP server from version 3 of the Internet Software
Consortium DHCP package. For more information visit the ISC web
diff --git a/rules/dhcp.make b/rules/dhcp.make
index 5452f4676..5cdc7be21 100644
--- a/rules/dhcp.make
+++ b/rules/dhcp.make
@@ -3,6 +3,7 @@
# Copyright (C) 2003 by Benedikt Spranger
# 2009 by Wolfram Sang, Pengutronix
# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
+# 2021 by Roland Hieber, Pengutronix <rhi@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -16,17 +17,21 @@ PACKAGES-$(PTXCONF_DHCP) += dhcp
#
# Paths and names
#
-DHCP_VERSION := 4.1.2
-DHCP_MD5 := 23bc6016297aa831dc9f321403e30ddc
+DHCP_VERSION := 4.4.2
+DHCP_MD5 := 2afdaf8498dc1edaf3012efdd589b3e1
DHCP := dhcp-$(DHCP_VERSION)
DHCP_SUFFIX := tar.gz
DHCP_URL := \
+ https://ftp.isc.org/isc/dhcp/$(DHCP_VERSION)/$(DHCP).$(DHCP_SUFFIX) \
https://ftp.isc.org/isc/dhcp/$(DHCP).$(DHCP_SUFFIX) \
https://ftp.isc.org/isc/dhcp/dhcp-4.1-history/$(DHCP).$(DHCP_SUFFIX)
DHCP_SOURCE := $(SRCDIR)/$(DHCP).$(DHCP_SUFFIX)
DHCP_DIR := $(BUILDDIR)/$(DHCP)
-DHCP_LICENSE := ISC
-
+DHCP_LICENSE := MPL-2.0 AND BSD-3-Clause AND ISC
+DHCP_LICENSE_FILES := \
+ file://LICENSE;md5=b9c6e660b3d9260de9a342d2fb77540a \
+ file://server/ldap.c;startline=6;endline=35;md5=8e5f9d2cd6b641d599871fd2430708c4 \
+ file://server/ldap_casa.c;startline=35;endline=48;md5=d2ea64a00aeacb447c6634d984486afe
# ----------------------------------------------------------------------------
# Prepare
@@ -35,13 +40,36 @@ DHCP_LICENSE := ISC
#
# autoconf
#
-DHCP_AUTOCONF := \
+DHCP_CONF_TOOL := autoconf
+DHCP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --$(call ptx/endis, PTXCONF_GLOBAL_IPV6)-dhcpv6
-
-# overwrite CFLAGS to remove -Werror
-DHCP_MAKE_OPT := \
- CFLAGS="-g -O2 -Wall -fno-strict-aliasing"
+ --disable-debug \
+ --enable-failover \
+ --disable-execute \
+ --enable-tracing \
+ --enable-delayed-ack \
+ --$(call ptx/endis, PTXCONF_GLOBAL_IPV6)-dhcpv6 \
+ --disable-dhcpv4o6 \
+ --disable-relay-port \
+ --enable-paranoia \
+ --enable-early-chroot \
+ --disable-ipv4-pktinfo \
+ --enable-use-sockets \
+ --disable-log-pid \
+ --disable-binary-leases \
+ --disable-kqueue \
+ --disable-epoll \
+ --disable-devpoll \
+ --disable-libtool \
+ --disable-bind-install \
+ --without-atf \
+ --with-randomdev=/dev/random \
+ --with-libbind=$(SYSROOT)/usr \
+ --without-bind-extra-config \
+ --without-ldap \
+ --without-ldapcrypto \
+ --without-ldap-gssapi \
+ --without-ldapcasa
# ----------------------------------------------------------------------------
# Target-Install