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 <r...@pengutronix.de>
---
 ...0001-Fixed-gcc-10-compilation-issues.patch | 82 +++++++++++++++++++
 patches/dhcp-4.4.2/series                     |  4 +
 rules/dhcp.in                                 |  2 +
 rules/dhcp.make                               | 48 ++++++++---
 4 files changed, 126 insertions(+), 10 deletions(-)
 create mode 100644 
patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
 create mode 100644 patches/dhcp-4.4.2/series

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 000000000000..f0e3cc450bbe
--- /dev/null
+++ b/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
@@ -0,0 +1,82 @@
+From: Thomas Markwalder <tm...@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 000000000000..de5f31877455
--- /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 924882bf925b..7e609f74d432 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 5452f4676adc..5cdc7be214ca 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 <m...@pengutronix.de>
+#               2021 by Roland Hieber, Pengutronix <r...@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
-- 
2.29.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to 
ptxdist-requ...@pengutronix.de

Reply via email to