kea: fix compilation with libcxx
authorRosen Penev <rosenp@gmail.com>
Fri, 30 Oct 2020 03:57:20 +0000 (20:57 -0700)
committerRosen Penev <rosenp@gmail.com>
Sun, 1 Nov 2020 01:23:28 +0000 (18:23 -0700)
Boost headers try to include experimental/string_view when std is less
than c++17. This does not work ith libcxx where this header is not
present.

Refreshed patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
net/kea/Makefile
net/kea/patches/001-fix-cross-compile.patch
net/kea/patches/002-fix-host-compile.patch
net/kea/patches/003-no-test-compile.patch
net/kea/patches/004-replace-rev-with-awk.patch

index 0b8ebb9264a5484130ff12ed4433377b4e9c7d17..b36783831b2a7fed011a24a85d780ecb7acdb41d 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kea
 PKG_VERSION:=1.8.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.isc.org/isc/kea/$(PKG_VERSION)
@@ -178,7 +178,8 @@ CONFIGURE_VARS += \
 TARGET_CXXFLAGS += \
        $(FPIC) \
        -fdata-sections \
-       -ffunction-sections
+       -ffunction-sections \
+       -std=c++17
 
 TARGET_LDFLAGS += \
        -Wl,--gc-sections,--as-needed
index 3189c654c77a0cb86abd739f65e7e2db58e748f1..d687817732131fc65b42501bba4047992739ac71 100644 (file)
@@ -1,6 +1,8 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -542,8 +542,8 @@ AC_TRY_COMPILE([
+@@ -580,10 +580,10 @@ AC_TRY_COMPILE([
+ usable_regex=
  AC_MSG_CHECKING(for usuable C++11 regex)
 -AC_TRY_RUN([
 +AC_TRY_COMPILE([
index 01f20d1a251e12d7725699e25bbb67b059b165af..9ab94a88705079ea7533fa6c796678a630c30d4a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/m4macros/ax_crypto.m4
 +++ b/m4macros/ax_crypto.m4
-@@ -454,7 +454,7 @@ EOF
+@@ -330,7 +330,7 @@ EOF
      dnl Check availability of SHA-2
      AC_MSG_CHECKING([support of SHA-2])
      LIBS_SAVED=${LIBS}
index ee851d64ed0ddfdfd3b425089732598456e41b43..a6c4a40e4cc48745a15c1d532eb2176f1254c948 100644 (file)
@@ -3,7 +3,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  # Install kea-admin in sbin.
  sbin_SCRIPTS  = kea-admin
 --- a/src/bin/agent/Makefile.am
@@ -11,7 +11,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/d2/Makefile.am
@@ -19,7 +19,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/dhcp4/Makefile.am
@@ -27,7 +27,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/dhcp6/Makefile.am
@@ -35,7 +35,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/keactrl/Makefile.am
@@ -43,7 +43,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  # Install keactrl in sbin and the keactrl.conf required by the keactrl
  # in etc. keactrl will look for its configuration file in the etc folder.
 --- a/src/bin/lfc/Makefile.am
@@ -51,7 +51,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/netconf/Makefile.am
@@ -59,7 +59,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/perfdhcp/Makefile.am
@@ -67,7 +67,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -I$(top_srcdir)/src/bin -I$(top_builddir)/src/bin
 --- a/src/bin/shell/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  pkgpython_PYTHON = kea_conn.py kea_connector2.py kea_connector3.py
-
 --- a/src/hooks/dhcp/high_availability/Makefile.am
 +++ b/src/hooks/dhcp/high_availability/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . libloadtests tests
 +SUBDIRS = . libloadtests
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/hooks/dhcp/lease_cmds/Makefile.am
@@ -91,7 +91,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/hooks/dhcp/stat_cmds/Makefile.am
@@ -99,7 +99,7 @@
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/hooks/dhcp/user_chk/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/asiodns/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/asiolink/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/cc/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/cfgrpt/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 --- a/src/lib/config/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/config_backend/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/cql/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES) $(CQL_CPPFLAGS)
 --- a/src/lib/cryptolink/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES) $(CRYPTO_CFLAGS) $(CRYPTO_INCLUDES)
 --- a/src/lib/database/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/dhcp/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/dhcp_ddns/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/dhcpsrv/Makefile.am
 +++ b/src/lib/dhcpsrv/Makefile.am
 @@ -1,6 +1,6 @@
  AUTOMAKE_OPTIONS = subdir-objects
-
 -SUBDIRS = . testutils tests benchmarks
 +SUBDIRS = . benchmarks
-
- dhcp_data_dir = @localstatedir@/@PACKAGE@
- kea_lfc_location = @prefix@/sbin/kea-lfc
+ # DATA_DIR is the directory where to put default CSV files and the DHCPv6
+ # server ID file (i.e. the file where the server finds its DUID at startup).
 --- a/src/lib/dns/Makefile.am
 +++ b/src/lib/dns/Makefile.am
 @@ -1,6 +1,6 @@
  AUTOMAKE_OPTIONS = subdir-objects
-
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/eval/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/exceptions/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CXXFLAGS=$(KEA_CXXFLAGS)
 --- a/src/lib/hooks/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/http/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/log/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = interprocess . compiler tests
 +SUBDIRS = interprocess . compiler
-
  AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/log/interprocess/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += -DLOCKFILE_DIR=\"$(localstatedir)/run/$(PACKAGE_NAME)\"
 --- a/src/lib/mysql/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS)
 --- a/src/lib/pgsql/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS)
 --- a/src/lib/process/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/util/Makefile.am
 +++ b/src/lib/util/Makefile.am
 @@ -1,6 +1,6 @@
  AUTOMAKE_OPTIONS = subdir-objects
-
 -SUBDIRS = . io unittests tests python
 +SUBDIRS = . io unittests python
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES)
 --- a/src/lib/yang/Makefile.am
 @@ -1,4 +1,4 @@
 -SUBDIRS = . testutils pretests tests
 +SUBDIRS = .
-
  AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
  AM_CPPFLAGS += $(BOOST_INCLUDES) $(SYSREPO_CPPFLAGS)
index 99ff71af5a59ea65c8762ba1b3dbdc9c2f880380..13d7991bf8f059981cf2151b4da90de364855a93 100644 (file)
@@ -6,6 +6,6 @@
      local conf_name
 -    conf_name=$(basename -- "${kea_config_file}" | rev | cut -f2- -d'.' | rev)
 +    conf_name=$(basename -- "${kea_config_file}" | awk '{for(i=length($0); i>0;i--) printf (substr($0,i,1));}' | cut -f2- -d'.' | awk '{for(i=length($0); i>0;i--) printf (substr($0,i,1));}')
-
      # Default the directory to --localstatedir / run
      local pid_file_dir