4. Release notes
This documentation corresponds to Lease version 1.99.15.20260531075356.32922aefed.
4.1. Dora 1.99.15
The following are release notes for Dora 1.99.15:
RT1951: Add Debian installation instructions to the user manuals
RT1941: Rename Lease to Dora
RT1760: Remove dhclient program
RT1937: Make DHCP programs log using the Loop log module
RT1940: Use the internal global app context in liblease
RT1760: Use integer initializers
RT1760: Remove incorrect text from dhcpd.conf(5) manpage
RT1931: Add Ubuntu Resolute Raccoon to supported platforms
RT1929: Fix Debian packaging errors
4.2. Lease 1.99.14
The following are release notes for Lease 1.99.14:
RT1760: Use
IPTOS_DSCP_EFinstead ofIPTOS_LOWDELAYRT1760: Set DF bit on outgoing datagrams over LPF/BPF
RT1760: Use a flag to indicate fallback interface instead of string compares
RT1760: Rename taskmgr worker threads to "work-%hu"
RT1760: Further cleanup redundant
errnoto result conversionRT1760: Remove the redundant
uerr2isc()RT1760: Remove obsolete
IGNORE_HOSTUNREACHhandlingRT1760: Fix argument to
SO_BINDTODEVICEwhich should be the interface nameRT1922: Add CLI args for network I/O method selection
RT1760: Send responses to
yiaddrwhen client isn't requesting broadcastRT1760: Set
BIOCSDIRECTIONon BPF socketsRT1760: Fix interface return in the BPF implementation
RT1921: Compile multiple network I/O methods
RT1760: Fix interface selection code when binding to
INADDR_ANYRT1760: Use ISC_LIST instead of custom list implementation
RT1760: Use loop_refcount for references in Lease socket code
RT1760: Send response to source IP if client knows its address
RT1760: Fix BPF implementation
RT1760: Set interface index in the interface struct
RT1760: Update text in dhcpd(8) manpage
RT1760: Cleanup BPF implementation
RT1760: Allow
IFT_LOOPfor testing on FreeBSDRT1760: Add missing includes for FreeBSD
RT1920: Implement socket multi-interface support for Linux and FreeBSD
RT1760: Save the interface index
RT1760: Drop Solaris-specific interface scanning code
RT1760: Indent comments properly
RT1760: Remove SCO-specific
IP_BROADCAST_IFsocketoptRT1760: Remove cdefs.h
RT1760: Remove osdep.h
RT1760: Remove site.h
RT1760: Stop using obsolete byte order macros
RT1760: Remove obsolete comment
RT1760: Cleanups
RT1760: Remove obsolete macros
RT1760: Use
FD_CLOEXECinstead of the value 1 infcntl()callsRT1760: Remove support for FDDI
RT1760: Remove support for Token Ring
RT1760: Remove netinet headers from tree
RT1760: Add brackets around return argument
RT1760: Add brackets around sizeof operand
RT1760: Update coding style of the Lease code to the Loop style
RT1760: Delete trailing whitespace
RT1760: Update text on db-time-format
RT1760: Remove unused macros and protos
RT1760: Remove obsolete local definition of
SHUT_RDRT1760: Remove
snprintf()/vsnprintf()hacksRT1760: Update message about
authoring-byte-orderRT1760: Remove LDAP support
RT1760: Add back all of the socket IO code for use in testing
RT1760: Add comment
RT1760: Remove obsolete macros
RT1760: Always build DNS zone lookup support
RT1760: Remove remnants of
DDNS_UPDATE_STYLE_AD_HOCRT1760: Always build DNS UPDATE support
RT1760: Always include pid in log messages
RT1760: Update
configuremacro messageRT1760: Always build delayed ack support
RT1760: Turn off delayed ack if the delayed-ack count is configured as 0
RT1760: Modify code to support DHCP4o6 even when delayed acks are enabled
RT1760: Always build failover protocol support
RT1760: Always check if byteorder of the secs field is swapped
RT1918: Fix section title syntax error
4.3. Lease 1.99.13
The following are release notes for Lease 1.99.13:
RT1909: Remove reference count debugging code: this relic from another era just cluttered up the code everywhere; we will also switch to using atomic refcounts in a future release
RT1760: Remove unnecessary macros
RT1908: Remove tracing code from Lease: this relic from another era just cluttered up the code everywhere. Modern debugging tools do a better job.
RT1907: Refactor all of the TSIG algorithm parsing code: this change makes Loop use a single consistent set of TSIG algorithms, and also adds support for HMAC-SHA1, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 to the DHCP DDNS code
RT1760: Fix fallthrough warnings
RT1760: Fix warnings about format string conversion specifiers
RT1760: Fix warning about
snprintf()truncationRT1760: Fix warnings about incompatible function types
RT1760: Fix shadowed variable warnings
RT1760: Don't pass the format string
RT1760: Move declarations to top
RT1760: Fix warnings about const discards
RT1760: Fix cast from ptr to int
RT1760: Remove unused functions
RT1760: Fix warning about
strncpy()overflowRT1760: Fix warnings about returning aggregates
RT1760: Fix warnings in dhcrelay
RT1760: Fix signed vs. unsigned comparisons
RT1760: Remove old-style function definitions
RT1760: Make functions static
A lot of code cleanup and refactoring was done in this release. More to come.
4.4. Lease 1.99.12
The following are release notes for Lease 1.99.12:
RT1875: Add missing cocci files to dist
RT1870: Fix
configure.acwarningsRT1869: Update main copyrights to 2026
4.5. Lease 1.99.11
The following are release notes for Lease 1.99.11:
RT1840: Fix release notes text
4.6. Lease 1.99.10
The following are release notes for Lease 1.99.10:
RT1819: Fix Debian package homepage URLs
4.7. Lease 1.99.9
The following are release notes for Lease 1.99.9:
RT1812: Add Debian and Ubuntu to supported platforms
RT1801: Fix warning about possible thread name buffer overflow (
pthread_setname_np())RT1760: Remove socket interface code
RT1760: Remove unused socket code
RT1760: Remove raw socket implementation code
RT1760: Remove log messages about HP JetAdmin software
RT1760: Update text in manpage
RT1760: Remove NIT code
RT1760: Remove DLPI code
RT1760: Remove UPF code
RT1760: Move
icmp.cfunction protos toicmp.hRT1760: Remove local version of
inet_aton()RT1776: Use separate heap indexes for tracking active and inactive heaps
RT1777: Rename heap callback function types and args
RT1772: Refactor and port
mdb6_unittest.cRT1775: Save and restore lease's heap index
RT1774: Remove CYGWIN specific code
RT1771: Refactor and port
duid_unittest.cRT1770: Refactor and port
leaseq_unittest.cRT1769: Refactor and port
simple_unittest.cRT1768: Refactor and port
load_bal_unittest.cRT1767: Refactor and port
hash_unittest.cRT1766: Make
libdhclientlibraryRT1765: Make
libdhcpdlibraryRT1764: Refactor and port
test_alloc.cRT1763: Refactor and port
ns_name_test.cRT1762: Refactor and port
misc_unittest.cRT1761: Refactor and port
dns_unittest.cRT1760: Move
ddns.cfunction protos toddns.hRT1760: Move
dns.cfunction protos todns.hRT1760: Make
repudiate_zone()statically scopedRT1760: Make
dns_zone_lookup()statically scopedRT1760: Refactor
dispatch()RT1760: Add include
RT1760: Fix module name, etc.
RT1760: Prefix lease to function names
RT1760: Delete trailing whitespace
RT1760: Fix old style function decl
RT1760: Fix function args
RT1760: Cleanup includes
RT1760: Replace defines with enum
RT1760: Delete trailing whitespace
RT1760: Make variables static scoped
RT1760: Fix no previous prototype compiler warnings
RT1755: Add Debian packaging
RT1746: Fix user creation in RPM spec file for new RPM versions
RT1743: Disable parallel make in docs directories when using Sphinx
RT1742: Add installation.rst to
EXTRA_DISTRT1740: Update list of supported platforms
RT1738: Use standard C integer types
RT1737: Move leasechain protos to
leasechain.hRT1736: Remove unused
resolv.c
4.8. Lease 1.99.8
The following are release notes for Lease 1.99.8:
RT1671: libevent and libzip deps are limited to just the border RPM package now.
4.9. Lease 1.99.7
The following are release notes for Lease 1.99.7:
RT1428: The packaging of Lease was updated. Lease is part of a source code tree with other components such as Loop and Border, and previously only Lease and Loop were packaged. Other components of the tree are also packaged now as part of a multi-package RPM spec file. The
border-releasepackage which installed theborder-epel,border-epel-testing,border-fedora, andborder-fedora-testingDNF package repositories and their package signing PGP key has been replaced with theakira-releasepackage which installs theakira-epel,akira-epel-testing,akira-fedora, andakira-fedora-testingDNF package repositories and their package signing PGP key.RT1672: A minor syntax error was fixed in the Lease RPM's post-installation script (it did not cause an actual issue other than the error report).
RT1613: All the programs of Loop and Lease were updated to use consistent command line options for version, verbosity, help, etc.
RT1618: DNS names were added to the list of items in the data and privacy section of the Loop and Lease user manuals.
To upgrade from a previous release of Lease on an RPM platform, first
remove the obsolete border-release RPM:
$ sudo dnf remove border-release
Then, install the akira-release package as described in the
installation instructions (see the chapter titled
Installation). This will install the new DNF package
repositories.
Then, upgrade the lease package, which should install it from the new
DNF package repository:
$ sudo dnf upgrade lease
You may clean up the old Border Package Signer key using
clean-rpm-gpg-pubkey:
$ sudo dnf install clean-rpm-gpg-pubkey
$ sudo clean-rpm-gpg-pubkey
4.10. Lease 1.99.6
This is the first release of Lease. Lease has been a part of a source code tree with other dependency components such as Loop for some time now, where it had been maintained with the extensive code refactoring that was done in the tree. It was not packaged for release previously.
The following are release notes for Lease 1.99.6:
RT1606: Lease packages are now built. Lease is part of a source code tree with other components such as Loop, and previously only Loop was packaged. Other components of the tree are also packaged now as part of a multi-package RPM spec file.
To install Lease, please see the chapter titled Installation.
4.11. Version numbering scheme
Dora version numbers have the grammar <MAJOR>.<MINOR>.<PATCH>.<COMMIT-TIMESTAMP>.<COMMIT-HASH>. The MAJOR and MINOR version numbers together represent a source code branch of Dora (see Version branches).
The MAJOR version number is incremented when configuration options, API, and behavior of features change compared to the existing version. Switching to a new MAJOR version may require modifying existing config files to make them compatible with the new version.
The MINOR version number is incremented when new configuration options, API, and features are introduced that are compatible with existing configuration options. Switching to a new MINOR version will not require modifying existing config files to make them compatible with the new version.
The PATCH version number is incremented when only bugs have been fixed in a new version. Switching to a new PATCH version will not require modifying existing config files to make them compatible with the new version.
The COMMIT-TIMESTAMP field is auto-generated and contains the UTC timestamp of the source code commit from which the Dora release was made. The timestamp value is formatted as YYYYMMDDHHMMSS, as the output of:
date +%Y%m%d%H%M%S
The COMMIT-HASH field is auto-generated and contains the abbreviated commit hash of the source code commit from which the Dora release was made. The hash value is formatted as the output of:
git log -n1 --reverse --pretty=%h
For example,
If you're upgrading from version 1.2.1 to version 1.4.0, Dora's config files should not require any changes. You may also check for new features that have become available in the 1.4 branch.
If you're upgrading from version 1.2.1 to version 2.0.0, it is possible that some of the contents of your existing config files may need changes. You may also check for new features that have become available in the 2.0 branch.
If you're upgrading from version 1.2.1 to version 1.2.4, Dora's config files should not require any changes. The newer version only contains bugfixes.
Note
During a major version's release series, features and/or programs scheduled for removal in the next major release may be marked as deprecated. They will however still be supported until the end-of-life of that major release.
4.11.1. Stable and development versions
Even-numbered minor versions indicate stable branch releases, whereas odd-numbered minor versions indicate development banch releases. For example,
1.2.0 is a stable branch release,
1.3.0 is a development branch release,
1.99.0 is a development branch release,
2.0.3 is a stable branch release, and
2.1.1 is a development branch release.
Warning
Development branch releases should not be used in production as their features and interfaces may change. Development branch releases may not work properly, may have unexpected behaviors, may crash, etc.
4.12. Version branches
The following is information on current Dora branches.
Branch |
Type |
First release date |
End-of-life date |
|---|---|---|---|
1.99 |
Development |
2024-12-10 |
To be announced |
2.0 |
Stable |
To be announced |
To be announced |
Development branches have no planned end-of-life. Typically, development on such branches is stopped when a new MINOR+1 or MAJOR+1 stable branch is created off it.
4.13. History of Dora
ISC DHCP was originally written by Ted Lemon under a contract with Vixie Labs with the goal of being a complete reference implementation of the DHCP protocol. Funding for this project was provided by Internet Systems Consortium. The first release of the ISC DHCP distribution in December 1997 included just the DHCP server. Release 2 in June 1999 added a DHCP client and a BOOTP/DHCP relay agent. DHCP 3 was released in October 2001 and included DHCP failover support, OMAPI, Dynamic DNS, conditional behaviour, client classing, and more. Version 3 of the DHCP server was funded by Nominum, Inc. The 4.0 release in December 2007 introduced DHCPv6 protocol support for the server and client.
After the project was abandoned upstream, Dora was started by a former Infoblox NIOS developer with the goal of upgrading the codebase to modern standards, and integrating better with Loop (which is a dependency of Dora). Dora forked from the last ISC-licensed ISC-DHCP codebase. While externally it resembles ISC-DHCP with its similar configuration language and programs, its code has undergone considerable changes and continues to evolve at a high rate.