# Kea Migration Assistant 4.5.0 Release Notes, September 20, 2023 Welcome to Kea Migration Assistant (KeaMA) 4.5.0, the first stand-alone release. Earlier releases were part of the ISC DHCP suite, but since ISC DHCP reached its End-of-Life in December 2022, KeaMA is the only component that is still maintained. It has been moved to its own project. ISC DHCP is software that has been around for well over two decades, but has now reached End-Of-Life. Kea, a newer DHCP server from ISC, is a spiritual successor. ISC has developed the KeaMA tool to help users migrate from the legacy ISC DHCP server to the Kea DHCP server. This tool analyzes a valid ISC DHCP server configuration file and provides an equivalent configuration file for a Kea DHCP server. The resulting file is a starting point for your Kea configuration, but it will probably require editing before use. The text below references issue numbers. For more details, visit the Kea GitLab page at https://gitlab.isc.org/isc-projects/keama/-/issues. The following bugfixes and features have been implemented since the previous release, version 4.4.3: 1. **Web interface**: KeaMA now features an optional web interface. This might be a convenient option for users who want to try it, but who do not wish to install additional software [#13, #21, #17, #14, #26, #29, #31, #33, #34, #30]. 2. **Bug fixes**: A potential infinite loop was fixed [#7]. 3. **Verbose responses**: KeaMA now prints information about the input and output files being read, subnets, shared networks, and host reservations. Some debug messages are printed to standard error; this might be useful to debug problems if KeaMA goes into an infinite loop [#14]. 4. **Docker files**: Docker files are now available at https://gitlab.isc.org/isc-projects/keama-docker, adding yet another way of running KeaMA [#13]. 5. **Build improvements**: We removed many obsolete files and added new documentation [#5, #35]. We fixed a compilation error on FreeBSD [#6]. The tool now reports its version and its internal built-in help is now expanded [#14]. A compilation error on Alpine 3.17 was fixed [#24]. 6. **New system tests**: [#2]. We fixed all failing tests and added a CI pipeline with `pylint`, a python linter [#23]. ## Incompatible Changes There are no strictly incompatible changes, but right now KeaMA prints many informational messages on standard output, thus making the `-o ` parameter essentially mandatory to use. ## License This version of KeaMA is released under the Mozilla Public License, version 2.0. https://www.mozilla.org/en-US/MPL/2.0 ## Download KeaMA can be used in at least four ways: 1. using on-line service; 2. download pre-built native packages for selected Linux distros; 3. Using Docker; 4. Downloading the sources and compiling on your own system. 1. Online at: https://dhcp.isc.org 2. Via pre-built ISC packages for the current version of selected popular Linux operating systems at: https://cloudsmith.io/~isc/repos/keama/packages/ 3. Via Docker files from: https://gitlab.isc.org/isc-projects/keama-docker or https://cloudsmith.io/~isc/repos/keama/packages/ 4. Via the source files from: https://ftp.isc.org/isc/keama The KeaMA source and PGP signature for this release may be downloaded from: https://www.isc.org/download The signature was generated with the ISC code-signing key, which is available at: https://www.isc.org/pgpkey KeaMA does not feature extensive documentation. Some documents, including the manual file, README, CHANGELOG, and various others, are available from the KeaMA repository: https://gitlab.isc.org/isc-projects/keama/. ISC maintains a public open source code tree, wiki, issue tracking system, milestone planner at https://gitlab.isc.org/isc-projects/keama. Limitations and known issues with this release can be found at https://gitlab.isc.org/isc-projects/keama/-/wikis/known-issues-list. We ask users of this software to please let us know how it worked for you and what operating system you tested on. Feel free to share your feedback on the DHCP-Users mailing list (https://lists.isc.org/mailman/listinfo/dhcp-users). We would also like to hear whether the available documentation is adequate and accurate. Please open tickets in the KeaMA GitLab project for bugs, documentation omissions and errors, and enhancement requests. We want to hear from you even if everything worked. ## Support Professional support for Kea is available from ISC. We encourage all professional users to consider this option; Kea maintenance is funded with support subscriptions. For more information on ISC's Kea software support, see https://www.isc.org/support/. Free best-effort support is provided by our user community via a mailing list. Information on all public email lists is available at https://www.isc.org/community/mailing-list. If you have any comments or questions about working with Kea, please share them to the Kea Users list (https://lists.isc.org/mailman/listinfo/kea-users). Bugs and feature requests may be submitted via GitLab at https://gitlab.isc.org/isc-projects/kea/-/issues. ## Changes The following summarizes changes and important upgrades since the 4.4.3 release. * 23 [build] tomek The left-over server code is now removed. Documentation, python tests are now included in the release tarball. (Gitlab #35) * 22 [func] piotrek Changelog is now displayed in Keama web interface, as a part of About KeaMA page. (Gitlab #30) * 21 [func] piotrek CSRF protection was force enabled in Keama web interface. (Gitlab #34) * 20 [func] piotrek Keama web flask random SECRET_KEY is now generated only once and stored in a file to make it persistent. This is to prevent issues with CSRF session token. (Gitlab #33) * 19 [build] tomek All python tests fixed. Added pylint. Added CI pipeline that runs pylint, builds keama code, and runs tests. (Gitlab #23) * 18 [func] piotrek Enhancements of keama web interface: whole web page was reformatted and is using now the same styling as official isc.org web page. The html form is sent asynchronously (ajax) and whole feedback to the user is displayed in asynchronous manner. Previous web interface was kept as a fallback legacy version in case JavaScript is not supported by browser (url `/legacy`). (Gitlab #31) * 17 [func] piotrek Enhancements of keama web interface: when needed, feedback is presented to the user in form of closable alert section on top of the page. (Gitlab #29) * 16 [func] piotrek Enhancements of keama web interface: when migration is done, display only those contents to the user which are available; feedback such as "file too large" or "your config has been shared" are now using the same base template for consistent styling; absolute file paths are hidden in stdout and stderr in production; added white-space wrapping for html pre tags - used to display stdout, stderr and kea generated config. (Gitlab #26) * 15 [build] tomek Compilation fix for FreeBSD. Tested on FreeBSD 13.0, but other OS versions are likely affected, too. (Gitlab #6) * 14 [func] tomek It is now possible to either upload a file or copy-paste its contents. It is now possible to add your comments if you share your configuration with ISC. The "share with ISC" button is now working properly. (Gitlab #25) * 13 [doc] manu Add the Kea Migration Assistant Docker option to the "Off-Line Migration" section. * 12 [build] tomek Fixed compilation error on Alpine 3.17. Also disabled -Werror option that might cause compilation failures in other cases. (Gitlab #24) * 11 [doc] vicky Web interface reworded. (Gitlab #17) * 10 [bug] fdupont Fixed potential infinite loop in handling pick-first-value and possibly other statements. (Gitlab #7) * 9 [func] tomek The keama now can report its version (using `-v` or `--version`. It now prints some information about the file being converted and its content. The internal help is now corrected. Thanks to Carsten Strotmann for reporting and sending a patch. (Gitlab #14) * 8 [func] tomek The web interface now has configurable timeout for keama conversion. This is useful to kill hanging processes if keama gets stuck. The default timeout is 30 seconds. (Gitlab #21) * 7 [func] tomek Basic web interface implemented for keama. The interface is written in python and uses Flask framework. (Gitlab #13) * 6 [build] tomek Converted system tests to python (pytest). (Gitlab #2) * 5 [build] tomek Removed many obsolete files, added new, short README and ChangeLog files. (Gitlab #1) Thank you again to everyone who assisted us in making this release possible. We look forward to receiving your feedback.