Merge ~ahasenack/ubuntu/+source/isc-kea:focal-isc-kea-bump-1.6.1 into ubuntu/+source/isc-kea:ubuntu/devel

Proposed by Andreas Hasenack
Status: Merged
Approved by: Andreas Hasenack
Approved revision: 450a875fd71f61bd0ba666782c5dc69feb253f33
Merged at revision: 450a875fd71f61bd0ba666782c5dc69feb253f33
Proposed branch: ~ahasenack/ubuntu/+source/isc-kea:focal-isc-kea-bump-1.6.1
Merge into: ubuntu/+source/isc-kea:ubuntu/devel
Diff against target: 366651 lines (+160532/-41078)
1250 files modified
AUTHORS (+14/-18)
CONTRIBUTING.md (+251/-0)
COPYING (+1/-1)
ChangeLog (+916/-32)
INSTALL (+4/-3)
Makefile.am (+13/-6)
Makefile.in (+28/-48)
README (+9/-10)
config.guess (+79/-58)
config.h (+21/-9)
config.h.in (+15/-3)
config.sub (+25/-13)
configure (+1042/-757)
configure.ac (+290/-106)
debian/changelog (+46/-0)
debian/control (+3/-0)
debian/docs (+2/-0)
debian/kea-common.install (+2/-1)
debian/kea-ctrl-agent.service (+0/-1)
debian/kea-dev.install (+0/-1)
debian/kea-dhcp-ddns-server.service (+0/-1)
debian/kea-dhcp4-server.service (+0/-1)
debian/kea-dhcp6-server.service (+0/-1)
debian/kea-doc.install (+2/-6)
debian/not-installed (+2/-0)
debian/patches/0003-kea_admin_fix (+2/-4)
debian/patches/0006-fix-logger-path.patch (+61/-0)
debian/patches/0007-keyctrl-colored-ddns-status.patch (+13/-0)
debian/patches/0008-change-default-ca-port-to-match.patch (+286/-0)
debian/patches/mysql8-mybool-ubuntu.patch (+33/-0)
debian/patches/series (+4/-3)
debian/python3-kea-connector.install (+2/-2)
debian/rules (+7/-6)
dev/null (+0/-637)
doc/Makefile.am (+7/-108)
doc/Makefile.in (+15/-110)
doc/devel/Doxyfile (+58/-57)
doc/devel/Makefile.am (+20/-0)
doc/devel/Makefile.in (+30/-36)
doc/devel/README (+5/-0)
doc/devel/contribute.dox (+4/-242)
doc/devel/doc.dox (+14/-22)
doc/devel/mainpage.dox (+2/-2)
doc/devel/unit-tests.dox (+40/-7)
doc/examples/agent/comments.json (+1/-5)
doc/examples/agent/simple.json (+6/-10)
doc/examples/ddns/comments.json (+11/-5)
doc/examples/ddns/sample1.json (+15/-6)
doc/examples/ddns/template.json (+68/-51)
doc/examples/kea4/advanced.json (+9/-9)
doc/examples/kea4/all-keys-netconf.json (+859/-0)
doc/examples/kea4/all-keys.json (+149/-16)
doc/examples/kea4/backends.json (+2/-4)
doc/examples/kea4/cassandra.json (+35/-4)
doc/examples/kea4/classify.json (+1/-3)
doc/examples/kea4/classify2.json (+1/-3)
doc/examples/kea4/comments.json (+1/-3)
doc/examples/kea4/config-backend.json (+89/-0)
doc/examples/kea4/dhcpv4-over-dhcpv6.json (+1/-5)
doc/examples/kea4/global-reservations.json (+1/-3)
doc/examples/kea4/ha-load-balancing-primary.json (+5/-8)
doc/examples/kea4/hooks-radius.json (+3/-3)
doc/examples/kea4/hooks.json (+1/-1)
doc/examples/kea4/leases-expiration.json (+5/-4)
doc/examples/kea4/multiple-options.json (+1/-3)
doc/examples/kea4/mysql-reservations.json (+1/-3)
doc/examples/kea4/pgsql-reservations.json (+1/-3)
doc/examples/kea4/reservations.json (+1/-3)
doc/examples/kea4/several-subnets.json (+1/-3)
doc/examples/kea4/single-subnet.json (+1/-3)
doc/examples/kea4/with-ddns.json (+1/-3)
doc/examples/kea6/advanced.json (+4/-4)
doc/examples/kea6/all-keys-netconf.json (+853/-0)
doc/examples/kea6/all-keys.json (+190/-19)
doc/examples/kea6/backends.json (+2/-4)
doc/examples/kea6/cassandra.json (+35/-4)
doc/examples/kea6/classify.json (+1/-3)
doc/examples/kea6/classify2.json (+1/-3)
doc/examples/kea6/comments.json (+1/-3)
doc/examples/kea6/config-backend.json (+90/-0)
doc/examples/kea6/dhcpv4-over-dhcpv6.json (+2/-5)
doc/examples/kea6/duid.json (+1/-3)
doc/examples/kea6/global-reservations.json (+1/-3)
doc/examples/kea6/ha-hot-standby.json (+3/-6)
doc/examples/kea6/hooks.json (+1/-1)
doc/examples/kea6/leases-expiration.json (+5/-4)
doc/examples/kea6/multiple-options.json (+1/-3)
doc/examples/kea6/mysql-reservations.json (+1/-3)
doc/examples/kea6/pgsql-reservations.json (+1/-3)
doc/examples/kea6/reservations.json (+1/-3)
doc/examples/kea6/several-subnets.json (+2/-4)
doc/examples/kea6/simple.json (+1/-3)
doc/examples/kea6/softwire46.json (+1/-3)
doc/examples/kea6/tee-times.json (+70/-0)
doc/examples/kea6/with-ddns.json (+1/-3)
doc/examples/netconf/comments.json (+1/-5)
doc/examples/netconf/kea-dhcp6-operations/netconf.json (+2/-4)
doc/examples/netconf/simple-dhcp4.json (+5/-7)
doc/examples/netconf/simple-dhcp6.json (+6/-7)
doc/sphinx/Makefile.am (+165/-0)
doc/sphinx/Makefile.in (+138/-166)
doc/sphinx/api-files.txt (+149/-0)
doc/sphinx/api/README (+17/-0)
doc/sphinx/api/_template.json (+13/-9)
doc/sphinx/api/build-report.json (+27/-0)
doc/sphinx/api/cache-clear.json (+12/-0)
doc/sphinx/api/cache-get-by-id.json (+27/-0)
doc/sphinx/api/cache-get.json (+19/-0)
doc/sphinx/api/cache-insert.json (+52/-0)
doc/sphinx/api/cache-load.json (+19/-0)
doc/sphinx/api/cache-remove.json (+31/-0)
doc/sphinx/api/cache-size.json (+19/-0)
doc/sphinx/api/cache-write.json (+21/-0)
doc/sphinx/api/class-add.json (+41/-0)
doc/sphinx/api/class-del.json (+30/-0)
doc/sphinx/api/class-get.json (+44/-0)
doc/sphinx/api/class-list.json (+47/-0)
doc/sphinx/api/class-update.json (+41/-0)
doc/sphinx/api/cmds-list (+75/-0)
doc/sphinx/api/config-get.json (+29/-0)
doc/sphinx/api/config-reload.json (+19/-0)
doc/sphinx/api/config-set.json (+33/-0)
doc/sphinx/api/config-test.json (+33/-0)
doc/sphinx/api/config-write.json (+23/-0)
doc/sphinx/api/dhcp-disable.json (+20/-0)
doc/sphinx/api/dhcp-enable.json (+17/-0)
doc/sphinx/api/ha-continue.json (+13/-0)
doc/sphinx/api/ha-heartbeat.json (+21/-0)
doc/sphinx/api/ha-scopes.json (+25/-0)
doc/sphinx/api/ha-sync.json (+23/-0)
doc/sphinx/api/lease4-add.json (+24/-0)
doc/sphinx/api/lease4-del.json (+23/-0)
doc/sphinx/api/lease4-get-all.json (+21/-0)
doc/sphinx/api/lease4-get.json (+41/-0)
doc/sphinx/api/lease4-update.json (+24/-0)
doc/sphinx/api/lease4-wipe.json (+20/-0)
doc/sphinx/api/lease6-add.json (+31/-0)
doc/sphinx/api/lease6-bulk-apply.json (+74/-0)
doc/sphinx/api/lease6-del.json (+23/-0)
doc/sphinx/api/lease6-get-all.json (+63/-0)
doc/sphinx/api/lease6-get.json (+24/-0)
doc/sphinx/api/lease6-update.json (+26/-0)
doc/sphinx/api/lease6-wipe.json (+23/-0)
doc/sphinx/api/leases-reclaim.json (+20/-0)
doc/sphinx/api/libreload.json (+21/-0)
doc/sphinx/api/list-commands.json (+23/-0)
doc/sphinx/api/network4-add.json (+54/-0)
doc/sphinx/api/network4-del.json (+33/-0)
doc/sphinx/api/network4-get.json (+57/-0)
doc/sphinx/api/network4-list.json (+29/-0)
doc/sphinx/api/network4-subnet-add.json (+27/-0)
doc/sphinx/api/network4-subnet-del.json (+27/-0)
doc/sphinx/api/network6-add.json (+57/-0)
doc/sphinx/api/network6-del.json (+33/-0)
doc/sphinx/api/network6-get.json (+57/-0)
doc/sphinx/api/network6-list.json (+32/-0)
doc/sphinx/api/network6-subnet-add.json (+30/-0)
doc/sphinx/api/network6-subnet-del.json (+30/-0)
doc/sphinx/api/remote-global-parameter4-del.json (+35/-0)
doc/sphinx/api/remote-global-parameter4-get-all.json (+51/-0)
doc/sphinx/api/remote-global-parameter4-get.json (+44/-0)
doc/sphinx/api/remote-global-parameter4-set.json (+42/-0)
doc/sphinx/api/remote-global-parameter6-del.json (+35/-0)
doc/sphinx/api/remote-global-parameter6-get-all.json (+51/-0)
doc/sphinx/api/remote-global-parameter6-get.json (+44/-0)
doc/sphinx/api/remote-global-parameter6-set.json (+42/-0)
doc/sphinx/api/remote-network4-del.json (+39/-0)
doc/sphinx/api/remote-network4-get.json (+51/-0)
doc/sphinx/api/remote-network4-list.json (+51/-0)
doc/sphinx/api/remote-network4-set.json (+36/-0)
doc/sphinx/api/remote-network6-del.json (+39/-0)
doc/sphinx/api/remote-network6-get.json (+51/-0)
doc/sphinx/api/remote-network6-list.json (+51/-0)
doc/sphinx/api/remote-network6-set.json (+36/-0)
doc/sphinx/api/remote-option-def4-del.json (+38/-0)
doc/sphinx/api/remote-option-def4-get-all.json (+51/-0)
doc/sphinx/api/remote-option-def4-get.json (+51/-0)
doc/sphinx/api/remote-option-def4-set.json (+36/-0)
doc/sphinx/api/remote-option-def6-del.json (+38/-0)
doc/sphinx/api/remote-option-def6-get-all.json (+51/-0)
doc/sphinx/api/remote-option-def6-get.json (+51/-0)
doc/sphinx/api/remote-option-def6-set.json (+36/-0)
doc/sphinx/api/remote-option4-global-del.json (+40/-0)
doc/sphinx/api/remote-option4-global-get-all.json (+51/-0)
doc/sphinx/api/remote-option4-global-get.json (+50/-0)
doc/sphinx/api/remote-option4-global-set.json (+44/-0)
doc/sphinx/api/remote-option4-network-del.json (+44/-0)
doc/sphinx/api/remote-option4-network-set.json (+48/-0)
doc/sphinx/api/remote-option4-pool-del.json (+44/-0)
doc/sphinx/api/remote-option4-pool-set.json (+48/-0)
doc/sphinx/api/remote-option4-subnet-del.json (+44/-0)
doc/sphinx/api/remote-option4-subnet-set.json (+48/-0)
doc/sphinx/api/remote-option6-global-del.json (+40/-0)
doc/sphinx/api/remote-option6-global-get-all.json (+51/-0)
doc/sphinx/api/remote-option6-global-get.json (+50/-0)
doc/sphinx/api/remote-option6-global-set.json (+44/-0)
doc/sphinx/api/remote-option6-network-del.json (+44/-0)
doc/sphinx/api/remote-option6-network-set.json (+48/-0)
doc/sphinx/api/remote-option6-pd-pool-del.json (+45/-0)
doc/sphinx/api/remote-option6-pd-pool-set.json (+49/-0)
doc/sphinx/api/remote-option6-pool-del.json (+44/-0)
doc/sphinx/api/remote-option6-pool-set.json (+48/-0)
doc/sphinx/api/remote-option6-subnet-del.json (+44/-0)
doc/sphinx/api/remote-option6-subnet-set.json (+48/-0)
doc/sphinx/api/remote-server4-del.json (+38/-0)
doc/sphinx/api/remote-server4-get-all.json (+46/-0)
doc/sphinx/api/remote-server4-get.json (+47/-0)
doc/sphinx/api/remote-server4-set.json (+44/-0)
doc/sphinx/api/remote-server6-del.json (+38/-0)
doc/sphinx/api/remote-server6-get-all.json (+46/-0)
doc/sphinx/api/remote-server6-get.json (+47/-0)
doc/sphinx/api/remote-server6-set.json (+44/-0)
doc/sphinx/api/remote-subnet4-del-by-id.json (+38/-0)
doc/sphinx/api/remote-subnet4-del-by-prefix.json (+38/-0)
doc/sphinx/api/remote-subnet4-get-by-id.json (+48/-0)
doc/sphinx/api/remote-subnet4-get-by-prefix.json (+50/-0)
doc/sphinx/api/remote-subnet4-list.json (+55/-0)
doc/sphinx/api/remote-subnet4-set.json (+43/-0)
doc/sphinx/api/remote-subnet6-del-by-id.json (+38/-0)
doc/sphinx/api/remote-subnet6-del-by-prefix.json (+38/-0)
doc/sphinx/api/remote-subnet6-get-by-id.json (+52/-0)
doc/sphinx/api/remote-subnet6-get-by-prefix.json (+50/-0)
doc/sphinx/api/remote-subnet6-list.json (+55/-0)
doc/sphinx/api/remote-subnet6-set.json (+43/-0)
doc/sphinx/api/reservation-add.json (+49/-0)
doc/sphinx/api/reservation-del.json (+26/-0)
doc/sphinx/api/reservation-get-all.json (+23/-0)
doc/sphinx/api/reservation-get-page.json (+26/-0)
doc/sphinx/api/reservation-get.json (+53/-0)
doc/sphinx/api/server-tag-get.json (+29/-0)
doc/sphinx/api/shutdown.json (+22/-0)
doc/sphinx/api/stat-lease4-get.json (+36/-0)
doc/sphinx/api/stat-lease6-get.json (+37/-0)
doc/sphinx/api/statistic-get-all.json (+37/-0)
doc/sphinx/api/statistic-get.json (+31/-0)
doc/sphinx/api/statistic-remove-all.json (+21/-0)
doc/sphinx/api/statistic-remove.json (+23/-0)
doc/sphinx/api/statistic-reset-all.json (+21/-0)
doc/sphinx/api/statistic-reset.json (+23/-0)
doc/sphinx/api/statistic-sample-age-set-all.json (+23/-0)
doc/sphinx/api/statistic-sample-age-set.json (+24/-0)
doc/sphinx/api/statistic-sample-count-set-all.json (+23/-0)
doc/sphinx/api/statistic-sample-count-set.json (+24/-0)
doc/sphinx/api/subnet4-add.json (+38/-0)
doc/sphinx/api/subnet4-del.json (+34/-0)
doc/sphinx/api/subnet4-get.json (+38/-0)
doc/sphinx/api/subnet4-list.json (+38/-0)
doc/sphinx/api/subnet4-update.json (+38/-0)
doc/sphinx/api/subnet6-add.json (+38/-0)
doc/sphinx/api/subnet6-del.json (+32/-0)
doc/sphinx/api/subnet6-get.json (+38/-0)
doc/sphinx/api/subnet6-list.json (+38/-0)
doc/sphinx/api/subnet6-update.json (+38/-0)
doc/sphinx/api/version-get.json (+19/-0)
doc/sphinx/api2doc.py (+192/-0)
doc/sphinx/arm/acknowledgments.rst (+33/-0)
doc/sphinx/arm/admin.rst (+603/-0)
doc/sphinx/arm/agent.rst (+274/-0)
doc/sphinx/arm/classify.rst (+922/-0)
doc/sphinx/arm/config-backend.rst (+281/-0)
doc/sphinx/arm/config.rst (+128/-0)
doc/sphinx/arm/congestion-handling.rst (+137/-0)
doc/sphinx/arm/ctrl-channel.rst (+604/-0)
doc/sphinx/arm/ddns.rst (+842/-0)
doc/sphinx/arm/dhcp4-srv.rst (+5858/-0)
doc/sphinx/arm/dhcp6-srv.rst (+5864/-0)
doc/sphinx/arm/hammer.rst (+135/-0)
doc/sphinx/arm/hooks-cb-cmds.rst (+1908/-0)
doc/sphinx/arm/hooks-class-cmds.rst (+240/-0)
doc/sphinx/arm/hooks-ha.rst (+1220/-0)
doc/sphinx/arm/hooks-host-cache.rst (+307/-0)
doc/sphinx/arm/hooks-lease-cmds.rst (+840/-0)
doc/sphinx/arm/hooks-radius.rst (+544/-0)
doc/sphinx/arm/hooks-stat-cmds.rst (+231/-0)
doc/sphinx/arm/hooks.rst (+2668/-0)
doc/sphinx/arm/install.rst (+527/-0)
doc/sphinx/arm/intro.rst (+126/-0)
doc/sphinx/arm/keactrl.rst (+321/-0)
doc/sphinx/arm/lease-expiration.rst (+330/-0)
doc/sphinx/arm/lfc.rst (+73/-0)
doc/sphinx/arm/logging.rst (+803/-0)
doc/sphinx/arm/netconf.rst (+956/-0)
doc/sphinx/arm/quickstart.rst (+123/-0)
doc/sphinx/arm/shell.rst (+120/-0)
doc/sphinx/arm/stats.rst (+391/-0)
doc/sphinx/conf.py (+217/-0)
doc/sphinx/index.rst (+61/-0)
doc/sphinx/man/kea-admin.8.rst (+124/-0)
doc/sphinx/man/kea-ctrl-agent.8.rst (+100/-0)
doc/sphinx/man/kea-dhcp-ddns.8.rst (+100/-0)
doc/sphinx/man/kea-dhcp4.8.rst (+106/-0)
doc/sphinx/man/kea-dhcp6.8.rst (+101/-0)
doc/sphinx/man/kea-lfc.8.rst (+132/-0)
doc/sphinx/man/kea-netconf.8.rst (+95/-0)
doc/sphinx/man/kea-shell.8.rst (+106/-0)
doc/sphinx/man/keactrl.8.rst (+126/-0)
doc/sphinx/man/perfdhcp.8.rst (+441/-0)
doc/sphinx/manpages.rst (+28/-0)
doc/sphinx/mes-files.txt (+25/-0)
doc/sphinx/mes2doc.py (+131/-0)
doc/sphinx/static/kea.css (+12/-0)
ext/Makefile.in (+4/-4)
ext/coroutine/Makefile.in (+4/-4)
ext/gtest/Makefile.in (+4/-4)
kea_version.h (+1/-1)
ltmain.sh (+2/-2)
m4macros/Makefile.in (+4/-4)
m4macros/ax_boost_for_kea.m4 (+29/-4)
m4macros/libtool.m4 (+0/-1)
src/Makefile.in (+4/-4)
src/bin/Makefile.am (+5/-1)
src/bin/Makefile.in (+10/-9)
src/bin/admin/Makefile.am (+2/-15)
src/bin/admin/Makefile.in (+18/-76)
src/bin/admin/admin-utils.sh (+9/-5)
src/bin/admin/kea-admin.in (+170/-78)
src/bin/admin/tests/Makefile.in (+4/-4)
src/bin/admin/tests/cql_tests.sh.in (+182/-73)
src/bin/admin/tests/data/Makefile.am (+3/-1)
src/bin/admin/tests/data/Makefile.in (+7/-5)
src/bin/admin/tests/data/cql.hosts_data_test.csv (+24/-0)
src/bin/admin/tests/data/cql.hosts_data_test.reference.csv (+24/-0)
src/bin/admin/tests/data/cql.lease6_dump_test.reference.csv (+2/-2)
src/bin/admin/tests/data/cql.subnet_id_test.reference.csv (+6/-10)
src/bin/admin/tests/dhcpdb_create_1.0.cql (+2/-1)
src/bin/admin/tests/memfile_tests.sh.in (+1/-1)
src/bin/admin/tests/mysql_tests.sh.in (+178/-39)
src/bin/admin/tests/pgsql_tests.sh.in (+31/-31)
src/bin/agent/Makefile.am (+36/-29)
src/bin/agent/Makefile.in (+56/-132)
src/bin/agent/agent_lexer.cc (+1010/-1228)
src/bin/agent/agent_lexer.ll (+11/-1)
src/bin/agent/agent_parser.cc (+572/-527)
src/bin/agent/agent_parser.h (+1181/-889)
src/bin/agent/agent_parser.yy (+13/-2)
src/bin/agent/ca_cfg_mgr.cc (+2/-4)
src/bin/agent/ca_command_mgr.cc (+5/-5)
src/bin/agent/ca_controller.cc (+9/-1)
src/bin/agent/ca_messages.cc (+41/-0)
src/bin/agent/ca_messages.h (+24/-0)
src/bin/agent/location.hh (+9/-7)
src/bin/agent/parser_context.h (+3/-3)
src/bin/agent/position.hh (+2/-2)
src/bin/agent/simple_parser.cc (+2/-2)
src/bin/agent/stack.hh (+2/-2)
src/bin/agent/tests/Makefile.in (+4/-4)
src/bin/agent/tests/ca_command_mgr_unittests.cc (+23/-11)
src/bin/agent/tests/ca_controller_unittests.cc (+148/-2)
src/bin/agent/tests/ca_process_tests.sh.in (+1/-1)
src/bin/agent/tests/ca_process_unittests.cc (+2/-2)
src/bin/d2/Makefile.am (+36/-27)
src/bin/d2/Makefile.in (+56/-132)
src/bin/d2/d2_cfg_mgr.cc (+15/-3)
src/bin/d2/d2_cfg_mgr.h (+22/-2)
src/bin/d2/d2_config.h (+6/-1)
src/bin/d2/d2_controller.cc (+56/-2)
src/bin/d2/d2_controller.h (+15/-1)
src/bin/d2/d2_lexer.cc (+419/-347)
src/bin/d2/d2_lexer.ll (+40/-1)
src/bin/d2/d2_messages.cc (+171/-0)
src/bin/d2/d2_messages.h (+89/-0)
src/bin/d2/d2_parser.cc (+857/-736)
src/bin/d2/d2_parser.h (+1435/-1047)
src/bin/d2/d2_parser.yy (+57/-1)
src/bin/d2/d2_process.cc (+58/-11)
src/bin/d2/d2_process.h (+16/-5)
src/bin/d2/d2_simple_parser.cc (+10/-1)
src/bin/d2/location.hh (+9/-7)
src/bin/d2/parser_context.cc (+3/-1)
src/bin/d2/parser_context.h (+7/-4)
src/bin/d2/position.hh (+2/-2)
src/bin/d2/stack.hh (+2/-2)
src/bin/d2/tests/Makefile.am (+1/-0)
src/bin/d2/tests/Makefile.in (+24/-7)
src/bin/d2/tests/d2_cfg_mgr_unittests.cc (+61/-33)
src/bin/d2/tests/d2_command_unittest.cc (+1323/-0)
src/bin/d2/tests/d2_controller_unittests.cc (+3/-3)
src/bin/d2/tests/d2_process_tests.sh.in (+1/-1)
src/bin/d2/tests/get_config_unittest.cc (+3/-1)
src/bin/d2/tests/parser_unittest.cc (+4/-4)
src/bin/d2/tests/testdata/get_config.json (+21/-1)
src/bin/dhcp4/Makefile.am (+36/-28)
src/bin/dhcp4/Makefile.in (+57/-132)
src/bin/dhcp4/ctrl_dhcp4_srv.cc (+143/-20)
src/bin/dhcp4/ctrl_dhcp4_srv.h (+35/-5)
src/bin/dhcp4/dhcp4_lexer.cc (+1357/-1138)
src/bin/dhcp4/dhcp4_lexer.ll (+109/-1)
src/bin/dhcp4/dhcp4_messages.cc (+283/-0)
src/bin/dhcp4/dhcp4_messages.h (+145/-0)
src/bin/dhcp4/dhcp4_messages.mes (+40/-7)
src/bin/dhcp4/dhcp4_parser.cc (+2217/-2036)
src/bin/dhcp4/dhcp4_parser.h (+3621/-2683)
src/bin/dhcp4/dhcp4_parser.yy (+97/-1)
src/bin/dhcp4/dhcp4_srv.cc (+129/-47)
src/bin/dhcp4/dhcp4_srv.h (+68/-10)
src/bin/dhcp4/dhcp4to6_ipc.cc (+2/-2)
src/bin/dhcp4/dhcp4to6_ipc.h (+2/-2)
src/bin/dhcp4/json_config_parser.cc (+85/-75)
src/bin/dhcp4/json_config_parser.h (+2/-30)
src/bin/dhcp4/location.hh (+9/-7)
src/bin/dhcp4/main.cc (+34/-12)
src/bin/dhcp4/parser_context.h (+3/-3)
src/bin/dhcp4/position.hh (+2/-2)
src/bin/dhcp4/stack.hh (+2/-2)
src/bin/dhcp4/tests/Makefile.am (+12/-7)
src/bin/dhcp4/tests/Makefile.in (+62/-29)
src/bin/dhcp4/tests/classify_unittest.cc (+59/-1)
src/bin/dhcp4/tests/config_backend_unittest.cc (+508/-0)
src/bin/dhcp4/tests/config_parser_unittest.cc (+442/-88)
src/bin/dhcp4/tests/ctrl_dhcp4_srv_unittest.cc (+70/-10)
src/bin/dhcp4/tests/dhcp4_client.cc (+9/-9)
src/bin/dhcp4/tests/dhcp4_client.h (+3/-3)
src/bin/dhcp4/tests/dhcp4_process_tests.sh.in (+1/-1)
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc (+603/-1469)
src/bin/dhcp4/tests/dhcp4_test_utils.cc (+68/-2)
src/bin/dhcp4/tests/dhcp4_test_utils.h (+18/-2)
src/bin/dhcp4/tests/dora_unittest.cc (+11/-8)
src/bin/dhcp4/tests/fqdn_unittest.cc (+230/-9)
src/bin/dhcp4/tests/get_config_unittest.cc (+1446/-332)
src/bin/dhcp4/tests/hooks_unittest.cc (+9/-30)
src/bin/dhcp4/tests/kea_controller_unittest.cc (+220/-10)
src/bin/dhcp4/tests/parser_unittest.cc (+13/-2)
src/bin/dhcp4/tests/shared_network_unittest.cc (+143/-3)
src/bin/dhcp4/tests/simple_parser4_unittest.cc (+7/-3)
src/bin/dhcp4/tests/vendor_opts_unittest.cc (+1627/-0)
src/bin/dhcp6/Makefile.am (+35/-29)
src/bin/dhcp6/Makefile.in (+56/-133)
src/bin/dhcp6/ctrl_dhcp6_srv.cc (+147/-21)
src/bin/dhcp6/ctrl_dhcp6_srv.h (+35/-5)
src/bin/dhcp6/dhcp6_lexer.cc (+1413/-1124)
src/bin/dhcp6/dhcp6_lexer.ll (+137/-1)
src/bin/dhcp6/dhcp6_log.h (+2/-2)
src/bin/dhcp6/dhcp6_messages.cc (+295/-0)
src/bin/dhcp6/dhcp6_messages.h (+151/-0)
src/bin/dhcp6/dhcp6_messages.mes (+47/-18)
src/bin/dhcp6/dhcp6_parser.cc (+2305/-2070)
src/bin/dhcp6/dhcp6_parser.h (+3749/-2743)
src/bin/dhcp6/dhcp6_parser.yy (+124/-3)
src/bin/dhcp6/dhcp6_srv.cc (+248/-99)
src/bin/dhcp6/dhcp6_srv.h (+67/-10)
src/bin/dhcp6/dhcp6to4_ipc.cc (+8/-3)
src/bin/dhcp6/dhcp6to4_ipc.h (+6/-2)
src/bin/dhcp6/json_config_parser.cc (+106/-17)
src/bin/dhcp6/location.hh (+9/-7)
src/bin/dhcp6/main.cc (+35/-13)
src/bin/dhcp6/parser_context.h (+3/-3)
src/bin/dhcp6/position.hh (+2/-2)
src/bin/dhcp6/stack.hh (+2/-2)
src/bin/dhcp6/tests/Makefile.am (+21/-15)
src/bin/dhcp6/tests/Makefile.in (+294/-240)
src/bin/dhcp6/tests/classify_unittests.cc (+78/-2)
src/bin/dhcp6/tests/config_backend_unittest.cc (+486/-0)
src/bin/dhcp6/tests/config_parser_unittest.cc (+566/-78)
src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc (+70/-10)
src/bin/dhcp6/tests/dhcp6_client.cc (+32/-7)
src/bin/dhcp6/tests/dhcp6_client.h (+14/-7)
src/bin/dhcp6/tests/dhcp6_process_tests.sh (+7/-7)
src/bin/dhcp6/tests/dhcp6_process_tests.sh.in (+1/-1)
src/bin/dhcp6/tests/dhcp6_srv_unittest.cc (+526/-321)
src/bin/dhcp6/tests/dhcp6_test_utils.cc (+129/-25)
src/bin/dhcp6/tests/dhcp6_test_utils.h (+70/-38)
src/bin/dhcp6/tests/dhcp6to4_ipc_unittest.cc (+52/-1)
src/bin/dhcp6/tests/fqdn_unittest.cc (+3/-3)
src/bin/dhcp6/tests/get_config_unittest.cc (+869/-281)
src/bin/dhcp6/tests/hooks_unittest.cc (+51/-62)
src/bin/dhcp6/tests/kea_controller_unittest.cc (+219/-9)
src/bin/dhcp6/tests/parser_unittest.cc (+13/-2)
src/bin/dhcp6/tests/shared_network_unittest.cc (+5/-6)
src/bin/dhcp6/tests/simple_parser6_unittest.cc (+66/-15)
src/bin/dhcp6/tests/tee_times_unittest.cc (+242/-0)
src/bin/dhcp6/tests/vendor_opts_unittest.cc (+433/-0)
src/bin/keactrl/Makefile.am (+7/-18)
src/bin/keactrl/Makefile.in (+20/-79)
src/bin/keactrl/kea-ctrl-agent.conf.pre (+14/-9)
src/bin/keactrl/kea-dhcp-ddns.conf.pre (+10/-5)
src/bin/keactrl/kea-dhcp4.conf.pre (+10/-9)
src/bin/keactrl/kea-dhcp6.conf.pre (+7/-7)
src/bin/keactrl/kea-netconf.conf.pre (+8/-7)
src/bin/keactrl/keactrl.in (+153/-105)
src/bin/keactrl/tests/Makefile.in (+4/-4)
src/bin/keactrl/tests/keactrl_tests.sh.in (+165/-120)
src/bin/lfc/Makefile.am (+35/-28)
src/bin/lfc/Makefile.in (+54/-132)
src/bin/lfc/lfc_messages.cc (+45/-0)
src/bin/lfc/lfc_messages.h (+26/-0)
src/bin/lfc/tests/Makefile.in (+4/-4)
src/bin/lfc/tests/lfc_controller_unittests.cc (+4/-3)
src/bin/netconf/Makefile.am (+37/-30)
src/bin/netconf/Makefile.in (+58/-134)
src/bin/netconf/location.hh (+9/-7)
src/bin/netconf/netconf_cfg_mgr.cc (+2/-5)
src/bin/netconf/netconf_lexer.cc (+1099/-1321)
src/bin/netconf/netconf_lexer.ll (+11/-1)
src/bin/netconf/netconf_messages.cc (+85/-0)
src/bin/netconf/netconf_messages.h (+46/-0)
src/bin/netconf/netconf_parser.cc (+613/-567)
src/bin/netconf/netconf_parser.h (+1282/-975)
src/bin/netconf/netconf_parser.yy (+12/-1)
src/bin/netconf/parser_context.h (+3/-3)
src/bin/netconf/position.hh (+2/-2)
src/bin/netconf/stack.hh (+2/-2)
src/bin/netconf/tests/Makefile.am (+1/-1)
src/bin/netconf/tests/Makefile.in (+5/-5)
src/bin/netconf/tests/control_socket_unittests.cc (+9/-11)
src/bin/netconf/tests/netconf_unittests.cc (+9/-8)
src/bin/netconf/tests/shtests/Makefile.in (+4/-4)
src/bin/netconf/tests/shtests/netconf_tests.sh.in (+1/-1)
src/bin/perfdhcp/Makefile.am (+7/-17)
src/bin/perfdhcp/Makefile.in (+30/-107)
src/bin/perfdhcp/abstract_scen.h (+64/-0)
src/bin/perfdhcp/avalanche_scen.cc (+195/-0)
src/bin/perfdhcp/avalanche_scen.h (+81/-0)
src/bin/perfdhcp/basic_scen.cc (+245/-0)
src/bin/perfdhcp/basic_scen.h (+72/-0)
src/bin/perfdhcp/command_options.cc (+116/-26)
src/bin/perfdhcp/command_options.h (+59/-30)
src/bin/perfdhcp/main.cc (+21/-12)
src/bin/perfdhcp/perf_pkt4.cc (+3/-3)
src/bin/perfdhcp/perf_pkt4.h (+7/-5)
src/bin/perfdhcp/perf_pkt6.cc (+5/-4)
src/bin/perfdhcp/perf_pkt6.h (+6/-5)
src/bin/perfdhcp/perf_socket.cc (+187/-0)
src/bin/perfdhcp/perf_socket.h (+143/-0)
src/bin/perfdhcp/pkt_transform.cc (+5/-4)
src/bin/perfdhcp/pkt_transform.h (+3/-3)
src/bin/perfdhcp/rate_control.cc (+34/-112)
src/bin/perfdhcp/rate_control.h (+15/-76)
src/bin/perfdhcp/receiver.cc (+143/-0)
src/bin/perfdhcp/receiver.h (+103/-0)
src/bin/perfdhcp/stats_mgr.cc (+354/-0)
src/bin/perfdhcp/stats_mgr.h (+598/-853)
src/bin/perfdhcp/test_control.cc (+237/-949)
src/bin/perfdhcp/test_control.h (+138/-358)
src/bin/perfdhcp/tests/Makefile.am (+6/-1)
src/bin/perfdhcp/tests/Makefile.in (+78/-7)
src/bin/perfdhcp/tests/avalanche_scen_unittest.cc (+317/-0)
src/bin/perfdhcp/tests/basic_scen_unittest.cc (+321/-0)
src/bin/perfdhcp/tests/command_options_helper.h (+2/-3)
src/bin/perfdhcp/tests/command_options_unittest.cc (+246/-269)
src/bin/perfdhcp/tests/perf_socket_unittest.cc (+58/-0)
src/bin/perfdhcp/tests/rate_control_unittest.cc (+29/-147)
src/bin/perfdhcp/tests/receiver_unittest.cc (+116/-0)
src/bin/perfdhcp/tests/stats_mgr_unittest.cc (+105/-122)
src/bin/perfdhcp/tests/test_control_unittest.cc (+354/-683)
src/bin/perfdhcp/tests/testdata/Makefile.in (+4/-4)
src/bin/shell/Makefile.am (+0/-18)
src/bin/shell/Makefile.in (+15/-79)
src/bin/shell/tests/Makefile.in (+4/-4)
src/bin/shell/tests/shell_process_tests.sh.in (+3/-3)
src/hooks/Makefile.in (+4/-4)
src/hooks/dhcp/Makefile.am (+7/-1)
src/hooks/dhcp/Makefile.in (+9/-6)
src/hooks/dhcp/high_availability/Makefile.am (+38/-16)
src/hooks/dhcp/high_availability/Makefile.in (+57/-48)
src/hooks/dhcp/high_availability/command_creator.cc (+29/-1)
src/hooks/dhcp/high_availability/command_creator.h (+12/-1)
src/hooks/dhcp/high_availability/communication_state.cc (+23/-11)
src/hooks/dhcp/high_availability/communication_state.h (+10/-2)
src/hooks/dhcp/high_availability/ha_messages.cc (+147/-0)
src/hooks/dhcp/high_availability/ha_messages.h (+77/-0)
src/hooks/dhcp/high_availability/ha_messages.mes (+18/-6)
src/hooks/dhcp/high_availability/ha_service.cc (+139/-24)
src/hooks/dhcp/high_availability/ha_service.h (+51/-1)
src/hooks/dhcp/high_availability/tests/Makefile.in (+4/-4)
src/hooks/dhcp/high_availability/tests/command_creator_unittest.cc (+36/-3)
src/hooks/dhcp/high_availability/tests/communication_state_unittest.cc (+40/-8)
src/hooks/dhcp/high_availability/tests/ha_impl_unittest.cc (+3/-3)
src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc (+150/-94)
src/hooks/dhcp/high_availability/tests/ha_test.h (+3/-1)
src/hooks/dhcp/lease_cmds/Makefile.am (+38/-16)
src/hooks/dhcp/lease_cmds/Makefile.in (+56/-46)
src/hooks/dhcp/lease_cmds/lease_cmds.cc (+306/-1)
src/hooks/dhcp/lease_cmds/lease_cmds.h (+83/-1)
src/hooks/dhcp/lease_cmds/lease_cmds_callouts.cc (+13/-1)
src/hooks/dhcp/lease_cmds/lease_cmds_messages.cc (+41/-0)
src/hooks/dhcp/lease_cmds/lease_cmds_messages.h (+21/-0)
src/hooks/dhcp/lease_cmds/lease_parser.cc (+3/-7)
src/hooks/dhcp/lease_cmds/tests/Makefile.in (+4/-4)
src/hooks/dhcp/lease_cmds/tests/lease_cmds_unittest.cc (+318/-5)
src/hooks/dhcp/mysql_cb/Makefile.am (+88/-0)
src/hooks/dhcp/mysql_cb/Makefile.in (+291/-54)
src/hooks/dhcp/mysql_cb/mysql_cb_callouts.cc (+49/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc (+3245/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h (+559/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc (+3733/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.h (+593/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc (+1071/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_impl.h (+794/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_log.cc (+18/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_log.h (+23/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_messages.cc (+349/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_messages.h (+178/-0)
src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes (+500/-0)
src/hooks/dhcp/mysql_cb/mysql_query_macros_dhcp.h (+1018/-0)
src/hooks/dhcp/mysql_cb/tests/Makefile.am (+65/-0)
src/hooks/dhcp/mysql_cb/tests/Makefile.in (+1073/-0)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_mgr_unittest.cc (+88/-0)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc (+3947/-0)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_mgr_unittest.cc (+88/-0)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc (+4121/-0)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_impl_unittest.cc (+61/-0)
src/hooks/dhcp/mysql_cb/tests/run_unittests.cc (+19/-0)
src/hooks/dhcp/mysql_cb/version.cc (+17/-0)
src/hooks/dhcp/stat_cmds/Makefile.am (+38/-16)
src/hooks/dhcp/stat_cmds/Makefile.in (+55/-46)
src/hooks/dhcp/stat_cmds/stat_cmds_messages.cc (+41/-0)
src/hooks/dhcp/stat_cmds/stat_cmds_messages.h (+21/-0)
src/hooks/dhcp/stat_cmds/tests/Makefile.in (+4/-4)
src/hooks/dhcp/stat_cmds/tests/stat_cmds_unittest.cc (+1/-6)
src/hooks/dhcp/user_chk/Makefile.am (+36/-14)
src/hooks/dhcp/user_chk/Makefile.in (+54/-45)
src/hooks/dhcp/user_chk/tests/Makefile.in (+4/-4)
src/hooks/dhcp/user_chk/user_chk_messages.cc (+29/-0)
src/hooks/dhcp/user_chk/user_chk_messages.h (+15/-0)
src/lib/Makefile.am (+2/-2)
src/lib/Makefile.in (+11/-10)
src/lib/asiodns/Makefile.am (+36/-12)
src/lib/asiodns/Makefile.in (+45/-31)
src/lib/asiodns/asiodns_messages.cc (+73/-0)
src/lib/asiodns/asiodns_messages.h (+40/-0)
src/lib/asiodns/tests/Makefile.in (+4/-4)
src/lib/asiolink/Makefile.am (+1/-1)
src/lib/asiolink/Makefile.in (+5/-5)
src/lib/asiolink/addr_utilities.cc (+25/-23)
src/lib/asiolink/addr_utilities.h (+7/-11)
src/lib/asiolink/tests/Makefile.in (+4/-4)
src/lib/asiolink/tests/addr_utilities_unittest.cc (+11/-2)
src/lib/asiolink/tests/udp_socket_unittest.cc (+2/-2)
src/lib/asiolink/tests/unix_domain_socket_unittest.cc (+8/-11)
src/lib/asiolink/testutils/Makefile.in (+4/-4)
src/lib/cc/Makefile.am (+8/-2)
src/lib/cc/Makefile.in (+18/-11)
src/lib/cc/base_stamped_element.cc (+26/-0)
src/lib/cc/base_stamped_element.h (+80/-0)
src/lib/cc/data.cc (+14/-3)
src/lib/cc/data.h (+2/-2)
src/lib/cc/element_value.h (+117/-0)
src/lib/cc/server_tag.cc (+51/-0)
src/lib/cc/server_tag.h (+82/-0)
src/lib/cc/simple_parser.cc (+77/-8)
src/lib/cc/simple_parser.h (+64/-4)
src/lib/cc/stamped_element.cc (+30/-4)
src/lib/cc/stamped_element.h (+49/-22)
src/lib/cc/stamped_value.cc (+157/-25)
src/lib/cc/stamped_value.h (+166/-29)
src/lib/cc/tests/Makefile.am (+2/-0)
src/lib/cc/tests/Makefile.in (+40/-6)
src/lib/cc/tests/command_interpreter_unittests.cc (+2/-2)
src/lib/cc/tests/data_unittests.cc (+8/-9)
src/lib/cc/tests/element_value_unittests.cc (+43/-0)
src/lib/cc/tests/server_tag_unittest.cc (+97/-0)
src/lib/cc/tests/simple_parser_unittest.cc (+126/-1)
src/lib/cc/tests/stamped_element_unittest.cc (+76/-4)
src/lib/cc/tests/stamped_value_unittest.cc (+143/-7)
src/lib/cfgrpt/Makefile.in (+4/-4)
src/lib/cfgrpt/tests/Makefile.in (+4/-4)
src/lib/config/Makefile.am (+37/-13)
src/lib/config/Makefile.in (+46/-32)
src/lib/config/config_messages.cc (+69/-0)
src/lib/config/config_messages.h (+38/-0)
src/lib/config/tests/Makefile.in (+4/-4)
src/lib/config/tests/client_connection_unittests.cc (+8/-11)
src/lib/config/tests/command_mgr_unittests.cc (+4/-3)
src/lib/config/tests/testdata/Makefile.in (+4/-4)
src/lib/config/timeouts.h (+9/-1)
src/lib/config_backend/Makefile.in (+4/-4)
src/lib/config_backend/base_config_backend_pool.h (+180/-5)
src/lib/config_backend/constants.h (+16/-2)
src/lib/config_backend/tests/Makefile.in (+4/-4)
src/lib/cql/Makefile.am (+1/-1)
src/lib/cql/Makefile.in (+5/-5)
src/lib/cql/cql_connection.cc (+56/-3)
src/lib/cql/cql_connection.h (+15/-5)
src/lib/cql/cql_exchange.cc (+23/-1)
src/lib/cql/tests/Makefile.am (+2/-7)
src/lib/cql/tests/Makefile.in (+8/-17)
src/lib/cql/tests/cql_connection_unittest.cc (+13/-16)
src/lib/cql/testutils/Makefile.in (+4/-4)
src/lib/cql/testutils/cql_schema.cc (+33/-20)
src/lib/cql/testutils/cql_schema.h (+51/-41)
src/lib/cryptolink/Makefile.in (+4/-4)
src/lib/cryptolink/botan_hash.cc (+5/-2)
src/lib/cryptolink/botan_hmac.cc (+5/-2)
src/lib/cryptolink/tests/Makefile.in (+4/-4)
src/lib/database/Makefile.am (+45/-18)
src/lib/database/Makefile.in (+60/-41)
src/lib/database/audit_entry.cc (+78/-0)
src/lib/database/audit_entry.h (+247/-0)
src/lib/database/backend_selector.cc (+17/-1)
src/lib/database/backend_selector.h (+11/-3)
src/lib/database/database_connection.cc (+9/-8)
src/lib/database/database_connection.h (+4/-4)
src/lib/database/db_exceptions.h (+8/-1)
src/lib/database/db_log.cc (+2/-2)
src/lib/database/db_log.h (+2/-3)
src/lib/database/db_messages.cc (+53/-0)
src/lib/database/db_messages.h (+30/-0)
src/lib/database/dbaccess_parser.cc (+41/-7)
src/lib/database/dbaccess_parser.h (+3/-5)
src/lib/database/server.cc (+42/-0)
src/lib/database/server.h (+90/-0)
src/lib/database/server_collection.cc (+26/-0)
src/lib/database/server_collection.h (+53/-0)
src/lib/database/server_selector.cc (+49/-0)
src/lib/database/server_selector.h (+51/-24)
src/lib/database/tests/Makefile.am (+4/-1)
src/lib/database/tests/Makefile.in (+45/-8)
src/lib/database/tests/audit_entry_unittest.cc (+285/-0)
src/lib/database/tests/backend_selector_unittest.cc (+28/-1)
src/lib/database/tests/database_connection_unittest.cc (+7/-4)
src/lib/database/tests/dbaccess_parser_unittest.cc (+82/-12)
src/lib/database/tests/server_selector_unittest.cc (+31/-9)
src/lib/database/tests/server_unittest.cc (+85/-0)
src/lib/database/testutils/Makefile.in (+4/-4)
src/lib/database/testutils/schema.cc (+11/-1)
src/lib/database/testutils/schema.h (+8/-1)
src/lib/dhcp/Makefile.am (+1/-1)
src/lib/dhcp/Makefile.in (+5/-5)
src/lib/dhcp/dhcp6.h (+2/-11)
src/lib/dhcp/duid.cc (+5/-4)
src/lib/dhcp/duid_factory.cc (+4/-4)
src/lib/dhcp/iface_mgr.cc (+52/-13)
src/lib/dhcp/iface_mgr.h (+17/-5)
src/lib/dhcp/libdhcp++.cc (+69/-22)
src/lib/dhcp/libdhcp++.h (+12/-3)
src/lib/dhcp/option.cc (+14/-7)
src/lib/dhcp/option.h (+44/-1)
src/lib/dhcp/option_data_types.cc (+12/-2)
src/lib/dhcp/option_data_types.h (+3/-1)
src/lib/dhcp/option_definition.cc (+39/-3)
src/lib/dhcp/option_definition.h (+94/-1)
src/lib/dhcp/option_int.h (+2/-2)
src/lib/dhcp/option_int_array.h (+2/-2)
src/lib/dhcp/option_space_container.h (+34/-2)
src/lib/dhcp/option_string.cc (+19/-4)
src/lib/dhcp/option_string.h (+8/-3)
src/lib/dhcp/pkt.h (+12/-1)
src/lib/dhcp/pkt4.cc (+3/-1)
src/lib/dhcp/pkt_filter_inet.cc (+2/-2)
src/lib/dhcp/pkt_filter_inet6.cc (+3/-3)
src/lib/dhcp/pkt_filter_inet6.h (+1/-1)
src/lib/dhcp/protocol_util.cc (+2/-2)
src/lib/dhcp/std_option_defs.h (+1/-9)
src/lib/dhcp/tests/Makefile.in (+4/-4)
src/lib/dhcp/tests/duid_unittest.cc (+8/-1)
src/lib/dhcp/tests/iface_mgr_unittest.cc (+212/-5)
src/lib/dhcp/tests/libdhcp++_unittest.cc (+125/-24)
src/lib/dhcp/tests/option_data_types_unittest.cc (+30/-1)
src/lib/dhcp/tests/option_definition_unittest.cc (+53/-1)
src/lib/dhcp/tests/option_string_unittest.cc (+78/-3)
src/lib/dhcp/tests/option_unittest.cc (+24/-7)
src/lib/dhcp/tests/pkt4_unittest.cc (+171/-11)
src/lib/dhcp/tests/pkt6_unittest.cc (+62/-4)
src/lib/dhcp/tests/pkt_captures.h (+16/-1)
src/lib/dhcp/tests/pkt_captures4.cc (+101/-1)
src/lib/dhcp/tests/pkt_filter_inet6_unittest.cc (+5/-3)
src/lib/dhcp/tests/pkt_filter_inet_unittest.cc (+5/-3)
src/lib/dhcp_ddns/Makefile.am (+37/-16)
src/lib/dhcp_ddns/Makefile.in (+53/-44)
src/lib/dhcp_ddns/dhcp_ddns_messages.cc (+51/-0)
src/lib/dhcp_ddns/dhcp_ddns_messages.h (+29/-0)
src/lib/dhcp_ddns/ncr_msg.cc (+1/-2)
src/lib/dhcp_ddns/tests/Makefile.in (+4/-4)
src/lib/dhcpsrv/Makefile.am (+70/-35)
src/lib/dhcpsrv/Makefile.in (+223/-152)
src/lib/dhcpsrv/alloc_engine.cc (+126/-61)
src/lib/dhcpsrv/alloc_engine.h (+124/-7)
src/lib/dhcpsrv/alloc_engine_messages.cc (+151/-0)
src/lib/dhcpsrv/alloc_engine_messages.h (+79/-0)
src/lib/dhcpsrv/base_host_data_source.h (+91/-1)
src/lib/dhcpsrv/benchmarks/Makefile.am (+43/-3)
src/lib/dhcpsrv/benchmarks/Makefile.in (+56/-10)
src/lib/dhcpsrv/benchmarks/benchmarks.dox (+2/-2)
src/lib/dhcpsrv/benchmarks/cql_host_data_source_benchmark.cc (+24/-71)
src/lib/dhcpsrv/benchmarks/cql_lease_mgr_benchmark.cc (+18/-7)
src/lib/dhcpsrv/benchmarks/generic_host_data_source_benchmark.cc (+33/-59)
src/lib/dhcpsrv/benchmarks/generic_host_data_source_benchmark.h (+9/-21)
src/lib/dhcpsrv/benchmarks/generic_lease_mgr_benchmark.cc (+2/-8)
src/lib/dhcpsrv/benchmarks/generic_lease_mgr_benchmark.h (+1/-2)
src/lib/dhcpsrv/benchmarks/memfile_lease_mgr_benchmark.cc (+19/-12)
src/lib/dhcpsrv/benchmarks/mysql_host_data_source_benchmark.cc (+25/-72)
src/lib/dhcpsrv/benchmarks/mysql_lease_mgr_benchmark.cc (+19/-8)
src/lib/dhcpsrv/benchmarks/parameters.h (+5/-5)
src/lib/dhcpsrv/benchmarks/pgsql_host_data_source_benchmark.cc (+25/-72)
src/lib/dhcpsrv/benchmarks/pgsql_lease_mgr_benchmark.cc (+19/-8)
src/lib/dhcpsrv/benchmarks/run_benchmarks.cc (+1/-2)
src/lib/dhcpsrv/cache_host_data_source.h (+2/-2)
src/lib/dhcpsrv/cb_ctl_dhcp.h (+63/-0)
src/lib/dhcpsrv/cb_ctl_dhcp4.cc (+191/-0)
src/lib/dhcpsrv/cb_ctl_dhcp4.h (+50/-0)
src/lib/dhcpsrv/cb_ctl_dhcp6.cc (+190/-0)
src/lib/dhcpsrv/cb_ctl_dhcp6.h (+50/-0)
src/lib/dhcpsrv/cfg_4o6.cc (+4/-4)
src/lib/dhcpsrv/cfg_4o6.h (+7/-6)
src/lib/dhcpsrv/cfg_consistency.h (+2/-2)
src/lib/dhcpsrv/cfg_db_access.cc (+8/-1)
src/lib/dhcpsrv/cfg_hosts.cc (+238/-2)
src/lib/dhcpsrv/cfg_hosts.h (+189/-2)
src/lib/dhcpsrv/cfg_option.cc (+248/-3)
src/lib/dhcpsrv/cfg_option.h (+209/-16)
src/lib/dhcpsrv/cfg_option_def.cc (+54/-1)
src/lib/dhcpsrv/cfg_option_def.h (+49/-1)
src/lib/dhcpsrv/cfg_shared_networks.cc (+1/-2)
src/lib/dhcpsrv/cfg_shared_networks.h (+108/-16)
src/lib/dhcpsrv/cfg_subnets4.cc (+129/-4)
src/lib/dhcpsrv/cfg_subnets4.h (+63/-1)
src/lib/dhcpsrv/cfg_subnets6.cc (+148/-9)
src/lib/dhcpsrv/cfg_subnets6.h (+64/-2)
src/lib/dhcpsrv/cfgmgr.cc (+53/-5)
src/lib/dhcpsrv/cfgmgr.h (+65/-7)
src/lib/dhcpsrv/client_class_def.cc (+5/-1)
src/lib/dhcpsrv/client_class_def.h (+2/-2)
src/lib/dhcpsrv/config_backend_dhcp4.h (+260/-7)
src/lib/dhcpsrv/config_backend_dhcp4_mgr.cc (+2/-2)
src/lib/dhcpsrv/config_backend_dhcp6.h (+671/-0)
src/lib/dhcpsrv/config_backend_dhcp6_mgr.cc (+41/-0)
src/lib/dhcpsrv/config_backend_dhcp6_mgr.h (+71/-0)
src/lib/dhcpsrv/config_backend_pool_dhcp4.cc (+72/-1)
src/lib/dhcpsrv/config_backend_pool_dhcp4.h (+87/-1)
src/lib/dhcpsrv/config_backend_pool_dhcp6.cc (+489/-0)
src/lib/dhcpsrv/config_backend_pool_dhcp6.h (+578/-0)
src/lib/dhcpsrv/cql_host_data_source.cc (+1064/-109)
src/lib/dhcpsrv/cql_host_data_source.h (+72/-13)
src/lib/dhcpsrv/cql_lease_mgr.cc (+14/-3)
src/lib/dhcpsrv/cql_lease_mgr.h (+13/-11)
src/lib/dhcpsrv/csv_lease_file4.cc (+26/-9)
src/lib/dhcpsrv/csv_lease_file4.h (+6/-1)
src/lib/dhcpsrv/csv_lease_file6.cc (+9/-2)
src/lib/dhcpsrv/csv_lease_file6.h (+3/-1)
src/lib/dhcpsrv/d2_client_cfg.cc (+22/-14)
src/lib/dhcpsrv/d2_client_cfg.h (+60/-13)
src/lib/dhcpsrv/dhcpsrv_messages.cc (+477/-0)
src/lib/dhcpsrv/dhcpsrv_messages.h (+242/-0)
src/lib/dhcpsrv/dhcpsrv_messages.mes (+27/-7)
src/lib/dhcpsrv/host.cc (+37/-20)
src/lib/dhcpsrv/host.h (+92/-38)
src/lib/dhcpsrv/host_container.h (+17/-1)
src/lib/dhcpsrv/host_data_source_factory.cc (+10/-2)
src/lib/dhcpsrv/host_mgr.cc (+88/-2)
src/lib/dhcpsrv/host_mgr.h (+119/-3)
src/lib/dhcpsrv/hosts_messages.cc (+117/-0)
src/lib/dhcpsrv/hosts_messages.h (+62/-0)
src/lib/dhcpsrv/hosts_messages.mes (+29/-2)
src/lib/dhcpsrv/lease.cc (+10/-26)
src/lib/dhcpsrv/lease.h (+12/-42)
src/lib/dhcpsrv/lease_file_loader.h (+23/-12)
src/lib/dhcpsrv/lease_mgr_factory.cc (+21/-8)
src/lib/dhcpsrv/memfile_lease_mgr.cc (+20/-8)
src/lib/dhcpsrv/memfile_lease_mgr.h (+3/-3)
src/lib/dhcpsrv/mysql_host_data_source.cc (+228/-58)
src/lib/dhcpsrv/mysql_host_data_source.h (+59/-1)
src/lib/dhcpsrv/mysql_lease_mgr.cc (+7/-4)
src/lib/dhcpsrv/network.cc (+146/-41)
src/lib/dhcpsrv/network.h (+559/-56)
src/lib/dhcpsrv/parsers/base_network_parser.cc (+171/-0)
src/lib/dhcpsrv/parsers/base_network_parser.h (+77/-0)
src/lib/dhcpsrv/parsers/client_class_def_parser.cc (+29/-3)
src/lib/dhcpsrv/parsers/dhcp_parsers.cc (+328/-212)
src/lib/dhcpsrv/parsers/dhcp_parsers.h (+23/-17)
src/lib/dhcpsrv/parsers/dhcp_queue_control_parser.cc (+3/-3)
src/lib/dhcpsrv/parsers/expiration_config_parser.cc (+2/-2)
src/lib/dhcpsrv/parsers/ifaces_config_parser.cc (+2/-2)
src/lib/dhcpsrv/parsers/option_data_parser.cc (+72/-45)
src/lib/dhcpsrv/parsers/option_data_parser.h (+22/-6)
src/lib/dhcpsrv/parsers/shared_network_parser.cc (+148/-6)
src/lib/dhcpsrv/parsers/shared_network_parser.h (+4/-4)
src/lib/dhcpsrv/parsers/simple_parser4.cc (+225/-33)
src/lib/dhcpsrv/parsers/simple_parser4.h (+16/-3)
src/lib/dhcpsrv/parsers/simple_parser6.cc (+239/-30)
src/lib/dhcpsrv/parsers/simple_parser6.h (+17/-3)
src/lib/dhcpsrv/pgsql_host_data_source.cc (+202/-9)
src/lib/dhcpsrv/pgsql_host_data_source.h (+71/-1)
src/lib/dhcpsrv/pgsql_lease_mgr.cc (+32/-20)
src/lib/dhcpsrv/pool.cc (+32/-1)
src/lib/dhcpsrv/pool.h (+93/-7)
src/lib/dhcpsrv/sanity_checker.cc (+68/-18)
src/lib/dhcpsrv/sanity_checker.h (+16/-7)
src/lib/dhcpsrv/shared_network.cc (+178/-14)
src/lib/dhcpsrv/shared_network.h (+173/-27)
src/lib/dhcpsrv/srv_config.cc (+185/-8)
src/lib/dhcpsrv/srv_config.h (+107/-21)
src/lib/dhcpsrv/subnet.cc (+32/-42)
src/lib/dhcpsrv/subnet.h (+110/-61)
src/lib/dhcpsrv/tests/Makefile.am (+11/-19)
src/lib/dhcpsrv/tests/Makefile.in (+69/-41)
src/lib/dhcpsrv/tests/alloc_engine4_unittest.cc (+428/-21)
src/lib/dhcpsrv/tests/alloc_engine6_unittest.cc (+543/-28)
src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc (+5/-5)
src/lib/dhcpsrv/tests/alloc_engine_hooks_unittest.cc (+1/-25)
src/lib/dhcpsrv/tests/alloc_engine_utils.cc (+57/-5)
src/lib/dhcpsrv/tests/alloc_engine_utils.h (+36/-9)
src/lib/dhcpsrv/tests/cb_ctl_dhcp_unittest.cc (+1365/-0)
src/lib/dhcpsrv/tests/cfg_db_access_unittest.cc (+3/-3)
src/lib/dhcpsrv/tests/cfg_hosts_unittest.cc (+147/-1)
src/lib/dhcpsrv/tests/cfg_iface_unittest.cc (+2/-2)
src/lib/dhcpsrv/tests/cfg_option_def_unittest.cc (+93/-5)
src/lib/dhcpsrv/tests/cfg_option_unittest.cc (+489/-9)
src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc (+208/-10)
src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc (+214/-8)
src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc (+652/-25)
src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc (+708/-14)
src/lib/dhcpsrv/tests/cfgmgr_unittest.cc (+324/-1)
src/lib/dhcpsrv/tests/client_class_def_parser_unittest.cc (+107/-1)
src/lib/dhcpsrv/tests/cql_host_data_source_unittest.cc (+89/-46)
src/lib/dhcpsrv/tests/cql_lease_mgr_unittest.cc (+23/-17)
src/lib/dhcpsrv/tests/csv_lease_file4_unittest.cc (+108/-13)
src/lib/dhcpsrv/tests/csv_lease_file6_unittest.cc (+57/-13)
src/lib/dhcpsrv/tests/d2_client_unittest.cc (+50/-1)
src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc (+1007/-12)
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc (+54/-47)
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h (+14/-17)
src/lib/dhcpsrv/tests/host_cache_unittest.cc (+31/-13)
src/lib/dhcpsrv/tests/host_mgr_unittest.cc (+406/-16)
src/lib/dhcpsrv/tests/host_unittest.cc (+42/-38)
src/lib/dhcpsrv/tests/lease_file_loader_unittest.cc (+121/-64)
src/lib/dhcpsrv/tests/lease_unittest.cc (+28/-73)
src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc (+18/-17)
src/lib/dhcpsrv/tests/mysql_host_data_source_unittest.cc (+55/-8)
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc (+16/-9)
src/lib/dhcpsrv/tests/ncr_generator_unittest.cc (+3/-4)
src/lib/dhcpsrv/tests/network_unittest.cc (+422/-0)
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc (+54/-7)
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc (+21/-13)
src/lib/dhcpsrv/tests/pool_unittest.cc (+73/-1)
src/lib/dhcpsrv/tests/sanity_checks_unittest.cc (+206/-5)
src/lib/dhcpsrv/tests/shared_network_parser_unittest.cc (+176/-19)
src/lib/dhcpsrv/tests/shared_network_unittest.cc (+458/-19)
src/lib/dhcpsrv/tests/shared_networks_list_parser_unittest.cc (+3/-3)
src/lib/dhcpsrv/tests/srv_config_unittest.cc (+152/-18)
src/lib/dhcpsrv/tests/subnet_unittest.cc (+197/-12)
src/lib/dhcpsrv/tests/test_utils.h (+2/-2)
src/lib/dhcpsrv/testutils/Makefile.am (+5/-0)
src/lib/dhcpsrv/testutils/Makefile.in (+49/-24)
src/lib/dhcpsrv/testutils/generic_backend_unittest.cc (+75/-1)
src/lib/dhcpsrv/testutils/generic_backend_unittest.h (+76/-1)
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc (+581/-15)
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h (+65/-1)
src/lib/dhcpsrv/testutils/host_data_source_utils.cc (+3/-3)
src/lib/dhcpsrv/testutils/memory_host_data_source.cc (+70/-1)
src/lib/dhcpsrv/testutils/memory_host_data_source.h (+42/-1)
src/lib/dhcpsrv/testutils/mysql_generic_backend_unittest.cc (+41/-0)
src/lib/dhcpsrv/testutils/mysql_generic_backend_unittest.h (+45/-0)
src/lib/dhcpsrv/testutils/test_config_backend.h (+35/-3)
src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.cc (+1101/-114)
src/lib/dhcpsrv/testutils/test_config_backend_dhcp4.h (+85/-9)
src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.cc (+1347/-0)
src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.h (+521/-0)
src/lib/dhcpsrv/triplet.h (+10/-34)
src/lib/dhcpsrv/writable_host_data_source.h (+63/-1)
src/lib/dns/Makefile.am (+3/-3)
src/lib/dns/Makefile.in (+7/-8)
src/lib/dns/labelsequence.cc (+11/-10)
src/lib/dns/name.cc (+17/-17)
src/lib/dns/name.h (+2/-2)
src/lib/dns/rdata/template.cc (+67/-0)
src/lib/dns/rdata/template.h (+54/-0)
src/lib/dns/tests/Makefile.in (+4/-4)
src/lib/dns/tests/name_unittest.cc (+31/-2)
src/lib/dns/tests/rdata_afsdb_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_ds_like_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_minfo_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_srv_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_tsig_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_txt_like_unittest.cc (+2/-2)
src/lib/dns/tests/rdata_unittest.cc (+2/-2)
src/lib/dns/tests/testdata/Makefile.am (+1/-1)
src/lib/dns/tests/testdata/Makefile.in (+36/-35)
src/lib/dns/tests/testdata/rdata_nsec3_fromWire1.spec (+7/-0)
src/lib/dns/tests/tsigkey_unittest.cc (+3/-3)
src/lib/eval/Makefile.am (+34/-16)
src/lib/eval/Makefile.in (+43/-36)
src/lib/eval/eval_messages.cc (+91/-0)
src/lib/eval/eval_messages.h (+49/-0)
src/lib/eval/eval_messages.mes (+17/-1)
src/lib/eval/lexer.cc (+555/-842)
src/lib/eval/lexer.ll (+20/-3)
src/lib/eval/location.hh (+9/-7)
src/lib/eval/parser.cc (+512/-454)
src/lib/eval/parser.h (+1353/-1081)
src/lib/eval/parser.yy (+24/-7)
src/lib/eval/position.hh (+2/-2)
src/lib/eval/stack.hh (+2/-2)
src/lib/eval/tests/Makefile.in (+4/-4)
src/lib/eval/tests/context_unittest.cc (+74/-2)
src/lib/eval/tests/token_unittest.cc (+164/-1)
src/lib/eval/token.cc (+62/-1)
src/lib/eval/token.h (+63/-2)
src/lib/exceptions/Makefile.am (+3/-1)
src/lib/exceptions/Makefile.in (+7/-7)
src/lib/exceptions/exceptions.h (+12/-2)
src/lib/exceptions/isc_assert.h (+28/-0)
src/lib/exceptions/tests/Makefile.in (+4/-4)
src/lib/exceptions/tests/exceptions_unittest.cc (+20/-1)
src/lib/hooks/Makefile.am (+37/-16)
src/lib/hooks/Makefile.in (+46/-37)
src/lib/hooks/hooks.h (+3/-3)
src/lib/hooks/hooks_messages.cc (+85/-0)
src/lib/hooks/hooks_messages.h (+46/-0)
src/lib/hooks/tests/Makefile.in (+4/-4)
src/lib/http/Makefile.am (+39/-16)
src/lib/http/Makefile.in (+63/-44)
src/lib/http/client.cc (+260/-72)
src/lib/http/client.h (+36/-3)
src/lib/http/connection.cc (+134/-70)
src/lib/http/connection.h (+176/-31)
src/lib/http/date_time.cc (+2/-2)
src/lib/http/date_time.h (+2/-1)
src/lib/http/http_header.h (+17/-1)
src/lib/http/http_messages.cc (+63/-0)
src/lib/http/http_messages.h (+35/-0)
src/lib/http/http_messages.mes (+12/-1)
src/lib/http/listener.cc (+2/-186)
src/lib/http/listener.h (+3/-4)
src/lib/http/listener_impl.cc (+116/-0)
src/lib/http/listener_impl.h (+131/-0)
src/lib/http/post_request.cc (+4/-3)
src/lib/http/post_request.h (+5/-2)
src/lib/http/post_request_json.cc (+4/-3)
src/lib/http/post_request_json.h (+5/-2)
src/lib/http/request.cc (+27/-5)
src/lib/http/request.h (+8/-2)
src/lib/http/request_parser.cc (+3/-1)
src/lib/http/response_parser.cc (+3/-1)
src/lib/http/tests/Makefile.in (+4/-4)
src/lib/http/tests/post_request_json_unittests.cc (+19/-19)
src/lib/http/tests/post_request_unittests.cc (+6/-6)
src/lib/http/tests/request_parser_unittests.cc (+17/-1)
src/lib/http/tests/request_test.h (+9/-8)
src/lib/http/tests/request_unittests.cc (+144/-69)
src/lib/http/tests/response_parser_unittests.cc (+18/-1)
src/lib/http/tests/server_client_unittests.cc (+689/-25)
src/lib/log/Makefile.am (+2/-6)
src/lib/log/Makefile.in (+9/-10)
src/lib/log/compiler/Makefile.am (+4/-0)
src/lib/log/compiler/Makefile.in (+20/-19)
src/lib/log/interprocess/Makefile.in (+4/-4)
src/lib/log/interprocess/tests/Makefile.in (+4/-4)
src/lib/log/logger_manager.cc (+12/-1)
src/lib/log/logger_manager_impl.cc (+11/-29)
src/lib/log/logger_manager_impl.h (+5/-15)
src/lib/log/logging.dox (+44/-35)
src/lib/log/output_option.cc (+10/-1)
src/lib/log/output_option.h (+10/-2)
src/lib/log/tests/Makefile.am (+35/-10)
src/lib/log/tests/Makefile.in (+52/-40)
src/lib/log/tests/log_test_messages.cc (+25/-0)
src/lib/log/tests/log_test_messages.h (+16/-0)
src/lib/mysql/Makefile.am (+1/-1)
src/lib/mysql/Makefile.in (+5/-5)
src/lib/mysql/mysql_binding.cc (+111/-38)
src/lib/mysql/mysql_binding.h (+100/-13)
src/lib/mysql/mysql_connection.cc (+3/-1)
src/lib/mysql/mysql_connection.h (+35/-8)
src/lib/mysql/mysql_constants.h (+22/-3)
src/lib/mysql/tests/Makefile.in (+4/-4)
src/lib/mysql/tests/mysql_binding_unittest.cc (+158/-6)
src/lib/mysql/tests/mysql_connection_unittest.cc (+23/-7)
src/lib/mysql/testutils/Makefile.in (+4/-4)
src/lib/mysql/testutils/mysql_schema.cc (+35/-5)
src/lib/mysql/testutils/mysql_schema.h (+52/-14)
src/lib/pgsql/Makefile.am (+1/-1)
src/lib/pgsql/Makefile.in (+5/-5)
src/lib/pgsql/pgsql_connection.h (+3/-3)
src/lib/pgsql/tests/Makefile.am (+1/-0)
src/lib/pgsql/tests/Makefile.in (+6/-4)
src/lib/pgsql/testutils/Makefile.in (+4/-4)
src/lib/pgsql/testutils/pgsql_schema.cc (+44/-5)
src/lib/pgsql/testutils/pgsql_schema.h (+51/-14)
src/lib/process/Makefile.am (+43/-19)
src/lib/process/Makefile.in (+51/-40)
src/lib/process/cb_ctl_base.h (+349/-0)
src/lib/process/config_base.cc (+32/-8)
src/lib/process/config_base.h (+45/-4)
src/lib/process/config_ctl_info.cc (+20/-3)
src/lib/process/config_ctl_info.h (+40/-2)
src/lib/process/config_ctl_parser.cc (+10/-1)
src/lib/process/d_cfg_mgr.cc (+18/-9)
src/lib/process/d_controller.cc (+145/-49)
src/lib/process/d_controller.h (+51/-10)
src/lib/process/d_process.h (+10/-1)
src/lib/process/daemon.cc (+32/-5)
src/lib/process/daemon.h (+15/-3)
src/lib/process/log_parser.cc (+8/-3)
src/lib/process/log_parser.h (+4/-4)
src/lib/process/logging_info.cc (+8/-2)
src/lib/process/logging_info.h (+7/-2)
src/lib/process/process_messages.cc (+81/-0)
src/lib/process/process_messages.h (+44/-0)
src/lib/process/process_messages.mes (+17/-8)
src/lib/process/tests/Makefile.am (+2/-1)
src/lib/process/tests/Makefile.in (+27/-10)
src/lib/process/tests/cb_ctl_base_unittests.cc (+634/-0)
src/lib/process/tests/config_base_unittests.cc (+172/-1)
src/lib/process/tests/config_ctl_info_unittests.cc (+14/-2)
src/lib/process/tests/config_ctl_parser_unittests.cc (+8/-3)
src/lib/process/tests/daemon_unittest.cc (+53/-1)
src/lib/process/tests/log_parser_unittests.cc (+113/-1)
src/lib/process/tests/logging_info_unittests.cc (+2/-1)
src/lib/process/testutils/Makefile.in (+4/-4)
src/lib/stats/Makefile.am (+1/-1)
src/lib/stats/Makefile.in (+5/-5)
src/lib/stats/observation.cc (+271/-38)
src/lib/stats/observation.h (+139/-5)
src/lib/stats/stats_mgr.cc (+177/-18)
src/lib/stats/stats_mgr.h (+151/-13)
src/lib/stats/tests/Makefile.in (+4/-4)
src/lib/stats/tests/observation_unittest.cc (+396/-32)
src/lib/stats/tests/stats_mgr_unittest.cc (+352/-75)
src/lib/testutils/Makefile.am (+2/-0)
src/lib/testutils/Makefile.in (+14/-13)
src/lib/testutils/dhcp_test_lib.sh.in (+92/-11)
src/lib/testutils/gtest_utils.h (+92/-0)
src/lib/testutils/sandbox.h (+69/-0)
src/lib/testutils/unix_control_client.cc (+2/-2)
src/lib/util/Makefile.am (+6/-5)
src/lib/util/Makefile.in (+12/-12)
src/lib/util/boost_time_utils.cc (+23/-8)
src/lib/util/boost_time_utils.h (+17/-3)
src/lib/util/doubles.h (+29/-0)
src/lib/util/io/Makefile.in (+4/-4)
src/lib/util/io/fd_share.cc (+9/-1)
src/lib/util/io/socketsession.cc (+3/-2)
src/lib/util/optional.h (+186/-0)
src/lib/util/python/Makefile.in (+4/-4)
src/lib/util/strutil.cc (+13/-5)
src/lib/util/strutil.h (+46/-7)
src/lib/util/tests/Makefile.am (+2/-2)
src/lib/util/tests/Makefile.in (+47/-48)
src/lib/util/tests/boost_time_utils_unittest.cc (+66/-5)
src/lib/util/tests/doubles_unittest.cc (+32/-0)
src/lib/util/tests/optional_unittest.cc (+153/-0)
src/lib/util/tests/strutil_unittest.cc (+61/-4)
src/lib/util/threads/Makefile.in (+4/-4)
src/lib/util/threads/tests/Makefile.in (+4/-4)
src/lib/util/unittests/Makefile.in (+4/-4)
src/lib/yang/Makefile.am (+1/-1)
src/lib/yang/Makefile.in (+5/-5)
src/lib/yang/adaptor_config.cc (+7/-1)
src/lib/yang/adaptor_config.h (+3/-3)
src/lib/yang/pretests/Makefile.in (+4/-4)
src/lib/yang/pretests/sysrepo_setup_tests.cc (+2/-1)
src/lib/yang/tests/Makefile.in (+4/-4)
src/lib/yang/tests/adaptor_config_unittests.cc (+9/-3)
src/lib/yang/tests/config_unittests.cc (+15/-3)
src/lib/yang/tests/translator_database_unittests.cc (+21/-1)
src/lib/yang/tests/translator_logger_unittests.cc (+5/-1)
src/lib/yang/tests/translator_pd_pool_unittests.cc (+17/-1)
src/lib/yang/tests/translator_unittests.cc (+89/-13)
src/lib/yang/tests/translator_utils_unittests.cc (+25/-1)
src/lib/yang/testutils/Makefile.in (+4/-4)
src/lib/yang/testutils/translator_test.cc (+54/-15)
src/lib/yang/translator.cc (+39/-1)
src/lib/yang/translator_config.cc (+61/-34)
src/lib/yang/translator_config.h (+41/-59)
src/lib/yang/translator_control_socket.h (+2/-2)
src/lib/yang/translator_database.cc (+25/-1)
src/lib/yang/translator_database.h (+7/-1)
src/lib/yang/translator_logger.cc (+10/-1)
src/lib/yang/translator_logger.h (+9/-8)
src/lib/yang/translator_pool.cc (+1/-2)
src/lib/yang/translator_pool.h (+1/-1)
src/lib/yang/translator_shared_network.cc (+57/-1)
src/lib/yang/translator_shared_network.h (+20/-1)
src/lib/yang/translator_subnet.cc (+58/-1)
src/lib/yang/translator_subnet.h (+20/-1)
src/lib/yang/yang.dox (+1/-2)
src/lib/yang/yang_revisions.h (+7/-8)
src/share/Makefile.in (+4/-4)
src/share/database/Makefile.in (+4/-4)
src/share/database/scripts/Makefile.in (+4/-4)
src/share/database/scripts/cql/Makefile.am (+2/-1)
src/share/database/scripts/cql/Makefile.in (+14/-7)
src/share/database/scripts/cql/dhcpdb_create.cql (+138/-74)
src/share/database/scripts/cql/dhcpdb_drop.cql (+9/-9)
src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh (+33/-33)
src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh.in (+32/-32)
src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh (+23/-23)
src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh.in (+21/-21)
src/share/database/scripts/cql/upgrade_3.0_to_4.0.sh (+377/-0)
src/share/database/scripts/cql/upgrade_3.0_to_4.0.sh.in (+377/-0)
src/share/database/scripts/cql/wipe_data.sh (+55/-0)
src/share/database/scripts/cql/wipe_data.sh.in (+55/-0)
src/share/database/scripts/mysql/Makefile.am (+7/-0)
src/share/database/scripts/mysql/Makefile.in (+22/-8)
src/share/database/scripts/mysql/dhcpdb_create.mysql (+1453/-4)
src/share/database/scripts/mysql/dhcpdb_drop.mysql (+40/-1)
src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_3.0_to_4.0.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_3.0_to_4.0.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_4.0_to_4.1.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_4.0_to_4.1.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_4.1_to_5.0.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_4.1_to_5.0.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_5.0_to_5.1.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_5.0_to_5.1.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh (+2/-1)
src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh.in (+1/-0)
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh (+4/-3)
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in (+3/-2)
src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh (+983/-0)
src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh.in (+983/-0)
src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh (+110/-0)
src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh.in (+110/-0)
src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh (+499/-0)
src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh.in (+499/-0)
src/share/database/scripts/mysql/wipe_data.sh (+96/-0)
src/share/database/scripts/mysql/wipe_data.sh.in (+96/-0)
src/share/database/scripts/pgsql/Makefile.am (+4/-0)
src/share/database/scripts/pgsql/Makefile.in (+13/-8)
src/share/database/scripts/pgsql/dhcpdb_create.pgsql (+12/-1)
src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_3.0_to_3.1.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_3.0_to_3.1.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_3.1_to_3.2.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_3.1_to_3.2.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh (+2/-1)
src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh.in (+1/-0)
src/share/database/scripts/pgsql/upgrade_5.0_to_5.1.sh (+38/-0)
src/share/database/scripts/pgsql/upgrade_5.0_to_5.1.sh.in (+38/-0)
src/share/database/scripts/pgsql/wipe_data.sh (+61/-0)
src/share/database/scripts/pgsql/wipe_data.sh.in (+61/-0)
src/share/yang/Makefile.in (+4/-4)
src/share/yang/modules/Makefile.am (+21/-16)
src/share/yang/modules/Makefile.in (+13/-12)
src/share/yang/modules/ietf-interfaces@2018-02-20.yang (+858/-442)
src/share/yang/modules/kea-ctrl-agent@2019-08-12.yang (+4/-9)
src/share/yang/modules/kea-dhcp-ddns@2019-08-12.yang (+5/-8)
src/share/yang/modules/kea-dhcp-types@2019-08-12.yang (+84/-18)
src/share/yang/modules/kea-dhcp4-server@2019-08-12.yang (+22/-10)
src/share/yang/modules/kea-dhcp6-server@2019-08-12.yang (+55/-10)
src/share/yang/modules/kea-types@2019-08-12.yang (+74/-18)
src/share/yang/modules/keatest-module@2018-11-20.yang (+228/-0)
tools/Makefile.am (+1/-7)
tools/Makefile.in (+26/-178)
tools/cql_config (+81/-62)
tools/cql_config_defines.sh.sample (+2/-3)
tools/path_replacer.sh (+5/-2)
tools/path_replacer.sh.in (+5/-2)
Reviewer Review Type Date Requested Status
Christian Ehrhardt  (community) Approve
Canonical Server Pending
Review via email: mp+379023@code.launchpad.net

Description of the change

PPA: https://launchpad.net/~ahasenack/+archive/ubuntu/isc-kea-1.6.x

We are going ahead of debian for this one, to land ubuntu on the stable 1.6.x series track. The EOL of 1.6 is stated as "when 2.0 is released", with no date there (https://www.isc.org/kea/). There is also this with suggestive dates: https://kb.isc.org/docs/aa-00896#kea

In any case, 1.6 will be supported for longer than 1.5, and has more interesting features like a database backend.

This will all be proposed to debian as well. Perhaps not at the same time (dealing with two different MPs about the same thing can be hard).

I had to do quite a few changes to get it working well. What I tested:
- HA setup
- MySQL and Postgresql backends (v8 and v12 respectively)
- single server setup

Lintian is flagging a ton of issues, but it was already doing it before. These should be picked one by one in sets. I'll file bugs for these, and other remaining issues which I'm not addressing in this MP:
- add DEP8 tests. A simple smoke test isn't hard. One that just checks the REST server to see if it's alive, and that the services are running.
- move control sockets out of /tmp and into /run or some other place more appropriate
- logrotate: the daemon itself can do rotation from what I could see, but I didn't try it. It has to be enabled explicitly in the configuration file. We could do that (change the config), or ship a logrotate config file.
- the shell vars in the systemd service files seem to be unneeded. I quickly tried without them, and things were working apparently, but a more thorough check is needed before dropping them.

Here is a kea-dhcp4.conf file I used to test HA: https://paste.ubuntu.com/p/nY7KJCcPhM/

Put that in a server called kea2, and the same file on a server called kea1 and update "this-server-name" to say "kea1" instead of kea1. The other change is in kea-ctrl-agent.conf, have it listen on 0.0.0.0 instead of 127.0.0.1 (on both kea1 and kea2).

This MP has many commits, I hope they are self explanatory. In the likely event they are not, please ask, and I can enhance the changelog, so that we don't suffer too much when rebasing back on top of debian.

To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Sorry this review took a while (well from your POV it might have been over-night no matter how long it took :-) ).

Generally looks good already, a few requests for info or changes at the bottom of this.

Changelog:
- [√] old content matches Debian
- [√] changelog entry correct version and targeted codename
- [√] changelog entries correct
- [√] update-maintainer has been run

Actual changes:
- [√] upstream changes look ok
      I have double checked the orig-tarball without an import yet
      I compared your PPA vs upstream vs git and they match.
- [√] no further upstream version to consider (1.7 is dev, ok to take 1.6)
- [√] no "new" debian changes to consider as we don't merge but go ahead

Old Delta:
- [√] dropped changes are ok to be dropped
- [√] nothing else to drop
- [√] changes forwarded to debian (I know you are in contact, let that be enough for now)

New Delta:
- [√] I went through the new changes one by one and they seem ok, some feedback detail below

Build/Test:
- [√] build is ok, but x86 only
- [√] verified PPA package installs/uninstalls
- [√] autopkgtest against the PPA package passes
- [√] sanity checks test fine

TODOs:
- the bugs 1858347 and 1809262 need to be mentioned in the changelog
- This is "Architecture: any" but I see only amd64 test builds, before a final upload probably better also test cross arch build?
- debian/patches/mysql8-mybool-ubuntu.patch should get LP: #1795314 in its header
- for "enable generate messages" the reasoning seems off, when reading
  https://kea.readthedocs.io/en/latest/arm/install.html
  https://kb.isc.org/docs/kea-build-on-ubuntu
  It seems a better reason would be "to re-generate docs on build" or something like it.
  If we have another reason we should mention that one
- --enable-perfdhcp: why is it default off is it known to be broken or bad in anyway?
  I found upstream 8ee2c24be1383819fe1d79a5c75e993cbbc5e243 cdc89731ccb2b4aed2c01573bf02ffdd71622be5 and https://gitlab.isc.org/isc-projects/kea/issues/340 yet they just state the fact, but no reason :-/
  If you know a reason please add it.
- your PPAs seem to have proposed disabled I see in buildlog libboost-system1.67.0 linked but focal proposed has 1.71.0.0ubuntu1. Please make sure it builds and tests against the new version as well

review: Needs Fixing
Revision history for this message
Andreas Hasenack (ahasenack) wrote :
Download full text (3.5 KiB)

> Sorry this review took a while (well from your POV it might have been over-
> night no matter how long it took :-) ).
>
> Generally looks good already, a few requests for info or changes at the bottom
> of this.
>
> Changelog:
> - [√] old content matches Debian
> - [√] changelog entry correct version and targeted codename
> - [√] changelog entries correct
> - [√] update-maintainer has been run
>
> Actual changes:
> - [√] upstream changes look ok
> I have double checked the orig-tarball without an import yet
> I compared your PPA vs upstream vs git and they match.
> - [√] no further upstream version to consider (1.7 is dev, ok to take 1.6)
> - [√] no "new" debian changes to consider as we don't merge but go ahead
>
> Old Delta:
> - [√] dropped changes are ok to be dropped
> - [√] nothing else to drop
> - [√] changes forwarded to debian (I know you are in contact, let that be
> enough for now)
>
> New Delta:
> - [√] I went through the new changes one by one and they seem ok, some
> feedback detail below
>
> Build/Test:
> - [√] build is ok, but x86 only
> - [√] verified PPA package installs/uninstalls
> - [√] autopkgtest against the PPA package passes
> - [√] sanity checks test fine
>
> TODOs:
> - the bugs 1858347 and 1809262 need to be mentioned in the changelog

They were kind of fixed upstream, so I put them next to the "new upstream release" entry.

> - This is "Architecture: any" but I see only amd64 test builds, before a final
> upload probably better also test cross arch build?

Ups, they were in the ppa I was using for testing, just not this one. Fixed.

> - debian/patches/mysql8-mybool-ubuntu.patch should get LP: #1795314 in its
> header

done

> - for "enable generate messages" the reasoning seems off, when reading
> https://kea.readthedocs.io/en/latest/arm/install.html
> https://kb.isc.org/docs/kea-build-on-ubuntu
> It seems a better reason would be "to re-generate docs on build" or
> something like it.
> If we have another reason we should mention that one

When looking for users of the message compiler, I found this bug: https://github.com/zorun/kea-hook-runscript/issues/15

They fixed it another way, but it shows a third party could need it. I thought about putting it in the kea-dev package, but that would introduce a package transition scenario which is a potential delta I wasn't ready to take on, specially if we have to revert it later.

> - --enable-perfdhcp: why is it default off is it known to be broken or bad in
> anyway?
> I found upstream 8ee2c24be1383819fe1d79a5c75e993cbbc5e243
> cdc89731ccb2b4aed2c01573bf02ffdd71622be5 and https://gitlab.isc.org/isc-
> projects/kea/issues/340 yet they just state the fact, but no reason :-/
> If you know a reason please add it.

I figure it's not something you would run frequently, that's why it's optional. Maybe we could put it in another package, but that would also introduce a package transition delta which we might not need, depending on what debian will do eventually. I haven't run the tool myself.

> - your PPAs seem to have proposed disabled I see in buildlog libboost-
> system1.67.0 linked but focal proposed has 1.71.0.0ubuntu1. Please make sure
> i...

Read more...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Upstreams .deb for isc-kea-admin 1.6.1-isc0042520191119145256 has perfdhcp as well, so it seems to be ok.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks for explaining all the details and fixing up the things I pointed out!
Changes all LGTM now and build on all arches just completed.

+1

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Thanks, tagging and uploading 450a875fd71f61bd0ba666782c5dc69feb253f33

$ git push pkg upload/1.6.1-0ubuntu1
Enumerating objects: 2124, done.
Counting objects: 100% (2122/2122), done.
Delta compression using up to 4 threads
Compressing objects: 100% (581/581), done.
Writing objects: 100% (1474/1474), 2.37 MiB | 279.00 KiB/s, done.
Total 1474 (delta 955), reused 1373 (delta 890)
remote: Resolving deltas: 100% (955/955), completed with 483 local objects.
To ssh://git.launchpad.net/~usd-import-team/ubuntu/+source/isc-kea
 * [new tag] upload/1.6.1-0ubuntu1 -> upload/1.6.1-0ubuntu1

$ dput ubuntu ../isc-kea_1.6.1-0ubuntu1_source.changes
Checking signature on .changes
gpg: ../isc-kea_1.6.1-0ubuntu1_source.changes: Valid signature from AC983EB5BF6BCBA9
Checking signature on .dsc
gpg: ../isc-kea_1.6.1-0ubuntu1.dsc: Valid signature from AC983EB5BF6BCBA9
Uploading to ubuntu (via ftp to upload.ubuntu.com):
  Uploading isc-kea_1.6.1-0ubuntu1.dsc: done.
  Uploading isc-kea_1.6.1.orig.tar.gz: done.
  Uploading isc-kea_1.6.1-0ubuntu1.debian.tar.xz: done.
  Uploading isc-kea_1.6.1-0ubuntu1_source.buildinfo: done.
  Uploading isc-kea_1.6.1-0ubuntu1_source.changes: done.
Successfully uploaded packages.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/AUTHORS b/AUTHORS
2index 5b7aa77..4e8812e 100644
3--- a/AUTHORS
4+++ b/AUTHORS
5@@ -5,18 +5,24 @@ Primary developers:
6 - Tomek Mrugalski (lead developer: DHCPv4, DHCPv6 components, prefix
7 delegation, memfile, database interface, core libdhcp++,
8 host reservation, MAC extraction in DHCPv6,
9- statistics manager, kea-shell, netconf)
10+ statistics manager, kea-shell, netconf, flex/bison
11+ parsers, flex-id, documentation)
12 - Stephen Morris (Hooks, MySQL)
13 - Marcin Siodelski (DHCPv4, DHCPv6 components, options handling, perfdhcp,
14 host reservation, lease file cleanup, lease expiration,
15- control agent, shared networks, high availability)
16- - Thomas Markwalder (DDNS, user_chk, global host reservations)
17+ control agent, shared networks, high availability,
18+ config backend)
19+ - Thomas Markwalder (DDNS, user_chk, global host reservations, stat commands,
20+ congestion handling, config backend)
21 - Jeremy C. Reed (documentation, build system, testing, release engineering)
22 - Wlodek Wencel (testing, release engineering)
23 - Francis Dupont (crypto, flex/bison parsers, perfdhcp, control agent,
24- radius, netconf)
25+ radius, netconf, config backend)
26+ - Brian Reid (logo design)
27 - Shawn Routhier (lease file cleanup)
28- - Michal Nowikowski (testing)
29+ - Michal Nowikowski (testing, hammer, release engineering)
30+ - Razvan Becheriu (cassandra, sysrepo)
31+ - Suzanne Goldlust (documentation)
32
33 Primary area of work mentioned in parentheses. The list is in a roughly
34 chronological order.
35@@ -70,6 +76,8 @@ We have received the following contributions:
36
37 - Adam Osuchowski, Silesian University of Technology
38 2014-09: Examples corrected in Kea ARM
39+ 2019-02: Hooks installation directory fixed.
40+ 2019-02: Possible syntax error in keactrl fixed.
41
42 - Nicolas Chaigneau, Capgemini
43 2014-09: Fix for interfaces with multiple addresses in perfdhcp
44@@ -186,22 +194,10 @@ We have received the following contributions:
45
46 - Franciszek Gorski
47 2018-10: Makefile bug fixed
48+ 2019-07: Statistics enhancements
49
50 - Suzanne Goldlust
51 2018-10: API documentation
52
53 - lpaserati, Thorsten Krohn
54 2018-11: Two bugfixes in kea-admin
55-
56-Kea uses log4cplus (http://sourceforge.net/projects/log4cplus/) for logging,
57-Boost (http://www.boost.org/) library for almost everything, and can use Botan
58-(http://botan.randombit.net/) or OpenSSL (https://www.openssl.org/) for
59-cryptographic operations. It can also optionally use PostgreSQL
60-(http://www.postgresql.org/) and/or MySQL (http://www.mysql.com/) and/or
61-Cassandra (http://cassandra.apache.org/) as a database.
62-Sysrepo (http://www.sysrepo.org/) and libyang (https://github.com/CESNET/libyang)
63-required when netconf is used as configuration backend.
64-
65-Kea can use googletest for unit-tests (https://github.com/google/googletest).
66-
67-Kea uses ISC Forge (https://github.com/isc-projects/forge/) for conformance testing.
68diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
69new file mode 100644
70index 0000000..d56757a
71--- /dev/null
72+++ b/CONTRIBUTING.md
73@@ -0,0 +1,251 @@
74+# Kea Contributor's Guide
75+
76+So you found a bug in Kea or plan to develop an extension and want to send us a patch? Great! This
77+page will explain how to contribute your changes smoothly.
78+
79+Here's a quick list of how to contribute a patch:
80+
81+1. **create account** on [gitlab](https://gitlab.isc.org)
82+2. **open an issue** in [Kea project](https://gitlab.isc.org/isc-projects/kea/issues/new), make sure
83+ it describes what you want to fix and **why**
84+3. **ask someone from the ISC team to give you permission to fork Kea** (ask @tomek, @vicky, @ondrej
85+ or @godfryd or basically anyone from the Kea dev team)
86+4. **fork Kea code**: go to Kea project page, click [Fork button](https://gitlab.isc.org/isc-projects/kea/forks/new).
87+ If you can't, you didn't complete step 3.
88+5. **Implement your fix or feature, push code** to your repo. Make sure it compiles, has unit-tests,
89+ is documented and does what it's supposed to do.
90+6. **Open Merge Request**: go to Kea project [merge requests page](https://gitlab.isc.org/isc-projects/kea/merge_requests),
91+ click [New merge request](https://gitlab.isc.org/isc-projects/kea/merge_requests/new). If you
92+ don't see the button, you didn't complete step 3.
93+7. **Participate in the code review**: Once you submit the MR, someone from ISC will eventually get
94+ to the issue and will review your code. Please make sure you respond to comments. It's likely
95+ you'll be asked to update the code.
96+
97+For a much more detailed description with details, see the text below.
98+
99+## Writing a patch
100+
101+Before you start working on a patch or a new feature, it is a good idea to discuss it first with Kea
102+developers. You can post your questions to the [kea-dev](https://lists.isc.org/mailman/listinfo/kea-dev)
103+or [kea-users](https://lists.isc.org/mailman/listinfo/kea-users) mailing lists. The kea-users is
104+intended for users who are not interested in the internal workings or development details of Kea: it
105+is OK to ask for feedback regarding new design or the best proposed solution to a certain
106+problem. This is the best place to get user's feedback. The internal details, questions about the
107+code and its internals are better asked on kea-dev.
108+
109+OK, so you have written a patch? Great! Before you submit it, make sure that your code
110+compiles. This may seem obvious, but there's more to it. You have surely checked that it compiles on
111+your system, but Kea is a portable software. Besides Linux, it is compiled and used on relatively
112+uncommon systems like OpenBSD. Will your code compile and work there? What about endianness? It is
113+likely that you used a regular x86 architecture machine to write your patch, but the software is
114+expected to run on many other architectures. You may take a look at [system specific build
115+notes](https://kb.isc.org/docs/installing-kea). For a complete list of systems we build on, you may
116+take a look at the [Jenkins build farm](https://jenkins.isc.org/).
117+
118+Does your patch conform to [Kea coding
119+guidelines](https://gitlab.isc.org/isc-projects/kea/wikis/coding-guidelines)? You can submit a
120+patch that does not adhere to them, but that will reduce its chances of being accepted. If the
121+deviations are minor, one of the Kea engineers who does the review will likely fix the issues.
122+However, if there are lots of issues, the reviewer may simply reject the patch and ask you to fix it
123+before re-submitting.
124+
125+## Running unit-tests
126+
127+One of the ground rules in Kea development is that every piece of code has to be tested. We now have
128+an extensive set of unit-tests for almost every line of code. Even if you are fixing something
129+small, like a single line fix, you are encouraged to write unit-tests for that change. That is even
130+more true for new code: if you write a new function, method or a class, you definitely should write
131+unit-tests for it.
132+
133+To ensure that everything is tested, ISC uses a development method called [Test Driven Development
134+(TDD)](https://en.wikipedia.org/wiki/Test-driven_development). In TDD, a feature is developed
135+alongside the tests, preferably with the tests being written first. In detail, a test is written for
136+a small piece of functionality and run against the existing code. (In the case where the test is a
137+unit test for a function, it would be run against an empty (unimplemented) function.) The test
138+should fail. A minimal amount of code is then written, just enough to get the test to pass. Then
139+the process is repeated for the next small piece of functionality. This continues until all the
140+functionality has been implemented.
141+
142+This approach has two advantages:
143+
144+ - By writing a test first and then only enough code to pass the test, that code is fully tested. By
145+ repeating this process until the feature is fully implemented, all the code gets test
146+ coverage. You avoid the situation where not enough tests have been written to check all the
147+ code.
148+
149+ - By running the test before the code implementing the function is written and observing the test
150+ fail, you can detect the situation where a bug in the test code will cause it to pass regardless
151+ of the code being tested.
152+
153+Initially, some people unfamiliar with that approach react with "but my change is simple and I
154+tested that it works". That approach is both insufficient and short-sighted. It is insufficient,
155+because manual testing is by definition laborious and can't really be done on the multitude of
156+systems we run Kea on. It is short-sighted, because even with your best intentions you will not be
157+able to dedicate any significant amount of time for repeated testing of your improved code. The old
158+ISC DHCP has two decades of history behind it and we hope to make Kea last similar time span. Over
159+such long periods, code tends to be refactored several times. The change you made may be affected by
160+some other change or by the code that hasn't been written yet.
161+
162+See Building Kea with Unit Tests for instructions on how to run unit-tests. If you happen to touch
163+any database related code, make sure you compile your code with –with-mysql, –with-pgsql and/or
164+–with-cql as needed. For example, if you change something substantial, make sure the other
165+compilation options still work.
166+
167+If you happen to add new files or have modified any Makefile.am files, it is also a good idea to
168+check if you haven't broken the distribution process:
169+
170+```bash
171+make distcheck
172+```
173+
174+There are other useful switches which can be passed to configure. It is always a good idea to use
175+`–enable-logger-checks`, which does sanity checks on logger parameters. Use `–-enable-debug` to
176+enable various additional consistency checks that reduce performance but help during development. If
177+you happen to modify anything in the documentation, use `–-enable-generate-docs`. If you are
178+modifying DHCP code, you are likely to be interested in enabling a non-default database backends for
179+DHCP. Note that if the backend is not enabled, the database-specific unit-tests are skipped. To
180+enable the MySQL backend, use the switch `–with-mysql`; for PostgreSQL, use `–with-pgsql` and for
181+Cassandra use `--with-cql`. A complete list of all switches can be obtained with the command:
182+
183+```bash
184+./configure --help
185+```
186+
187+## Submitting Merge Request (also known as sending your patch the right way)
188+
189+The first step in writing the patch or new feature should be to get the source code from our Git
190+repository. The procedure is very easy and is [explained
191+here](https://gitlab.isc.org/isc-projects/kea/wikis/processes/gitlab-howto). While it is possible
192+to provide a patch against the latest stable release, it makes the review process much easier if it
193+is for latest code from the Git master branch.
194+
195+ISC uses [gitlab](https://gitlab.isc.org) to manage its source code. While we also maintain presence
196+on [github](https://github.com/isc-projects/kea), the process of syncing gitlab to github is mostly
197+automated and Kea devs rarely look at github.
198+
199+ISC's gitlab has been a target for spammers in the past, so it is now set up defensively. In
200+particular, new users can't fork the code on their own and it requires someone from ISC to manually
201+grant the ability to fork projects. Fortunately, this is easy to do and we glady do this for anyone
202+who asks and provides a good reason. "I'd like to fix bug X or develop feature Y" is an excellent
203+reason. The best place for asking is either kea-dev or asking in a comment in your issue. Make sure
204+you put a name tag (@tomek, @godfryd, @vicky or @ondrej). When you write a comment in an issue or
205+merge request and add a name tag on it, the user is automatically notified.
206+
207+Once you fork the Kea code in gitlab, you have your own copy and you can commit your changes there
208+and push them to your copy of Kea repo. Once you feel that your patch is ready, go to Kea project
209+and [submit a Merge Request](https://gitlab.isc.org/isc-projects/kea/merge_requests/new).
210+
211+If you can't access this link or don't see New Merge Request button on the [merge requests
212+page](https://gitlab.isc.org/isc-projects/kea/merge_requests), please ask on kea-dev and someone
213+will help you out.
214+
215+## Send Pull Request on github
216+
217+If you can't send the patch on gitlab, the next best preferred way is to send pull request (PR) on
218+[github](https://github.com/isc-projects/kea).
219+
220+This is almost as good as sending MR on gitlab. The downside is that Kea devs don't look at github
221+too frequently, so it may be a while before we notice it. And when we do, the chances are we will be
222+busy with other things. With gitlab, your MR will stare at us the whole time, so we'll get round to
223+it much quicker. But we understand that there are some cases where people may prefer github over
224+gitlab.
225+
226+See the excellent documentation on github: https://help.github.com/articles/creating-a-pull-request/
227+for details. In essence, you need github account (spam/hassle free, takes one minute to set
228+up). Then you can fork the Kea repository, commit changes to your repo and ask us to pull your
229+changes into official Kea repository. This has a number of advantages. First, it is made against a
230+specific code version, which can be easily checked with git log command. Second, this request pops
231+up instantly on our list of open pull requests and will stay there. The third benefit is that the
232+pull request mechanism is very flexible. Kea engineers (and other users, too) can comment on it,
233+attach links, mention other users etc. You as a submitter can augment the patch by committing extra
234+changes to your repository. Those extra commits will appear instantly in the pull request. This is
235+really useful during the review. Finally, Kea developers can better assess all open pull requests
236+and add labels to them, such as "enhancement", "bug", or "unit-tests missing". This makes our life
237+easier. Oh, and your commits will later be shown as yours in github history. If you care for that
238+kind of things, once the patch is merged, you'll be automatically listed as contributor and Kea will
239+be listed as project you have contributed to.
240+
241+## If you really can't do MR on gitlab or PR on github...
242+
243+Well, you are out of luck. There are other ways, but those are really awkward and the chances of
244+your patch being ignored are really high. Anyway, here they are:
245+
246+- [create an issue in the Kea Gitlab](https://gitlab.isc.org/isc-projects/kea/issues/new) and attach
247+ your patch to it. Sending a patch has a number of disadvantages. First, if you don't specify the
248+ base version against which it was created, one of Kea developers will have to guess that or go
249+ through a series of trials and errors to find that out. If the code doesn't compile, the reviewer
250+ will not know if the patch is broken or maybe it was applied to incorrect base code. Another
251+ frequent problem is that it may be possible that the patch didn't include any new files you have
252+ added. If we happen to have any comments that you as submitter are expected to address (and in
253+ the overwhelming majority of cases, we have), you will be asked to send an updated patch. It is
254+ not uncommon to see several rounds of such reviews, so this can get very complicated very
255+ quickly. Please don't add your issue to any milestone. Kea team has a process of going through
256+ issues unassigned to any milestone. Kea developers review new issues once a week and assign them
257+ to specific milestones. Please do not add issues to working milestones directly. Having an issue
258+ in gitlab ensures that the patch will never be forgotten and it will show up on our gitlab
259+ reports. It's not required, but much appreciated if you send a short note to the kea-dev mailing
260+ list explaining what you did with the code and announce the issue number.
261+
262+- Send a patch to the kea-dev list. This is the third preferred method, if you can't or don't want
263+ to use gitlab and github. If you send a patch to a mailing list in a wrong time, e.g. shortly
264+ before a release, Kea developers may miss it or perhaps they will see it and then forget about
265+ it. Nevertheless, it is still doable and we successfully accepted patches that way. It just takes
266+ more time from everyone involved, so it's a slower process in general.
267+
268+- Send a tarball with your modified code. This is really the worst way one can contribute a
269+ patch. It has a number of disadvantages. In particular, someone will need to find out which
270+ version the code was based on and generate the patch. It's not rocket science, but it may be a
271+ very mundane thing to do if the Kea developer does not know the version in advance. The mailing
272+ list has a limit on the message size (for good reasons), so you'll likely need to upload it
273+ somewhere first. Kea developers often don't pick up new issues instantly, so it may have to wait
274+ weeks before the tarball is looked at. The tarball does not benefit from most of the advantages
275+ mentioned for github, like the ability to easily update the code, have a meaningful discussion or
276+ see what the exact scope of changes are. Nevertheless, if we given a choice of getting a tarball
277+ or not getting a patch at all, we prefer tarballs. Just keep in mind that processing a tarball is
278+ really cumbersome for Kea developers, so it may take significantly longer than other ways.
279+
280+## Going through a review
281+
282+Once you make your patch available using one of the ways above, the action is on one of the Kea
283+developers. We need an issue. While we can create it on our own, we prefer the original submitter
284+fill them in as he or she has the best understanding of the purpose of the change and may have any
285+extra information about OS, version, why it was done this specific way etc. If there is no MR and no
286+gitlab issue, you risk the issue not showing up on ISC radars. Depending on the subjective
287+importance and urgency as perceived by the ISC engineer, the issue or PR will be assigned to one of
288+the milestones.
289+
290+Sooner or later, one of Kea developers will do the review. Here's the tricky part. One of Kea
291+developers will review your patch, but it may not happen immediately. Unfortunately, developers are
292+usually working under a tight schedule, so any extra unplanned review work may take a while. Having
293+said that, we value external contributions very much and will do whatever we can to review patches
294+in a timely manner. Don't get discouraged if your patch is not accepted after first review. To keep
295+the code quality high, we use the same review processes for external patches as we do for internal
296+code. It may take some cycles of review/updated patch submissions before the code is finally
297+accepted. The nature of the review process is that it emphasizes areas that need improvement. If you
298+are not used to the review process, you may get the impression that the feedback is negative. It is
299+not: even the Kea developers seldom see reviews that say "All OK please merge".
300+
301+Once the process is almost complete, the developer will likely ask you how you would like to be
302+credited. The typical answers are by first and last name, by nickname, by company name or
303+anonymously. Typically we will add a note to the ChangeLog and also set you as the author of the
304+commit applying the patch and update the contributors section in the AUTHORS file. If the
305+contributed feature is big or critical for whatever reason, it may also be mentioned in release
306+notes.
307+
308+Sadly, we sometimes see patches that are submitted and then the submitter never responds to our
309+comments or requests for an updated patch. Depending on the nature of the patch, we may either fix
310+the outstanding issues on our own and get another Kea developer to review them or the issue may end
311+up in our Outstanding milestone. When a new release is started, we go through the issues in
312+Outstanding, select a small number of them and move them to whatever the current milestone is. Keep
313+that in mind if you plan to submit a patch and forget about it. We may accept it eventually, but
314+it's much, much faster process if you participate in it.
315+
316+## Extra steps
317+
318+If you are interested in knowing the results of more in-depth testing, you are welcome to visit the
319+ISC Jenkins page: https://jenkins.isc.org This is a live result page with all tests being run on
320+various systems. Besides basic unit-tests, we also have reports from valgrind (memory debugger),
321+cppcheck and clang-analyzer (static code analyzers), Lettuce system tests and more. Although it is
322+not possible for non ISC employees to run tests on that farm, it is possible that your contributed
323+patch will end up there sooner or later. We also have ISC Forge tests running, but currently the
324+test results are not publicly available.
325diff --git a/COPYING b/COPYING
326index cf5d72e..e29c21e 100644
327--- a/COPYING
328+++ b/COPYING
329@@ -1,4 +1,4 @@
330-Copyright (C) 2009-2018 Internet Systems Consortium, Inc. ("ISC")
331+Copyright (C) 2009-2019 Internet Systems Consortium, Inc. ("ISC")
332
333 This Source Code Form is subject to the terms of the Mozilla Public
334 License, v. 2.0. If a copy of the MPL was not distributed with this
335diff --git a/ChangeLog b/ChangeLog
336index db4af4a..a3ddb91 100644
337--- a/ChangeLog
338+++ b/ChangeLog
339@@ -1,3 +1,886 @@
340+Kea 1.6.1 released on Nov 20, 2019
341+
342+1660. [bug] tmark
343+ Fixed a bug introduced in Kea 1.6.0 (see #539) that caused
344+ kea-dhcp4 and kea-dhcp6 to discard inbound packets containing
345+ string options that consist solely of nulls. The servers
346+ will now quietly omit empty or all-null string options from
347+ inbound packets.
348+ (Gitlab #900)
349+
350+1659. [bug]* tmark
351+ Added logic to core code and HA hook lib to allow HA peers
352+ to detect and handle out of bandwidth socket events. This
353+ corrects a defect introduced in Kea 1.6.0 that can cause
354+ an HA server to become unresponsive when an HA socket has
355+ been closed by a peer. Note that there is a change to the
356+ signature of the external socket callback handler invoked
357+ by IfaceMgr. Custom hook libraries happen register external
358+ sockets with IfaceMgr will require modification and
359+ recompilation.
360+ (Gitlab #964)
361+
362+Kea 1.6.0 released on Aug 28, 2019
363+
364+1658. [bug] tmark
365+ Renamed the column "array" in option definition tables
366+ in MySQL schema to "is_array" to avoid a reserved word
367+ conflict introduced by MySQL 8.0.17.
368+ (Gitlab #853,!26-p, git 6665c3b6d0f9f2a45b7710e8e9a36fff8f99bf7f)
369+
370+1657. [bug] marcin, tomek
371+ Corrected multiple occurrences of out of bounds vector reads.
372+ These could cause server to assert when GLIBCXX_ASSERTIONS
373+ was enabled during compilation. Also, elminated overflows as
374+ a result of strncpy.
375+ (Gitlab #851,!24-p, git 4b1d6ffc5ae4f1e1fa5990a644c9786e7f6afea6)
376+
377+1656. [bug] marcin
378+ Corrected a bug in the Kea MySQL Configuration Backend which
379+ caused the Kea DHCPv6 server to incorrectly require the server
380+ tag to be provided with the remote-subnet6-option-set command.
381+ In addition, corrected issues with setting and deleting
382+ pool specific DHCP options via the Configuration Backend.
383+ (Gitlab #847,!23-p, git 578bc6c997679c507c2f9e419783d34de77816cd)
384+
385+1655. [bug] marcin
386+ Corrected a bug in the Kea MySQL Configuration Backend which
387+ prevented the DHCP servers from discovering and fetching the
388+ changes applied with the new commands. The new commands set
389+ and delete the options embedded within the subnets, shared
390+ networks and pools.
391+ (Gitlab #845,!22-p, git 7fb2255b212e4e98ff4dbf6d8e2e0ada78701110)
392+
393+1654. [sec] tmark
394+ kea-dhcp4 Memfile logic now ensures during reading and writing
395+ that leases which are not in the declined state, have either
396+ a hardware address, client id, or both. kea-dhcp6 Memfile logic
397+ now ensures leases which are not declined have a non-empty DUID.
398+ CVE:2019-6474
399+ (Gitlab #805,!6-p, git 9705445210cf2a5c4bbe86fde4ce010c45b7aac1)
400+
401+1653. [sec] tmark
402+ Added a new parameter, "max-row-errors", to Memfile lease database
403+ configuration for kea-dhcp4 and kea-dhcp6. This parameter can be
404+ used to limit the number of rows discarded due to error during
405+ lease file loading after which the server will abandon the effort
406+ and exit. The default value of 0 disables the limit.
407+ CVE:2019-6474
408+ (Gitlab #805,!5-p git af7393c517cea37a7091075e5d0d24793bccf013)
409+
410+1652. [sec] tmark
411+ Prevent the DHCP servers from asserting when malformed
412+ hostname or FQDN options are received. Now the servers will
413+ drop the DHCP packets containing the malformed options.
414+ CVE:2019-6473
415+ (Gitlab #730,!2-p git a2a98c421bb400a81218bd28d6a6f62accd31b1f)
416+
417+1651. [sec] tmark
418+ Added logic to kea-dhcp6 to catch values for client or
419+ server DUIDs that exceed 128 bytes to inbound packet
420+ sanity checking.
421+ CVE:2019-6472
422+ (Gitlab #722,!1-p git bb1a64b8945950f4439121ce4fef566d37c8630c)
423+
424+1650. [build] marcin
425+ Bumped up library version numbers for Kea 1.6.0 final release.
426+ (Gitlab #841,!490, git 2e88e2554905dd66b9974c9fc513ee7e7b825a46)
427+
428+1649. [doc] sgoldlust
429+ API documentation updated and cleaned up.
430+ (Gitlab #810,!471, git f1ae84186beb54d45f8455236827108289b0b0d6)
431+
432+1648. [func] fdupont,marcin
433+ Client classification information (client-class,
434+ require-client-classes) and excluded prefix (excluded-prefix,
435+ excluded-prefix-len) may now be specified in the MySQL
436+ Configuration Backend.
437+ (Gitlab #659,!387, git 1f2cae397b48e2a28a7a7e61f6392691b9d32c13)
438+
439+1647. [doc] marcin
440+ Updated "Local and Relayed Traffic in Shared Networks" sections
441+ of the Kea ARM. Explained that all subnets within a shared
442+ network should have the same subnet selector, i.e. interface
443+ name or relay IP address.
444+ (Gitlab #496,!483, git 1335e5643cc142c65bfc49c13280e9aaf3eeec21)
445+
446+1646. [func] fdupont
447+ YANG models updated to cover the latest parameters:
448+ pattern and max-row-errors.
449+ (Gitlab #823,!477, git 79d0d45ec0c791560e297ca77fc88842b0a33868)
450+
451+1645. [func] tmark
452+ Binary option data may now be specified as a single-quoted
453+ text string, within double quotes: "'some text'". This is
454+ handy for binary options that convey text such as urls or
455+ file names.
456+ (Gitlab #761,!447, git 215d84f00208ac8a2710c28abc3386d6b765ede6)
457+
458+1644. [doc] marcin, fdupont
459+ Added a warning about class dependence on built-in classes.
460+ (Gitlab #727,!466, git 9977d2927cf9b9cf1cd13de30aa5551ca900165b)
461+
462+1643. [build] godfryd
463+ Added an optional --with-site-packages switch to configure
464+ script. It allows python package installation in a separate
465+ directory (mostly useful on Debian systems when building native
466+ packages).
467+ (Gitlab #721,#480, git 66332000ff618fbb41656981c7bbf3bb940066fe)
468+
469+1642. [doc] fdupont, marcin
470+ User documentation for remote-option{4,6}-* commands.
471+ (Gitlab #826,!479, git 9b469ab63a9627e377a219cf8f83033e4e613b11)
472+
473+1641. [func] tmark
474+ Added a new Logger output option, 'pattern', which can be
475+ used to customize log message content and layout.
476+ (Gitlab #665,!460, git 2add51ecf0d91d2a9ac797594c38472190c18460)
477+
478+1640. [func] fdupont
479+ Added sub-option expression for client classification and flex-id.
480+ Users can access sub-option with option[12].option[34].hex or
481+ option[12].option[34].exist
482+ (Gitlab #150,!385, git 70bb412f20b706484538680906d6fcfd7ee6da68)
483+
484+1639. [func] fdupont
485+ Updated YANG models with the latest changes in kea-dhcp4 and
486+ kea-dhcp6.
487+ (Gitlab #433,!473, git c46e8da1561e7d0c6c6f481d2e32cc9ae398324c)
488+
489+1638. [bug] franek, razvan
490+ Kea statistics improvements: Correct statistic-get{all} commands.
491+ (Gitlab #756,!470, git 59fb24794af8a9ca8ee3621bc01dfd507350b2c1)
492+
493+1637. [bug] tmark
494+ Corrected an issue in kea-dhcp6 where the server would assign
495+ a different lease each time a client with a dynamic host
496+ reservation returned via a SOLICIT.
497+ (Gitlab #754,!440, git c548d9330e6f626e538343c5e6361457057efdd7)
498+
499+1636. [bug] razvan
500+ Http request and response parser now accepts 0 for Content-Length.
501+ (Gitlab #708,!423, git 09d75804e050083b502a96c8e77b0e98c735ae3d)
502+
503+1635. [doc] godfryd, tomek
504+ Converted API documentation to Sphinx format.
505+ (Gitlab #777,!464, git 3ba1a265537330308c313a38b85e84cbe02704ae)
506+
507+1634. [func] franek, razvan
508+ Kea statistics improvements: Added commands for set sample age and
509+ set sample count.
510+ (Gitlab #731,!459, git dde1b96b33ed20dbe2c815f1168e62b66635e39f)
511+
512+1633. [bug] fdupont
513+ Added missing YANG Kea test module in distributions.
514+ (Gitlab #747,!436, git a800e79c7917acc723cbc71b626adc360e15a8d7)
515+
516+1632. [doc] razvan, tmark
517+ Fixed doc examples.
518+ (Gitlab #649,!381, git e14b90735ff57be0776270364064952d353d7e3a)
519+
520+1631. [bug] marcin
521+ Corrected the bug in mysql_cb hooks library which in some cases
522+ caused the pools to be orphaned and left in the database after
523+ the subnet has been updated.
524+ (Gitlab #632,!438, git ea15b537d62c66e03923b5fdce91db8795f436b4)
525+
526+1630. [build] fdupont
527+ Added support for sysrepo 0.7.8 (and libyang 1.0-r3).
528+ (Gitlab #742,!430, git 6776a829f90768225ea794145e522560d26fe959)
529+
530+1629. [func] tmark
531+ High Availaiblity logging now also emits server and partner system
532+ times when reporting clock skew issues. Prior to this it reported
533+ only the skew between the two servers.
534+ (Gitlab #174,!414, git 9715ddecb0143d997a57edea564f5c180a7f8577)
535+
536+1628. [bug] fdupont
537+ Improved the error message from MySQL CB -set commands when
538+ a specified server does not exist.
539+ (Gitlab #732,!429, git 82f34e60363eec72a117939a5526bdb1ececb53c)
540+
541+1627. [func] fdupont
542+ Added new command server-tag-get to DHCPv4 and DHCPv6 servers.
543+ (Gitlab #470,!386, git 3cb43f112662ba3f9d2fc7152dfa1639401b1491)
544+
545+1626. [bug] marcin
546+ Automatically delete embedded options as a result of deleting
547+ a subnet, pool or shared network from the MySQL Configuration
548+ Backend. Prior to this change, the options were unnecessarily
549+ left in the database. The database schema version was affected
550+ and its version bumped up to 8.2.
551+ (Gitlab #680,!426, git 03f0af3900bdd9eaa951b23cc9508f0618d3f1bb)
552+
553+Kea 1.6.0-beta2 released on July 24, 2019
554+
555+1625. [build] tmark, marcin
556+ Bumped up libraries version numbers for Kea 1.6.0 beta2 release.
557+ (Gitlab #740,!427, git 359fe51531e802f052bd4172d4e295378155dbd5)
558+
559+1624. [doc] marcin
560+ Documented a usage of the server tags with the Kea Configuration
561+ Backend in the Kea ARM.
562+ (Gitlab #643,!421, git 4c60b02e619bce2c434bbf9ee0e775d8776b2d74)
563+
564+1623. [bug] fdupont
565+ Eliminated the issue whereby the DHCP server could terminate as a
566+ result of the remote-network4-del and remote-network6-del commands.
567+ (Gitlab #738,!425, git b34151b647aae8690fe0996090e13403a8e3ad55)
568+
569+1622. [bug] fdupont
570+ Corrected server tags returned with the metadata when fetching
571+ option definitions from the MySQL configuration backend
572+ (Gitlab #737,!424, git 1cc95ae2a66102427e583b4924383fd414e24f0f)
573+
574+1621. [func] fdupont
575+ Both kea-dhcp4 and kea-dhcp6 now support a special class, 'DROP'.
576+ When the class is defined, inbound client packets that match the
577+ class's match expression will be dropped without further processing.
578+ Each such drop is logged at DEBUG level and accounted for in
579+ drop statistics.
580+ (Gitlab #606,!375, git bfa5b2c50324e9d2339daa8309774f49a5e7bf3c)
581+
582+1620. [func] franek, razvan
583+ Kea statistics improvements: Support for storing more than one
584+ sample.
585+ (Gitlab #696,!418, git c7b8c275758c96f56081e02da429f5dd9d653b87)
586+
587+1619. [func] marcin
588+ Add support for associating subnets with the server tags in the
589+ mysql_cb hooks library.
590+ (Gitlab #717,!417, git e121ec4e0a04bc5bebdbfecf9cc1606b50e71263)
591+
592+1618. [func] marcin
593+ Add support for associating the shared networks with the server
594+ tags in the mysql_cb hooks library.
595+ (Gitlab #716,!412, git 326fdbeb51dc1f6eebbdbbdcce78cfac87a61bd9)
596+
597+1617. [bug] fdupont
598+ During the application of the config backend the external config
599+ is initialized to the default values so when a global parameter
600+ is changed and deleted it gets back a sane value.
601+ (Gitlab #630,!355, git 237afd3c512ed4d05ae76de76cce21dca643a889)
602+
603+1616. [func] fdupont
604+ Renamed kea-admin lease-init, lease-version and lease-upgrade
605+ commands to db-init, db-version and db-upgrade. Only the lease-*
606+ command is now lease-dump.
607+ (Gitlab #466,!393, git cbd2ed23f2ea0649ccf608fe818197d2923108f0)
608+
609+1615. [func] fdupont
610+ Added check for keyword name and type in parsers of objects
611+ managed by the config backend (options, option definitions,
612+ subnets and shared networks).
613+ (Gitlab #575,!358, git c9d87afad8db924da0aadc1b8ab40638bd0a6738)
614+
615+1614. [func] marcin
616+ Add support for associating the DHCP option definitions with
617+ the server tags in the mysql_cb hooks library.
618+ (Gitlab #715,!411, git 5511725555138213de4f48dc1091d65b5db47034)
619+
620+1613. [func] marcin
621+ Add support for associating the global DHCP options with the
622+ server tags in the mysql_cb hooks library.
623+ (Gitlab #714,!409, git 711c1dca9de388b786942fe5bedb8b8cf63b85ba)
624+
625+1612. [bug] razvan
626+ Fixed crash caused by unloading premium libraries which use
627+ custom host cache containers.
628+ (Gitlab #639,!410, git d3f7e9d9a18d93fb014c8e637e15c6ae9ca9269e)
629+
630+1611. [doc] fdupont
631+ Clarified how Kea handles subnet prefixes in server configuration.
632+ (Gitlab #419,!333, git f260b51148b4f7584165e13fcf2320fdd5992a74)
633+
634+1610. [build] fdupont
635+ Removed the obsolete compatcheck top directory.
636+ (Gitlab #667,!391, git 8cb113a52f0cf56fbdb5cb0e87464135234c2ac1)
637+
638+1609. [bug] fdupont
639+ Fixed the implementation of authentication keys in DHCPv6
640+ host reservations. Please note this includes a PostgreSQL
641+ schema update.
642+ (Gitlab #550,!297, git f45511f0445cd4204671771175f7f0d34df54b0e)
643+
644+1608. [bug] fdupont
645+ Missing debug DHCP6_PACKET_SEND logging message was added.
646+ (Gitlab #699,!401, git ac96edbe30be5c93f5e3d2512961f1bc99c3253a)
647+
648+1607. [bug] tmark
649+ Corrected an initialization issue which caused lease sanity
650+ checking to be enabled inside the Lease File Cleanup (LFC)
651+ process. The LFC cannot meaningfully perform sanity checking
652+ as it does not have access to the full server configuration.
653+ (Gitlab #686,!403 git 68b2cb0385779ef0c520164e418dee124d7cb364)
654+
655+1606. [bug] tmark
656+ Corrected an error with retrieving DHCPv6 leases, whose IAID
657+ values are larger than int32_t max, from Postgresql lease
658+ databases.
659+ (Gitlab #651,!384, git 67e047df61d56558d474514a21ed0db96152557a)
660+
661+1605. [func] marcin
662+ Extended mysql_cb hooks library to support new API calls for
663+ managing the DHCP servers in the database. In addition, added
664+ support for associating the global parameters with the server
665+ tags.
666+ (Gitlab #642,!373, git 8ca1021809a6c44cf8a6589a959e94ca9ca76c29)
667+
668+1604. [bug] fdupont
669+ Improved configuration failure messages when the problem is
670+ from the configuration backend and not the configuration file.
671+ (Gitlab #616,!379, git 637e9f03cc502068822ab0310f2e070d4a4da339)
672+
673+1603. [perf] tmark
674+ High Availability now registers its HTTP sockets with Interface
675+ Manager's main thread allowing the thread can monitor them for
676+ IO readiness. This should improve the responsiveness of HA peers
677+ to each other.
678+ (Gitlab #691,!395, git 4a0b024bc6d83b26fe702d95ee7ce0c914b37d8e)
679+
680+1602. [func] fdupont
681+ Added more information to sanity-checker log messages.
682+ (Gitlab #685,!392, git 5367cd1196662739bbff5e99072ab6a55cfb0489)
683+
684+1601. [func] fdupont
685+ Kea servers now add the lease validity lifetime to informational
686+ lease allocation log messages.
687+ (Gitlan #694,!399, git cb29b532cf1f8790f9752d7e8253b0aa31ce05e6)
688+
689+1600. [bug] fdupont
690+ Fixed prefixLengthFromRange() routine.
691+ (Gitlab #583.!377, git 10bd31217d8a0a77345c4cba7a59314f70c1b509)
692+
693+1599. [perf] marcin
694+ Improved performance of the DHCPv6 server running with High
695+ Availability by aggregating multiple lease updates in a single
696+ lease6-bulk-apply command instead of generating multiple
697+ lease6-update commands, one for each allocated lease.
698+ (Gitlab #689,!394, git 65021b840b94da3d118e541fba5469c8ed15175b)
699+
700+1598. [bug] razvan
701+ Added unittests for long (> 65536 chars) tokens in parsed configs
702+ so any crash related to parsers could be detected.
703+ (Gitlab #604,!376, git 811735b67fcdb5592c3e020792c154f2f454259c)
704+
705+1597. [func] fdupont
706+ Added new configuration parameters for handling user lease
707+ time hints to kea-dhcp4: min-valid-lifetime and max-valid-lifetime;
708+ and to kea-dhcp6: min-preferred-lifetime, max-preferred-lifetime,
709+ min-valid-lifetime, and max-valid-lifetime.
710+ (Gitlab #295,!325, git 8641448c4106bf28ea32df72e5e0ad520d3946ae)
711+
712+1596. [func] marcin
713+ Implemented lease6-bulk-apply command in the lease_cmds hooks
714+ library.
715+ (Gitlab #683,!390, git 122473c18b632ddfa22b8a48f6d9399bc18e2598)
716+
717+1595. [func] fdupont
718+ Removed unused t1_ and t2_ members from internal lease class.
719+ (Gitlab #567,!357, git 6072db5f4ca6cfa9573152c255f97dd170acbd57)
720+
721+1594. [bug] fdupont
722+ Kea no longer uses the .../var/kea directory, for instance pid
723+ files are now in .../var/run/kea.
724+ BEWARE this applies to the kea-dhcp6-serverid file so if the
725+ server will not find the file at its new location it will believe
726+ it is the first time it is being started and will generate a new
727+ server DUID. If that happens, clients will keep trying to get to
728+ the old server and be confused.
729+ (Gitlab #538,!334, git 928b9ae57452aae1dff92ad689ba180fa975381c)
730+
731+1593. [bug] marcin
732+ Fixed a bug in the Kea Control Agent which caused a sporadic crash
733+ after a tiemout while sending the HTTP response to the controlling
734+ client.
735+ (Gitlab #491,!363, git ff204dfe4dd80702f8bb2edf83f8486e019a7e04)
736+
737+1592. [build] tmark
738+ Files related to YANG and netconf are now only installed
739+ when the build is configured with --with-syspro.
740+ (Gitlab #584,!364, git 350ae513ed4e8e8e07b159658f88ec7d70b644d3)
741+
742+1591. [doc] razvan
743+ Fixed classify and pd-exclude documentation examples.
744+ (Gitlab #590,!380, git 26b04d2d2d2a88be6abc5879a2fb48e05f0003fd)
745+
746+1590. [func] fdupont
747+ It is now possible to specify hostname-char-set and
748+ hostname-char-replacement at the global scope allowing to sanitize
749+ host names without requiring a dhcp-ddns entry.
750+ (Gitlab #540,!374, git 0a5979369902070ee0c4faf3b713627455b99489)
751+
752+1589. [bug] razvan
753+ Fixed configuring kea with tools/cql_config when using --with-cql
754+ from source.
755+ (Gitlab #522,!261, git bf7debc182e094a8b34f1f2df99cf4e9f84c8906)
756+
757+1588. [func] marcin
758+ Extended APIs of the DHCPv4 and DHCPv6 configuration backends with
759+ the management functions for the server tags.
760+ (Gitlab #641,!352, git 022d2266e71ced7ec79e0717298ca8e88330a7e7)
761+
762+1587. [bug] razvan
763+ Fixed IPv6 prefix delegation pools retrieval from the MySQL
764+ Configuration Backend.
765+ (Gitlab #637,!349, git 483273734e8608ed68624d7a868f20672c859c95)
766+
767+Kea 1.6.0-beta released on May 29, 2019
768+
769+1586. [build] razvan, marcin
770+ Bumped up libraries version numbers for Kea 1.6.0 beta release.
771+ (Gitlab #617,!340, git c0434bf882b6ec483120e39f6b70b5a40fe7c711)
772+
773+1585. [bug, func] marcin
774+ MySQL Configuration Backend supports DHCPv6 interface-id parameter.
775+ (Gitlab #628,!341, git 3a07c636ba4c7fceabe59ec597c44a9c8e3367eb)
776+
777+1584. [doc] marcin
778+ Documented Kea Configuration Backend in the Kea Administrator
779+ Reference Manual.
780+ (Gitlab #71,!314, git 3a65b7a9104f2a988dacf1acc26312b4259e958d)
781+
782+1583. [bug] fdupont, marcin
783+ Corrected a bug which caused failures to merge a subnet from the
784+ Configuration Backend into the DHCP server's configuration
785+ when subnet identifier was modified.
786+ (Gitlab #492,!252, git c9aba2b5e915c27a8539e6b8f0498179ba896da4)
787+
788+1582. [bug] tmark
789+ Input values for DHCPv4 and DHCPv6 options of type 'string'
790+ will now be trimmed of any trailing null bytes (0x0).
791+ (Gitlab #539, !330, git b126558e9e39e9bff517dceac25a00e96d150085)
792+
793+
794+1581. [bug] marcin
795+ Corrected a bug whereby the DHCPv6 server did not take into
796+ account a relay address specified at the shared network level
797+ during the subnet selection.
798+ (Gitlab #620,!332, git c2383e404a5227f6b55655c09ccdc03930815500)
799+
800+1580. [bug] jonatan.raudsepp
801+ Compilation fix for Alpine linux in Perfdhcp code. Thanks to
802+ Jonatan Raudsepp for sending a patch!
803+ (Gitlab #624,!337, git 19321df9e4490b75ac7b322afec9d231bcb6ffe3)
804+
805+1579. [bug] razvan
806+ Fixed a bug which caused setting dhcp4o6-port to not function via
807+ Kea configuration backend.
808+ (Gitlab #577,!331, git 98c24fe1873795bbc94d426c54c588b05d79406f)
809+
810+1578. [func] fdupont
811+ The configuration syntax has changed. The Logging scope that used
812+ to be shared between all servers has been deprecated. Each daemon
813+ is supposed to define its own loggers using 'loggers' array. The
814+ old configuration syntax is still accepted, but is considered
815+ deprecated. Kea 1.6 will accept it, but that capability will be
816+ removed in the future. Please migrate your configuration to new
817+ syntax.
818+ (Gitlab #208,!196, git 37b8ec6c2c4b64681059f8fad26d112adbb7ee2b)
819+
820+1577. [func] razvan
821+ Implemented host reservations page retrieval for Cassandra.
822+ (Gitlab #511,!278, git 152e82b49f5e5abd9d3a2a4825ed8620973f5ef1)
823+
824+1576. [doc] fdupont
825+ New commands cache-get-by-id and cache-size are now documented.
826+ (Gitlab #594,!324, git 3753008cc77f71457b5d777560d8e36dc56e7acd)
827+
828+1575. [bug] razvan
829+ Fixed issue with keactrl logging error when trying to stop running
830+ services.
831+ (Gitlab #534,!327, git 6ddee0a93ec4ad692cc385150c159d9e8da5232d)
832+
833+1574. [bug] razvan
834+ Add logging to the MySQL config backend.
835+ (Gitlab #398,!315, git bc46fd3420afdf60ae8841866e8458f7f6e072e8)
836+
837+1573. [bug] razvan
838+ Fixed build sysrepo from sources using sysrepo_config.
839+ (Gitlab #523,!262, git b86864a9b058a18eaaded2273dc5f40a9ec97c78)
840+
841+1572. [bug] tmark
842+ Corrected an issue where kea-dhcp6 was incorrectly scheduling DNS
843+ entry removals when renewing leases with generated FQDNs.
844+ (Gitlab #577,!310, git 362f40bebbdbe083ec6420a43ee1c050edf6bba6)
845+
846+1571. [bug] marcin
847+ The mysql_cb hooks library registers the MySQL backend for the
848+ DHCPv6 server.
849+ (Gitlab #603,!322, git 1ede298fcdc7a9b7018b6e300e2d759e33f73645)
850+
851+1570. [bug] marcin
852+ Corrected the bug in the Kea HTTP library which could cause a server
853+ to assert when system clock was modified during the transaction.
854+ (Gitlab #599,!320, git 958abe5063b6e602c0070e336524e313c3a87671)
855+
856+1569. [perf] fdupont
857+ Improved performance of the DHCPv4 server in cases when
858+ match-client-id set disabled by removing unnecessary query to the
859+ lease database."
860+ (Gitlab 509,!272, git 2ad41651c1118fe6f7dfb918df0694dd254706f1)
861+
862+1568. [bug] tmark
863+ kea-dhcp6 now properly skips sanity checking prefix leases.
864+ Prior to this it was incorrectly subjecting them to sanity
865+ checks during memfile lease file reloads and then flagging
866+ the leases as incorrect.
867+ (Gitlab #591,!#313, git 12262c5df19673652be73cf1dd62d07527bee95d)
868+
869+1567. [bug] marcin
870+ Kea HTTP client now always includes Host header in all HTTP requests.
871+ The Host header is required in all HTTP/1.1 requests. This corrects
872+ the problem whereby HA peers were unable to communicate via reverse
873+ HTTP proxy because the proxy was responding with Bad Request status
874+ when no Host header was included.
875+ (Gitlab #360,!305, git ddb6dbf4cf63e98d3954c5d46e0311abc4fd6cfc)
876+
877+1566. [func] tmark
878+ kea-dhcp6 can now be configured to calculate values to
879+ send to clients for T1 and T2 times. Prior to this
880+ it was only possibly to specify explicit values.
881+ (Gitlab #365,!296, git 144b83a84c836d6ff17620b35cb74f830b13c2eb)
882+
883+1565. [func] marcin
884+ MySQL Config Backend returns server tags associated with the
885+ configuration elements.
886+ (Gitlab #579,!309, git 1e2648df047fe964e8ad3e9deb1c85eea32b1219)
887+
888+1564. [func] fdupont
889+ Implemented two new commands to manage subnets: subnet4-update and
890+ subnet6-update. They allow an update of existing subnets
891+ configuration.
892+ (Gitlab #465,!265, git 71eb9188033f81dab56fc5a847a39f5497398b62)
893+
894+1563. [bug] razvan
895+ Fixed compilation of google benchmarks.
896+ (Gitlab #520,!260, git 11aa890d30ecce5518b9f0bad389feea6be78167)
897+
898+1562. [bug] marcin
899+ Corrected a bug whereby the DHCP server would trigger a segfault
900+ upon termination when MySQL configuration backend was in use.
901+ (Gitlab #571,!306, git 705e7bb6dd27ec90dd2807d4aac0905e3cb13de4)
902+
903+1561. [func] tmark
904+ kea-dhcp6 now automatically deletes configuration elements
905+ that have been deleted from configuration backends.
906+ (Gitlab #566,!304, git 2e85376f1b57187b822c662144380e04372cffff)
907+
908+1560. [bug] fdupont
909+ kea-dhcp4 now permits option code values of 0 and 255 for
910+ options defined in option spaces other than the "dhcp4" space.
911+ (Gitlab #564,!300, git 7a0a0b84d91893f08c0ee6f236daa05bede65166)
912+
913+1559. [func] fdupont
914+ Added DHCPv6 support to the MySQL Config Backend hook.
915+ (Gitlab #397,!244, git 980091ecd717e41a61f0d7f6808213e450647d8e)
916+
917+1558. [func] tmark
918+ In addition to a continuous string of digits, hexadecimal
919+ literals may now be a series of one or more octets separated
920+ by either colons or spaces.
921+ (Gitlab #484, git 251efcd5f518a215173845b22555276df0e0ffc6)
922+
923+1557. [bug] marcin
924+ Added support for "reservation-mode" parameter in the shared network
925+ configuration parsers. It corrects a bug in Configuration Backend
926+ whereby host reservation mode was not stored in the database when
927+ specified via remote-network4-set command.
928+ (Gitlab #517,!301, git e6533001e9d850432254d3cfe995a4f7abcee6e2)
929+
930+1556. [bug] fdupont
931+ Corrected parser for option definitions to refuse definitions with
932+ duplicate code or name.
933+ (Gitlab #503,!246, git 0befb653277463cd8f88740119fe90a93dbb1466)
934+
935+1555. [bug] fdupont
936+ Corrected parsers for option definitions to prevent setting out of
937+ range option code values.
938+ (Gitlab #500,!247, git 5c139602d7656df74060fee63461ffba4f290547)
939+
940+1554. [func] tmark
941+ kea-dhcp6 now uses globals, option definitions, options,
942+ share-networks, and subnets from configuration back ends.
943+ (Gitlab #413,!288, git ff367e273ed8763b354db272c5955a78203d865e)
944+
945+1553. [func] marcin
946+ DHCPv4 server automatically fetches incremental configuration updates
947+ from the configuration backends.
948+ (Gitlab #103,!277, git 319f7709edb40d6c01390a34942b9d4a200b333e)
949+ (Gitlab #103,!289, git 80087e2d0f90f9ba6623860fed4f4d33ee935ad0)
950+
951+1552. [bug] marcin
952+ Corrected inheritance of the subnet and shared network specific
953+ parameters in the MySQL Configuration Backend.
954+ (Gitlab #552,!295, git 4812e4227a57b29bfa3995e71588233424a3abb1)
955+
956+1551. [func] razvan
957+ Added consistency and serial-consistency parameters to CQL
958+ connection. Fixed all statements.
959+ (Gitlab #16,!287, git 56a9b6a860899274f9cafe2366a6731a46490e92)
960+
961+1550. [func] marcin
962+ Implemented inheritance of the DHCPv4 global and shared network
963+ specific configuration parameters when using configuration
964+ backend.
965+ (Gitlab #490,!284, git 2508f942e879ef74b20c07ffdba37d187d6ea932)
966+
967+1549. [func] tmark
968+ kea-dhcp6 can now be configured to fetch data from configuration
969+ back ends. It does not yet utilize the data fetched.
970+ (Gitlab #104,!290, git d8a25c1ecd17ad24bdce6af19e7a42ce66d4c4f2)
971+
972+1548. [func] razvan
973+ Added consistency and serial-consistency parameters to CQL
974+ connection.
975+ (Gitlab #16,!266, git 5771173d721464d879869fad6456211031858d6c)
976+
977+1547. [bug, doc] fdupont
978+ Option value for sip-ua-cs-domains has been corrected in the
979+ Kea User's Guide. Thanks to Shawn Routhier from Infoblox for
980+ reporting this issue.
981+ (Gitlab #536,!281, git c128fd9a6b7bffc36ba4fe9a0badebe55441d673)
982+
983+1546. [func] tmark
984+ kea-dhcp4 now uses options fetched from configured backends.
985+ (Gitlab #401,!254, git 6a33a6f1810f5899ff9c8bc79d0093eebad5c728)
986+
987+1545. [func] fdupont
988+ A new parameter "data-directory" has been added to DHCPv6.
989+ If specified, it allows DHCPv6 server to store lease and
990+ server-id files in non-standard locations.
991+ (Gitlab #430,!263, git 1f094e18a21124abcaf846cab52c8cba65ca36bc)
992+
993+1544. [build] fdupont
994+ Message compiler is no longer needed during compilation and
995+ generated message files are part of the distribution. They can be
996+ regenerated using --enable-generate-messages switch passed to
997+ configure script.
998+ (Gitlab #441,!233, git 499b7c36454bcac2553f7bf304d48d7d80f4d4ca)
999+
1000+1543. [bug] fdupont
1001+ Corrected behavior of the remote-subnet4-set so as it is now
1002+ possible to set the subnet using both an ID or a subnet prefix.
1003+ (Gitlab #481,!251, git 9ef651950fde16e258e4b03dd21bbf6dd07d5231)
1004+
1005+1542. [test] tmark
1006+ MySQL, PostgreSQL, and CQL unit tests will now attempt to wipe
1007+ the unit test data, rather than the (re)create the schema between
1008+ each test. This reduces test execution time appreciably. The
1009+ behavior may be overridden by defining environment variable:
1010+ KEA_TEST_DB_WIPE_DATA_ONLY="false". This will cause the schema
1011+ to be recreated before each test but may dramatically increase
1012+ test execution time.
1013+ (Gitlab #526,!269, git 7e81d7bea27e919b652351880872aae68ad1b209)
1014+ (Gitlab #531,!279, git 7f8c4fc535df3019789aea1881b7bb3bd539963a)
1015+
1016+1541. [bug] fdupont
1017+ Empty Relay Agent Information option is no longer sent in server
1018+ responses. Thanks to Geoffrey Huang from Qingdao Agricultural
1019+ University, and Jiaqi Liu from Qingdao WuKeSong Company
1020+ Communication Limited, Shandong, PRC for reporting this issue.
1021+ (Gitlab #519,#510,!271, git f3563396d2227e48e96a5d65587406d8d1868db5)
1022+
1023+1540. [func] fdupont
1024+ Added a new method deleteSharedNetworkSubnets4 in the config
1025+ backend API to delete all subnets belonging to a shared network.
1026+ (Gitlab #512,!256, git 76991c42d115641c7fdcd0f215137be578fb39a0)
1027+
1028+1539. [build] fdupont
1029+ Obsolete dns++.pc file for pkg-config was removed.
1030+ (Gitlab #498,!274, git 93cd62c99f69cc379c08cd06791db522c1fb0aca)
1031+
1032+1538. [func] marcin
1033+ DHCP configuration parsers correctly handle unspecified parameters.
1034+ This change was required for the MySQL Config Backend to record
1035+ unspecified parameters as NULL in the database.
1036+ (Gitlab #488,!259, git d3b33058651036be34200f16d2da230267415056)
1037+
1038+1537. [func] godfryd
1039+ Improved handling unix sockets in unit tests. Now by default
1040+ they are created in temporary folder under /tmp folder. This
1041+ fixes the issue with creating sockets with too long path
1042+ in the case when source folder is deeply nested.
1043+ (Gitlab #357,!258, git a45e2f68d7d1848adb0cf755954a3d76c9dff338)
1044+
1045+1536. [build] tomek
1046+ Many changes in keactrl, kea-admin, cql_config and sysrepo_config
1047+ scripts. ISC is now using shellcheck to verify portability of
1048+ our scripts.
1049+ (Gitlab #480,!245, git 8818ba0260ba36710b88db6401069f9fe4f3a73a)
1050+
1051+1535. [func] godfryd
1052+ Added checking required Vagrant version by Hammer.
1053+ Removed Hammer from EXTRA_DIST.
1054+ (Gitlab #518,!257, git ea0006f6eb948d7d4a034b413c5086cbe483eb75)
1055+
1056+1534. [func] marcin
1057+ MySQL config backend correctly handles the optional values for
1058+ subnets and shared networks. Also, updated the MySQL config
1059+ backend to store and fetch T1 and T2 percentage settings.
1060+ (Gitlab #489,!250, git 01fc4d5bb4105b90c7025e8ca8131c3c15203848)
1061+
1062+1533. [doc] sgoldlust,stephen
1063+ Kea User's Guide significantly updated.
1064+ (Gitlab #362,!182, git 4b7a8df6054d18f2c90fe61d93533466f89e6324)
1065+
1066+1532. [func]* marcin
1067+ Renamed OptionalValue C++ object to Optional and modified its
1068+ API. This object is now used to represent optional values in
1069+ subnets and shared networks. This is an internal Kea logic
1070+ change but it may impact existing user hooks libraries.
1071+ (Gitlab #487,!232, git 1c58e0ce9b9fd6fc8864dbfb2335bc5841c78ff3)
1072+
1073+1531. [func] tmark
1074+ When fetching configuration data from configured backends,
1075+ kea-dhcp4 will now merge option definitions.
1076+ (Gitlab #400,!243, git 0c5d1417031e49bd0c247889989e187db2dd8f4b)
1077+
1078+1530. [bug] adwol
1079+ Potential syntax error in keactrl fixed. Thanks to Adam Osuchowski
1080+ from Silesian University of Technology for providing a patch.
1081+ (Gitlab #162,!241, git b1a1137f252432aa956ed6fea3da21c740857333)
1082+
1083+1529. [func] tmark
1084+ When fetching configuration data from configured backends,
1085+ kea-dhcp4 will now merge global parameters.
1086+ (Gitlab #402,!224, git dadaf76f8dd61b8bb3405aa5dc80029f09b2d4ec)
1087+
1088+1528. [func] fdupont
1089+ Aligned DHCPv4 and DHCPv6 specific tables used by the MySQL Config
1090+ Backend. Extended MySQL schema to implement audit trail for the
1091+ DHCPv6 Config Backend.
1092+ (Gitlab #460,!232,!236, git 57f945f917db522773281c9e95ec8027afae6205)
1093+
1094+1527. [build] adwol,fdupont,tomek
1095+ Default Kea installation directory has been changed to
1096+ ${prefix}/lib/kea/hooks.
1097+ (Gitlab #161,!240, git cfaf16cf02191bf5b7172cade3f58a626288b5f0)
1098+
1099+1526. [func] tmark
1100+ In addition to subnets, when fetching configuration data from
1101+ configured backends, kea-dhcp4 will now merge shared-networks.
1102+ (Gitlab #399,!215, git 6b57b6b5d678c91b6b380fbe08beafd06b0e7b1d)
1103+
1104+1525. [func] fdupont
1105+ Defined API for the DHCPv6 Configuration Backend.
1106+ (Gitlab #458,!231, git f16e03d9bf1c10903c16b2614223b10880f73d50)
1107+
1108+1524. [func] tomek
1109+ Support for vendor options improved in DHCPv4 and DHCPv6. Kea is now
1110+ able to send back vendor suboptions, even if the client packet didn't
1111+ include DHCPv4 vivso (125) or DHCPv6 vendor (17) option. Usage of client
1112+ classification in such a case is required, though.
1113+ (Gitlab #464,!238, git 5c79da9358862657a631a9a8fc2ce79ae26b762e)
1114+
1115+1523. [bug] fdupont
1116+ IfaceMgr::send method now returns proper status that matches
1117+ its documentation. Thanks to Matthias Stoeckl from Secunet
1118+ for reporting this issue.
1119+ (Gitlab #417,!221, git 4be58523f38097cea81ea06161aead58e00aeb2a)
1120+
1121+1522. [bug] marcin
1122+ The "unspecified" DHCP timer values (e.g. renew-timer) are
1123+ represented as NULL values in the database. This corrects
1124+ a bug whereby the unspecified timers defaulted to 0 which
1125+ prevented the DHCP server from calculating the timers to
1126+ be sent to the client. Instead a value of 0 was sent.
1127+ (Gitlab #451,!227, git 5ec9a55528fbcfff4e0c808f9a745b9fd3a5dfae)
1128+
1129+1521. [func] marcin
1130+ Removed subsecond precision for the timestamps in MySQL config
1131+ backend. It caused issues on systems with MySQL version prior
1132+ to 5.6.4 which don't support subsecond timestamp values.
1133+ (Gitlab #444,!229, git 71200e98f5a862908240a0d2e269b5da23290af9)
1134+
1135+1520. [build] fdupont
1136+ Made perfdhcp build optional and off by default: to build it
1137+ please use the new --enable-perfdhcp configure flag.
1138+ (Gitlab #340,!220, git b2d9a5559c348e82d6730809ccf1429097a9872c)
1139+
1140+1519. [bug] Brent Bloxam
1141+ A bug in kea-admin that always assumed the PostgreSQL database is
1142+ always local has been fixed. Thank you to Brent Bloxam from
1143+ Beanfield Metroconnect for submiting a patch!
1144+ (Gitlab #423,!216, git d14e2f34c7d544aeb5e1e219f305fac9ab18c498)
1145+
1146+1518. [func] marcin
1147+ Extended MySQL schema to include the types of the global DHCP
1148+ parameters in the database. The Kea servers will use this
1149+ information to cast the values fetched from the database into
1150+ their actual types. The supported types are: string, integer,
1151+ boolean and real.
1152+ (Gitlab #429,!217, git edd745c507ce5a888461df1489311de0c22cd312)
1153+
1154+1517. [func] tmark
1155+ kea-dhcp4 will now connect to and fetch configuration data from
1156+ configured backends. At this point, only fetched subnet data is
1157+ merged and used.
1158+ (Gitlab #101,!202, git c572f8aea94349ff5fb4afee13a88ba811cc6459)
1159+
1160+1516. [func] marcin
1161+ Implemented audit trail for MySQL Configuration Backend. It allows
1162+ for tracking incremental changes in the servers' configurations.
1163+ Both mysql_cb hooks library and the MySQL schema have been updated
1164+ to facilitate this feature.
1165+ (Gitlab #396,!205, git 6d40db07ef641eef29405c42e718979e7a1e8675)
1166+
1167+1515. [func] fdupont
1168+ Changes required for new host commands that retrieve all host
1169+ reservations from a given subnet (reservation-get-all,
1170+ reservation-get-page) added. Also added documentation.
1171+ (Gitlab #313,!199, git 991b2fadcb9e8171a78e27f95e4bfba6393d7824)
1172+
1173+1514. [func] fdupont
1174+ Control Agent and DHCP-DDNS daemons now support config-reload
1175+ command, that instruct a given server to load again its
1176+ configuration from a file on disk.
1177+ (Gitlab #375,!192, git 93648a3a4918225e2c4413ae220fccc59eaea99a)
1178+
1179+1513. [func] godfryd
1180+ Fixed perfdhcp that now it keeps requested rate during performance
1181+ testing. Previously it was always about 20% lower than expected.
1182+ (Gitlab #283,!135, git 329f54bb151ec35888e9a8070cc5fa368d6f1f5e)
1183+
1184+1512. [func] tmark
1185+ kea-dhcp4 will now ignore empty Host Name (option code 12) values
1186+ received from clients. While an empty value for this option is
1187+ not RFC-compliant, some clients do send them. Prior to the this
1188+ server would drop the entire packet. In the spirit of being liberal
1189+ in what we accept, the server will now simply omit the option.
1190+ (Gitlab #40,!203, git f41bd35c3e7a3bdc1f31c5602fd91d5c84c60163)
1191+
1192+1511. [func] fdupont
1193+ Obsolete experimental secure DHCPv6 options (701-704) removed.
1194+ (Gitlab #386,!196, git 1114527652615fb730e323946cafaf1c7ca72b42)
1195+
1196+1510. [bug] fdupont
1197+ DHCPv4 and DHCPv6 no longer crash if badly broken configuration
1198+ is received.
1199+ (Gitlab #381,!193, git f45fe7b7e3916d36d017b4ec5b50588fbf517d86)
1200+
1201+1509. [func] tmark
1202+ kea-dhcp4 can now be configured to calculate values to
1203+ send to clients for for T1 and T2 (options 58 and 59
1204+ repsectively). Prior to this it was only possibly to
1205+ specify explicit values.
1206+ (Gitlab #365,!194, git 67944844a40436cd69e0e5b4962f5c9cba89ef6f)
1207+
1208+1508. [func] fdupont
1209+ Implemented the management API using a control socket for the
1210+ DHCP DDNS (D2) server. D2 now supports the following commands:
1211+ build-report, config-get, config-set, config-test, config-write,
1212+ list-commands, shutdown and version-get. Also, extended Control
1213+ Agent (CA) to support one additional command: config-set.
1214+ (Gitlab #30,!183, git ab27550cec365f42289eb5fa1bc39f33f01b19c2)
1215+
1216+1507. [func] tmark
1217+ kea-dhcp4 now ensures that the message type option (53) is
1218+ the first option in outbound DHCPv4 packets. This was done
1219+ to accommodate non-compliant clients that require the option
1220+ to be first.
1221+ (Gitlab #363,!177, git 34f40035bf7a7849083138cacee440a9f0991d67)
1222+
1223 Kea 1.5.0 released on Dec 14, 2018
1224
1225 1506. [build] marcin
1226@@ -31,7 +914,7 @@ Kea 1.5.0 released on Dec 14, 2018
1227 start using it.
1228 (Gitlab #186,!163, git 8f7d556456891e7c675082f7e6cc88da71a92fee)
1229
1230-1500 [func, doc] tmark
1231+1500. [func, doc] tmark
1232 Streamlined the isc::dhcp::PacketQueue interface and
1233 added a section on Congestion Handling to the developer's guide.
1234 (Gitlab #278,!162, git 0ce615f5da993ac90f675c5315ba7cb5c2ef3e1c)
1235@@ -453,10 +1336,10 @@ Kea 1.5.0-beta1 released on Nov 9, 2018
1236 in lease_cmds hooks library.
1237 (Trac #5651, git b056828212f7b206ff8bd07c097fd6f427d22d71)
1238
1239-1430. [func] fdupont
1240+1430. [func] fdupont
1241 Lease objects and lease backends are now able to store user
1242- context. User context can store an arbitrary data as long
1243- as it is in JSON format. Database schemas updated.
1244+ context. User context can store an arbitrary data as long
1245+ as it is in JSON format. Database schemas updated.
1246 (Trac #5584, git b0b7a198b99fd417466708c80cb7cc2162ae480c)
1247
1248 1429. [bug] marcin
1249@@ -806,7 +1689,7 @@ Kea 1.4.0-beta released on May 18, 2018
1250 hosts, ability to store fixed DHCPv4 fields (next-server,
1251 server-hostname, boot-file-name) and user contexts in host
1252 reservations. Also, the ability to store MAC address details
1253- in DHCPv6 leases on PostgreSQL has been improved.
1254+ in DHCPv6 leases on PostgreSQL has been improved.
1255 (Github #70, git 8cd0c1ae416be88baf69c2243e83a429d6d5c965)
1256 (Trac #5506, git 8cd0c1ae416be88baf69c2243e83a429d6d5c965)
1257 (Trac #5507, git 8cd0c1ae416be88baf69c2243e83a429d6d5c965)
1258@@ -927,7 +1810,7 @@ Kea 1.4.0-beta released on May 18, 2018
1259 1355. [func] tomek
1260 Lightweight 4over6 options reinstantiated. Definitions for DHCPv6
1261 options 89 through 96 were added back. DHCPv4 v4 Parameters Option
1262- 159 has its definition tweaked slightly.
1263+ 159 has its definition tweaked slightly.
1264 (Trac #5514, git 6a4aac2b3bfffe41460db6d1cd3c55b1430aa50c)
1265
1266 1354. [build] andrei
1267@@ -1717,7 +2600,7 @@ Kea 1.2.0-beta released on April 7, 2017
1268 1219. [func] marcin
1269 Control Agent uses libkea-http to process commands over
1270 the RESTful interface.
1271- (Trac #5107, git 88ce715926a46b6b3832630116fc7782adc46c7b)
1272+ (Trac #5107, git 88ce715926a46b6b3832630116fc7782adc46c7b)
1273
1274 1218. [func] tmark, tomek
1275 Configuration parsing for D2 has been migrated to bison/flex
1276@@ -1860,7 +2743,7 @@ Kea 1.2.0-beta released on April 7, 2017
1277 instances of the deprecated std::auto_ptr with std::unique_ptr.
1278 (Trac #5066, git a060d4a983860bf3056d50d9bf7ee4355c8372f2)
1279
1280-1194. [build] marcin
1281+1194. [build] marcin
1282 Moved StateModel class from D2 to libkea-util.
1283 (Trac #3175, git 270ec379aec2894104a299cdd1080e24007e25fb)
1284
1285@@ -5599,7 +6482,7 @@ bind10-1.1.0beta1 released on April 4, 2013
1286 http://bind10.isc.org/wiki/StatisticsItems. Qtype counters are
1287 dropped as it requires further spec design discussion.
1288 (Trac #2154, Trac #2155,
1289- git 61d7c3959eb991b22bc1c0ef8f4ecb96b65d9325)
1290+ git 61d7c3959eb991b22bc1c0ef8f4ecb96b65d9325)
1291 (Trac #2157, git e653adac032f871cbd66cd500c37407a56d14589)
1292
1293 bind10-1.0.0-rc released on February 14, 2013
1294@@ -6154,7 +7037,7 @@ bind10-devel-20121115 released on November 15, 2012
1295 to the BIND 10 guide.
1296 (Trac #2305, git c4b0294b5bf4a9d32fb18ab62ca572f492788d72)
1297
1298-506. [security] jinmei
1299+506. [sec] jinmei
1300 Fixed a use-after-free case in handling DNAME record with the
1301 in-memory data source. This could lead to a crash of b10-auth
1302 if it serves a zone containing a DNAME RR from the in-memory
1303@@ -7814,7 +8697,7 @@ bind10-devel-20110819 released on August 19, 2011
1304 if and only if the request is signed with a TSIG of a key name
1305 "key.example":
1306 > config set Xfrout/query_acl[0] {"action": "ACCEPT", \
1307- "key": "key.example"}
1308+ "key": "key.example"}
1309 (Trac #1104, git 9b2e89cabb6191db86f88ee717f7abc4171fa979)
1310
1311 274. [bug] naokikambe
1312@@ -7866,12 +8749,12 @@ bind10-devel-20110705 released on July 05, 2011
1313 (Trac #990, git 4a590df96a1b1d373e87f1f56edaceccb95f267d)
1314
1315 266. [func] Multiple developers
1316- Convert various error messages, debugging and other output
1317- to the new logging interface, including for b10-resolver,
1318- the resolver library, the CC library, b10-auth, b10-cfgmgr,
1319- b10-xfrin, and b10-xfrout. This includes a lot of new
1320- documentation describing the new log messages.
1321- (Trac #738, #739, #742, #746, #759, #761, #762)
1322+ Convert various error messages, debugging and other output
1323+ to the new logging interface, including for b10-resolver,
1324+ the resolver library, the CC library, b10-auth, b10-cfgmgr,
1325+ b10-xfrin, and b10-xfrout. This includes a lot of new
1326+ documentation describing the new log messages.
1327+ (Trac #738, #739, #742, #746, #759, #761, #762)
1328
1329 265. [func]* jinmei
1330 b10-resolver: Introduced ACL on incoming queries. By default the
1331@@ -8603,7 +9486,7 @@ bind10-devel-20110120 released on January 20, 2011
1332 2nd argument of type bool (true or false). This flag, if
1333 set, will cause the message to be printed whether or not
1334 -v is chosen.
1335- (Trac #432, git 880220478c3e8702d56d761b1e0b21b77d08ee5a)
1336+ (Trac #432, git 880220478c3e8702d56d761b1e0b21b77d08ee5a)
1337
1338 150. [bug] jelte
1339 b10-cfgmgr: No longer save the configuration on exit. Configuration
1340@@ -8616,7 +9499,7 @@ bind10-devel-20110120 released on January 20, 2011
1341 bindctl: Check if the user session has disappeared (either by a
1342 timeout or by a server restart), and reauthenticate if so. This
1343 fixes the 'cmdctl not running' problem.
1344- (Trac #431, git b929be82fec5f92e115d8985552f84b4fdd385b9)
1345+ (Trac #431, git b929be82fec5f92e115d8985552f84b4fdd385b9)
1346
1347 148. [func] jelte
1348 bindctl: Command results are now pretty-printed (i.e. printed in
1349@@ -9315,9 +10198,9 @@ bind10-devel-20100602 released on June 2, 2010
1350
1351 32. [func]* each
1352 bin/auth: removed custom query-processing code, changed
1353- boost::asio code to use plain asio instead, and added asio
1354- headers to the source tree. This allows building without
1355- using an external boost library. (Trac #163, svn r1983)
1356+ boost::asio code to use plain asio instead, and added asio
1357+ headers to the source tree. This allows building without
1358+ using an external boost library. (Trac #163, svn r1983)
1359
1360 31. [func] jinmei
1361 lib/dns: added a separate signature for Name::split() as a
1362@@ -9439,24 +10322,25 @@ bind10-devel-20100421 released on April 21, 2010
1363 bind10-devel-20100319 released on March 19, 2010
1364
1365 For complete code revision history, see
1366- http://git.bind10.isc.org/cgi-bin/cgit.cgi/bind10
1367+ http://gitlab.isc.org/isc-projects/kea
1368 Specific git changesets can be accessed at:
1369- http://git.bind10.isc.org/cgi-bin/cgit.cgi/bind10/commit/?id=rrr
1370+ http://gitlab.isc.org/isc-projects/kea/commit/rrr
1371 or after cloning the original git repository by executing:
1372 % git diff rrrr^ rrrr
1373-Subversion changesets are not accessible any more. The subversion
1374-revision numbers will be replaced with corresponding git revisions.
1375-Trac tickets can be accessed at: https://bind10.isc.org/ticket/nnn
1376+Prior to gitlab, we used Trac for bug tickets. Those tickets
1377+can be accessed at: http://oldkea.isc.org/ticket/nnnn
1378
1379 LEGEND
1380-[bug] general bug fix. This is generally a backward compatible change,
1381+[bug] General bug fix. This is generally a backward compatible change,
1382 unless it's deemed to be impossible or very hard to keep
1383 compatibility to fix the bug.
1384-[build] compilation and installation infrastructure change.
1385-[doc] update to documentation. This shouldn't change run time behavior.
1386-[func] new feature. In some cases this may be a backward incompatible
1387+[build] Compilation and installation infrastructure change.
1388+[doc] Update to documentation. This shouldn't change run time behavior.
1389+[func] new feature. In some cases this may be a backward incompatible
1390 change, which would require a bump of major version.
1391-[security] security hole fix. This is no different than a general bug
1392+[sec] Security hole fix. This is no different than a general bug
1393 fix except that it will be handled as confidential and will cause
1394 security patch releases.
1395+[perf] Performance related change.
1396+
1397 *: Backward incompatible or operational change.
1398diff --git a/INSTALL b/INSTALL
1399index 1f4bdaa..a9b1f77 100644
1400--- a/INSTALL
1401+++ b/INSTALL
1402@@ -34,9 +34,10 @@ Kea depends on C++ compiler, make, libtool, boost (at least includes, but many
1403 OSes require boost-system library), log4cplus and one crypto library (either
1404 OpenSSL or Botan) for compilation. Optional backends (MySQL, PostgreSQL and
1405 Cassandra) have additional dependencies. For detailed installation directions,
1406-see the guide at doc/guide/kea-guide.txt or doc/guide/kea-guide.html or on
1407-the Kea wiki: https://jenkins.isc.org/job/Kea_doc/guide/kea-guide.html#installation
1408+see the documentation in doc/sphinx/arm/install.rst text file
1409+or on the Kea online docs: https://kea.readthedocs.io/.
1410+Other optional dependencies are FreeRADIUS client (this requires a subscriber
1411+only RADIUS hook) and Sysrepo, a system for providing YANG/NETCONF interface.
1412
1413 You can find current OS-specific build/installation
1414 instructions in our knowledge base at https://kb.isc.org/docs/installing-kea
1415-
1416diff --git a/Makefile.am b/Makefile.am
1417index 8e25a6b..c34c8b9 100644
1418--- a/Makefile.am
1419+++ b/Makefile.am
1420@@ -4,7 +4,7 @@ ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
1421
1422 # We now build doc after src/, because docgen, a tool to generate API
1423 # documentation requires libkea-exceptions and libkea-cc.
1424-SUBDIRS = compatcheck tools . ext src doc m4macros @PREMIUM_DIR@ @CONTRIB_DIR@
1425+SUBDIRS = tools . ext src doc m4macros @PREMIUM_DIR@ @CONTRIB_DIR@
1426
1427 USE_LCOV=@USE_LCOV@
1428 LCOV=@LCOV@
1429@@ -13,6 +13,7 @@ DISTCHECK_GTEST_CONFIGURE_FLAG=@DISTCHECK_GTEST_CONFIGURE_FLAG@
1430 DISTCHECK_CRYPTO_CONFIGURE_FLAG=@DISTCHECK_CRYPTO_CONFIGURE_FLAG@
1431 DISTCHECK_BOOST_CONFIGURE_FLAG=@DISTCHECK_BOOST_CONFIGURE_FLAG@
1432 DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG=@DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG@
1433+DISTCHECK_PERFDHCP_CONFIGURE_FLAG=@DISTCHECK_PERFDHCP_CONFIGURE_FLAG@
1434 DISTCHECK_KEA_SHELL_CONFIGURE_FLAG=@DISTCHECK_KEA_SHELL_CONFIGURE_FLAG@
1435 DISTCHECK_PREMIUM_CONFIGURE_FLAG=@DISTCHECK_PREMIUM_CONFIGURE_FLAG@
1436 DISTCHECK_CONTRIB_CONFIGURE_FLAG=@DISTCHECK_CONTRIB_CONFIGURE_FLAG@
1437@@ -37,6 +38,9 @@ DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_BOOST_CONFIGURE_FLAG)
1438 # Keep the log4cplus path too
1439 DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG)
1440
1441+# Keep perfdhcp if enabled
1442+DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_PERFDHCP_CONFIGURE_FLAG)
1443+
1444 # Keep kea-shell if enabled
1445 DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_KEA_SHELL_CONFIGURE_FLAG)
1446
1447@@ -49,7 +53,7 @@ DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_CONTRIB_CONFIGURE_FLAG)
1448 # keerp the sysrepo config
1449 DISTCHECK_CONFIGURE_FLAGS += $(DISTCHECK_SYSREPO_CONFIGURE_FLAG)
1450
1451-dist_doc_DATA = AUTHORS COPYING ChangeLog README
1452+dist_doc_DATA = AUTHORS COPYING ChangeLog README CONTRIBUTING.md
1453
1454 .PHONY: check-valgrind check-valgrind-suppress
1455
1456@@ -142,10 +146,16 @@ cppcheck:
1457 --template '{file}:{line}: check_fail: {message} ({severity},{id})' \
1458 src
1459
1460+# this is a shortcut that builds only documentation dependecies and documentation itself
1461+docs:
1462+ $(MAKE) -C doc/sphinx
1463+
1464+
1465 # These steps are necessary during installation
1466 install-exec-hook:
1467 mkdir -p $(DESTDIR)${localstatedir}/log/
1468- mkdir -p $(DESTDIR)${localstatedir}/run/${PACKAGE_NAME}
1469+ mkdir -p $(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}
1470+ mkdir -p $(DESTDIR)${runstatedir}/${PACKAGE_NAME}
1471
1472 EXTRA_DIST = tools/path_replacer.sh
1473 EXTRA_DIST += tools/mk_cfgrpt.sh
1474@@ -153,9 +163,6 @@ EXTRA_DIST += tools/mk_cfgrpt.sh
1475 #### include external sources in the distributed tarball:
1476 EXTRA_DIST += ext/coroutine/coroutine.hpp
1477
1478-pkgconfigdir = $(libdir)/pkgconfig
1479-pkgconfig_DATA = dns++.pc
1480-
1481 CLEANFILES = $(abs_top_builddir)/logger_lockfile
1482
1483 # config.h may be included by headers supplied for building user-written
1484diff --git a/Makefile.in b/Makefile.in
1485index 168e81c..fa93e9c 100644
1486--- a/Makefile.in
1487+++ b/Makefile.in
1488@@ -110,7 +110,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
1489 configure.lineno config.status.lineno
1490 mkinstalldirs = $(install_sh) -d
1491 CONFIG_HEADER = config.h
1492-CONFIG_CLEAN_FILES = dns++.pc kea_version.h
1493+CONFIG_CLEAN_FILES = kea_version.h
1494 CONFIG_CLEAN_VPATH_FILES =
1495 AM_V_P = $(am__v_P_@AM_V@)
1496 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
1497@@ -166,9 +166,8 @@ am__uninstall_files_from_dir = { \
1498 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
1499 $(am__cd) "$$dir" && rm -f $$files; }; \
1500 }
1501-am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" \
1502- "$(DESTDIR)$(pkgincludedir)"
1503-DATA = $(dist_doc_DATA) $(pkgconfig_DATA)
1504+am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgincludedir)"
1505+DATA = $(dist_doc_DATA)
1506 HEADERS = $(pkginclude_HEADERS)
1507 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
1508 distclean-recursive maintainer-clean-recursive
1509@@ -201,9 +200,9 @@ CTAGS = ctags
1510 CSCOPE = cscope
1511 DIST_SUBDIRS = $(SUBDIRS)
1512 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
1513- $(srcdir)/dns++.pc.in $(srcdir)/kea_version.h.in AUTHORS \
1514- COPYING ChangeLog INSTALL README compile config.guess \
1515- config.sub install-sh ltmain.sh missing py-compile ylwrap
1516+ $(srcdir)/kea_version.h.in AUTHORS COPYING ChangeLog INSTALL \
1517+ README compile config.guess config.sub install-sh ltmain.sh \
1518+ missing
1519 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
1520 distdir = $(PACKAGE)-$(VERSION)
1521 top_distdir = $(distdir)
1522@@ -283,7 +282,6 @@ CXXCPP = @CXXCPP@
1523 CXXDEPMODE = @CXXDEPMODE@
1524 CXXFLAGS = @CXXFLAGS@
1525 CYGPATH_W = @CYGPATH_W@
1526-DBLATEX = @DBLATEX@
1527 DEFS = @DEFS@
1528 DEPDIR = @DEPDIR@
1529 DISTCHECK_BENCHMARK_CONFIGURE_FLAG = @DISTCHECK_BENCHMARK_CONFIGURE_FLAG@
1530@@ -293,6 +291,7 @@ DISTCHECK_CRYPTO_CONFIGURE_FLAG = @DISTCHECK_CRYPTO_CONFIGURE_FLAG@
1531 DISTCHECK_GTEST_CONFIGURE_FLAG = @DISTCHECK_GTEST_CONFIGURE_FLAG@
1532 DISTCHECK_KEA_SHELL_CONFIGURE_FLAG = @DISTCHECK_KEA_SHELL_CONFIGURE_FLAG@
1533 DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG = @DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG@
1534+DISTCHECK_PERFDHCP_CONFIGURE_FLAG = @DISTCHECK_PERFDHCP_CONFIGURE_FLAG@
1535 DISTCHECK_PREMIUM_CONFIGURE_FLAG = @DISTCHECK_PREMIUM_CONFIGURE_FLAG@
1536 DISTCHECK_SYSREPO_CONFIGURE_FLAG = @DISTCHECK_SYSREPO_CONFIGURE_FLAG@
1537 DLLTOOL = @DLLTOOL@
1538@@ -302,7 +301,6 @@ ECHO_C = @ECHO_C@
1539 ECHO_N = @ECHO_N@
1540 ECHO_T = @ECHO_T@
1541 EGREP = @EGREP@
1542-ELINKS = @ELINKS@
1543 EXEEXT = @EXEEXT@
1544 FGREP = @FGREP@
1545 GENHTML = @GENHTML@
1546@@ -353,6 +351,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
1547 PACKAGE_URL = @PACKAGE_URL@
1548 PACKAGE_VERSION = @PACKAGE_VERSION@
1549 PATH_SEPARATOR = @PATH_SEPARATOR@
1550+PDFLATEX = @PDFLATEX@
1551 PERL = @PERL@
1552 PGSQL_CPPFLAGS = @PGSQL_CPPFLAGS@
1553 PGSQL_LIBS = @PGSQL_LIBS@
1554@@ -370,17 +369,17 @@ SED = @SED@
1555 SEP = @SEP@
1556 SET_MAKE = @SET_MAKE@
1557 SHELL = @SHELL@
1558+SPHINXBUILD = @SPHINXBUILD@
1559 STRIP = @STRIP@
1560 SYSREPO_CPPFLAGS = @SYSREPO_CPPFLAGS@
1561+SYSREPO_INCLUDEDIR = @SYSREPO_INCLUDEDIR@
1562 SYSREPO_LIBS = @SYSREPO_LIBS@
1563 SYSREPO_REPO = @SYSREPO_REPO@
1564 USE_LCOV = @USE_LCOV@
1565 VALGRIND = @VALGRIND@
1566 VERSION = @VERSION@
1567 WARNING_GCC_44_STRICT_ALIASING_CFLAG = @WARNING_GCC_44_STRICT_ALIASING_CFLAG@
1568-XSLTPROC = @XSLTPROC@
1569 YACC = @YACC@
1570-YFLAGS = @YFLAGS@
1571 abs_builddir = @abs_builddir@
1572 abs_srcdir = @abs_srcdir@
1573 abs_top_builddir = @abs_top_builddir@
1574@@ -445,7 +444,7 @@ ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
1575
1576 # We now build doc after src/, because docgen, a tool to generate API
1577 # documentation requires libkea-exceptions and libkea-cc.
1578-SUBDIRS = compatcheck tools . ext src doc m4macros @PREMIUM_DIR@ @CONTRIB_DIR@
1579+SUBDIRS = tools . ext src doc m4macros @PREMIUM_DIR@ @CONTRIB_DIR@
1580 OVERALL_COVERAGE_DIR = $(abs_top_builddir)/coverage-cpp-html
1581 DISTCLEANFILES = config.report
1582
1583@@ -459,6 +458,8 @@ DISTCLEANFILES = config.report
1584
1585 # Keep the log4cplus path too
1586
1587+# Keep perfdhcp if enabled
1588+
1589 # Keep kea-shell if enabled
1590
1591 # Keep the premium config
1592@@ -471,11 +472,12 @@ DISTCHECK_CONFIGURE_FLAGS = --disable-install-configurations \
1593 $(DISTCHECK_CRYPTO_CONFIGURE_FLAG) \
1594 $(DISTCHECK_BOOST_CONFIGURE_FLAG) \
1595 $(DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG) \
1596+ $(DISTCHECK_PERFDHCP_CONFIGURE_FLAG) \
1597 $(DISTCHECK_KEA_SHELL_CONFIGURE_FLAG) \
1598 $(DISTCHECK_PREMIUM_CONFIGURE_FLAG) \
1599 $(DISTCHECK_CONTRIB_CONFIGURE_FLAG) \
1600 $(DISTCHECK_SYSREPO_CONFIGURE_FLAG)
1601-dist_doc_DATA = AUTHORS COPYING ChangeLog README
1602+dist_doc_DATA = AUTHORS COPYING ChangeLog README CONTRIBUTING.md
1603 @HAVE_BOTAN_FALSE@BOTAN_PATH =
1604 @HAVE_BOTAN_TRUE@BOTAN_PATH = botan/\*
1605 @HAVE_OPENSSL_FALSE@OPENSSL_PATH =
1606@@ -484,8 +486,6 @@ dist_doc_DATA = AUTHORS COPYING ChangeLog README
1607 #### include external sources in the distributed tarball:
1608 EXTRA_DIST = tools/path_replacer.sh tools/mk_cfgrpt.sh \
1609 ext/coroutine/coroutine.hpp
1610-pkgconfigdir = $(libdir)/pkgconfig
1611-pkgconfig_DATA = dns++.pc
1612 CLEANFILES = $(abs_top_builddir)/logger_lockfile
1613
1614 # config.h may be included by headers supplied for building user-written
1615@@ -543,8 +543,6 @@ $(srcdir)/config.h.in: $(am__configure_deps)
1616
1617 distclean-hdr:
1618 -rm -f config.h stamp-h1
1619-dns++.pc: $(top_builddir)/config.status $(srcdir)/dns++.pc.in
1620- cd $(top_builddir) && $(SHELL) ./config.status $@
1621 kea_version.h: $(top_builddir)/config.status $(srcdir)/kea_version.h.in
1622 cd $(top_builddir) && $(SHELL) ./config.status $@
1623
1624@@ -577,27 +575,6 @@ uninstall-dist_docDATA:
1625 @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
1626 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1627 dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
1628-install-pkgconfigDATA: $(pkgconfig_DATA)
1629- @$(NORMAL_INSTALL)
1630- @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
1631- if test -n "$$list"; then \
1632- echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
1633- $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
1634- fi; \
1635- for p in $$list; do \
1636- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1637- echo "$$d$$p"; \
1638- done | $(am__base_list) | \
1639- while read files; do \
1640- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
1641- $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
1642- done
1643-
1644-uninstall-pkgconfigDATA:
1645- @$(NORMAL_UNINSTALL)
1646- @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
1647- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1648- dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
1649 install-pkgincludeHEADERS: $(pkginclude_HEADERS)
1650 @$(NORMAL_INSTALL)
1651 @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
1652@@ -919,7 +896,7 @@ check: check-recursive
1653 all-am: Makefile $(DATA) $(HEADERS) config.h
1654 installdirs: installdirs-recursive
1655 installdirs-am:
1656- for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"; do \
1657+ for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgincludedir)"; do \
1658 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
1659 done
1660 install: install-recursive
1661@@ -976,8 +953,7 @@ info: info-recursive
1662
1663 info-am:
1664
1665-install-data-am: install-dist_docDATA install-pkgconfigDATA \
1666- install-pkgincludeHEADERS
1667+install-data-am: install-dist_docDATA install-pkgincludeHEADERS
1668
1669 install-dvi: install-dvi-recursive
1670
1671@@ -1024,8 +1000,7 @@ ps: ps-recursive
1672
1673 ps-am:
1674
1675-uninstall-am: uninstall-dist_docDATA uninstall-pkgconfigDATA \
1676- uninstall-pkgincludeHEADERS
1677+uninstall-am: uninstall-dist_docDATA uninstall-pkgincludeHEADERS
1678
1679 .MAKE: $(am__recursive_targets) all install-am install-exec-am \
1680 install-strip
1681@@ -1041,12 +1016,12 @@ uninstall-am: uninstall-dist_docDATA uninstall-pkgconfigDATA \
1682 install-dist_docDATA install-dvi install-dvi-am install-exec \
1683 install-exec-am install-exec-hook install-html install-html-am \
1684 install-info install-info-am install-man install-pdf \
1685- install-pdf-am install-pkgconfigDATA install-pkgincludeHEADERS \
1686- install-ps install-ps-am install-strip installcheck \
1687- installcheck-am installdirs installdirs-am maintainer-clean \
1688+ install-pdf-am install-pkgincludeHEADERS install-ps \
1689+ install-ps-am install-strip installcheck installcheck-am \
1690+ installdirs installdirs-am maintainer-clean \
1691 maintainer-clean-generic mostlyclean mostlyclean-generic \
1692 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
1693- uninstall-am uninstall-dist_docDATA uninstall-pkgconfigDATA \
1694+ uninstall-am uninstall-dist_docDATA \
1695 uninstall-pkgincludeHEADERS
1696
1697 .PRECIOUS: Makefile
1698@@ -1127,10 +1102,15 @@ cppcheck:
1699 --template '{file}:{line}: check_fail: {message} ({severity},{id})' \
1700 src
1701
1702+# this is a shortcut that builds only documentation dependecies and documentation itself
1703+docs:
1704+ $(MAKE) -C doc/sphinx
1705+
1706 # These steps are necessary during installation
1707 install-exec-hook:
1708 mkdir -p $(DESTDIR)${localstatedir}/log/
1709- mkdir -p $(DESTDIR)${localstatedir}/run/${PACKAGE_NAME}
1710+ mkdir -p $(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}
1711+ mkdir -p $(DESTDIR)${runstatedir}/${PACKAGE_NAME}
1712
1713 # Tell versions [3.59,3.63) of GNU make to not export all variables.
1714 # Otherwise a system limit (for SysV at least) may be exceeded.
1715diff --git a/README b/README
1716index 2de72d7..8ad2657 100644
1717--- a/README
1718+++ b/README
1719@@ -1,17 +1,16 @@
1720 Kea provides DHCPv4 and DHCPv6 servers, a dynamic DNS update module,
1721-a portable DHCP library, libdhcp++, control agent that provides management
1722-REST interface, netconf agent that provides a YANG/NETCONF interface for Kea,
1723+a portable DHCP library, libdhcp++, a control agent that provides a management
1724+REST interface, a NETCONF agent that provides a YANG/NETCONF interface for Kea,
1725 and a DHCP benchmarking tool, perfdhcp.
1726
1727-Kea is developed by Internet Systems Consortium.
1728+Kea is developed by Internet Systems Consortium, Inc.
1729
1730-The developers website is at https://gitlab.isc.org/isc-projects/kea
1731+The developers' website is at https://gitlab.isc.org/isc-projects/kea.
1732
1733-Limitations, known issues and feature requests can be found
1734-at https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list
1735+Limitations, known issues, and feature requests can be found
1736+at https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list.
1737
1738-If you are thinking about contributing a patch, please read this first:
1739-https://jenkins.isc.org/job/Kea_doc/doxygen/d7/df4/contributorGuide.html
1740+If you are thinking about contributing a patch, please read the
1741+Contributor's Guide first.
1742
1743-The Kea mailing lists are available via
1744-https://lists.isc.org/
1745+The Kea mailing lists are available via https://lists.isc.org/.
1746diff --git a/compatcheck/Makefile.am b/compatcheck/Makefile.am
1747deleted file mode 100644
1748index 6cc4036..0000000
1749--- a/compatcheck/Makefile.am
1750+++ /dev/null
1751@@ -1,17 +0,0 @@
1752-# We're going to abuse install-data-local for a pre-install check. This may
1753-# not be the cleanest way to do this type of job, but that's the least ugly
1754-# one we've found.
1755-#
1756-# Note also that if any test needs to examine some file that has possibly
1757-# been installed before (e.g., older DB or configuration file), it should be
1758-# referenced with the prefix of DESTDIR. Otherwise
1759-# 'make DESTDIR=/somewhere install' may not work.
1760-install-data-local:
1761- if test -e $(DESTDIR)$(localstatedir)/$(PACKAGE)/zone.sqlite3; then \
1762- $(SHELL) $(top_builddir)/src/bin/dbutil/run_dbutil.sh --check \
1763- $(DESTDIR)$(localstatedir)/$(PACKAGE)/zone.sqlite3 || \
1764- (echo "\nSQLite3 DB file schema version is old. " \
1765- "Please run: " \
1766- "$(abs_top_builddir)/src/bin/dbutil/run_dbutil.sh --upgrade " \
1767- "$(DESTDIR)$(localstatedir)/$(PACKAGE)/zone.sqlite3"; exit 1) \
1768- fi
1769diff --git a/compatcheck/README b/compatcheck/README
1770deleted file mode 100644
1771index 3c07c37..0000000
1772--- a/compatcheck/README
1773+++ /dev/null
1774@@ -1,5 +0,0 @@
1775-This directory is a collection of compatibility checker programs.
1776-They will be run before any other installation attempts on 'make install'
1777-to see if the installation causes any substantial compatibility problems
1778-with existing configurations. If any checker program finds an issue,
1779-'make install' will stop at that point.
1780diff --git a/config.guess b/config.guess
1781index 1659250..2e9ad7f 100755
1782--- a/config.guess
1783+++ b/config.guess
1784@@ -1,8 +1,8 @@
1785 #! /bin/sh
1786 # Attempt to guess a canonical system name.
1787-# Copyright 1992-2015 Free Software Foundation, Inc.
1788+# Copyright 1992-2016 Free Software Foundation, Inc.
1789
1790-timestamp='2015-08-20'
1791+timestamp='2016-10-02'
1792
1793 # This file is free software; you can redistribute it and/or modify it
1794 # under the terms of the GNU General Public License as published by
1795@@ -27,7 +27,7 @@ timestamp='2015-08-20'
1796 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
1797 #
1798 # You can get the latest version of this script from:
1799-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1800+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1801 #
1802 # Please send patches to <config-patches@gnu.org>.
1803
1804@@ -50,7 +50,7 @@ version="\
1805 GNU config.guess ($timestamp)
1806
1807 Originally written by Per Bothner.
1808-Copyright 1992-2015 Free Software Foundation, Inc.
1809+Copyright 1992-2016 Free Software Foundation, Inc.
1810
1811 This is free software; see the source for copying conditions. There is NO
1812 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
1813@@ -186,9 +186,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
1814 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
1815 esac
1816 # The Operating System including object format, if it has switched
1817- # to ELF recently, or will in the future.
1818+ # to ELF recently (or will in the future) and ABI.
1819 case "${UNAME_MACHINE_ARCH}" in
1820- arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
1821+ earm*)
1822+ os=netbsdelf
1823+ ;;
1824+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
1825 eval $set_cc_for_build
1826 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
1827 | grep -q __ELF__
1828@@ -237,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
1829 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
1830 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
1831 exit ;;
1832+ *:LibertyBSD:*:*)
1833+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
1834+ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
1835+ exit ;;
1836 *:ekkoBSD:*:*)
1837 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
1838 exit ;;
1839@@ -268,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
1840 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
1841 case "$ALPHA_CPU_TYPE" in
1842 "EV4 (21064)")
1843- UNAME_MACHINE="alpha" ;;
1844+ UNAME_MACHINE=alpha ;;
1845 "EV4.5 (21064)")
1846- UNAME_MACHINE="alpha" ;;
1847+ UNAME_MACHINE=alpha ;;
1848 "LCA4 (21066/21068)")
1849- UNAME_MACHINE="alpha" ;;
1850+ UNAME_MACHINE=alpha ;;
1851 "EV5 (21164)")
1852- UNAME_MACHINE="alphaev5" ;;
1853+ UNAME_MACHINE=alphaev5 ;;
1854 "EV5.6 (21164A)")
1855- UNAME_MACHINE="alphaev56" ;;
1856+ UNAME_MACHINE=alphaev56 ;;
1857 "EV5.6 (21164PC)")
1858- UNAME_MACHINE="alphapca56" ;;
1859+ UNAME_MACHINE=alphapca56 ;;
1860 "EV5.7 (21164PC)")
1861- UNAME_MACHINE="alphapca57" ;;
1862+ UNAME_MACHINE=alphapca57 ;;
1863 "EV6 (21264)")
1864- UNAME_MACHINE="alphaev6" ;;
1865+ UNAME_MACHINE=alphaev6 ;;
1866 "EV6.7 (21264A)")
1867- UNAME_MACHINE="alphaev67" ;;
1868+ UNAME_MACHINE=alphaev67 ;;
1869 "EV6.8CB (21264C)")
1870- UNAME_MACHINE="alphaev68" ;;
1871+ UNAME_MACHINE=alphaev68 ;;
1872 "EV6.8AL (21264B)")
1873- UNAME_MACHINE="alphaev68" ;;
1874+ UNAME_MACHINE=alphaev68 ;;
1875 "EV6.8CX (21264D)")
1876- UNAME_MACHINE="alphaev68" ;;
1877+ UNAME_MACHINE=alphaev68 ;;
1878 "EV6.9A (21264/EV69A)")
1879- UNAME_MACHINE="alphaev69" ;;
1880+ UNAME_MACHINE=alphaev69 ;;
1881 "EV7 (21364)")
1882- UNAME_MACHINE="alphaev7" ;;
1883+ UNAME_MACHINE=alphaev7 ;;
1884 "EV7.9 (21364A)")
1885- UNAME_MACHINE="alphaev79" ;;
1886+ UNAME_MACHINE=alphaev79 ;;
1887 esac
1888 # A Pn.n version is a patched version.
1889 # A Vn.n version is a released version.
1890 # A Tn.n version is a released field test version.
1891 # A Xn.n version is an unreleased experimental baselevel.
1892 # 1.2 uses "1.2" for uname -r.
1893- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
1894+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
1895 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
1896 exitcode=$?
1897 trap '' 0
1898@@ -376,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
1899 exit ;;
1900 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
1901 eval $set_cc_for_build
1902- SUN_ARCH="i386"
1903+ SUN_ARCH=i386
1904 # If there is a compiler, see if it is configured for 64-bit objects.
1905 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
1906 # This test works for both compilers.
1907- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1908+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1909 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
1910- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1911+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1912 grep IS_64BIT_ARCH >/dev/null
1913 then
1914- SUN_ARCH="x86_64"
1915+ SUN_ARCH=x86_64
1916 fi
1917 fi
1918 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
1919@@ -410,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
1920 exit ;;
1921 sun*:*:4.2BSD:*)
1922 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
1923- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
1924+ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
1925 case "`/bin/arch`" in
1926 sun3)
1927 echo m68k-sun-sunos${UNAME_RELEASE}
1928@@ -635,13 +642,13 @@ EOF
1929 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
1930 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
1931 case "${sc_cpu_version}" in
1932- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
1933- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
1934+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
1935+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
1936 532) # CPU_PA_RISC2_0
1937 case "${sc_kernel_bits}" in
1938- 32) HP_ARCH="hppa2.0n" ;;
1939- 64) HP_ARCH="hppa2.0w" ;;
1940- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
1941+ 32) HP_ARCH=hppa2.0n ;;
1942+ 64) HP_ARCH=hppa2.0w ;;
1943+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
1944 esac ;;
1945 esac
1946 fi
1947@@ -680,11 +687,11 @@ EOF
1948 exit (0);
1949 }
1950 EOF
1951- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
1952+ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
1953 test -z "$HP_ARCH" && HP_ARCH=hppa
1954 fi ;;
1955 esac
1956- if [ ${HP_ARCH} = "hppa2.0w" ]
1957+ if [ ${HP_ARCH} = hppa2.0w ]
1958 then
1959 eval $set_cc_for_build
1960
1961@@ -697,12 +704,12 @@ EOF
1962 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
1963 # => hppa64-hp-hpux11.23
1964
1965- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
1966+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
1967 grep -q __LP64__
1968 then
1969- HP_ARCH="hppa2.0w"
1970+ HP_ARCH=hppa2.0w
1971 else
1972- HP_ARCH="hppa64"
1973+ HP_ARCH=hppa64
1974 fi
1975 fi
1976 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
1977@@ -807,14 +814,14 @@ EOF
1978 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
1979 exit ;;
1980 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
1981- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
1982- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
1983+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
1984+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
1985 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
1986 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
1987 exit ;;
1988 5000:UNIX_System_V:4.*:*)
1989- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
1990- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
1991+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
1992+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
1993 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
1994 exit ;;
1995 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
1996@@ -896,7 +903,7 @@ EOF
1997 exit ;;
1998 *:GNU/*:*:*)
1999 # other systems with GNU libc and userland
2000- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
2001+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
2002 exit ;;
2003 i*86:Minix:*:*)
2004 echo ${UNAME_MACHINE}-pc-minix
2005@@ -919,7 +926,7 @@ EOF
2006 EV68*) UNAME_MACHINE=alphaev68 ;;
2007 esac
2008 objdump --private-headers /bin/sh | grep -q ld.so.1
2009- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
2010+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
2011 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2012 exit ;;
2013 arc:Linux:*:* | arceb:Linux:*:*)
2014@@ -965,6 +972,9 @@ EOF
2015 ia64:Linux:*:*)
2016 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2017 exit ;;
2018+ k1om:Linux:*:*)
2019+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2020+ exit ;;
2021 m32r*:Linux:*:*)
2022 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2023 exit ;;
2024@@ -990,6 +1000,9 @@ EOF
2025 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
2026 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
2027 ;;
2028+ mips64el:Linux:*:*)
2029+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2030+ exit ;;
2031 openrisc*:Linux:*:*)
2032 echo or1k-unknown-linux-${LIBC}
2033 exit ;;
2034@@ -1022,6 +1035,9 @@ EOF
2035 ppcle:Linux:*:*)
2036 echo powerpcle-unknown-linux-${LIBC}
2037 exit ;;
2038+ riscv32:Linux:*:* | riscv64:Linux:*:*)
2039+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
2040+ exit ;;
2041 s390:Linux:*:* | s390x:Linux:*:*)
2042 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
2043 exit ;;
2044@@ -1120,7 +1136,7 @@ EOF
2045 # uname -m prints for DJGPP always 'pc', but it prints nothing about
2046 # the processor, so we play safe by assuming i586.
2047 # Note: whatever this is, it MUST be the same as what config.sub
2048- # prints for the "djgpp" host, or else GDB configury will decide that
2049+ # prints for the "djgpp" host, or else GDB configure will decide that
2050 # this is a cross-build.
2051 echo i586-pc-msdosdjgpp
2052 exit ;;
2053@@ -1269,6 +1285,9 @@ EOF
2054 SX-8R:SUPER-UX:*:*)
2055 echo sx8r-nec-superux${UNAME_RELEASE}
2056 exit ;;
2057+ SX-ACE:SUPER-UX:*:*)
2058+ echo sxace-nec-superux${UNAME_RELEASE}
2059+ exit ;;
2060 Power*:Rhapsody:*:*)
2061 echo powerpc-apple-rhapsody${UNAME_RELEASE}
2062 exit ;;
2063@@ -1282,9 +1301,9 @@ EOF
2064 UNAME_PROCESSOR=powerpc
2065 fi
2066 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
2067- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
2068+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
2069 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
2070- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
2071+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
2072 grep IS_64BIT_ARCH >/dev/null
2073 then
2074 case $UNAME_PROCESSOR in
2075@@ -1306,7 +1325,7 @@ EOF
2076 exit ;;
2077 *:procnto*:*:* | *:QNX:[0123456789]*:*)
2078 UNAME_PROCESSOR=`uname -p`
2079- if test "$UNAME_PROCESSOR" = "x86"; then
2080+ if test "$UNAME_PROCESSOR" = x86; then
2081 UNAME_PROCESSOR=i386
2082 UNAME_MACHINE=pc
2083 fi
2084@@ -1337,7 +1356,7 @@ EOF
2085 # "uname -m" is not consistent, so use $cputype instead. 386
2086 # is converted to i386 for consistency with other x86
2087 # operating systems.
2088- if test "$cputype" = "386"; then
2089+ if test "$cputype" = 386; then
2090 UNAME_MACHINE=i386
2091 else
2092 UNAME_MACHINE="$cputype"
2093@@ -1379,7 +1398,7 @@ EOF
2094 echo i386-pc-xenix
2095 exit ;;
2096 i*86:skyos:*:*)
2097- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
2098+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
2099 exit ;;
2100 i*86:rdos:*:*)
2101 echo ${UNAME_MACHINE}-pc-rdos
2102@@ -1390,23 +1409,25 @@ EOF
2103 x86_64:VMkernel:*:*)
2104 echo ${UNAME_MACHINE}-unknown-esx
2105 exit ;;
2106+ amd64:Isilon\ OneFS:*:*)
2107+ echo x86_64-unknown-onefs
2108+ exit ;;
2109 esac
2110
2111 cat >&2 <<EOF
2112 $0: unable to guess system type
2113
2114-This script, last modified $timestamp, has failed to recognize
2115-the operating system you are using. It is advised that you
2116-download the most up to date version of the config scripts from
2117+This script (version $timestamp), has failed to recognize the
2118+operating system you are using. If your script is old, overwrite
2119+config.guess and config.sub with the latest versions from:
2120
2121- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
2122+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
2123 and
2124- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
2125+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
2126
2127-If the version you run ($0) is already up to date, please
2128-send the following data and any information you think might be
2129-pertinent to <config-patches@gnu.org> in order to provide the needed
2130-information to handle your system.
2131+If $0 has already been updated, send the following data and any
2132+information you think might be pertinent to config-patches@gnu.org to
2133+provide the necessary information to handle your system.
2134
2135 config.guess timestamp = $timestamp
2136
2137diff --git a/config.h b/config.h
2138index 6926b8e..b923481 100644
2139--- a/config.h
2140+++ b/config.h
2141@@ -22,9 +22,15 @@
2142 /* Define to 1 if you have the <boost/asio/ip/address.hpp> header file. */
2143 #define HAVE_BOOST_ASIO_IP_ADDRESS_HPP 1
2144
2145+/* Define to 1 if you have the <boost/atomic.hpp> header file. */
2146+#define HAVE_BOOST_ATOMIC_HPP 1
2147+
2148 /* Define to 1 if you have the <boost/bind.hpp> header file. */
2149 #define HAVE_BOOST_BIND_HPP 1
2150
2151+/* Define to 1 if you have the <boost/circular_buffer.hpp> header file. */
2152+#define HAVE_BOOST_CIRCULAR_BUFFER_HPP 1
2153+
2154 /* Define to 1 if you have the
2155 <boost/date_time/posix_time/posix_time_types.hpp> header file. */
2156 #define HAVE_BOOST_DATE_TIME_POSIX_TIME_POSIX_TIME_TYPES_HPP 1
2157@@ -52,7 +58,7 @@
2158 /* #undef HAVE_CQL */
2159
2160 /* Define to 1 if gtest defines edit_distance::CreateUnifiedDiff */
2161-#define HAVE_CREATE_UNIFIED_DIFF 1
2162+/* #undef HAVE_CREATE_UNIFIED_DIFF */
2163
2164 /* Define to 1 if you have the <dlfcn.h> header file. */
2165 #define HAVE_DLFCN_H 1
2166@@ -72,12 +78,18 @@
2167 /* MySQL is present */
2168 /* #undef HAVE_MYSQL */
2169
2170+/* MySQL uses my_bool */
2171+/* #undef HAVE_MYSQL_MY_BOOL */
2172+
2173 /* Check for optreset? */
2174 /* #undef HAVE_OPTRESET */
2175
2176 /* PostgreSQL is present */
2177 /* #undef HAVE_PGSQL */
2178
2179+/* Using sysrepo > 0.7.7 */
2180+/* #undef HAVE_POST_0_7_7_SYSREPO */
2181+
2182 /* Using sysrepo < 0.7.6 */
2183 /* #undef HAVE_PRE_0_7_6_SYSREPO */
2184
2185@@ -88,9 +100,6 @@
2186 sun_len */
2187 /* #undef HAVE_SA_LEN */
2188
2189-/* Define to 1 if you have the `srandomdev' function. */
2190-/* #undef HAVE_SRANDOMDEV */
2191-
2192 /* Define to 1 if stdbool.h conforms to C99. */
2193 /* #undef HAVE_STDBOOL_H */
2194
2195@@ -136,6 +145,9 @@
2196 /* Define to 1 if the system has the type `_Bool'. */
2197 /* #undef HAVE__BOOL */
2198
2199+/* Explicit initialization of log4cplus possible */
2200+/* #undef LOG4CPLUS_INITIALIZER_H */
2201+
2202 /* Define to the sub-directory where libtool stores uninstalled libraries. */
2203 #define LT_OBJDIR ".libs/"
2204
2205@@ -170,7 +182,7 @@
2206 #define PACKAGE_NAME "kea"
2207
2208 /* Define to the full name and version of this package. */
2209-#define PACKAGE_STRING "kea 1.5.0"
2210+#define PACKAGE_STRING "kea 1.6.1"
2211
2212 /* Define to the one symbol short name of this package. */
2213 #define PACKAGE_TARNAME "kea"
2214@@ -179,7 +191,7 @@
2215 #define PACKAGE_URL ""
2216
2217 /* Define to the version of this package. */
2218-#define PACKAGE_VERSION "1.5.0"
2219+#define PACKAGE_VERSION "1.6.1"
2220
2221 /* Define to 1 if you have the ANSI C header files. */
2222 #define STDC_HEADERS 1
2223@@ -191,13 +203,13 @@
2224 /* #undef USE_STATIC_LINK */
2225
2226 /* Version number of package */
2227-#define VERSION "1.5.0"
2228+#define VERSION "1.6.1"
2229
2230 /* Compile with Botan crypto */
2231-#define WITH_BOTAN /**/
2232+/* #undef WITH_BOTAN */
2233
2234 /* Compile with OpenSSL crypto */
2235-/* #undef WITH_OPENSSL */
2236+#define WITH_OPENSSL /**/
2237
2238 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
2239 `char[]'. */
2240diff --git a/config.h.in b/config.h.in
2241index ae522be..4dc69f5 100644
2242--- a/config.h.in
2243+++ b/config.h.in
2244@@ -21,9 +21,15 @@
2245 /* Define to 1 if you have the <boost/asio/ip/address.hpp> header file. */
2246 #undef HAVE_BOOST_ASIO_IP_ADDRESS_HPP
2247
2248+/* Define to 1 if you have the <boost/atomic.hpp> header file. */
2249+#undef HAVE_BOOST_ATOMIC_HPP
2250+
2251 /* Define to 1 if you have the <boost/bind.hpp> header file. */
2252 #undef HAVE_BOOST_BIND_HPP
2253
2254+/* Define to 1 if you have the <boost/circular_buffer.hpp> header file. */
2255+#undef HAVE_BOOST_CIRCULAR_BUFFER_HPP
2256+
2257 /* Define to 1 if you have the
2258 <boost/date_time/posix_time/posix_time_types.hpp> header file. */
2259 #undef HAVE_BOOST_DATE_TIME_POSIX_TIME_POSIX_TIME_TYPES_HPP
2260@@ -71,12 +77,18 @@
2261 /* MySQL is present */
2262 #undef HAVE_MYSQL
2263
2264+/* MySQL uses my_bool */
2265+#undef HAVE_MYSQL_MY_BOOL
2266+
2267 /* Check for optreset? */
2268 #undef HAVE_OPTRESET
2269
2270 /* PostgreSQL is present */
2271 #undef HAVE_PGSQL
2272
2273+/* Using sysrepo > 0.7.7 */
2274+#undef HAVE_POST_0_7_7_SYSREPO
2275+
2276 /* Using sysrepo < 0.7.6 */
2277 #undef HAVE_PRE_0_7_6_SYSREPO
2278
2279@@ -87,9 +99,6 @@
2280 sun_len */
2281 #undef HAVE_SA_LEN
2282
2283-/* Define to 1 if you have the `srandomdev' function. */
2284-#undef HAVE_SRANDOMDEV
2285-
2286 /* Define to 1 if stdbool.h conforms to C99. */
2287 #undef HAVE_STDBOOL_H
2288
2289@@ -135,6 +144,9 @@
2290 /* Define to 1 if the system has the type `_Bool'. */
2291 #undef HAVE__BOOL
2292
2293+/* Explicit initialization of log4cplus possible */
2294+#undef LOG4CPLUS_INITIALIZER_H
2295+
2296 /* Define to the sub-directory where libtool stores uninstalled libraries. */
2297 #undef LT_OBJDIR
2298
2299diff --git a/config.sub b/config.sub
2300index 1acc966..dd2ca93 100755
2301--- a/config.sub
2302+++ b/config.sub
2303@@ -1,8 +1,8 @@
2304 #! /bin/sh
2305 # Configuration validation subroutine script.
2306-# Copyright 1992-2015 Free Software Foundation, Inc.
2307+# Copyright 1992-2016 Free Software Foundation, Inc.
2308
2309-timestamp='2015-08-20'
2310+timestamp='2016-11-04'
2311
2312 # This file is free software; you can redistribute it and/or modify it
2313 # under the terms of the GNU General Public License as published by
2314@@ -33,7 +33,7 @@ timestamp='2015-08-20'
2315 # Otherwise, we print the canonical config type on stdout and succeed.
2316
2317 # You can get the latest version of this script from:
2318-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
2319+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
2320
2321 # This file is supposed to be the same for all GNU packages
2322 # and recognize all the CPU types, system types and aliases
2323@@ -53,8 +53,7 @@ timestamp='2015-08-20'
2324 me=`echo "$0" | sed -e 's,.*/,,'`
2325
2326 usage="\
2327-Usage: $0 [OPTION] CPU-MFR-OPSYS
2328- $0 [OPTION] ALIAS
2329+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
2330
2331 Canonicalize a configuration name.
2332
2333@@ -68,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
2334 version="\
2335 GNU config.sub ($timestamp)
2336
2337-Copyright 1992-2015 Free Software Foundation, Inc.
2338+Copyright 1992-2016 Free Software Foundation, Inc.
2339
2340 This is free software; see the source for copying conditions. There is NO
2341 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
2342@@ -118,7 +117,7 @@ case $maybe_os in
2343 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
2344 linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
2345 knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
2346- kopensolaris*-gnu* | \
2347+ kopensolaris*-gnu* | cloudabi*-eabi* | \
2348 storm-chaos* | os2-emx* | rtmk-nova*)
2349 os=-$maybe_os
2350 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
2351@@ -302,6 +301,7 @@ case $basic_machine in
2352 | open8 | or1k | or1knd | or32 \
2353 | pdp10 | pdp11 | pj | pjl \
2354 | powerpc | powerpc64 | powerpc64le | powerpcle \
2355+ | pru \
2356 | pyramid \
2357 | riscv32 | riscv64 \
2358 | rl78 | rx \
2359@@ -429,6 +429,7 @@ case $basic_machine in
2360 | orion-* \
2361 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
2362 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
2363+ | pru-* \
2364 | pyramid-* \
2365 | riscv32-* | riscv64-* \
2366 | rl78-* | romp-* | rs6000-* | rx-* \
2367@@ -521,7 +522,7 @@ case $basic_machine in
2368 basic_machine=i386-pc
2369 os=-aros
2370 ;;
2371- asmjs)
2372+ asmjs)
2373 basic_machine=asmjs-unknown
2374 ;;
2375 aux)
2376@@ -644,6 +645,14 @@ case $basic_machine in
2377 basic_machine=m68k-bull
2378 os=-sysv3
2379 ;;
2380+ e500v[12])
2381+ basic_machine=powerpc-unknown
2382+ os=$os"spe"
2383+ ;;
2384+ e500v[12]-*)
2385+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
2386+ os=$os"spe"
2387+ ;;
2388 ebmon29k)
2389 basic_machine=a29k-amd
2390 os=-ebmon
2391@@ -1023,7 +1032,7 @@ case $basic_machine in
2392 ppc-* | ppcbe-*)
2393 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
2394 ;;
2395- ppcle | powerpclittle | ppc-le | powerpc-little)
2396+ ppcle | powerpclittle)
2397 basic_machine=powerpcle-unknown
2398 ;;
2399 ppcle-* | powerpclittle-*)
2400@@ -1033,7 +1042,7 @@ case $basic_machine in
2401 ;;
2402 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
2403 ;;
2404- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
2405+ ppc64le | powerpc64little)
2406 basic_machine=powerpc64le-unknown
2407 ;;
2408 ppc64le-* | powerpc64little-*)
2409@@ -1383,14 +1392,14 @@ case $os in
2410 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
2411 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
2412 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
2413- | -bitrig* | -openbsd* | -solidbsd* \
2414+ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
2415 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
2416 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
2417 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
2418 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
2419 | -chorusos* | -chorusrdb* | -cegcc* \
2420 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
2421- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
2422+ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
2423 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
2424 | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
2425 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
2426@@ -1399,7 +1408,8 @@ case $os in
2427 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
2428 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
2429 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
2430- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
2431+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
2432+ | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
2433 # Remember, each alternative MUST END IN *, to match a version number.
2434 ;;
2435 -qnx*)
2436@@ -1531,6 +1541,8 @@ case $os in
2437 ;;
2438 -nacl*)
2439 ;;
2440+ -ios)
2441+ ;;
2442 -none)
2443 ;;
2444 *)
2445diff --git a/configure b/configure
2446index a80fba9..77c0805 100755
2447--- a/configure
2448+++ b/configure
2449@@ -1,6 +1,6 @@
2450 #! /bin/sh
2451 # Guess values for system-dependent variables and create Makefiles.
2452-# Generated by GNU Autoconf 2.69 for kea 1.5.0.
2453+# Generated by GNU Autoconf 2.69 for kea 1.6.1.
2454 #
2455 # Report bugs to <kea-dev@lists.isc.org>.
2456 #
2457@@ -590,8 +590,8 @@ MAKEFLAGS=
2458 # Identity of this package.
2459 PACKAGE_NAME='kea'
2460 PACKAGE_TARNAME='kea'
2461-PACKAGE_VERSION='1.5.0'
2462-PACKAGE_STRING='kea 1.5.0'
2463+PACKAGE_VERSION='1.6.1'
2464+PACKAGE_STRING='kea 1.6.1'
2465 PACKAGE_BUGREPORT='kea-dev@lists.isc.org'
2466 PACKAGE_URL=''
2467
2468@@ -653,18 +653,31 @@ INSTALL_CONFIGURATIONS_FALSE
2469 INSTALL_CONFIGURATIONS_TRUE
2470 GENERATE_DOCS_FALSE
2471 GENERATE_DOCS_TRUE
2472-HAVE_DBLATEX_FALSE
2473-HAVE_DBLATEX_TRUE
2474-DBLATEX
2475-ELINKS
2476-XSLTPROC
2477+HAVE_PDFLATEX_FALSE
2478+HAVE_PDFLATEX_TRUE
2479+PDFLATEX
2480+SPHINXBUILD
2481+PKGPYTHONDIR
2482+DISTCHECK_KEA_SHELL_CONFIGURE_FLAG
2483+KEA_SHELL_FALSE
2484+KEA_SHELL_TRUE
2485+pkgpyexecdir
2486+pyexecdir
2487+pkgpythondir
2488+pythondir
2489+PYTHON_PLATFORM
2490+PYTHON_EXEC_PREFIX
2491+PYTHON_PREFIX
2492+PYTHON_VERSION
2493+PYTHON
2494 GENERATE_PARSER_FALSE
2495 GENERATE_PARSER_TRUE
2496-YFLAGS
2497 YACC
2498 LEXLIB
2499 LEX_OUTPUT_ROOT
2500 LEX
2501+GENERATE_MESSAGES_FALSE
2502+GENERATE_MESSAGES_TRUE
2503 PERL
2504 BENCHMARK_SOURCE
2505 BENCHMARK_LDADD
2506@@ -697,6 +710,7 @@ HAVE_SYSREPO_TRUE
2507 SYSREPO_REPO
2508 SYSREPO_LIBS
2509 SYSREPO_CPPFLAGS
2510+SYSREPO_INCLUDEDIR
2511 DISTCHECK_SYSREPO_CONFIGURE_FLAG
2512 HAVE_CQL_FALSE
2513 HAVE_CQL_TRUE
2514@@ -745,19 +759,9 @@ OS_BSD_TRUE
2515 OS_LINUX_FALSE
2516 OS_LINUX_TRUE
2517 KEA_CXXFLAGS
2518-PKGPYTHONDIR
2519-DISTCHECK_KEA_SHELL_CONFIGURE_FLAG
2520-KEA_SHELL_FALSE
2521-KEA_SHELL_TRUE
2522-pkgpyexecdir
2523-pyexecdir
2524-pkgpythondir
2525-pythondir
2526-PYTHON_PLATFORM
2527-PYTHON_EXEC_PREFIX
2528-PYTHON_PREFIX
2529-PYTHON_VERSION
2530-PYTHON
2531+DISTCHECK_PERFDHCP_CONFIGURE_FLAG
2532+PERFDHCP_FALSE
2533+PERFDHCP_TRUE
2534 USE_STATIC_LINK_FALSE
2535 USE_STATIC_LINK_TRUE
2536 WARNING_GCC_44_STRICT_ALIASING_CFLAG
2537@@ -802,8 +806,6 @@ PREMIUM_DIR
2538 DEBUG_ENABLED_FALSE
2539 DEBUG_ENABLED_TRUE
2540 PKG_CONFIG
2541-CROSS_COMPILING_FALSE
2542-CROSS_COMPILING_TRUE
2543 SEP
2544 KEA_SRCID
2545 am__fastdepCXX_FALSE
2546@@ -914,7 +916,7 @@ enable_libtool_lock
2547 enable_rpath
2548 with_werror
2549 enable_static_link
2550-enable_shell
2551+enable_perfdhcp
2552 with_gtest_source
2553 with_gtest
2554 with_lcov
2555@@ -934,8 +936,13 @@ with_boost_include
2556 with_boost_libs
2557 with_boost_lib_dir
2558 enable_boost_headers_only
2559+enable_generate_messages
2560 enable_generate_parser
2561+enable_shell
2562 enable_generate_docs
2563+with_site_packages
2564+with_sphinx
2565+with_pdflatex
2566 enable_install_configurations
2567 enable_logger_checks
2568 '
2569@@ -954,8 +961,7 @@ LT_SYS_LIBRARY_PATH
2570 CPP
2571 CXXCPP
2572 PYTHON
2573-YACC
2574-YFLAGS'
2575+runstatedir'
2576
2577
2578 # Initialize some variables set by options.
2579@@ -1506,7 +1512,7 @@ if test "$ac_init_help" = "long"; then
2580 # Omit some internal or obsolete options to make the list less imposing.
2581 # This message is too long to be a string in the A/UX 3.1 sh.
2582 cat <<_ACEOF
2583-\`configure' configures kea 1.5.0 to adapt to many kinds of systems.
2584+\`configure' configures kea 1.6.1 to adapt to many kinds of systems.
2585
2586 Usage: $0 [OPTION]... [VAR=VALUE]...
2587
2588@@ -1577,7 +1583,7 @@ fi
2589
2590 if test -n "$ac_init_help"; then
2591 case $ac_init_help in
2592- short | recursive ) echo "Configuration of kea 1.5.0:";;
2593+ short | recursive ) echo "Configuration of kea 1.6.1:";;
2594 esac
2595 cat <<\_ACEOF
2596
2597@@ -1599,8 +1605,8 @@ Optional Features:
2598 --disable-libtool-lock avoid locking (might break parallel builds)
2599 --disable-rpath don't hardcode library path into binaries
2600 --enable-static-link build programs with static link [[default=no]]
2601- --enable-shell enable kea-shell, a text management client for
2602- Control Agent [default=no]
2603+ --enable-perfdhcp enable perfdhcp, a DHCP benchmarking tool
2604+ [default=no]
2605 --enable-cql-static-lib build programs with cassandra cpp driver static
2606 library [[default=no]]
2607 --enable-boost-headers-only
2608@@ -1608,11 +1614,16 @@ Optional Features:
2609 boost_system library. This is NOT recommended as it
2610 may result in non-optimized code on some platforms
2611 or introduce runtime errors on others.
2612+ --enable-generate-messages
2613+ indicates that the messages files will be
2614+ regenerated. [default=no]
2615 --enable-generate-parser
2616 indicates that the parsers will be regenerated. This
2617 implies that the bison and flex are required
2618 [default=no]
2619- --enable-generate-docs regenerate documentation using Docbook [default=no]
2620+ --enable-shell enable kea-shell, a text management client for
2621+ Control Agent [default=no]
2622+ --enable-generate-docs regenerate documentation using Sphinx [default=no]
2623 --disable-install-configurations
2624 do not install configuration
2625 --enable-logger-checks check logger messages [default=no]
2626@@ -1633,7 +1644,8 @@ Optional Packages:
2627 location of the Googletest source
2628 --with-gtest=PATH specify a path to gtest header files (PATH/include)
2629 and library (PATH/lib)
2630- --with-lcov=PROGRAM enable gtest and coverage target using the specified lcov
2631+ --with-lcov=PROGRAM enable gtest and coverage target using the specified
2632+ lcov
2633 --with-benchmark-source=PATH
2634 location of the benchmark source
2635 --with-benchmark=PATH specify a path to benchmark header files
2636@@ -1658,6 +1670,9 @@ Optional Packages:
2637 '-lboost_system'
2638 --with-boost-lib-dir=PATH
2639 specify directory where to find Boost libraries
2640+ --with-site-packages place to install Kea Python module
2641+ --with-sphinx=PATH path to sphinx-build tool
2642+ --with-pdflatex=PATH path to pdflatex tool
2643
2644 Some influential environment variables:
2645 CXX C++ compiler command
2646@@ -1674,12 +1689,7 @@ Some influential environment variables:
2647 CPP C preprocessor
2648 CXXCPP C++ preprocessor
2649 PYTHON the Python interpreter
2650- YACC The `Yet Another Compiler Compiler' implementation to use.
2651- Defaults to the first program found out of: `bison -y', `byacc',
2652- `yacc'.
2653- YFLAGS The list of arguments that will be passed by default to $YACC.
2654- This script will default YFLAGS to the empty string to avoid a
2655- default value of `-d' given by some make applications.
2656+ runstatedir $localstatedir/run for autoconf < 2.70
2657
2658 Use these variables to override the choices made by `configure' or to help
2659 it to find libraries and programs with nonstandard names/locations.
2660@@ -1747,7 +1757,7 @@ fi
2661 test -n "$ac_init_help" && exit $ac_status
2662 if $ac_init_version; then
2663 cat <<\_ACEOF
2664-kea configure 1.5.0
2665+kea configure 1.6.1
2666 generated by GNU Autoconf 2.69
2667
2668 Copyright (C) 2012 Free Software Foundation, Inc.
2669@@ -2446,7 +2456,7 @@ cat >config.log <<_ACEOF
2670 This file contains any messages produced by compilers while
2671 running configure, to aid debugging if configure makes a mistake.
2672
2673-It was created by kea $as_me 1.5.0, which was
2674+It was created by kea $as_me 1.6.1, which was
2675 generated by GNU Autoconf 2.69. Invocation command line was
2676
2677 $ $0 $@
2678@@ -3316,7 +3326,7 @@ fi
2679
2680 # Define the identity of the package.
2681 PACKAGE='kea'
2682- VERSION='1.5.0'
2683+ VERSION='1.6.1'
2684
2685
2686 cat >>confdefs.h <<_ACEOF
2687@@ -4260,34 +4270,6 @@ if test "$sep" = "__NONE__"; then
2688 fi
2689
2690
2691-# If cross compiling assume the message compiler executable was
2692-# magically already in place...
2693-if test "$cross_compiling" = "yes"; then
2694- { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"build (vs. host) compiled message compiler\"" >&5
2695-$as_echo_n "checking \"build (vs. host) compiled message compiler\"... " >&6; }
2696- if test -x "${srcdir}/src/lib/log/compiler/message"; then
2697- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
2698-$as_echo "yes" >&6; }
2699- else
2700- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2701-$as_echo "no" >&6; }
2702- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"you must install a message compiler in:\"" >&5
2703-$as_echo "$as_me: WARNING: \"you must install a message compiler in:\"" >&2;}
2704- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \" ${srcdir}/src/lib/log/compiler/message\"" >&5
2705-$as_echo "$as_me: WARNING: \" ${srcdir}/src/lib/log/compiler/message\"" >&2;}
2706- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"compiled for build ($build).\"" >&5
2707-$as_echo "$as_me: WARNING: \"compiled for build ($build).\"" >&2;}
2708- fi
2709-fi
2710- if test "$cross_compiling" = "yes"; then
2711- CROSS_COMPILING_TRUE=
2712- CROSS_COMPILING_FALSE='#'
2713-else
2714- CROSS_COMPILING_TRUE='#'
2715- CROSS_COMPILING_FALSE=
2716-fi
2717-
2718-
2719 # pkg-config can be required.
2720 # Extract the first word of "pkg-config", so it can be a program name with args.
2721 set dummy pkg-config; ac_word=$2
2722@@ -17357,356 +17339,185 @@ $as_echo "#define HAVE_BROKEN_GET_IPV6_USE_MIN_MTU 1" >>confdefs.h
2723 ;;
2724 esac
2725
2726-# Kea-shell is written in python. It can work with python 2.7 or any 3.x.
2727-# It may likely work with earlier versions, but 2.7 was the oldest one we tested
2728-# it with. We require python only if kea-shell was enabled. It is disabled
2729-# by default to not introduce hard dependency on python.
2730-# Check whether --enable-shell was given.
2731-if test "${enable_shell+set}" = set; then :
2732- enableval=$enable_shell; enable_shell=$enableval
2733+# Made perfdhcp optional.
2734+# Check whether --enable-perfdhcp was given.
2735+if test "${enable_perfdhcp+set}" = set; then :
2736+ enableval=$enable_perfdhcp; enable_perfdhcp=$enableval
2737 else
2738- enable_shell=no
2739+ enable_perfdhcp=no
2740 fi
2741
2742
2743-DISTCHECK_KEA_SHELL_CONFIGURE_FLAG=
2744-PKGPYTHONDIR=
2745-
2746-if test "x$enable_shell" != xno ; then
2747-# If kea-shell is enabled, we really need python. 2.7 or anything newer will do.
2748-# We try to find 3.x first. If not found, we can do with 2.7.
2749+DISTCHECK_PERFDHCP_CONFIGURE_FLAG=
2750+if test "x$enable_perfdhcp" != xno ; then
2751+ DISTCHECK_PERFDHCP_CONFIGURE_FLAG="--enable-perfdhcp"
2752+fi
2753
2754+# Export to makefiles the info whether we have perfdhcp enabled or not
2755+ if test x$enable_perfdhcp != xno; then
2756+ PERFDHCP_TRUE=
2757+ PERFDHCP_FALSE='#'
2758+else
2759+ PERFDHCP_TRUE='#'
2760+ PERFDHCP_FALSE=
2761+fi
2762
2763
2764
2765+# produce PIC unless we disable shared libraries. need this for python bindings.
2766+if test $enable_shared != "no" -a "X$GXX" = "Xyes"; then
2767+ KEA_CXXFLAGS="$KEA_CXXFLAGS -fPIC"
2768+fi
2769
2770+# Look for glib static libs if they're trying to do static builds
2771+if test $enable_static_link != "no"; then
2772+ CXX_SAVED=$CXX
2773+ CXX="$CXX -static"
2774
2775- if test -n "$PYTHON"; then
2776- # If the user set $PYTHON, use it and don't search something else.
2777- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.7" >&5
2778-$as_echo_n "checking whether $PYTHON version is >= 2.7... " >&6; }
2779- prog="import sys
2780-# split strings by '.' and convert to numeric. Append some zeros
2781-# because we need at least 4 digits for the hex conversion.
2782-# map returns an iterator in Python 3.0 and a list in 2.x
2783-minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
2784-minverhex = 0
2785-# xrange is not present in Python 3.0 and range returns an iterator
2786-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
2787-sys.exit(sys.hexversion < minverhex)"
2788- if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
2789- ($PYTHON -c "$prog") >&5 2>&5
2790- ac_status=$?
2791- echo "$as_me:$LINENO: \$? = $ac_status" >&5
2792- (exit $ac_status); }; then :
2793- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
2794-$as_echo "yes" >&6; }
2795+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2796+/* end confdefs.h. */
2797+#include <math.h>
2798+int
2799+main ()
2800+{
2801+(void)sqrt(-1.0);
2802+ ;
2803+ return 0;
2804+}
2805+_ACEOF
2806+if ac_fn_cxx_try_link "$LINENO"; then :
2807+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for static glib libraries... yes" >&5
2808+$as_echo "checking for static glib libraries... yes" >&6; }
2809 else
2810- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2811-$as_echo "no" >&6; }
2812- as_fn_error $? "Python interpreter is too old" "$LINENO" 5
2813+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for static glib libraries... no" >&5
2814+$as_echo "checking for static glib libraries... no" >&6; }
2815+ as_fn_error $? "Building with --enable-static-link does not work. You appear to be missing glib static libraries. Check config.log for details." "$LINENO" 5
2816 fi
2817- am_display_PYTHON=$PYTHON
2818- else
2819- # Otherwise, try each interpreter until we find one that satisfies
2820- # VERSION.
2821- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.7" >&5
2822-$as_echo_n "checking for a Python interpreter with version >= 2.7... " >&6; }
2823-if ${am_cv_pathless_PYTHON+:} false; then :
2824- $as_echo_n "(cached) " >&6
2825-else
2826+rm -f core conftest.err conftest.$ac_objext \
2827+ conftest$ac_exeext conftest.$ac_ext
2828
2829- for am_cv_pathless_PYTHON in python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python python2 python2.7 none; do
2830- test "$am_cv_pathless_PYTHON" = none && break
2831- prog="import sys
2832-# split strings by '.' and convert to numeric. Append some zeros
2833-# because we need at least 4 digits for the hex conversion.
2834-# map returns an iterator in Python 3.0 and a list in 2.x
2835-minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
2836-minverhex = 0
2837-# xrange is not present in Python 3.0 and range returns an iterator
2838-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
2839-sys.exit(sys.hexversion < minverhex)"
2840- if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
2841- ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
2842- ac_status=$?
2843- echo "$as_me:$LINENO: \$? = $ac_status" >&5
2844- (exit $ac_status); }; then :
2845- break
2846-fi
2847- done
2848+ CXX=$CXX_SAVED
2849 fi
2850-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
2851-$as_echo "$am_cv_pathless_PYTHON" >&6; }
2852- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
2853- if test "$am_cv_pathless_PYTHON" = none; then
2854- PYTHON=:
2855- else
2856- # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
2857-set dummy $am_cv_pathless_PYTHON; ac_word=$2
2858-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2859-$as_echo_n "checking for $ac_word... " >&6; }
2860-if ${ac_cv_path_PYTHON+:} false; then :
2861- $as_echo_n "(cached) " >&6
2862-else
2863- case $PYTHON in
2864- [\\/]* | ?:[\\/]*)
2865- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
2866- ;;
2867- *)
2868- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2869-for as_dir in $PATH
2870-do
2871- IFS=$as_save_IFS
2872- test -z "$as_dir" && as_dir=.
2873- for ac_exec_ext in '' $ac_executable_extensions; do
2874- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2875- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
2876- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2877- break 2
2878- fi
2879-done
2880- done
2881-IFS=$as_save_IFS
2882
2883- ;;
2884-esac
2885-fi
2886-PYTHON=$ac_cv_path_PYTHON
2887-if test -n "$PYTHON"; then
2888- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
2889-$as_echo "$PYTHON" >&6; }
2890-else
2891- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2892-$as_echo "no" >&6; }
2893-fi
2894
2895
2896- fi
2897- am_display_PYTHON=$am_cv_pathless_PYTHON
2898- fi
2899+# Checks for libraries.
2900
2901+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
2902+$as_echo_n "checking for library containing inet_pton... " >&6; }
2903+if ${ac_cv_search_inet_pton+:} false; then :
2904+ $as_echo_n "(cached) " >&6
2905+else
2906+ ac_func_search_save_LIBS=$LIBS
2907+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2908+/* end confdefs.h. */
2909
2910- if test "$PYTHON" = :; then
2911- as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
2912+/* Override any GCC internal prototype to avoid an error.
2913+ Use char because int might match the return type of a GCC
2914+ builtin and then its argument prototype would still apply. */
2915+#ifdef __cplusplus
2916+extern "C"
2917+#endif
2918+char inet_pton ();
2919+int
2920+main ()
2921+{
2922+return inet_pton ();
2923+ ;
2924+ return 0;
2925+}
2926+_ACEOF
2927+for ac_lib in '' nsl; do
2928+ if test -z "$ac_lib"; then
2929+ ac_res="none required"
2930 else
2931+ ac_res=-l$ac_lib
2932+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
2933+ fi
2934+ if ac_fn_cxx_try_link "$LINENO"; then :
2935+ ac_cv_search_inet_pton=$ac_res
2936+fi
2937+rm -f core conftest.err conftest.$ac_objext \
2938+ conftest$ac_exeext
2939+ if ${ac_cv_search_inet_pton+:} false; then :
2940+ break
2941+fi
2942+done
2943+if ${ac_cv_search_inet_pton+:} false; then :
2944
2945-
2946- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
2947-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
2948-if ${am_cv_python_version+:} false; then :
2949- $as_echo_n "(cached) " >&6
2950 else
2951- am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
2952+ ac_cv_search_inet_pton=no
2953 fi
2954-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
2955-$as_echo "$am_cv_python_version" >&6; }
2956- PYTHON_VERSION=$am_cv_python_version
2957-
2958+rm conftest.$ac_ext
2959+LIBS=$ac_func_search_save_LIBS
2960+fi
2961+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
2962+$as_echo "$ac_cv_search_inet_pton" >&6; }
2963+ac_res=$ac_cv_search_inet_pton
2964+if test "$ac_res" != no; then :
2965+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
2966
2967+fi
2968
2969- PYTHON_PREFIX='${prefix}'
2970+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing recvfrom" >&5
2971+$as_echo_n "checking for library containing recvfrom... " >&6; }
2972+if ${ac_cv_search_recvfrom+:} false; then :
2973+ $as_echo_n "(cached) " >&6
2974+else
2975+ ac_func_search_save_LIBS=$LIBS
2976+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2977+/* end confdefs.h. */
2978
2979- PYTHON_EXEC_PREFIX='${exec_prefix}'
2980-
2981-
2982-
2983- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
2984-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
2985-if ${am_cv_python_platform+:} false; then :
2986- $as_echo_n "(cached) " >&6
2987-else
2988- am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
2989-fi
2990-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
2991-$as_echo "$am_cv_python_platform" >&6; }
2992- PYTHON_PLATFORM=$am_cv_python_platform
2993-
2994-
2995- # Just factor out some code duplication.
2996- am_python_setup_sysconfig="\
2997-import sys
2998-# Prefer sysconfig over distutils.sysconfig, for better compatibility
2999-# with python 3.x. See automake bug#10227.
3000-try:
3001- import sysconfig
3002-except ImportError:
3003- can_use_sysconfig = 0
3004-else:
3005- can_use_sysconfig = 1
3006-# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
3007-# <https://github.com/pypa/virtualenv/issues/118>
3008-try:
3009- from platform import python_implementation
3010- if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
3011- can_use_sysconfig = 0
3012-except ImportError:
3013- pass"
3014-
3015-
3016- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
3017-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
3018-if ${am_cv_python_pythondir+:} false; then :
3019- $as_echo_n "(cached) " >&6
3020-else
3021- if test "x$prefix" = xNONE
3022- then
3023- am_py_prefix=$ac_default_prefix
3024- else
3025- am_py_prefix=$prefix
3026- fi
3027- am_cv_python_pythondir=`$PYTHON -c "
3028-$am_python_setup_sysconfig
3029-if can_use_sysconfig:
3030- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
3031-else:
3032- from distutils import sysconfig
3033- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
3034-sys.stdout.write(sitedir)"`
3035- case $am_cv_python_pythondir in
3036- $am_py_prefix*)
3037- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
3038- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
3039- ;;
3040- *)
3041- case $am_py_prefix in
3042- /usr|/System*) ;;
3043- *)
3044- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
3045- ;;
3046- esac
3047- ;;
3048- esac
3049-
3050-fi
3051-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
3052-$as_echo "$am_cv_python_pythondir" >&6; }
3053- pythondir=$am_cv_python_pythondir
3054-
3055-
3056-
3057- pkgpythondir=\${pythondir}/$PACKAGE
3058-
3059-
3060- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
3061-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
3062-if ${am_cv_python_pyexecdir+:} false; then :
3063- $as_echo_n "(cached) " >&6
3064-else
3065- if test "x$exec_prefix" = xNONE
3066- then
3067- am_py_exec_prefix=$am_py_prefix
3068- else
3069- am_py_exec_prefix=$exec_prefix
3070- fi
3071- am_cv_python_pyexecdir=`$PYTHON -c "
3072-$am_python_setup_sysconfig
3073-if can_use_sysconfig:
3074- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
3075-else:
3076- from distutils import sysconfig
3077- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
3078-sys.stdout.write(sitedir)"`
3079- case $am_cv_python_pyexecdir in
3080- $am_py_exec_prefix*)
3081- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
3082- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
3083- ;;
3084- *)
3085- case $am_py_exec_prefix in
3086- /usr|/System*) ;;
3087- *)
3088- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
3089- ;;
3090- esac
3091- ;;
3092- esac
3093-
3094-fi
3095-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
3096-$as_echo "$am_cv_python_pyexecdir" >&6; }
3097- pyexecdir=$am_cv_python_pyexecdir
3098-
3099-
3100-
3101- pkgpyexecdir=\${pyexecdir}/$PACKAGE
3102-
3103-
3104-
3105- fi
3106-
3107-
3108- # pkgpythondir needs to be expanded
3109- saved_prefix="$prefix"
3110- if test "$prefix" = "NONE"; then
3111- prefix=$ac_default_prefix
3112- fi
3113- PKGPYTHONDIR="$pkgpythondir"
3114- OLD=
3115- while test "x$OLD" != "x$PKGPYTHONDIR"; do
3116- OLD="$PKGPYTHONDIR"
3117- eval PKGPYTHONDIR="\"$OLD\""
3118- done
3119- prefix="$saved_prefix"
3120- DISTCHECK_KEA_SHELL_CONFIGURE_FLAG="--enable-shell"
3121-else
3122- PYTHON=no
3123-fi
3124-
3125-# Export to makefiles the info whether we have shell enabled or not
3126- if test x$enable_shell != xno; then
3127- KEA_SHELL_TRUE=
3128- KEA_SHELL_FALSE='#'
3129-else
3130- KEA_SHELL_TRUE='#'
3131- KEA_SHELL_FALSE=
3132-fi
3133-
3134-
3135-
3136-
3137-# produce PIC unless we disable shared libraries. need this for python bindings.
3138-if test $enable_shared != "no" -a "X$GXX" = "Xyes"; then
3139- KEA_CXXFLAGS="$KEA_CXXFLAGS -fPIC"
3140-fi
3141-
3142-# Look for glib static libs if they're trying to do static builds
3143-if test $enable_static_link != "no"; then
3144- CXX_SAVED=$CXX
3145- CXX="$CXX -static"
3146-
3147- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3148-/* end confdefs.h. */
3149-#include <math.h>
3150+/* Override any GCC internal prototype to avoid an error.
3151+ Use char because int might match the return type of a GCC
3152+ builtin and then its argument prototype would still apply. */
3153+#ifdef __cplusplus
3154+extern "C"
3155+#endif
3156+char recvfrom ();
3157 int
3158 main ()
3159 {
3160-(void)sqrt(-1.0);
3161+return recvfrom ();
3162 ;
3163 return 0;
3164 }
3165 _ACEOF
3166-if ac_fn_cxx_try_link "$LINENO"; then :
3167- { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for static glib libraries... yes" >&5
3168-$as_echo "checking for static glib libraries... yes" >&6; }
3169-else
3170- { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for static glib libraries... no" >&5
3171-$as_echo "checking for static glib libraries... no" >&6; }
3172- as_fn_error $? "Building with --enable-static-link does not work. You appear to be missing glib static libraries. Check config.log for details." "$LINENO" 5
3173+for ac_lib in '' socket; do
3174+ if test -z "$ac_lib"; then
3175+ ac_res="none required"
3176+ else
3177+ ac_res=-l$ac_lib
3178+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3179+ fi
3180+ if ac_fn_cxx_try_link "$LINENO"; then :
3181+ ac_cv_search_recvfrom=$ac_res
3182 fi
3183 rm -f core conftest.err conftest.$ac_objext \
3184- conftest$ac_exeext conftest.$ac_ext
3185-
3186- CXX=$CXX_SAVED
3187+ conftest$ac_exeext
3188+ if ${ac_cv_search_recvfrom+:} false; then :
3189+ break
3190 fi
3191+done
3192+if ${ac_cv_search_recvfrom+:} false; then :
3193
3194+else
3195+ ac_cv_search_recvfrom=no
3196+fi
3197+rm conftest.$ac_ext
3198+LIBS=$ac_func_search_save_LIBS
3199+fi
3200+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_recvfrom" >&5
3201+$as_echo "$ac_cv_search_recvfrom" >&6; }
3202+ac_res=$ac_cv_search_recvfrom
3203+if test "$ac_res" != no; then :
3204+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
3205
3206+fi
3207
3208-# Checks for libraries.
3209-
3210-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
3211-$as_echo_n "checking for library containing inet_pton... " >&6; }
3212-if ${ac_cv_search_inet_pton+:} false; then :
3213+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
3214+$as_echo_n "checking for library containing nanosleep... " >&6; }
3215+if ${ac_cv_search_nanosleep+:} false; then :
3216 $as_echo_n "(cached) " >&6
3217 else
3218 ac_func_search_save_LIBS=$LIBS
3219@@ -17719,16 +17530,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3220 #ifdef __cplusplus
3221 extern "C"
3222 #endif
3223-char inet_pton ();
3224+char nanosleep ();
3225 int
3226 main ()
3227 {
3228-return inet_pton ();
3229+return nanosleep ();
3230 ;
3231 return 0;
3232 }
3233 _ACEOF
3234-for ac_lib in '' nsl; do
3235+for ac_lib in '' rt; do
3236 if test -z "$ac_lib"; then
3237 ac_res="none required"
3238 else
3239@@ -17736,33 +17547,33 @@ for ac_lib in '' nsl; do
3240 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3241 fi
3242 if ac_fn_cxx_try_link "$LINENO"; then :
3243- ac_cv_search_inet_pton=$ac_res
3244+ ac_cv_search_nanosleep=$ac_res
3245 fi
3246 rm -f core conftest.err conftest.$ac_objext \
3247 conftest$ac_exeext
3248- if ${ac_cv_search_inet_pton+:} false; then :
3249+ if ${ac_cv_search_nanosleep+:} false; then :
3250 break
3251 fi
3252 done
3253-if ${ac_cv_search_inet_pton+:} false; then :
3254+if ${ac_cv_search_nanosleep+:} false; then :
3255
3256 else
3257- ac_cv_search_inet_pton=no
3258+ ac_cv_search_nanosleep=no
3259 fi
3260 rm conftest.$ac_ext
3261 LIBS=$ac_func_search_save_LIBS
3262 fi
3263-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
3264-$as_echo "$ac_cv_search_inet_pton" >&6; }
3265-ac_res=$ac_cv_search_inet_pton
3266+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5
3267+$as_echo "$ac_cv_search_nanosleep" >&6; }
3268+ac_res=$ac_cv_search_nanosleep
3269 if test "$ac_res" != no; then :
3270 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
3271
3272 fi
3273
3274-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing recvfrom" >&5
3275-$as_echo_n "checking for library containing recvfrom... " >&6; }
3276-if ${ac_cv_search_recvfrom+:} false; then :
3277+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
3278+$as_echo_n "checking for library containing dlsym... " >&6; }
3279+if ${ac_cv_search_dlsym+:} false; then :
3280 $as_echo_n "(cached) " >&6
3281 else
3282 ac_func_search_save_LIBS=$LIBS
3283@@ -17775,128 +17586,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3284 #ifdef __cplusplus
3285 extern "C"
3286 #endif
3287-char recvfrom ();
3288+char dlsym ();
3289 int
3290 main ()
3291 {
3292-return recvfrom ();
3293+return dlsym ();
3294 ;
3295 return 0;
3296 }
3297 _ACEOF
3298-for ac_lib in '' socket; do
3299- if test -z "$ac_lib"; then
3300- ac_res="none required"
3301- else
3302- ac_res=-l$ac_lib
3303- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3304- fi
3305- if ac_fn_cxx_try_link "$LINENO"; then :
3306- ac_cv_search_recvfrom=$ac_res
3307-fi
3308-rm -f core conftest.err conftest.$ac_objext \
3309- conftest$ac_exeext
3310- if ${ac_cv_search_recvfrom+:} false; then :
3311- break
3312-fi
3313-done
3314-if ${ac_cv_search_recvfrom+:} false; then :
3315-
3316-else
3317- ac_cv_search_recvfrom=no
3318-fi
3319-rm conftest.$ac_ext
3320-LIBS=$ac_func_search_save_LIBS
3321-fi
3322-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_recvfrom" >&5
3323-$as_echo "$ac_cv_search_recvfrom" >&6; }
3324-ac_res=$ac_cv_search_recvfrom
3325-if test "$ac_res" != no; then :
3326- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
3327-
3328-fi
3329-
3330-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
3331-$as_echo_n "checking for library containing nanosleep... " >&6; }
3332-if ${ac_cv_search_nanosleep+:} false; then :
3333- $as_echo_n "(cached) " >&6
3334-else
3335- ac_func_search_save_LIBS=$LIBS
3336-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3337-/* end confdefs.h. */
3338-
3339-/* Override any GCC internal prototype to avoid an error.
3340- Use char because int might match the return type of a GCC
3341- builtin and then its argument prototype would still apply. */
3342-#ifdef __cplusplus
3343-extern "C"
3344-#endif
3345-char nanosleep ();
3346-int
3347-main ()
3348-{
3349-return nanosleep ();
3350- ;
3351- return 0;
3352-}
3353-_ACEOF
3354-for ac_lib in '' rt; do
3355- if test -z "$ac_lib"; then
3356- ac_res="none required"
3357- else
3358- ac_res=-l$ac_lib
3359- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3360- fi
3361- if ac_fn_cxx_try_link "$LINENO"; then :
3362- ac_cv_search_nanosleep=$ac_res
3363-fi
3364-rm -f core conftest.err conftest.$ac_objext \
3365- conftest$ac_exeext
3366- if ${ac_cv_search_nanosleep+:} false; then :
3367- break
3368-fi
3369-done
3370-if ${ac_cv_search_nanosleep+:} false; then :
3371-
3372-else
3373- ac_cv_search_nanosleep=no
3374-fi
3375-rm conftest.$ac_ext
3376-LIBS=$ac_func_search_save_LIBS
3377-fi
3378-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5
3379-$as_echo "$ac_cv_search_nanosleep" >&6; }
3380-ac_res=$ac_cv_search_nanosleep
3381-if test "$ac_res" != no; then :
3382- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
3383-
3384-fi
3385-
3386-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
3387-$as_echo_n "checking for library containing dlsym... " >&6; }
3388-if ${ac_cv_search_dlsym+:} false; then :
3389- $as_echo_n "(cached) " >&6
3390-else
3391- ac_func_search_save_LIBS=$LIBS
3392-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3393-/* end confdefs.h. */
3394-
3395-/* Override any GCC internal prototype to avoid an error.
3396- Use char because int might match the return type of a GCC
3397- builtin and then its argument prototype would still apply. */
3398-#ifdef __cplusplus
3399-extern "C"
3400-#endif
3401-char dlsym ();
3402-int
3403-main ()
3404-{
3405-return dlsym ();
3406- ;
3407- return 0;
3408-}
3409-_ACEOF
3410-for ac_lib in '' dl; do
3411+for ac_lib in '' dl; do
3412 if test -z "$ac_lib"; then
3413 ac_res="none required"
3414 else
3415@@ -19242,6 +18941,7 @@ $as_echo "$as_me: WARNING: --with-dhcp-mysql has been deprecated, please use --w
3416 fi
3417
3418 if test "${mysql_config}" = "yes" ; then
3419+ MYSQL_CONFIG="/usr/bin/mysql_config"
3420 for d in $defaultdirs
3421 do
3422 if test -f $d/bin/mysql_config; then
3423@@ -19255,11 +18955,12 @@ fi
3424
3425 if test "$MYSQL_CONFIG" != "" ; then
3426 if test -d "$MYSQL_CONFIG" -o ! -x "$MYSQL_CONFIG" ; then
3427- as_fn_error $? "--with-mysql should point to a mysql_config program" "$LINENO" 5
3428+ as_fn_error $? "MySQL dependencies cannot be found. Please install MySQL libraries or point --with-mysql to mysql_config program if it is located in non-default directory, eg. --with-mysql=/opt/mysql/bin/mysql_config." "$LINENO" 5
3429 fi
3430
3431 MYSQL_CPPFLAGS=`$MYSQL_CONFIG --cflags`
3432 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
3433+ MYSQL_LIBS="$MYSQL_LIBS $CRYPTO_LIBS"
3434 MYSQL_VERSION=`$MYSQL_CONFIG --version`
3435
3436
3437@@ -19279,7 +18980,7 @@ int
3438 main ()
3439 {
3440 MYSQL mysql_handle;
3441- (void) mysql_init(&mysql_handle);
3442+ (void) mysql_init(&mysql_handle);
3443
3444 ;
3445 return 0;
3446@@ -19291,19 +18992,46 @@ $as_echo "checking for MySQL headers and library... yes" >&6; }
3447 else
3448 { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for MySQL headers and library... no" >&5
3449 $as_echo "checking for MySQL headers and library... no" >&6; }
3450- as_fn_error $? "Needs MySQL library" "$LINENO" 5
3451+ as_fn_error $? "Needs MySQL library" "$LINENO" 5
3452
3453 fi
3454 rm -f core conftest.err conftest.$ac_objext \
3455 conftest$ac_exeext conftest.$ac_ext
3456
3457- CPPFLAGS=$CPPFLAGS_SAVED
3458- LIBS=$LIBS_SAVED
3459-
3460 # Note that MYSQL is present in the config.h file
3461
3462 $as_echo "#define HAVE_MYSQL 1" >>confdefs.h
3463
3464+
3465+ # Check is my_bool is defined.
3466+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3467+/* end confdefs.h. */
3468+#include <mysql.h>
3469+ const my_bool MLM_FALSE = 0;
3470+
3471+int
3472+main ()
3473+{
3474+
3475+ ;
3476+ return 0;
3477+}
3478+_ACEOF
3479+if ac_fn_cxx_try_compile "$LINENO"; then :
3480+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for MySQL my_bool... yes" >&5
3481+$as_echo "checking for MySQL my_bool... yes" >&6; }
3482+
3483+$as_echo "#define HAVE_MYSQL_MY_BOOL 1" >>confdefs.h
3484+
3485+else
3486+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for MySQL my_bool... no" >&5
3487+$as_echo "checking for MySQL my_bool... no" >&6; }
3488+fi
3489+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
3490+
3491+ CPPFLAGS=$CPPFLAGS_SAVED
3492+ LIBS=$LIBS_SAVED
3493+
3494 fi
3495
3496 # Solaris puts FIONREAD in filio.h
3497@@ -19352,6 +19080,7 @@ $as_echo "$as_me: WARNING: --with-dhcp-pgsql has been deprecated, please use --w
3498 fi
3499
3500 if test "${pg_config}" = "yes" ; then
3501+ PG_CONFIG="/usr/bin/pg_config"
3502 for d in $defaultdirs
3503 do
3504 if test -f $d/bin/pg_config; then
3505@@ -19365,7 +19094,7 @@ fi
3506
3507 if test "$PG_CONFIG" != "" ; then
3508 if test -d "$PG_CONFIG" -o ! -x "$PG_CONFIG" ; then
3509- as_fn_error $? "--with-pgsql should point to a pg_config program" "$LINENO" 5
3510+ as_fn_error $? "PostgreSQL dependencies cannot be found. Please install PostgreSQL libraries or point --with-pgsql to pg_config program if it is located in non-default directory, eg. --with-pgsql=/opt/pgsql/bin/pg_config." "$LINENO" 5
3511 fi
3512
3513 PGSQL_CPPFLAGS=`$PG_CONFIG --cppflags`
3514@@ -19486,11 +19215,18 @@ if test "$CQL_CONFIG" != "" ; then
3515 as_fn_error $? "--with-cql should point to a pkg-config or cql_config program" "$LINENO" 5
3516 fi
3517
3518+ $CQL_CONFIG --print-errors $cql_lib
3519+ if test $? -ne 0; then
3520+ as_fn_error $? "$CQL_CONFIG $cql_lib failed" "$LINENO" 5
3521+ fi
3522+
3523 CQL_INCLUDEDIR=`$CQL_CONFIG --cflags-only-I $cql_lib`
3524- CQL_CPPFLAGS="$CQL_INCLUDEDIR `$CQL_CONFIG --cflags-only-other $cql_lib`"
3525- CQL_LIBS="`$CQL_CONFIG --libs $cql_lib`"
3526+ CQL_CPPFLAGS=`$CQL_CONFIG --cflags-only-other $cql_lib`
3527+ CQL_LIBS=`$CQL_CONFIG --libs $cql_lib`
3528+ CQL_LIBS="$CQL_LIBS $CRYPTO_LIBS"
3529 CQL_VERSION=`$CQL_CONFIG --modversion $cql_lib`
3530
3531+ CQL_CPPFLAGS="${CQL_CPPFLAGS} ${CQL_INCLUDEDIR}"
3532
3533
3534
3535@@ -19553,6 +19289,9 @@ fi
3536
3537
3538 if test "${sysrepo_config}" = "yes" ; then
3539+ if test "$PKG_CONFIG" = ""; then
3540+ as_fn_error $? "--with-sysrepo specified without any parameter and pkg-config was not found. Either use --with-sysrepo=path or install pkg-config" "$LINENO" 5
3541+ fi
3542 SYSREPO_CONFIG="$PKG_CONFIG"
3543 DISTCHECK_SYSREPO_CONFIGURE_FLAG="-with-sysrepo=${sysrepo_config}"
3544 elif test "${sysrepo_config}" != "no" ; then
3545@@ -19597,6 +19336,7 @@ if test "$SYSREPO_CONFIG" != "" ; then
3546
3547
3548
3549+
3550 # Check that a simple program using Sysrepo functions can compile and link.
3551 CPPFLAGS_SAVED="$CPPFLAGS"
3552 LIBS_SAVED="$LIBS"
3553@@ -19644,8 +19384,31 @@ sysrepo::Connection("conn-name");
3554 }
3555 _ACEOF
3556 if ac_fn_cxx_try_link "$LINENO"; then :
3557- { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Sysrepo C++ bindings headers and library... yes" >&5
3558-$as_echo "checking for Sysrepo C++ bindings headers and library... yes" >&6; }
3559+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3560+/* end confdefs.h. */
3561+#include <sysrepo-cpp/Session.hpp>
3562+int
3563+main ()
3564+{
3565+auto is_empty = [](sysrepo::S_Val v){
3566+ return (v->empty()); };
3567+
3568+ ;
3569+ return 0;
3570+}
3571+_ACEOF
3572+if ac_fn_cxx_try_link "$LINENO"; then :
3573+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Sysrepo C++ bindings headers and library, new" >&5
3574+$as_echo "checking for Sysrepo C++ bindings headers and library, new" >&6; }
3575+
3576+$as_echo "#define HAVE_POST_0_7_7_SYSREPO 1" >>confdefs.h
3577+
3578+else
3579+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Sysrepo C++ bindings headers and library, yes" >&5
3580+$as_echo "checking for Sysrepo C++ bindings headers and library, yes" >&6; }
3581+fi
3582+rm -f core conftest.err conftest.$ac_objext \
3583+ conftest$ac_exeext conftest.$ac_ext
3584 else
3585 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3586 /* end confdefs.h. */
3587@@ -19717,11 +19480,14 @@ else
3588 do
3589 if test -f $d/include/log4cplus/logger.h; then
3590 LOG4CPLUS_INCLUDES="-I$d/include"
3591- LOG4CPLUS_LIBS="-L$d/lib -L$d/lib64"
3592+ LOG4CPLUS_LIBS="-L$d/lib"
3593+ if test -d $d/lib64; then
3594+ LOG4CPLUS_LIBS="$LOG4CPLUS_LIBS -L$d/lib64"
3595+ fi
3596 break
3597 fi
3598 done
3599- DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG="-with-log4cplus"
3600+ DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG="-with-log4cplus"
3601 fi
3602
3603 LOG4CPLUS_LIBS="$LOG4CPLUS_LIBS -llog4cplus"
3604@@ -19793,6 +19559,43 @@ $as_echo "$LOG4CPLUS_VERSION" >&6; }
3605 CPPFLAGS=$CPPFLAGS_SAVED
3606 LIBS=$LIBS_SAVED
3607
3608+# Older log4cplus versions (1.2.0) don't have the initializer.h header that
3609+# would allow explicit initialization. Newer versions (2.0.4 for sure, possibly
3610+# older as well) have it and it's recommended to use it. We detect whether
3611+# it's present or not and do explicit initalization if possible.
3612+CPPFLAGS_SAVED=$CPPFLAGS
3613+CPPFLAGS="$LOG4CPLUS_INCLUDES $CPPFLAGS"
3614+LIBS_SAVED="$LIBS"
3615+LIBS="$LOG4CPLUS_LIBS $LIBS"
3616+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking log4cplus explicit initialization (log4cplus/initializer.h)" >&5
3617+$as_echo_n "checking log4cplus explicit initialization (log4cplus/initializer.h)... " >&6; }
3618+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3619+/* end confdefs.h. */
3620+#include <log4cplus/initializer.h>
3621+int
3622+main ()
3623+{
3624+log4cplus::Initializer initializer;
3625+
3626+ ;
3627+ return 0;
3628+}
3629+_ACEOF
3630+if ac_fn_cxx_try_link "$LINENO"; then :
3631+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3632+$as_echo "yes" >&6; }
3633+
3634+$as_echo "#define LOG4CPLUS_INITIALIZER_H 1" >>confdefs.h
3635+
3636+else
3637+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3638+$as_echo "no" >&6; }
3639+fi
3640+rm -f core conftest.err conftest.$ac_objext \
3641+ conftest$ac_exeext conftest.$ac_ext
3642+LIBS="$LIBS_SAVED"
3643+CPPFLAGS=$CPPFLAGS_SAVED
3644+
3645 #
3646 # Configure Boost header path
3647 #
3648@@ -19840,10 +19643,10 @@ fi
3649 # Check the path with some specific headers.
3650 CPPFLAGS_SAVED="$CPPFLAGS"
3651 if test "${boost_include_path}" ; then
3652- BOOST_INCLUDES="-I${boost_include_path}"
3653+ BOOST_INCLUDES="-isystem ${boost_include_path}"
3654 CPPFLAGS="$CPPFLAGS $BOOST_INCLUDES"
3655 fi
3656-for ac_header in boost/shared_ptr.hpp boost/foreach.hpp boost/interprocess/sync/interprocess_upgradable_mutex.hpp boost/date_time/posix_time/posix_time_types.hpp boost/bind.hpp boost/function.hpp boost/asio.hpp boost/asio/ip/address.hpp boost/system/error_code.hpp
3657+for ac_header in boost/shared_ptr.hpp boost/foreach.hpp boost/interprocess/sync/interprocess_upgradable_mutex.hpp boost/date_time/posix_time/posix_time_types.hpp boost/bind.hpp boost/function.hpp boost/asio.hpp boost/asio/ip/address.hpp boost/system/error_code.hpp boost/atomic.hpp boost/circular_buffer.hpp
3658 do :
3659 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
3660 ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
3661@@ -19875,6 +19678,35 @@ fi
3662 done
3663
3664
3665+# Verify that the path does not include standard headers by mistake.
3666+# There are two regex.h headers: one is a standard system header (usually
3667+# in /usr/include) and the second one is provided by boost. If you specify the
3668+# path to boost in a way that specifies the actual directory, this will mess up
3669+# the code and we'll end up using the system header rather than the boost. For
3670+# example, if your boost headers are in /usr/local/include/boost, you should
3671+# use --with-boost-include=/usr/local/include
3672+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3673+/* end confdefs.h. */
3674+
3675+#include <regex.h>
3676+#ifdef BOOST_RE_REGEX_H
3677+#error "boost/regex.h"
3678+#endif
3679+int
3680+main ()
3681+{
3682+
3683+ ;
3684+ return 0;
3685+}
3686+_ACEOF
3687+if ac_fn_cxx_try_compile "$LINENO"; then :
3688+
3689+else
3690+ as_fn_error $? "${boost_include_path}/regex.h is used in place of /usr/include/regex.h: when specifying path to boost, please omit the /boost at the end of the include path." "$LINENO" 5
3691+fi
3692+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
3693+
3694 # clang can cause false positives with -Werror without -Qunused-arguments.
3695 # it can be triggered if used with ccache.
3696 ac_fn_cxx_check_decl "$LINENO" "__clang__" "ac_cv_have_decl___clang__" "$ac_includes_default"
3697@@ -20107,9 +19939,34 @@ if ac_fn_cxx_try_link "$LINENO"; then :
3698 { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Boost system library... yes" >&5
3699 $as_echo "checking for Boost system library... yes" >&6; }
3700 else
3701+ if test "x${BOOST_LIB_DIR}" = "x"; then
3702+ BOOST_LIB_DIR="$boost_lib_path"
3703+ fi
3704+ if test "x${BOOST_LIB_DIR}" != "x"; then
3705+ BOOST_LIBS="-L$BOOST_LIB_DIR $BOOST_LIBS"
3706+ fi
3707+ LIBS="$BOOST_LIBS $LIBS_SAVED"
3708+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3709+/* end confdefs.h. */
3710+#include <boost/system/error_code.hpp>
3711+int
3712+main ()
3713+{
3714+boost::system::error_code ec;
3715+ ;
3716+ return 0;
3717+}
3718+_ACEOF
3719+if ac_fn_cxx_try_link "$LINENO"; then :
3720+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Boost system library... yes" >&5
3721+$as_echo "checking for Boost system library... yes" >&6; }
3722+else
3723 { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Boost system library... no" >&5
3724 $as_echo "checking for Boost system library... no" >&6; }
3725- as_fn_error $? "Linking with ${BOOST_LIBS} is not enough: please make sure libboost_system is installed; Check config.log for details, you may be missing other libraries." "$LINENO" 5
3726+ as_fn_error $? "Linking with ${BOOST_LIBS} is not enough: please make sure libboost_system is installed in an expected location; Check config.log for details, you may be missing other libraries." "$LINENO" 5
3727+fi
3728+rm -f core conftest.err conftest.$ac_objext \
3729+ conftest$ac_exeext conftest.$ac_ext
3730 fi
3731 rm -f core conftest.err conftest.$ac_objext \
3732 conftest$ac_exeext conftest.$ac_ext
3733@@ -20514,6 +20371,11 @@ $as_echo "$as_me: WARNING: Found Google Benchmark include but not the library in
3734 fi
3735
3736 fi
3737+
3738+ if test $enable_gtest = no; then
3739+ as_fn_error $? "--with-benchmark and --with-benchmark-source require --with-gtest or --with-gtest-source" "$LINENO" 5
3740+ fi
3741+
3742 fi
3743 if test $enable_benchmark != "no"; then
3744 HAVE_BENCHMARK_TRUE=
3745@@ -20620,7 +20482,7 @@ fi
3746
3747 #
3748 # Doesn't seem to be required?
3749-CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_HEADER_ONLY"
3750+#CPPFLAGS="$CPPFLAGS -DBOOST_ASIO_HEADER_ONLY"
3751 #
3752 # Disable threads: they seems to break things on some systems
3753 # As now we use threads in boost ASIO this is commented out...
3754@@ -20635,13 +20497,12 @@ if test "x${BOOST_LIBS}" = "x"; then
3755 fi
3756
3757 # Check for functions that are not available on all platforms
3758-for ac_func in pselect srandomdev
3759+for ac_func in pselect
3760 do :
3761- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
3762-ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
3763-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
3764+ ac_fn_cxx_check_func "$LINENO" "pselect" "ac_cv_func_pselect"
3765+if test "x$ac_cv_func_pselect" = xyes; then :
3766 cat >>confdefs.h <<_ACEOF
3767-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
3768+#define HAVE_PSELECT 1
3769 _ACEOF
3770
3771 fi
3772@@ -20772,6 +20633,31 @@ done
3773
3774
3775
3776+# Check whether --enable-generate_messages was given.
3777+if test "${enable_generate_messages+set}" = set; then :
3778+ enableval=$enable_generate_messages; enable_generate_messages=$enableval
3779+else
3780+ enable_generate_messages=no
3781+fi
3782+
3783+
3784+ if test x$enable_generate_messages != xno; then
3785+ GENERATE_MESSAGES_TRUE=
3786+ GENERATE_MESSAGES_FALSE='#'
3787+else
3788+ GENERATE_MESSAGES_TRUE='#'
3789+ GENERATE_MESSAGES_FALSE=
3790+fi
3791+
3792+
3793+# cross compiling is not compatible with enable-generate-messages.
3794+if test "$cross_compiling" = "yes"; then
3795+ if test "$enable_generate_messages" != "no"; then
3796+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To build the message compiler is not compatible with cross compiling" >&5
3797+$as_echo "$as_me: WARNING: To build the message compiler is not compatible with cross compiling" >&2;}
3798+ fi
3799+fi
3800+
3801 # Check whether --enable-generate_parser was given.
3802 if test "${enable_generate_parser+set}" = set; then :
3803 enableval=$enable_generate_parser; enable_generate_parser=$enableval
3804@@ -20882,172 +20768,513 @@ if ${ac_cv_lib_lex+:} false; then :
3805 $as_echo_n "(cached) " >&6
3806 else
3807
3808- ac_save_LIBS=$LIBS
3809- ac_cv_lib_lex='none needed'
3810- for ac_lib in '' -lfl -ll; do
3811- LIBS="$ac_lib $ac_save_LIBS"
3812- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3813-/* end confdefs.h. */
3814-`cat $LEX_OUTPUT_ROOT.c`
3815-_ACEOF
3816-if ac_fn_cxx_try_link "$LINENO"; then :
3817- ac_cv_lib_lex=$ac_lib
3818+ ac_save_LIBS=$LIBS
3819+ ac_cv_lib_lex='none needed'
3820+ for ac_lib in '' -lfl -ll; do
3821+ LIBS="$ac_lib $ac_save_LIBS"
3822+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3823+/* end confdefs.h. */
3824+`cat $LEX_OUTPUT_ROOT.c`
3825+_ACEOF
3826+if ac_fn_cxx_try_link "$LINENO"; then :
3827+ ac_cv_lib_lex=$ac_lib
3828+fi
3829+rm -f core conftest.err conftest.$ac_objext \
3830+ conftest$ac_exeext conftest.$ac_ext
3831+ test "$ac_cv_lib_lex" != 'none needed' && break
3832+ done
3833+ LIBS=$ac_save_LIBS
3834+
3835+fi
3836+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
3837+$as_echo "$ac_cv_lib_lex" >&6; }
3838+ test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
3839+fi
3840+
3841+
3842+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
3843+$as_echo_n "checking whether yytext is a pointer... " >&6; }
3844+if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
3845+ $as_echo_n "(cached) " >&6
3846+else
3847+ # POSIX says lex can declare yytext either as a pointer or an array; the
3848+# default is implementation-dependent. Figure out which it is, since
3849+# not all implementations provide the %pointer and %array declarations.
3850+ac_cv_prog_lex_yytext_pointer=no
3851+ac_save_LIBS=$LIBS
3852+LIBS="$LEXLIB $ac_save_LIBS"
3853+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3854+/* end confdefs.h. */
3855+
3856+ #define YYTEXT_POINTER 1
3857+`cat $LEX_OUTPUT_ROOT.c`
3858+_ACEOF
3859+if ac_fn_cxx_try_link "$LINENO"; then :
3860+ ac_cv_prog_lex_yytext_pointer=yes
3861+fi
3862+rm -f core conftest.err conftest.$ac_objext \
3863+ conftest$ac_exeext conftest.$ac_ext
3864+LIBS=$ac_save_LIBS
3865+
3866+fi
3867+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
3868+$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
3869+if test $ac_cv_prog_lex_yytext_pointer = yes; then
3870+
3871+$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
3872+
3873+fi
3874+rm -f conftest.l $LEX_OUTPUT_ROOT.c
3875+
3876+fi
3877+
3878+# Check if bison is available. Bison is not needed for building Kea sources,
3879+# unless you want to regenerate grammars
3880+# Extract the first word of "bison", so it can be a program name with args.
3881+set dummy bison; ac_word=$2
3882+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3883+$as_echo_n "checking for $ac_word... " >&6; }
3884+if ${ac_cv_path_YACC+:} false; then :
3885+ $as_echo_n "(cached) " >&6
3886+else
3887+ case $YACC in
3888+ [\\/]* | ?:[\\/]*)
3889+ ac_cv_path_YACC="$YACC" # Let the user override the test with a path.
3890+ ;;
3891+ *)
3892+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3893+for as_dir in $PATH
3894+do
3895+ IFS=$as_save_IFS
3896+ test -z "$as_dir" && as_dir=.
3897+ for ac_exec_ext in '' $ac_executable_extensions; do
3898+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3899+ ac_cv_path_YACC="$as_dir/$ac_word$ac_exec_ext"
3900+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3901+ break 2
3902+ fi
3903+done
3904+ done
3905+IFS=$as_save_IFS
3906+
3907+ ;;
3908+esac
3909+fi
3910+YACC=$ac_cv_path_YACC
3911+if test -n "$YACC"; then
3912+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
3913+$as_echo "$YACC" >&6; }
3914+else
3915+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3916+$as_echo "no" >&6; }
3917+fi
3918+
3919+
3920+
3921+
3922+if test "x$enable_generate_parser" != "xno"; then
3923+
3924+ if test "x$LEX" != "xflex"; then
3925+ as_fn_error $? "Flex is required for enable-generate-parser, but was not found" "$LINENO" 5
3926+ fi
3927+
3928+ if test "x$YACC" == "x"; then
3929+ as_fn_error $? "Bison is required for enable-generate-parser, but was not found" "$LINENO" 5
3930+ fi
3931+
3932+# Ok, let's check if we have at least 3.0.0 version of the bison. The code used
3933+# to generate parsers is roughly based on bison 3.0 examples.
3934+ cat > bisontest.y << EOF
3935+%require "3.0.0"
3936+%token X
3937+%%
3938+%start Y;
3939+Y: X;
3940+EOF
3941+# Try to compile.
3942+ $YACC bisontest.y -o bisontest.cc
3943+
3944+ if test $? -ne 0 ; then
3945+ $YACC -V
3946+ $RM -f bisontest.y bisontest.cc
3947+ as_fn_error $? "\"Error with $YACC. Possibly incorrect version? Required at least 3.0.0.\"" "$LINENO" 5
3948+ fi
3949+ $RM -f bisontest.y bisontest.cc
3950+fi
3951+
3952+ if test x$enable_generate_parser != xno; then
3953+ GENERATE_PARSER_TRUE=
3954+ GENERATE_PARSER_FALSE='#'
3955+else
3956+ GENERATE_PARSER_TRUE='#'
3957+ GENERATE_PARSER_FALSE=
3958+fi
3959+
3960+
3961+# Kea-shell is written in python. It can work with python 2.7 or any 3.x.
3962+# It may likely work with earlier versions, but 2.7 was the oldest one we tested
3963+# it with. We require python only if kea-shell was enabled. It is disabled
3964+# by default to not introduce hard dependency on python.
3965+# Check whether --enable-shell was given.
3966+if test "${enable_shell+set}" = set; then :
3967+ enableval=$enable_shell; enable_shell=$enableval
3968+else
3969+ enable_shell=no
3970+fi
3971+
3972+
3973+
3974+# Check whether --enable-generate_docs was given.
3975+if test "${enable_generate_docs+set}" = set; then :
3976+ enableval=$enable_generate_docs; enable_generate_docs=$enableval
3977+else
3978+ enable_generate_docs=no
3979+fi
3980+
3981+
3982+
3983+DISTCHECK_KEA_SHELL_CONFIGURE_FLAG=
3984+PKGPYTHONDIR=
3985+shell_report=no
3986+
3987+if test "x$enable_shell" != xno -o "x$enable_generate_docs" != xno; then
3988+# If kea-shell is enabled, we really need python. 2.7 or anything newer will do.
3989+# We try to find 3.x first. If not found, we can do with 2.7.
3990+
3991+
3992+
3993+
3994+
3995+
3996+ if test -n "$PYTHON"; then
3997+ # If the user set $PYTHON, use it and don't search something else.
3998+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.7" >&5
3999+$as_echo_n "checking whether $PYTHON version is >= 2.7... " >&6; }
4000+ prog="import sys
4001+# split strings by '.' and convert to numeric. Append some zeros
4002+# because we need at least 4 digits for the hex conversion.
4003+# map returns an iterator in Python 3.0 and a list in 2.x
4004+minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
4005+minverhex = 0
4006+# xrange is not present in Python 3.0 and range returns an iterator
4007+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
4008+sys.exit(sys.hexversion < minverhex)"
4009+ if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
4010+ ($PYTHON -c "$prog") >&5 2>&5
4011+ ac_status=$?
4012+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4013+ (exit $ac_status); }; then :
4014+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4015+$as_echo "yes" >&6; }
4016+else
4017+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4018+$as_echo "no" >&6; }
4019+ as_fn_error $? "Python interpreter is too old" "$LINENO" 5
4020+fi
4021+ am_display_PYTHON=$PYTHON
4022+ else
4023+ # Otherwise, try each interpreter until we find one that satisfies
4024+ # VERSION.
4025+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.7" >&5
4026+$as_echo_n "checking for a Python interpreter with version >= 2.7... " >&6; }
4027+if ${am_cv_pathless_PYTHON+:} false; then :
4028+ $as_echo_n "(cached) " >&6
4029+else
4030+
4031+ for am_cv_pathless_PYTHON in python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python python2 python2.7 none; do
4032+ test "$am_cv_pathless_PYTHON" = none && break
4033+ prog="import sys
4034+# split strings by '.' and convert to numeric. Append some zeros
4035+# because we need at least 4 digits for the hex conversion.
4036+# map returns an iterator in Python 3.0 and a list in 2.x
4037+minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
4038+minverhex = 0
4039+# xrange is not present in Python 3.0 and range returns an iterator
4040+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
4041+sys.exit(sys.hexversion < minverhex)"
4042+ if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
4043+ ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
4044+ ac_status=$?
4045+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4046+ (exit $ac_status); }; then :
4047+ break
4048+fi
4049+ done
4050+fi
4051+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
4052+$as_echo "$am_cv_pathless_PYTHON" >&6; }
4053+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
4054+ if test "$am_cv_pathless_PYTHON" = none; then
4055+ PYTHON=:
4056+ else
4057+ # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
4058+set dummy $am_cv_pathless_PYTHON; ac_word=$2
4059+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4060+$as_echo_n "checking for $ac_word... " >&6; }
4061+if ${ac_cv_path_PYTHON+:} false; then :
4062+ $as_echo_n "(cached) " >&6
4063+else
4064+ case $PYTHON in
4065+ [\\/]* | ?:[\\/]*)
4066+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
4067+ ;;
4068+ *)
4069+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4070+for as_dir in $PATH
4071+do
4072+ IFS=$as_save_IFS
4073+ test -z "$as_dir" && as_dir=.
4074+ for ac_exec_ext in '' $ac_executable_extensions; do
4075+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4076+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
4077+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4078+ break 2
4079+ fi
4080+done
4081+ done
4082+IFS=$as_save_IFS
4083+
4084+ ;;
4085+esac
4086+fi
4087+PYTHON=$ac_cv_path_PYTHON
4088+if test -n "$PYTHON"; then
4089+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
4090+$as_echo "$PYTHON" >&6; }
4091+else
4092+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4093+$as_echo "no" >&6; }
4094+fi
4095+
4096+
4097+ fi
4098+ am_display_PYTHON=$am_cv_pathless_PYTHON
4099+ fi
4100+
4101+
4102+ if test "$PYTHON" = :; then
4103+ as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
4104+ else
4105+
4106+
4107+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
4108+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
4109+if ${am_cv_python_version+:} false; then :
4110+ $as_echo_n "(cached) " >&6
4111+else
4112+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
4113+fi
4114+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
4115+$as_echo "$am_cv_python_version" >&6; }
4116+ PYTHON_VERSION=$am_cv_python_version
4117+
4118+
4119+
4120+ PYTHON_PREFIX='${prefix}'
4121+
4122+ PYTHON_EXEC_PREFIX='${exec_prefix}'
4123+
4124+
4125+
4126+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
4127+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
4128+if ${am_cv_python_platform+:} false; then :
4129+ $as_echo_n "(cached) " >&6
4130+else
4131+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
4132+fi
4133+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
4134+$as_echo "$am_cv_python_platform" >&6; }
4135+ PYTHON_PLATFORM=$am_cv_python_platform
4136+
4137+
4138+ # Just factor out some code duplication.
4139+ am_python_setup_sysconfig="\
4140+import sys
4141+# Prefer sysconfig over distutils.sysconfig, for better compatibility
4142+# with python 3.x. See automake bug#10227.
4143+try:
4144+ import sysconfig
4145+except ImportError:
4146+ can_use_sysconfig = 0
4147+else:
4148+ can_use_sysconfig = 1
4149+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
4150+# <https://github.com/pypa/virtualenv/issues/118>
4151+try:
4152+ from platform import python_implementation
4153+ if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
4154+ can_use_sysconfig = 0
4155+except ImportError:
4156+ pass"
4157+
4158+
4159+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
4160+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
4161+if ${am_cv_python_pythondir+:} false; then :
4162+ $as_echo_n "(cached) " >&6
4163+else
4164+ if test "x$prefix" = xNONE
4165+ then
4166+ am_py_prefix=$ac_default_prefix
4167+ else
4168+ am_py_prefix=$prefix
4169+ fi
4170+ am_cv_python_pythondir=`$PYTHON -c "
4171+$am_python_setup_sysconfig
4172+if can_use_sysconfig:
4173+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
4174+else:
4175+ from distutils import sysconfig
4176+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
4177+sys.stdout.write(sitedir)"`
4178+ case $am_cv_python_pythondir in
4179+ $am_py_prefix*)
4180+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
4181+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
4182+ ;;
4183+ *)
4184+ case $am_py_prefix in
4185+ /usr|/System*) ;;
4186+ *)
4187+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
4188+ ;;
4189+ esac
4190+ ;;
4191+ esac
4192+
4193 fi
4194-rm -f core conftest.err conftest.$ac_objext \
4195- conftest$ac_exeext conftest.$ac_ext
4196- test "$ac_cv_lib_lex" != 'none needed' && break
4197- done
4198- LIBS=$ac_save_LIBS
4199+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
4200+$as_echo "$am_cv_python_pythondir" >&6; }
4201+ pythondir=$am_cv_python_pythondir
4202
4203-fi
4204-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
4205-$as_echo "$ac_cv_lib_lex" >&6; }
4206- test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
4207-fi
4208
4209
4210-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
4211-$as_echo_n "checking whether yytext is a pointer... " >&6; }
4212-if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
4213+ pkgpythondir=\${pythondir}/$PACKAGE
4214+
4215+
4216+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
4217+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
4218+if ${am_cv_python_pyexecdir+:} false; then :
4219 $as_echo_n "(cached) " >&6
4220 else
4221- # POSIX says lex can declare yytext either as a pointer or an array; the
4222-# default is implementation-dependent. Figure out which it is, since
4223-# not all implementations provide the %pointer and %array declarations.
4224-ac_cv_prog_lex_yytext_pointer=no
4225-ac_save_LIBS=$LIBS
4226-LIBS="$LEXLIB $ac_save_LIBS"
4227-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4228-/* end confdefs.h. */
4229+ if test "x$exec_prefix" = xNONE
4230+ then
4231+ am_py_exec_prefix=$am_py_prefix
4232+ else
4233+ am_py_exec_prefix=$exec_prefix
4234+ fi
4235+ am_cv_python_pyexecdir=`$PYTHON -c "
4236+$am_python_setup_sysconfig
4237+if can_use_sysconfig:
4238+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
4239+else:
4240+ from distutils import sysconfig
4241+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
4242+sys.stdout.write(sitedir)"`
4243+ case $am_cv_python_pyexecdir in
4244+ $am_py_exec_prefix*)
4245+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
4246+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
4247+ ;;
4248+ *)
4249+ case $am_py_exec_prefix in
4250+ /usr|/System*) ;;
4251+ *)
4252+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
4253+ ;;
4254+ esac
4255+ ;;
4256+ esac
4257
4258- #define YYTEXT_POINTER 1
4259-`cat $LEX_OUTPUT_ROOT.c`
4260-_ACEOF
4261-if ac_fn_cxx_try_link "$LINENO"; then :
4262- ac_cv_prog_lex_yytext_pointer=yes
4263 fi
4264-rm -f core conftest.err conftest.$ac_objext \
4265- conftest$ac_exeext conftest.$ac_ext
4266-LIBS=$ac_save_LIBS
4267+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
4268+$as_echo "$am_cv_python_pyexecdir" >&6; }
4269+ pyexecdir=$am_cv_python_pyexecdir
4270
4271-fi
4272-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
4273-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
4274-if test $ac_cv_prog_lex_yytext_pointer = yes; then
4275
4276-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
4277
4278-fi
4279-rm -f conftest.l $LEX_OUTPUT_ROOT.c
4280+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
4281+
4282
4283-fi
4284
4285-# Check if bison is available. Bison is not needed for building Kea sources,
4286-# unless you want to regenerate grammars
4287-for ac_prog in 'bison -y' byacc
4288-do
4289- # Extract the first word of "$ac_prog", so it can be a program name with args.
4290-set dummy $ac_prog; ac_word=$2
4291-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4292-$as_echo_n "checking for $ac_word... " >&6; }
4293-if ${ac_cv_prog_YACC+:} false; then :
4294- $as_echo_n "(cached) " >&6
4295-else
4296- if test -n "$YACC"; then
4297- ac_cv_prog_YACC="$YACC" # Let the user override the test.
4298-else
4299-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4300-for as_dir in $PATH
4301-do
4302- IFS=$as_save_IFS
4303- test -z "$as_dir" && as_dir=.
4304- for ac_exec_ext in '' $ac_executable_extensions; do
4305- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4306- ac_cv_prog_YACC="$ac_prog"
4307- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4308- break 2
4309 fi
4310-done
4311- done
4312-IFS=$as_save_IFS
4313
4314-fi
4315-fi
4316-YACC=$ac_cv_prog_YACC
4317-if test -n "$YACC"; then
4318- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
4319-$as_echo "$YACC" >&6; }
4320-else
4321- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4322-$as_echo "no" >&6; }
4323+
4324+
4325+
4326+# Check whether --with-site-packages was given.
4327+if test "${with_site_packages+set}" = set; then :
4328+ withval=$with_site_packages; pythondir=$withval;
4329+ pkgpythondir=${pythondir}/$PACKAGE_NAME
4330 fi
4331
4332+ if test "$pythondir" = "yes"; then
4333+ as_fn_error $? "If enabled, site-packages must be specified explicitly, e.g. --site-packages=/usr/lib/python3/dist-packages" "$LINENO" 5
4334+ fi
4335
4336- test -n "$YACC" && break
4337-done
4338-test -n "$YACC" || YACC="yacc"
4339+ # pkgpythondir needs to be expanded
4340+ saved_prefix="$prefix"
4341+ if test "$prefix" = "NONE"; then
4342+ prefix=$ac_default_prefix
4343+ fi
4344+ PKGPYTHONDIR="$pkgpythondir"
4345+ OLD=
4346+ while test "x$OLD" != "x$PKGPYTHONDIR"; do
4347+ OLD="$PKGPYTHONDIR"
4348+ eval PKGPYTHONDIR="\"$OLD\""
4349+ done
4350+ prefix="$saved_prefix"
4351+ DISTCHECK_KEA_SHELL_CONFIGURE_FLAG="--enable-shell"
4352+ shell_report="yes, install to $pythondir"
4353+else
4354+ PYTHON=no
4355+fi
4356
4357+# Export to makefiles the info whether we have shell enabled or not
4358+ if test x$enable_shell != xno; then
4359+ KEA_SHELL_TRUE=
4360+ KEA_SHELL_FALSE='#'
4361+else
4362+ KEA_SHELL_TRUE='#'
4363+ KEA_SHELL_FALSE=
4364+fi
4365
4366-if test "x$enable_generate_parser" != "xno"; then
4367
4368- if test "x$LEX" == "x"; then
4369- as_fn_error $? "Flex is required for enable-generate-parser, but was not found" "$LINENO" 5
4370- fi
4371
4372- if test "x$YACC" == "x"; then
4373- as_fn_error $? "Bison is required for enable-generate-parser, but was not found" "$LINENO" 5
4374- fi
4375
4376-# Ok, let's check if we have at least 3.0.0 version of the bison. The code used
4377-# to generate parsers is roughly based on bison 3.0 examples.
4378- cat > bisontest.y << EOF
4379-%require "3.0.0"
4380-%token X
4381-%%
4382-%start Y;
4383-Y: X;
4384-EOF
4385-# Try to compile.
4386- $YACC bisontest.y -o bisontest.cc
4387
4388- if test $? -ne 0 ; then
4389- $YACC -V
4390- $RM -f bisontest.y bisontest.cc
4391- as_fn_error $? "\"Error with $YACC. Possibly incorrect version? Required at least 3.0.0.\"" "$LINENO" 5
4392- fi
4393- $RM -f bisontest.y bisontest.cc
4394+# Check whether --with-sphinx was given.
4395+if test "${with_sphinx+set}" = set; then :
4396+ withval=$with_sphinx; sphinx_path="$withval"
4397 fi
4398
4399- if test x$enable_generate_parser != xno; then
4400- GENERATE_PARSER_TRUE=
4401- GENERATE_PARSER_FALSE='#'
4402-else
4403- GENERATE_PARSER_TRUE='#'
4404- GENERATE_PARSER_FALSE=
4405-fi
4406
4407
4408-# Check whether --enable-generate_docs was given.
4409-if test "${enable_generate_docs+set}" = set; then :
4410- enableval=$enable_generate_docs; enable_generate_docs=$enableval
4411-else
4412- enable_generate_docs=no
4413+# Check whether --with-pdflatex was given.
4414+if test "${with_pdflatex+set}" = set; then :
4415+ withval=$with_pdflatex; pdflatex_path="$withval"
4416 fi
4417
4418+PDFLATEX=no
4419
4420 if test "x$enable_generate_docs" != xno ; then
4421-
4422-# Check for xsltproc
4423- # Extract the first word of "xsltproc", so it can be a program name with args.
4424-set dummy xsltproc; ac_word=$2
4425+ # Check for sphinx-build
4426+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sphinx-build" >&5
4427+$as_echo_n "checking for sphinx-build... " >&6; }
4428+ if test -z "$sphinx_path"; then
4429+ for ac_prog in sphinx-build sphinx-build-3
4430+do
4431+ # Extract the first word of "$ac_prog", so it can be a program name with args.
4432+set dummy $ac_prog; ac_word=$2
4433 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4434 $as_echo_n "checking for $ac_word... " >&6; }
4435-if ${ac_cv_path_XSLTPROC+:} false; then :
4436+if ${ac_cv_path_SPHINXBUILD+:} false; then :
4437 $as_echo_n "(cached) " >&6
4438 else
4439- case $XSLTPROC in
4440+ case $SPHINXBUILD in
4441 [\\/]* | ?:[\\/]*)
4442- ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
4443+ ac_cv_path_SPHINXBUILD="$SPHINXBUILD" # Let the user override the test with a path.
4444 ;;
4445 *)
4446 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4447@@ -21057,7 +21284,7 @@ do
4448 test -z "$as_dir" && as_dir=.
4449 for ac_exec_ext in '' $ac_executable_extensions; do
4450 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4451- ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
4452+ ac_cv_path_SPHINXBUILD="$as_dir/$ac_word$ac_exec_ext"
4453 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4454 break 2
4455 fi
4456@@ -21068,44 +21295,52 @@ IFS=$as_save_IFS
4457 ;;
4458 esac
4459 fi
4460-XSLTPROC=$ac_cv_path_XSLTPROC
4461-if test -n "$XSLTPROC"; then
4462- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
4463-$as_echo "$XSLTPROC" >&6; }
4464+SPHINXBUILD=$ac_cv_path_SPHINXBUILD
4465+if test -n "$SPHINXBUILD"; then
4466+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5
4467+$as_echo "$SPHINXBUILD" >&6; }
4468 else
4469 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4470 $as_echo "no" >&6; }
4471 fi
4472
4473
4474- if test -z "$XSLTPROC"; then
4475- as_fn_error $? "\"xsltproc not found; it is required for --enable-generate-docs\"" "$LINENO" 5
4476+ test -n "$SPHINXBUILD" && break
4477+done
4478+
4479 else
4480- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $XSLTPROC works" >&5
4481-$as_echo_n "checking if $XSLTPROC works... " >&6; }
4482- # run xsltproc to see if works
4483- $XSLTPROC --novalid --xinclude http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
4484- if test $? -ne 0 ; then
4485- as_fn_error $? "\"Error with $XSLTPROC using release/xsl/current/manpages/docbook.xsl\"" "$LINENO" 5
4486- fi
4487- $XSLTPROC --novalid --xinclude http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
4488+ SPHINXBUILD="$sphinx_path"
4489+ fi
4490+
4491+ if test -z "$SPHINXBUILD"; then
4492+ as_fn_error $? "sphinx-build not found; it is required for --enable-generate-docs, please see http://www.sphinx-doc.org/en/master/usage/installation.html for details" "$LINENO" 5
4493+ else
4494+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5
4495+$as_echo "$SPHINXBUILD" >&6; }
4496+
4497+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $SPHINXBUILD is runnable" >&5
4498+$as_echo_n "checking whether $SPHINXBUILD is runnable... " >&6; }
4499+ $SPHINXBUILD --version > conftest.err 2>&1
4500 if test $? -ne 0 ; then
4501- as_fn_error $? "\"Error with $XSLTPROC using release/xsl/current/html/docbook.xsl\"" "$LINENO" 5
4502+ as_fn_error $? "error with $SPHINXBUILD --version, check conftest.err for details" "$LINENO" 5
4503 fi
4504+ rm -f conftest.err
4505 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4506 $as_echo "yes" >&6; }
4507 fi
4508
4509- # Extract the first word of "elinks", so it can be a program name with args.
4510-set dummy elinks; ac_word=$2
4511+ # Check for pdflatex
4512+ if test -z "$pdflatex_path"; then
4513+ # Extract the first word of "pdflatex", so it can be a program name with args.
4514+set dummy pdflatex; ac_word=$2
4515 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4516 $as_echo_n "checking for $ac_word... " >&6; }
4517-if ${ac_cv_path_ELINKS+:} false; then :
4518+if ${ac_cv_path_PDFLATEX+:} false; then :
4519 $as_echo_n "(cached) " >&6
4520 else
4521- case $ELINKS in
4522+ case $PDFLATEX in
4523 [\\/]* | ?:[\\/]*)
4524- ac_cv_path_ELINKS="$ELINKS" # Let the user override the test with a path.
4525+ ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path.
4526 ;;
4527 *)
4528 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4529@@ -21115,7 +21350,7 @@ do
4530 test -z "$as_dir" && as_dir=.
4531 for ac_exec_ext in '' $ac_executable_extensions; do
4532 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4533- ac_cv_path_ELINKS="$as_dir/$ac_word$ac_exec_ext"
4534+ ac_cv_path_PDFLATEX="$as_dir/$ac_word$ac_exec_ext"
4535 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4536 break 2
4537 fi
4538@@ -21126,71 +21361,80 @@ IFS=$as_save_IFS
4539 ;;
4540 esac
4541 fi
4542-ELINKS=$ac_cv_path_ELINKS
4543-if test -n "$ELINKS"; then
4544- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ELINKS" >&5
4545-$as_echo "$ELINKS" >&6; }
4546+PDFLATEX=$ac_cv_path_PDFLATEX
4547+if test -n "$PDFLATEX"; then
4548+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PDFLATEX" >&5
4549+$as_echo "$PDFLATEX" >&6; }
4550 else
4551 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4552 $as_echo "no" >&6; }
4553 fi
4554
4555
4556- if test -z "$ELINKS"; then
4557- as_fn_error $? "\"elinks not found; it is required for --enable-generate-docs\"" "$LINENO" 5
4558+ else
4559+ PDFLATEX="$pdflatex_path"
4560 fi
4561-fi
4562
4563-# Don't fail here if not found, used to generate PDF documentation.
4564-# Extract the first word of "dblatex", so it can be a program name with args.
4565-set dummy dblatex; ac_word=$2
4566-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4567-$as_echo_n "checking for $ac_word... " >&6; }
4568-if ${ac_cv_path_DBLATEX+:} false; then :
4569- $as_echo_n "(cached) " >&6
4570-else
4571- case $DBLATEX in
4572- [\\/]* | ?:[\\/]*)
4573- ac_cv_path_DBLATEX="$DBLATEX" # Let the user override the test with a path.
4574- ;;
4575- *)
4576- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4577-for as_dir in $PATH
4578-do
4579- IFS=$as_save_IFS
4580- test -z "$as_dir" && as_dir=.
4581- for ac_exec_ext in '' $ac_executable_extensions; do
4582- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4583- ac_cv_path_DBLATEX="$as_dir/$ac_word$ac_exec_ext"
4584- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4585- break 2
4586+ if test -z "$PDFLATEX"; then
4587+ PDFLATEX=no
4588+ elif test "x$PDFLATEX" == "xno"; then
4589+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pdflatex" >&5
4590+$as_echo_n "checking for pdflatex... " >&6; }
4591+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled)" >&5
4592+$as_echo "no (disabled)" >&6; }
4593+ else
4594+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PDFLATEX is runnable" >&5
4595+$as_echo_n "checking whether $PDFLATEX is runnable... " >&6; }
4596+ $PDFLATEX --version > /dev/null 2>&1
4597+ if test $? -ne 0 ; then
4598+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - disabled building docs in PDF" >&5
4599+$as_echo "no - disabled building docs in PDF" >&6; }
4600+ PDFLATEX=no
4601+ else
4602+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4603+$as_echo "yes" >&6; }
4604+ fi
4605 fi
4606-done
4607- done
4608-IFS=$as_save_IFS
4609
4610- ;;
4611-esac
4612-fi
4613-DBLATEX=$ac_cv_path_DBLATEX
4614-if test -n "$DBLATEX"; then
4615- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBLATEX" >&5
4616-$as_echo "$DBLATEX" >&6; }
4617+ if test -n "$SPHINXBUILD" -a "x$PDFLATEX" != "xno"; then
4618+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $SPHINXBUILD and $PDFLATEX work" >&5
4619+$as_echo_n "checking whether $SPHINXBUILD and $PDFLATEX work... " >&6; }
4620+ ti=`mktemp -d`
4621+ to=`mktemp -d`
4622+ echo 'hello' > $ti/contents.rst
4623+ sphinx-build -b latex -C $ti $to > /dev/null 2>&1
4624+ pushd $to > /dev/null 2>&1
4625+ $PDFLATEX -interaction nonstopmode Python.tex > /dev/null 2>&1
4626+ popd > /dev/null 2>&1
4627+ file $to/Python.pdf | grep PDF > /dev/null 2>&1
4628+ if test $? -ne 0 ; then
4629+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - disabled building docs in PDF" >&5
4630+$as_echo "no - disabled building docs in PDF" >&6; }
4631+ PDFLATEX=no
4632+ else
4633+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
4634+$as_echo "ok" >&6; }
4635+ fi
4636+ rm -rf $ti $to
4637+ fi
4638+
4639+ if test "x$PDFLATEX" != "xno"; then
4640+ generate_docs_report="html, man and pdf"
4641+ else
4642+ generate_docs_report="html, man but no pdf"
4643+ fi
4644 else
4645- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4646-$as_echo "no" >&6; }
4647+ generate_docs_report="no"
4648 fi
4649
4650-
4651- if test "x$DBLATEX" != "x"; then
4652- HAVE_DBLATEX_TRUE=
4653- HAVE_DBLATEX_FALSE='#'
4654+ if test "x$PDFLATEX" != "xno"; then
4655+ HAVE_PDFLATEX_TRUE=
4656+ HAVE_PDFLATEX_FALSE='#'
4657 else
4658- HAVE_DBLATEX_TRUE='#'
4659- HAVE_DBLATEX_FALSE=
4660+ HAVE_PDFLATEX_TRUE='#'
4661+ HAVE_PDFLATEX_FALSE=
4662 fi
4663
4664-
4665 if test x$enable_generate_docs != xno; then
4666 GENERATE_DOCS_TRUE=
4667 GENERATE_DOCS_FALSE='#'
4668@@ -21467,7 +21711,18 @@ fi
4669 $as_echo "#define CONFIG_H_WAS_INCLUDED 1" >>confdefs.h
4670
4671
4672-ac_config_files="$ac_config_files Makefile compatcheck/Makefile dns++.pc doc/Makefile doc/guide/Makefile doc/version.ent doc/docgen/Makefile ext/Makefile ext/gtest/Makefile ext/coroutine/Makefile kea_version.h m4macros/Makefile src/Makefile src/bin/Makefile src/bin/admin/Makefile src/bin/admin/kea-admin src/bin/admin/tests/Makefile src/bin/admin/tests/cql_tests.sh src/bin/admin/tests/data/Makefile src/bin/admin/tests/memfile_tests.sh src/bin/admin/tests/mysql_tests.sh src/bin/admin/tests/pgsql_tests.sh src/bin/agent/Makefile src/bin/agent/tests/Makefile src/bin/agent/tests/ca_process_tests.sh src/bin/agent/tests/test_data_files_config.h src/bin/agent/tests/test_libraries.h src/bin/d2/Makefile src/bin/d2/tests/Makefile src/bin/d2/tests/d2_process_tests.sh src/bin/d2/tests/test_data_files_config.h src/bin/dhcp4/Makefile src/bin/dhcp4/tests/Makefile src/bin/dhcp4/tests/dhcp4_process_tests.sh src/bin/dhcp4/tests/marker_file.h src/bin/dhcp4/tests/test_data_files_config.h src/bin/dhcp4/tests/test_libraries.h src/bin/dhcp6/Makefile src/bin/dhcp6/tests/Makefile src/bin/dhcp6/tests/dhcp6_process_tests.sh src/bin/dhcp6/tests/marker_file.h src/bin/dhcp6/tests/test_data_files_config.h src/bin/dhcp6/tests/test_libraries.h src/bin/keactrl/Makefile src/bin/keactrl/keactrl src/bin/keactrl/keactrl.conf src/bin/keactrl/tests/Makefile src/bin/keactrl/tests/keactrl_tests.sh src/bin/lfc/Makefile src/bin/lfc/tests/Makefile src/bin/netconf/Makefile src/bin/netconf/tests/Makefile src/bin/netconf/tests/shtests/Makefile src/bin/netconf/tests/shtests/netconf_tests.sh src/bin/netconf/tests/test_data_files_config.h src/bin/netconf/tests/test_libraries.h src/bin/perfdhcp/Makefile src/bin/perfdhcp/tests/Makefile src/bin/perfdhcp/tests/testdata/Makefile src/bin/shell/Makefile src/bin/shell/kea-shell src/bin/shell/tests/Makefile src/bin/shell/tests/shell_process_tests.sh src/bin/shell/tests/shell_unittest.py src/hooks/Makefile src/hooks/dhcp/Makefile src/hooks/dhcp/high_availability/Makefile src/hooks/dhcp/high_availability/tests/Makefile src/hooks/dhcp/lease_cmds/Makefile src/hooks/dhcp/lease_cmds/tests/Makefile src/hooks/dhcp/user_chk/Makefile src/hooks/dhcp/user_chk/tests/Makefile src/hooks/dhcp/user_chk/tests/test_data_files_config.h src/hooks/dhcp/stat_cmds/Makefile src/hooks/dhcp/stat_cmds/tests/Makefile src/lib/Makefile src/lib/asiodns/Makefile src/lib/asiodns/tests/Makefile src/lib/asiolink/Makefile src/lib/asiolink/testutils/Makefile src/lib/asiolink/tests/Makefile src/lib/cc/Makefile src/lib/cc/tests/Makefile src/lib/cfgrpt/Makefile src/lib/cfgrpt/tests/Makefile src/lib/config/Makefile src/lib/config/tests/Makefile src/lib/config/tests/data_def_unittests_config.h src/lib/config/tests/testdata/Makefile src/lib/config_backend/Makefile src/lib/config_backend/tests/Makefile src/lib/cryptolink/Makefile src/lib/cryptolink/tests/Makefile src/lib/database/Makefile src/lib/database/tests/Makefile src/lib/database/testutils/Makefile src/lib/dhcp/Makefile src/lib/dhcp/tests/Makefile src/lib/dhcp_ddns/Makefile src/lib/dhcp_ddns/tests/Makefile src/lib/dhcpsrv/Makefile src/lib/dhcpsrv/benchmarks/Makefile src/lib/dhcpsrv/tests/Makefile src/lib/dhcpsrv/tests/test_libraries.h src/lib/dhcpsrv/testutils/Makefile src/lib/dns/Makefile src/lib/dns/gen-rdatacode.py src/lib/dns/tests/Makefile src/lib/dns/tests/testdata/Makefile src/lib/eval/Makefile src/lib/eval/tests/Makefile src/lib/exceptions/Makefile src/lib/exceptions/tests/Makefile src/lib/hooks/Makefile src/lib/hooks/tests/Makefile src/lib/hooks/tests/marker_file.h src/lib/hooks/tests/test_libraries.h src/lib/http/Makefile src/lib/http/tests/Makefile src/lib/log/Makefile src/lib/log/compiler/Makefile src/lib/log/interprocess/Makefile src/lib/log/interprocess/tests/Makefile src/lib/log/tests/Makefile src/lib/log/tests/buffer_logger_test.sh src/lib/log/tests/console_test.sh src/lib/log/tests/destination_test.sh src/lib/log/tests/init_logger_test.sh src/lib/log/tests/local_file_test.sh src/lib/log/tests/logger_lock_test.sh src/lib/log/tests/severity_test.sh src/lib/log/tests/tempdir.h src/lib/mysql/Makefile src/lib/mysql/testutils/Makefile src/lib/mysql/tests/Makefile src/lib/pgsql/Makefile src/lib/pgsql/tests/Makefile src/lib/pgsql/testutils/Makefile src/lib/cql/Makefile src/lib/cql/tests/Makefile src/lib/cql/testutils/Makefile src/lib/process/Makefile src/lib/process/tests/Makefile src/lib/process/testutils/Makefile src/lib/stats/Makefile src/lib/stats/tests/Makefile src/lib/testutils/Makefile src/lib/testutils/dhcp_test_lib.sh src/lib/util/Makefile src/lib/util/io/Makefile src/lib/util/python/Makefile src/lib/util/python/gen_wiredata.py src/lib/util/tests/Makefile src/lib/util/tests/process_spawn_app.sh src/lib/util/threads/Makefile src/lib/util/threads/tests/Makefile src/lib/util/unittests/Makefile src/lib/yang/Makefile src/lib/yang/pretests/Makefile src/lib/yang/tests/Makefile src/lib/yang/testutils/Makefile src/share/Makefile src/share/database/Makefile src/share/database/scripts/Makefile src/share/database/scripts/cql/Makefile src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh src/share/database/scripts/mysql/Makefile src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh src/share/database/scripts/mysql/upgrade_3.0_to_4.0.sh src/share/database/scripts/mysql/upgrade_4.0_to_4.1.sh src/share/database/scripts/mysql/upgrade_4.1_to_5.0.sh src/share/database/scripts/mysql/upgrade_5.0_to_5.1.sh src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh src/share/database/scripts/pgsql/Makefile src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh src/share/database/scripts/pgsql/upgrade_3.0_to_3.1.sh src/share/database/scripts/pgsql/upgrade_3.1_to_3.2.sh src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh src/share/yang/Makefile src/share/yang/modules/Makefile tools/Makefile tools/path_replacer.sh"
4673+# Autoconf 2.70 has runstatedir but is not yet released.
4674+
4675+if test "x$runstatedir" = "x"; then
4676+ runstatedir="$localstatedir/run"
4677+fi
4678+
4679+# Expand runstatedir to remove ${localstatedir} from it
4680+if (echo ${runstatedir} | grep -q localstatedir); then
4681+ runstatedir="$(eval echo ${runstatedir})"
4682+fi
4683+
4684+ac_config_files="$ac_config_files Makefile doc/Makefile doc/sphinx/Makefile doc/devel/Makefile ext/Makefile ext/gtest/Makefile ext/coroutine/Makefile kea_version.h m4macros/Makefile src/Makefile src/bin/Makefile src/bin/admin/Makefile src/bin/admin/kea-admin src/bin/admin/tests/Makefile src/bin/admin/tests/cql_tests.sh src/bin/admin/tests/data/Makefile src/bin/admin/tests/memfile_tests.sh src/bin/admin/tests/mysql_tests.sh src/bin/admin/tests/pgsql_tests.sh src/bin/agent/Makefile src/bin/agent/tests/Makefile src/bin/agent/tests/ca_process_tests.sh src/bin/agent/tests/test_data_files_config.h src/bin/agent/tests/test_libraries.h src/bin/d2/Makefile src/bin/d2/tests/Makefile src/bin/d2/tests/d2_process_tests.sh src/bin/d2/tests/test_data_files_config.h src/bin/dhcp4/Makefile src/bin/dhcp4/tests/Makefile src/bin/dhcp4/tests/dhcp4_process_tests.sh src/bin/dhcp4/tests/marker_file.h src/bin/dhcp4/tests/test_data_files_config.h src/bin/dhcp4/tests/test_libraries.h src/bin/dhcp6/Makefile src/bin/dhcp6/tests/Makefile src/bin/dhcp6/tests/dhcp6_process_tests.sh src/bin/dhcp6/tests/marker_file.h src/bin/dhcp6/tests/test_data_files_config.h src/bin/dhcp6/tests/test_libraries.h src/bin/keactrl/Makefile src/bin/keactrl/keactrl src/bin/keactrl/keactrl.conf src/bin/keactrl/tests/Makefile src/bin/keactrl/tests/keactrl_tests.sh src/bin/lfc/Makefile src/bin/lfc/tests/Makefile src/bin/netconf/Makefile src/bin/netconf/tests/Makefile src/bin/netconf/tests/shtests/Makefile src/bin/netconf/tests/shtests/netconf_tests.sh src/bin/netconf/tests/test_data_files_config.h src/bin/netconf/tests/test_libraries.h src/bin/perfdhcp/Makefile src/bin/perfdhcp/tests/Makefile src/bin/perfdhcp/tests/testdata/Makefile src/bin/shell/Makefile src/bin/shell/kea-shell src/bin/shell/tests/Makefile src/bin/shell/tests/shell_process_tests.sh src/bin/shell/tests/shell_unittest.py src/hooks/Makefile src/hooks/dhcp/Makefile src/hooks/dhcp/high_availability/Makefile src/hooks/dhcp/high_availability/tests/Makefile src/hooks/dhcp/lease_cmds/Makefile src/hooks/dhcp/lease_cmds/tests/Makefile src/hooks/dhcp/mysql_cb/Makefile src/hooks/dhcp/mysql_cb/tests/Makefile src/hooks/dhcp/user_chk/Makefile src/hooks/dhcp/user_chk/tests/Makefile src/hooks/dhcp/user_chk/tests/test_data_files_config.h src/hooks/dhcp/stat_cmds/Makefile src/hooks/dhcp/stat_cmds/tests/Makefile src/lib/Makefile src/lib/asiodns/Makefile src/lib/asiodns/tests/Makefile src/lib/asiolink/Makefile src/lib/asiolink/testutils/Makefile src/lib/asiolink/tests/Makefile src/lib/cc/Makefile src/lib/cc/tests/Makefile src/lib/cfgrpt/Makefile src/lib/cfgrpt/tests/Makefile src/lib/config/Makefile src/lib/config/tests/Makefile src/lib/config/tests/data_def_unittests_config.h src/lib/config/tests/testdata/Makefile src/lib/config_backend/Makefile src/lib/config_backend/tests/Makefile src/lib/cryptolink/Makefile src/lib/cryptolink/tests/Makefile src/lib/database/Makefile src/lib/database/tests/Makefile src/lib/database/testutils/Makefile src/lib/dhcp/Makefile src/lib/dhcp/tests/Makefile src/lib/dhcp_ddns/Makefile src/lib/dhcp_ddns/tests/Makefile src/lib/dhcpsrv/Makefile src/lib/dhcpsrv/benchmarks/Makefile src/lib/dhcpsrv/tests/Makefile src/lib/dhcpsrv/tests/test_libraries.h src/lib/dhcpsrv/testutils/Makefile src/lib/dns/Makefile src/lib/dns/gen-rdatacode.py src/lib/dns/tests/Makefile src/lib/dns/tests/testdata/Makefile src/lib/eval/Makefile src/lib/eval/tests/Makefile src/lib/exceptions/Makefile src/lib/exceptions/tests/Makefile src/lib/hooks/Makefile src/lib/hooks/tests/Makefile src/lib/hooks/tests/marker_file.h src/lib/hooks/tests/test_libraries.h src/lib/http/Makefile src/lib/http/tests/Makefile src/lib/log/Makefile src/lib/log/compiler/Makefile src/lib/log/interprocess/Makefile src/lib/log/interprocess/tests/Makefile src/lib/log/tests/Makefile src/lib/log/tests/buffer_logger_test.sh src/lib/log/tests/console_test.sh src/lib/log/tests/destination_test.sh src/lib/log/tests/init_logger_test.sh src/lib/log/tests/local_file_test.sh src/lib/log/tests/logger_lock_test.sh src/lib/log/tests/severity_test.sh src/lib/log/tests/tempdir.h src/lib/mysql/Makefile src/lib/mysql/testutils/Makefile src/lib/mysql/tests/Makefile src/lib/pgsql/Makefile src/lib/pgsql/tests/Makefile src/lib/pgsql/testutils/Makefile src/lib/cql/Makefile src/lib/cql/tests/Makefile src/lib/cql/testutils/Makefile src/lib/process/Makefile src/lib/process/tests/Makefile src/lib/process/testutils/Makefile src/lib/stats/Makefile src/lib/stats/tests/Makefile src/lib/testutils/Makefile src/lib/testutils/dhcp_test_lib.sh src/lib/util/Makefile src/lib/util/io/Makefile src/lib/util/python/Makefile src/lib/util/python/gen_wiredata.py src/lib/util/tests/Makefile src/lib/util/tests/process_spawn_app.sh src/lib/util/threads/Makefile src/lib/util/threads/tests/Makefile src/lib/util/unittests/Makefile src/lib/yang/Makefile src/lib/yang/pretests/Makefile src/lib/yang/tests/Makefile src/lib/yang/testutils/Makefile src/share/Makefile src/share/database/Makefile src/share/database/scripts/Makefile src/share/database/scripts/cql/Makefile src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh src/share/database/scripts/cql/upgrade_3.0_to_4.0.sh src/share/database/scripts/cql/wipe_data.sh src/share/database/scripts/mysql/Makefile src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh src/share/database/scripts/mysql/upgrade_3.0_to_4.0.sh src/share/database/scripts/mysql/upgrade_4.0_to_4.1.sh src/share/database/scripts/mysql/upgrade_4.1_to_5.0.sh src/share/database/scripts/mysql/upgrade_5.0_to_5.1.sh src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh src/share/database/scripts/mysql/wipe_data.sh src/share/database/scripts/pgsql/Makefile src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh src/share/database/scripts/pgsql/upgrade_3.0_to_3.1.sh src/share/database/scripts/pgsql/upgrade_3.1_to_3.2.sh src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh src/share/database/scripts/pgsql/upgrade_5.0_to_5.1.sh src/share/database/scripts/pgsql/wipe_data.sh src/share/yang/Makefile src/share/yang/modules/Makefile tools/Makefile tools/path_replacer.sh"
4685
4686
4687 ac_config_commands="$ac_config_commands permissions"
4688@@ -21606,10 +21861,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
4689 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
4690 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4691 fi
4692-if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then
4693- as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined.
4694-Usually this means the macro was only invoked conditionally." "$LINENO" 5
4695-fi
4696 if test -z "${DEBUG_ENABLED_TRUE}" && test -z "${DEBUG_ENABLED_FALSE}"; then
4697 as_fn_error $? "conditional \"DEBUG_ENABLED\" was never defined.
4698 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4699@@ -21630,8 +21881,8 @@ if test -z "${USE_STATIC_LINK_TRUE}" && test -z "${USE_STATIC_LINK_FALSE}"; then
4700 as_fn_error $? "conditional \"USE_STATIC_LINK\" was never defined.
4701 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4702 fi
4703-if test -z "${KEA_SHELL_TRUE}" && test -z "${KEA_SHELL_FALSE}"; then
4704- as_fn_error $? "conditional \"KEA_SHELL\" was never defined.
4705+if test -z "${PERFDHCP_TRUE}" && test -z "${PERFDHCP_FALSE}"; then
4706+ as_fn_error $? "conditional \"PERFDHCP\" was never defined.
4707 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4708 fi
4709 if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then
4710@@ -21710,12 +21961,20 @@ if test -z "${HAVE_BENCHMARK_SOURCE_TRUE}" && test -z "${HAVE_BENCHMARK_SOURCE_F
4711 as_fn_error $? "conditional \"HAVE_BENCHMARK_SOURCE\" was never defined.
4712 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4713 fi
4714+if test -z "${GENERATE_MESSAGES_TRUE}" && test -z "${GENERATE_MESSAGES_FALSE}"; then
4715+ as_fn_error $? "conditional \"GENERATE_MESSAGES\" was never defined.
4716+Usually this means the macro was only invoked conditionally." "$LINENO" 5
4717+fi
4718 if test -z "${GENERATE_PARSER_TRUE}" && test -z "${GENERATE_PARSER_FALSE}"; then
4719 as_fn_error $? "conditional \"GENERATE_PARSER\" was never defined.
4720 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4721 fi
4722-if test -z "${HAVE_DBLATEX_TRUE}" && test -z "${HAVE_DBLATEX_FALSE}"; then
4723- as_fn_error $? "conditional \"HAVE_DBLATEX\" was never defined.
4724+if test -z "${KEA_SHELL_TRUE}" && test -z "${KEA_SHELL_FALSE}"; then
4725+ as_fn_error $? "conditional \"KEA_SHELL\" was never defined.
4726+Usually this means the macro was only invoked conditionally." "$LINENO" 5
4727+fi
4728+if test -z "${HAVE_PDFLATEX_TRUE}" && test -z "${HAVE_PDFLATEX_FALSE}"; then
4729+ as_fn_error $? "conditional \"HAVE_PDFLATEX\" was never defined.
4730 Usually this means the macro was only invoked conditionally." "$LINENO" 5
4731 fi
4732 if test -z "${GENERATE_DOCS_TRUE}" && test -z "${GENERATE_DOCS_FALSE}"; then
4733@@ -22143,7 +22402,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
4734 # report actual input values of CONFIG_FILES etc. instead of their
4735 # values after options handling.
4736 ac_log="
4737-This file was extended by kea $as_me 1.5.0, which was
4738+This file was extended by kea $as_me 1.6.1, which was
4739 generated by GNU Autoconf 2.69. Invocation command line was
4740
4741 CONFIG_FILES = $CONFIG_FILES
4742@@ -22209,7 +22468,7 @@ _ACEOF
4743 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
4744 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
4745 ac_cs_version="\\
4746-kea config.status 1.5.0
4747+kea config.status 1.6.1
4748 configured by $0, generated by GNU Autoconf 2.69,
4749 with options \\"\$ac_cs_config\\"
4750
4751@@ -22723,12 +22982,9 @@ do
4752 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
4753 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
4754 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
4755- "compatcheck/Makefile") CONFIG_FILES="$CONFIG_FILES compatcheck/Makefile" ;;
4756- "dns++.pc") CONFIG_FILES="$CONFIG_FILES dns++.pc" ;;
4757 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
4758- "doc/guide/Makefile") CONFIG_FILES="$CONFIG_FILES doc/guide/Makefile" ;;
4759- "doc/version.ent") CONFIG_FILES="$CONFIG_FILES doc/version.ent" ;;
4760- "doc/docgen/Makefile") CONFIG_FILES="$CONFIG_FILES doc/docgen/Makefile" ;;
4761+ "doc/sphinx/Makefile") CONFIG_FILES="$CONFIG_FILES doc/sphinx/Makefile" ;;
4762+ "doc/devel/Makefile") CONFIG_FILES="$CONFIG_FILES doc/devel/Makefile" ;;
4763 "ext/Makefile") CONFIG_FILES="$CONFIG_FILES ext/Makefile" ;;
4764 "ext/gtest/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gtest/Makefile" ;;
4765 "ext/coroutine/Makefile") CONFIG_FILES="$CONFIG_FILES ext/coroutine/Makefile" ;;
4766@@ -22792,6 +23048,8 @@ do
4767 "src/hooks/dhcp/high_availability/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/high_availability/tests/Makefile" ;;
4768 "src/hooks/dhcp/lease_cmds/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/lease_cmds/Makefile" ;;
4769 "src/hooks/dhcp/lease_cmds/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/lease_cmds/tests/Makefile" ;;
4770+ "src/hooks/dhcp/mysql_cb/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/mysql_cb/Makefile" ;;
4771+ "src/hooks/dhcp/mysql_cb/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/mysql_cb/tests/Makefile" ;;
4772 "src/hooks/dhcp/user_chk/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/user_chk/Makefile" ;;
4773 "src/hooks/dhcp/user_chk/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/user_chk/tests/Makefile" ;;
4774 "src/hooks/dhcp/user_chk/tests/test_data_files_config.h") CONFIG_FILES="$CONFIG_FILES src/hooks/dhcp/user_chk/tests/test_data_files_config.h" ;;
4775@@ -22889,6 +23147,8 @@ do
4776 "src/share/database/scripts/cql/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/cql/Makefile" ;;
4777 "src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/cql/upgrade_1.0_to_2.0.sh" ;;
4778 "src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/cql/upgrade_2.0_to_3.0.sh" ;;
4779+ "src/share/database/scripts/cql/upgrade_3.0_to_4.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/cql/upgrade_3.0_to_4.0.sh" ;;
4780+ "src/share/database/scripts/cql/wipe_data.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/cql/wipe_data.sh" ;;
4781 "src/share/database/scripts/mysql/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/Makefile" ;;
4782 "src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh" ;;
4783 "src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh" ;;
4784@@ -22899,6 +23159,10 @@ do
4785 "src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_5.1_to_5.2.sh" ;;
4786 "src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh" ;;
4787 "src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh" ;;
4788+ "src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_7.0_to_8.0.sh" ;;
4789+ "src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh" ;;
4790+ "src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/upgrade_8.1_to_8.2.sh" ;;
4791+ "src/share/database/scripts/mysql/wipe_data.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/mysql/wipe_data.sh" ;;
4792 "src/share/database/scripts/pgsql/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/Makefile" ;;
4793 "src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh" ;;
4794 "src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh" ;;
4795@@ -22907,6 +23171,8 @@ do
4796 "src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_3.2_to_3.3.sh" ;;
4797 "src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_3.3_to_4.0.sh" ;;
4798 "src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_4.0_to_5.0.sh" ;;
4799+ "src/share/database/scripts/pgsql/upgrade_5.0_to_5.1.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/upgrade_5.0_to_5.1.sh" ;;
4800+ "src/share/database/scripts/pgsql/wipe_data.sh") CONFIG_FILES="$CONFIG_FILES src/share/database/scripts/pgsql/wipe_data.sh" ;;
4801 "src/share/yang/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/yang/Makefile" ;;
4802 "src/share/yang/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/yang/modules/Makefile" ;;
4803 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
4804@@ -23615,7 +23881,6 @@ $as_echo X"$file" |
4805 cat <<_LT_EOF >> "$cfgfile"
4806 #! $SHELL
4807 # Generated automatically by $as_me ($PACKAGE) $VERSION
4808-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
4809 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
4810
4811 # Provide generalized library-building support services.
4812@@ -24376,6 +24641,22 @@ if test "$KEA_SRCID" != ""; then
4813 EXTENDED_VERSION="${EXTENDED_VERSION} ($KEA_SRCID)"
4814 fi
4815
4816+# By default the following variables are defined:
4817+# - prefix = /usr/local
4818+# - exec_prefix = ${prefix}
4819+# - libdir = ${exec_prefix}/lib
4820+# The exec_prefix and libdir variables contain unexpanded,literal ${prefix}.
4821+# This is done on purpose. The idea is to be able to make this expansion
4822+# late, so use can do:
4823+# make install prefix=/my/own/prefix
4824+#
4825+# Now, we want to print those directories in the config.report, but we
4826+# don't want to modify the actual variables. So we need to expand them.
4827+# Since libdir contains $exec_prefix and exec_prefix contains $prefix, then
4828+# to get the real value, we need to expand it twice.
4829+libdir_real="$(eval echo ${libdir})"
4830+libdir_real="$(eval echo ${libdir_real})"
4831+
4832 cat > config.report << END
4833
4834 Kea source configure results:
4835@@ -24387,7 +24668,8 @@ Package:
4836 Extended version: ${EXTENDED_VERSION}
4837 OS Family: ${OS_TYPE}
4838
4839- Hooks directory: ${prefix}/lib/hooks
4840+ Prefix: ${prefix}
4841+ Hooks directory: ${libdir_real}/kea/hooks
4842 END
4843 if test "$PREMIUM" != ""; then
4844 cat >> config.report << END
4845@@ -24583,14 +24865,17 @@ fi
4846 cat >> config.report << END
4847
4848 Developer:
4849- Enable Debugging: $debug_enabled
4850- Google Tests: $enable_gtest
4851- Valgrind: $found_valgrind
4852- C++ Code Coverage: $USE_LCOV
4853- Logger checks: $enable_logger_checks
4854- Generate Documentation: $enable_generate_docs
4855- Parser Generation: $enable_generate_parser
4856- Kea-shell: $enable_shell
4857+ Enable Debugging: $debug_enabled
4858+ Google Tests: $enable_gtest
4859+ Google Benchmark: $enable_benchmark
4860+ Valgrind: $found_valgrind
4861+ C++ Code Coverage: $USE_LCOV
4862+ Logger checks: $enable_logger_checks
4863+ Generate Documentation: $generate_docs_report
4864+ Generate Parser: $enable_generate_parser
4865+ Generate Messages Files: $enable_generate_messages
4866+ Perfdhcp: $enable_perfdhcp
4867+ Kea-shell: $shell_report
4868
4869 END
4870
4871diff --git a/configure.ac b/configure.ac
4872old mode 100644
4873new mode 100755
4874index c880b77..48a85d1
4875--- a/configure.ac
4876+++ b/configure.ac
4877@@ -7,7 +7,7 @@ AC_PREREQ([2.69])
4878 # For GIT versions, this is x.y.z-git, where x.y.z denotes the software
4879 # version that was used as a base + changes that were made later, but
4880 # are not released yet.
4881-AC_INIT(kea,1.5.0, kea-dev@lists.isc.org)
4882+AC_INIT(kea,1.6.1, kea-dev@lists.isc.org)
4883 AC_CONFIG_SRCDIR(README)
4884
4885 # serial-tests is not available in automake version before 1.13, so
4886@@ -64,21 +64,6 @@ if test "$sep" = "__NONE__"; then
4887 fi
4888 AC_SUBST(SEP)
4889
4890-# If cross compiling assume the message compiler executable was
4891-# magically already in place...
4892-if test "$cross_compiling" = "yes"; then
4893- AC_MSG_CHECKING("build (vs. host) compiled message compiler")
4894- if test -x "${srcdir}/src/lib/log/compiler/message"; then
4895- AC_MSG_RESULT(yes)
4896- else
4897- AC_MSG_RESULT(no)
4898- AC_MSG_WARN("you must install a message compiler in:")
4899- AC_MSG_WARN(" ${srcdir}/src/lib/log/compiler/message")
4900- AC_MSG_WARN("compiled for build ($build).")
4901- fi
4902-fi
4903-AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = "yes"])
4904-
4905 # pkg-config can be required.
4906 AC_PATH_PROG([PKG_CONFIG], [pkg-config])
4907
4908@@ -436,44 +421,19 @@ case "$host" in
4909 ;;
4910 esac
4911
4912-# Kea-shell is written in python. It can work with python 2.7 or any 3.x.
4913-# It may likely work with earlier versions, but 2.7 was the oldest one we tested
4914-# it with. We require python only if kea-shell was enabled. It is disabled
4915-# by default to not introduce hard dependency on python.
4916-AC_ARG_ENABLE(shell, [AC_HELP_STRING([--enable-shell],
4917- [enable kea-shell, a text management client for Control Agent [default=no]])],
4918- enable_shell=$enableval, enable_shell=no)
4919+# Made perfdhcp optional.
4920+AC_ARG_ENABLE(perfdhcp, [AC_HELP_STRING([--enable-perfdhcp],
4921+ [enable perfdhcp, a DHCP benchmarking tool [default=no]])],
4922+ enable_perfdhcp=$enableval, enable_perfdhcp=no)
4923
4924-DISTCHECK_KEA_SHELL_CONFIGURE_FLAG=
4925-PKGPYTHONDIR=
4926-m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
4927- [python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 dnl
4928- python3.3 python3.2 python3.1 python3.0 python python2 python2.7])
4929-if test "x$enable_shell" != xno ; then
4930-# If kea-shell is enabled, we really need python. 2.7 or anything newer will do.
4931-# We try to find 3.x first. If not found, we can do with 2.7.
4932- AM_PATH_PYTHON([2.7])
4933- # pkgpythondir needs to be expanded
4934- saved_prefix="$prefix"
4935- if test "$prefix" = "NONE"; then
4936- prefix=$ac_default_prefix
4937- fi
4938- PKGPYTHONDIR="$pkgpythondir"
4939- OLD=
4940- while test "x$OLD" != "x$PKGPYTHONDIR"; do
4941- OLD="$PKGPYTHONDIR"
4942- eval PKGPYTHONDIR="\"$OLD\""
4943- done
4944- prefix="$saved_prefix"
4945- DISTCHECK_KEA_SHELL_CONFIGURE_FLAG="--enable-shell"
4946-else
4947- PYTHON=no
4948+DISTCHECK_PERFDHCP_CONFIGURE_FLAG=
4949+if test "x$enable_perfdhcp" != xno ; then
4950+ DISTCHECK_PERFDHCP_CONFIGURE_FLAG="--enable-perfdhcp"
4951 fi
4952
4953-# Export to makefiles the info whether we have shell enabled or not
4954-AM_CONDITIONAL(KEA_SHELL, test x$enable_shell != xno)
4955-AC_SUBST(DISTCHECK_KEA_SHELL_CONFIGURE_FLAG)
4956-AC_SUBST(PKGPYTHONDIR)
4957+# Export to makefiles the info whether we have perfdhcp enabled or not
4958+AM_CONDITIONAL(PERFDHCP, test x$enable_perfdhcp != xno)
4959+AC_SUBST(DISTCHECK_PERFDHCP_CONFIGURE_FLAG)
4960
4961 # produce PIC unless we disable shared libraries. need this for python bindings.
4962 if test $enable_shared != "no" -a "X$GXX" = "Xyes"; then
4963@@ -606,8 +566,11 @@ AC_ARG_WITH([gtest],
4964 [specify a path to gtest header files (PATH/include) and library (PATH/lib)])],
4965 [gtest_path="$withval"; enable_gtest="yes"], [gtest_path="no"])
4966
4967-AC_ARG_WITH(lcov,
4968-[ --with-lcov[=PROGRAM] enable gtest and coverage target using the specified lcov], lcov="$withval", lcov="no")
4969+AC_ARG_WITH([lcov],
4970+ [AS_HELP_STRING([--with-lcov=PROGRAM],
4971+ [enable gtest and coverage target using the specified lcov])],
4972+ [lcov="$withval"],
4973+ [lcov="no"])
4974
4975 USE_LCOV="no"
4976 if test "$lcov" != "no"; then
4977@@ -681,6 +644,7 @@ if test "${deprec_msg}" = "yes" ; then
4978 fi
4979
4980 if test "${mysql_config}" = "yes" ; then
4981+ MYSQL_CONFIG="/usr/bin/mysql_config"
4982 for d in $defaultdirs
4983 do
4984 if test -f $d/bin/mysql_config; then
4985@@ -694,11 +658,12 @@ fi
4986
4987 if test "$MYSQL_CONFIG" != "" ; then
4988 if test -d "$MYSQL_CONFIG" -o ! -x "$MYSQL_CONFIG" ; then
4989- AC_MSG_ERROR([--with-mysql should point to a mysql_config program])
4990+ AC_MSG_ERROR([MySQL dependencies cannot be found. Please install MySQL libraries or point --with-mysql to mysql_config program if it is located in non-default directory, eg. --with-mysql=/opt/mysql/bin/mysql_config.])
4991 fi
4992
4993 MYSQL_CPPFLAGS=`$MYSQL_CONFIG --cflags`
4994 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
4995+ MYSQL_LIBS="$MYSQL_LIBS $CRYPTO_LIBS"
4996 MYSQL_VERSION=`$MYSQL_CONFIG --version`
4997
4998 AC_SUBST(MYSQL_CPPFLAGS)
4999@@ -712,20 +677,30 @@ if test "$MYSQL_CONFIG" != "" ; then
5000 LIBS="$MYSQL_LIBS $LIBS"
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches