< November 2020 | Russ Allbery > Eagle's Path | January 2021 > |
I've released a new version of my collection of utility libraries, Autoconf macros, and similar support infrastructure, primarily to include changes in the upcoming remctl and INN releases. Highlights:
Add a new RRA_PROG_LD_FLAG
Autoconf macro to check whether
flags are supported by the linker, and add support for commas in flags
passed to RRA_PROG_C_FLAG
.
NetBSD provides reallocarray
but doesn't prototype it unless
_OPENBSD_SOURCE
is set. Autoconf 2.70 will set that flag when
AC_USE_SYSTEM_EXTENSIONS
is given, but it's not yet packaged
for Debian. Work around this in the meantime by prototyping
reallocarray
if it's available but not prototyped. (NetBSD
prefers reallocarr
, which does indeed have a better API, but
since no other operating system supports it, I'm sticking with
reallocarray
for now.)
Fix the probe for AI_ADDRCONFIG
on macOS.
Fix the test suite for the portable getnameinfo
replacement on
musl libc, whose getaddrinfo
returns the stringified version of
an IP address if there is no reverse DNS. This seems like odd
behavior and no other platform does this, but it's easy enough to work
around.
The general support policy for rra-c-util is now that I will drop support for systems older than fifteen years if it becomes annoying to support them. That's still extremely conservative, but may let me drop some more support code that is essentially never used. The replacements for missing IPv6 functions are probably next on the chopping block.
Thanks to Julien ÉLIE and Bo Lindbergh for their contributions to this release.
You can get the latest release from the rra-c-util distribution page.
remctl is a simple GSS-API-based RPC system designed to be as trivial to deploy as possible for sites already using Kerberos.
I owe various people deeper reviews of remctl feature changes, but alas this release is not that. This is a bit of a stopgap maintenance release primarily to fix a testing problem on Debian that booted remctl out of testing. The basic problem is that a lot of test machinery assumes that every system will have an IPv4 address available, but this is not necessarily true on modern systems. This release only fixes the tests that don't use Kerberos. The tests that require Kerberos have much deeper assumptions that the IPv4 loopback will be available, and will require later work (hampered by the fact that I personally don't have such an environment readily available that also has access to a KDC and need to construct something in Docker or some similar container system).
This release also adds support for PHP 8 in anticipation of a possible Debian migration (some minor C source cleanup was required, nothing major), fixes some Python build system problems, and incorporates the changes from rra-c-util 8.4.
For future releases, I am considering removing the language bindings from
the remctl distribution and distributing them separately as stand-alone
tarballs. The primary reason for this is to more easily upload those
packages to the respective repositories for those languages (particularly
Perl and Python; I don't know how the Ruby and PHP ones work and would
need to find out), thus making them available to tools like cpanm
and pip
as long as the C libraries were already installed. The
cost is that someone who wants the C libraries and the extensions will
have to download multiple tarballs, and someone (not me) will have to
create separate Red hat spec files for the various language bindings.
If this would cause problems for you, let me know. It's not likely to happen soon since it would require some major reworking of my web page publication software, but once I finish the prerequisites, I'm likely to adopt this approach unless there are objections.
You can get the latest release from the remctl distribution page.
This is the software used to manage the archive of control messages and the Netnews active and newsgroups files at ftp.isc.org.
This release switches to gpg1
in order to support older keys and
produces better diagnostics when the X-PGP-Sig header is invalid because
it's missing the useless version field. It also includes various
hierarchy metadata updates, including adding rocksolid.*, removing
dictator.* at its maintainer's request, and updating the fr.* key.
You can get the latest release from the control-archive distribution page.
This release of my static site generator and software release management tool is finally at a point where I'm happy with some of the interface and think that piece may be stable for a while.
This release converts the package metadata format from JSON to YAML and
cleans up a bunch of organizational errors I made when I designed it
originally. That also means that the entire metadata is now in a single
file, docs/docknot.yaml
by convention, instead of needing a whole
directory of files. (This comes with the minor drawback that one edits
Markdown in text blocks in YAML, which has somewhat less editor support,
but it works fine for me.)
There's a whole other blog post in how I've now tried many different markup formats, including TOML, and have decided YAML is the best one around if you want humans to be able to write it. (JSON or Protobuf is probably best if you only care about information exchange between software.) The short version is that YAML is way too large of a language and very painful to fully implement, but everything else fails to deal with one or more hard problems: nested structure, multi-line text, comments, or not requiring tedious quoting of everything. I'll be converting other software I maintain over to YAML with time.
This release also drops support for pointing the bug reporting address at the CPAN RT instance, since that's going away early in 2021. I will need to do new releases of all my Perl modules to point them at a different bug tracker.
Also in this release are some fixes for word wrapping and verbatim
paragraph detection, some improved markup in generated README.md
files, and other minor fixes.
As of this release, I'm now uploading the Debian packages to Debian proper as well. I'm not sure if anyone else will ever use this software, but since I'm going to be doing more automatic generation of files in source releases using it, it's properly part of the build toolchain for the software I maintain.
You can get the latest version from the DocKnot distribution page.
< November 2020 | Russ Allbery > Eagle's Path | January 2021 > |