The current version is 1.9.1
New installations and upgrades should not use the older versions unless blocked by a specific
problem. Versions prior to v0.5 do not use the GNU build system.
The original version used the irisa HAVEGE library
Touch up documentation and sample file issues in version 1.9.0 release.
Serious effort was put into the run-time test implementation to fix implementation
flaws and performance problems uncovered by large scale continuous tests. The effort
included repairing erosion of the diagnostic build to allow a bit by bit comparison
of parts of the AIS test suite against and independent port of the AIS-31 reference
implementation. Beyond a few build tweaks, other major changes included a rewrite
on the man pages postponed since version 1.7 and other efforts to provide a better
experience for the libhavege user. Package version format has migrated to a three
component numeric format.
Correct return codes returned by signal handler. Improved install target to better support systemd.
Improved man page and other documentation.
Correct additional run-time test alignment problems on mips.
Correct run-time test alignment problems on sparc and mips. Correct ppc detection in build.
Correct VPATH issues and modify check target to support parallel builds
and changes in automake 1.13 test harness. Updated sample spec file
and other documentation changes.
The build and sources have been restructured to provide a devel package
containing the haveged RNG implementation. Updated documentation, man(8)
and man(3) pages, additional build and usage samples are provided. The
potential for a rare syssegv resulting from the 1.6 changes has been
Fix typo that broke generic build procedure.
The run time test implementation has been corrected to remove an alignment
fault that appeared in AIS test0 on arm64 hosts. The build procedure for
clock_gettime() support has been altered to provide better control (now
an override for all architectures) and correctly determine dependencies.
Minor typos and inaccuracies in the source and man have been corrected.
A run time test option has been added to haveged that enables the execution
of one or both of the principle AIS-31 test suites at haveged initialization
and/or continuously during subsequent output. The command option permits the run
time tests to be configured to trade off test overhead with test rigor to meet
differing application needs. Reasonable default values are provided for daemon
and direct invocations. For further details on the testing implementation
see the haveged documentation.
Several changes have also been made to make haveged work better with both the
systemd and sysv init systems.
The haveged build has been extended to support s390 and 'generic' architectures
based upon clock_gettime(). A general cleanup of the build scripts includes
the ability to install non-RedHat init scripts without patching the build.
The haveged collection loop has been rewritten to support multiple instances
and add additional diagnostics which are being used to further improve haveged.
Tuning logic for the collection has been totally rewritten to replace buggy cpuid
code and incorporate additional information obtained from the /proc and /sys
file systems. An experimental multi-threaded option is also provided for those
hoping to spread haveged cpu load over multi-processes.
Haveged has been reorganized to allow its collection mechanism to be better accessed
directly through the file system. This reorganization includes the option to suppress
the daemon interface in the build so that haveged can now be used in those circumstances
where the use of /dev/random is unavailable or inappropriate. This also means that haveged
can now be built and used on non-linux systems. For example, the current tarball builds
unmodified in mingw on Windows. A new command argument has been added to provide more
precise control over file system output including unlimited piped output. The new man page
provides many examples of how the new haveged file output features can be used in a linux
After quite a while, I finally returned to modernizing the build. If you have a recent compiler, the
build will use compiler intrinsics to replace the previous inline assembly. This is still somewhat
experimental, but may help with build reliability. There are a couple of other features still in the
works, but the move to intrinsics had been sitting around for a while and it was time to push it out.