- Switch to O/S name based jobs instead of O/S numeric version to support Debian bullseye (which doesn't yet have a numeric Docker image tag and so cannot be run in a container by number, only by name).
- Switch to official cargo-deb release that has the required systemd unit functionality.
- Drop usage of empty 'job.container.image' cache key component.
- Work around lack of support for `date --rfc-email` in older O/S versions.
- Use a simpler and more consistent approach for waiting for network up in LXC containers.
- Ensure sudo is available.
Various Debian packaging fixes and improvements: (note: depends on a fork of cargo deb as some cargo deb PRs are still pending)
- Fix: Krill will now be restarted when the package is upgraded (also when upgrading from v0.7.0/v0.7.1/v0.7.2/v0.7.3 packages) (fixes#280).
- Fix: systemd warning after apt remove (fixes#275).
- Fix: Lintian error "manpage-not-compressed" (via cargo deb PR 133).
- Fix: Lintian error "debian-changelog-file-missing" (via cargo deb PR 137). Note: the changelog is only a minimal pointer to the GitHub release notes, attributed to the user doing the pull requestor or merge to master.
- Fix: Lintian error "copyright-without-copyright-notice".
- Fix: Cargo Deb "warning: extended-description field missing" (via cargo deb PR 138).
- Fix: Incorrect systemd unit "vendor preset: enabled" (via PR 276).
- Fix: Remove unused /etc/krill directory created by the "ConfigurationDirectory" systemd unit key.
Also:
- Use debhelper dh_installsystemd style support for systemd unit installation (based on official Debian debhelper dh_installsystemd autoscripts & logic) instead of incomplete/erroneous hand crafted maintainer scripts (via cargo deb PR 135).
- Uses systemd unit masking on package removal as recommended (see PR 276).
- Enables bash echo output for pkg workflow run steps.
- Verfies built deb packages with Lintian.
- Less repetition in Cargo.toml.
Correctly handle dashes in the Krill version number so that 'pre-release' 'tags' appended to the version number do not cause the package to be considered newer than a final untagged version number. Treat `-plus` as an exception denoting a build that is indeed newer.
- Assumes that the target system has ca-certificates installed already.
- Vendor OpenSSL to support Ubuntu 16.04 which only has OpenSSL 1.0.0.
- Use GH caching to avoid repeat compilation of unchanging cargo deb and krill dependencies.
- Build in Docker containers as GH runners have too many non-standard packages and libraries pre-installed.
- Sanity check the created DEB in targeted O/S versions via LXC/LXD containers (for systemd support).
- Assumes that the target system has ca-certificates installed already.
- Vendor OpenSSL to support Ubuntu 16.04 which only has OpenSSL 1.0.0.
- Use an Ubuntu 16.04 compatible version of libgcc1 (don't use cargo-deb $auto
depends as the GH 16.04 runner has a much newer libgcc1 package than stock
Ubuntu 16.04).
- Use GH caching to avoid repeat compilation of unchanging cargo deb and krill
dependencies.
- Sanity check the created DEB in targeted O/S versions.