Hello, See below for an update to net/kea from 1.0.0 to 1.1.0.
>From the release statement (https://kb.isc.org/article/AA-01428/0/Kea-1.1.0-Release-Notes.html): === * Additional Database Backend - Kea 1.1.0 has added preliminary support for Cassandra as a database backend. In this release of Kea it can only be used to store lease information, it is not able store host reservations. Cassandra support is currently considered experimental. Use with caution. * Host Reservations - Kea 1.0 contained limited support for storing host reservations in the database backend. Kea 1.1.0 has expanded that capability, allowing host reservations to be stored in a MySQL or PostgreSQL database. In particular, Kea 1.1.0: - Adds host reservation (DHCPv4 and DHCPv6) using the PostgreSQL backend. - Adds host reservation for DHCPv6 to the existing MySQL support. - Significantly extends the existing host reservation capabilities to include reservations of specific DHCP options, reservations of siaddr, sname, and file fields within DHCPv4 messages, and reservations of multiple IPv6 addresses/prefixes. - Allows the MySQL or PostgreSQL host reservation database to be configured read-only, in which case Kea will be able to retrieve reservations from it, but not insert or update existing reservations. This feature is useful when a database (or database view) exists for the particular deployment and the administrator doesn't want to grant read-write access for security reasons. * Client Classification - In Kea 1.1 the client classification system has been expanded. A class definition contains a name and a test expression of arbitrary complexity; if the test expression evaluates to "true" the client is a member of that class. A client may be a member of multiple classes and can acquire options from different classes. If the configuration contains multiple definitions for data for an option in two or more of the global, class, subnet or host entries, the server will choose the definition from the most specific entry. There are a number of objects and operators available for use in the test expression. - Operators include: equal, not, and, or, substring, concat - Objects include: - literals: string, hexadecimal, IP address and integer - options: existence and content - relay options for DHCPv4 and DHCPv6: existence and content - subfields within vendor and vendor class options: existence, enterprise-id value and content - selected fields from DHCPv4 and DHCPv6 packets - Classes may be used to select subnets - Classes and class specific subnets may contain option data to serve to clients within that class * Hook Library Parameters - It is now possible to specify parameters for hook libraries in the Kea configuration file. In earlier versions of Kea, hook library authors had to use a external mechanism (such as file of a known name) to pass information across. * DHCPv4-over-DHCPv6 - RFC7341 (https://tools.ietf.org/html/rfc7341) defines an architecture that allows dual-stack clients to communicate with DHCPv4 server in IPv6-only networks. Kea 1.1 introduces support for this mode of operation. It requires running both DHCPv4 and DHCPv6 servers in special mode, where DHCPv6 component does not allocate anything, but decapsulates incoming DHCPv4 messages, sends the to the DHCPv4 server and then relay back the responses. === Note that I have not addded any build options for the cassandra version, since there is no cassandra port available. This also brings up another question of mine: where to place logs. Currently the default setup creates logs in the following places: /var/kea/kea.log /var/log/kea-ddns.log /var/log/kea-dhcp4.log /var/log/kea-dhcp6.log Of course the port does not do anything to setup rotation of these logs. Any input how this should be handled? There are currently some problems with the syslog code (formatting of the messages and problems with setting the syslog facility) that is stopping me from making that the default configuration. These questions apply for the version currently in-tree, so not a new problem introduced by the update. The syslog issues as well as the added patches for fixing the test suite are being discussed upstream in this thread: https://lists.isc.org/pipermail/kea-users/2016-September/000547.html https://lists.isc.org/pipermail/kea-users/2016-October/000560.html Other then that the library versions of the port have been bumped based on shared_libs.log in WRKSRC. -- Patrik Lundin Index: Makefile =================================================================== RCS file: /cvs/ports/net/kea/Makefile,v retrieving revision 1.5 diff -u -p -u -r1.5 Makefile --- Makefile 14 Mar 2016 06:46:24 -0000 1.5 +++ Makefile 9 Oct 2016 21:10:57 -0000 @@ -2,28 +2,28 @@ COMMENT= high-performance and extensible DHCP server engine from ISC -VERSION= 1.0.0 +VERSION= 1.1.0 DISTNAME= kea-${VERSION} PKGNAME= ${DISTNAME:S/-P/pl/} SHARED_LIBS += kea-asiodns 0.0 # 0.0 -SHARED_LIBS += kea-asiolink 0.0 # 2.0 +SHARED_LIBS += kea-asiolink 1.0 # 3.0 SHARED_LIBS += kea-cc 0.0 # 1.0 -SHARED_LIBS += kea-cfgclient 0.0 # 2.0 +SHARED_LIBS += kea-cfgclient 0.1 # 2.1 SHARED_LIBS += kea-cryptolink 0.0 # 1.0 -SHARED_LIBS += kea-dhcp++ 0.0 # 3.0 -SHARED_LIBS += kea-dhcp_ddns 0.0 # 1.0 -SHARED_LIBS += kea-dhcpsrv 0.0 # 4.0 +SHARED_LIBS += kea-dhcp++ 1.0 # 4.1 +SHARED_LIBS += kea-dhcp_ddns 0.1 # 1.1 +SHARED_LIBS += kea-dhcpsrv 1.0 # 6.0 SHARED_LIBS += kea-dns++ 0.0 # 2.0 -SHARED_LIBS += kea-eval 0.0 # 3.0 +SHARED_LIBS += kea-eval 1.0 # 4.0 SHARED_LIBS += kea-exceptions 0.0 # 0.0 -SHARED_LIBS += kea-hooks 0.0 # 1.0 -SHARED_LIBS += kea-log 0.0 # 1.0 +SHARED_LIBS += kea-hooks 1.0 # 2.0 +SHARED_LIBS += kea-log 1.0 # 2.0 SHARED_LIBS += kea-stats 0.0 # 1.0 -SHARED_LIBS += kea-threads 0.0 # 0.0 +SHARED_LIBS += kea-threads 1.0 # 1.0 SHARED_LIBS += kea-util-io 0.0 # 0.0 -SHARED_LIBS += kea-util 0.0 # 1.0 +SHARED_LIBS += kea-util 1.0 # 2.0 CATEGORIES= net Index: distinfo =================================================================== RCS file: /cvs/ports/net/kea/distinfo,v retrieving revision 1.2 diff -u -p -u -r1.2 distinfo --- distinfo 3 Jan 2016 14:41:11 -0000 1.2 +++ distinfo 9 Oct 2016 21:10:57 -0000 @@ -1,2 +1,2 @@ -SHA256 (kea-1.0.0.tar.gz) = lphP6Rj5Ez0I0xFerAEtKIFNjM+vJSiUmfAo3lYTWv4= -SIZE (kea-1.0.0.tar.gz) = 4559334 +SHA256 (kea-1.1.0.tar.gz) = w9l67k+qGWU//m0355fi+/YyEkzQuYu1Avm5e1o4PC0= +SIZE (kea-1.1.0.tar.gz) = 4934875 Index: patches/patch-src_bin_dhcp4_tests_dhcp4_process_tests_sh_in =================================================================== RCS file: patches/patch-src_bin_dhcp4_tests_dhcp4_process_tests_sh_in diff -N patches/patch-src_bin_dhcp4_tests_dhcp4_process_tests_sh_in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_bin_dhcp4_tests_dhcp4_process_tests_sh_in 9 Oct 2016 21:10:57 -0000 @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/bin/dhcp4/tests/dhcp4_process_tests.sh.in.orig Sun Sep 25 20:58:05 2016 ++++ src/bin/dhcp4/tests/dhcp4_process_tests.sh.in Mon Oct 3 21:04:41 2016 +@@ -318,7 +318,7 @@ lfc_timer_test() { + sleep 1 + + # Modify the interval. +- LFC_CONFIG=$(printf "${CONFIG}" | sed -e 's/\"lfc-interval\": 1/\"lfc-interval\": 2/g') ++ LFC_CONFIG=$(printf "${LFC_CONFIG}" | sed -e 's/\"lfc-interval\": 1/\"lfc-interval\": 2/g') + # Create new configuration file. + create_config "${LFC_CONFIG}" + Index: patches/patch-src_bin_dhcp6_tests_dhcp6_process_tests_sh_in =================================================================== RCS file: patches/patch-src_bin_dhcp6_tests_dhcp6_process_tests_sh_in diff -N patches/patch-src_bin_dhcp6_tests_dhcp6_process_tests_sh_in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_bin_dhcp6_tests_dhcp6_process_tests_sh_in 9 Oct 2016 21:10:57 -0000 @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/bin/dhcp6/tests/dhcp6_process_tests.sh.in.orig Sun Sep 25 20:58:05 2016 ++++ src/bin/dhcp6/tests/dhcp6_process_tests.sh.in Mon Oct 3 21:04:41 2016 +@@ -321,7 +321,7 @@ lfc_timer_test() { + sleep 1 + + # Modify the interval. +- LFC_CONFIG=$(printf "${CONFIG}" | sed -e 's/\"lfc-interval\": 1/\"lfc-interval\": 2/g') ++ LFC_CONFIG=$(printf "${LFC_CONFIG}" | sed -e 's/\"lfc-interval\": 1/\"lfc-interval\": 2/g') + # Create new configuration file. + create_config "${LFC_CONFIG}" + Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/net/kea/pkg/PLIST,v retrieving revision 1.2 diff -u -p -u -r1.2 PLIST --- pkg/PLIST 3 Jan 2016 14:41:11 -0000 1.2 +++ pkg/PLIST 9 Oct 2016 21:10:57 -0000 @@ -5,6 +5,8 @@ include/kea/ include/kea/asiolink/ include/kea/asiolink/io_address.h +include/kea/cc/ +include/kea/cc/data.h include/kea/config.h include/kea/dhcp/ include/kea/dhcp/classify.h @@ -137,17 +139,26 @@ share/doc/kea/examples/ddns/ share/doc/kea/examples/ddns/sample1.json share/doc/kea/examples/ddns/template.json share/doc/kea/examples/kea4/ +share/doc/kea/examples/kea4/backends.json +share/doc/kea/examples/kea4/classify.json share/doc/kea/examples/kea4/hooks.json share/doc/kea/examples/kea4/leases-expiration.json share/doc/kea/examples/kea4/multiple-options.json +share/doc/kea/examples/kea4/mysql-reservations.json +share/doc/kea/examples/kea4/pgsql-reservations.json share/doc/kea/examples/kea4/reservations.json share/doc/kea/examples/kea4/several-subnets.json share/doc/kea/examples/kea4/single-subnet.json share/doc/kea/examples/kea6/ share/doc/kea/examples/kea6/advanced.json +share/doc/kea/examples/kea6/backends.json +share/doc/kea/examples/kea6/classify.json +share/doc/kea/examples/kea6/duid.json share/doc/kea/examples/kea6/hooks.json share/doc/kea/examples/kea6/leases-expiration.json share/doc/kea/examples/kea6/multiple-options.json +share/doc/kea/examples/kea6/mysql-reservations.json +share/doc/kea/examples/kea6/pgsql-reservations.json share/doc/kea/examples/kea6/reservations.json share/doc/kea/examples/kea6/several-subnets.json share/doc/kea/examples/kea6/simple.json @@ -181,14 +192,21 @@ share/kea/dhcp4.spec share/kea/dhcp6.spec share/kea/scripts/ share/kea/scripts/admin-utils.sh +share/kea/scripts/cql/ +share/kea/scripts/cql/dhcpdb_create.cql +share/kea/scripts/cql/dhcpdb_drop.cql share/kea/scripts/mysql/ share/kea/scripts/mysql/dhcpdb_create.mysql +share/kea/scripts/mysql/dhcpdb_drop.mysql share/kea/scripts/mysql/upgrade_1.0_to_2.0.sh share/kea/scripts/mysql/upgrade_2.0_to_3.0.sh share/kea/scripts/mysql/upgrade_3.0_to_4.0.sh share/kea/scripts/mysql/upgrade_4.0_to_4.1.sh +share/kea/scripts/mysql/upgrade_4.1_to_5.0.sh share/kea/scripts/pgsql/ share/kea/scripts/pgsql/dhcpdb_create.pgsql +share/kea/scripts/pgsql/dhcpdb_drop.pgsql share/kea/scripts/pgsql/upgrade_1.0_to_2.0.sh @sample ${LOCALSTATEDIR}/kea/ +share/kea/scripts/pgsql/upgrade_2.0_to_3.0.sh @rcscript ${RCDIR}/kea