This PR removes the static-openssl feature. If necessary, this features can
be invoked by selecting openssl/vendored directly.
The PR also removes building and testing with default features from the CI
workflow. The only difference between default and all features currently is
rta which is deprecated and will be removed, anyway.
This PR now also fixes a few issues in krillc config simple and the post
install scripts for Debian and RPM packages.
In no particular order:
* Generalize references to Krill where they are not Krill specific.
* Make argument order consistent with Routinator.
* Various comment tidying and harmless changes for consistency with (e.g. argument order) the Routinator pkg workflow.
* Trigger the pkg workflow for all v* tags as this is simpler than matching specific version patterns and is consistent with the Routinator pkg workflow.
* Don't use ubuntu-latest as we unexpected changes may be introduced when latest moves up to the next Ubuntu release.
* Use the same latest DEB/RPM tool versions and features as the Routinator pkg workflow.
* Parameterize the Docker repo to push to. Don't assume it matches the GH repo name.
* Docker repo name must be lowercase.
* Ensure executables copied into the Docker image have the executable permission.
* Let the compiler choose the right target in the Dockerfile.
* Work around GitHub misapplication of secret protection to the dockerbasetag workflow job output.
* Upgrade to actions/cache@3
* Move the Docker workflow into the main Packaging workflow.
* Extend the Dockerfile to support building from precompiled externally supplied binaries as well as building from sources (to support the cross-compilation case).
* Extend the workflow to support cross-compilation for both Docker images and traditional packages. (#764)
* Extend the workflow to publish a multi-arch Docker manifest.
* Prefix tmp artifact names with 'tmp-' so that packages.nlnetlabs.nl scripts can easily ignore them.
* Use latest upload/download artifact action versions.
* Upload built Docker images as GitHub Actions artifacts.
* Switch to the vault package repository for CentOS 8 now that it is EOL.
* Don't delete cross compiled binaries during pkg job as multiple invocations of the matrix need to access the same artifact.
* Support "prepare-upgrade" through "krillup" binary.
* Package the new `krillup` binary and man page into a separate DEB/RPM.
* Also switches to building in a Rocky Linux container due to repeated CentOS 8 vault repo timeouts.
* Mention correct config file location on CLI help.
* Remove incorrect reference to non-existent help subcommand for krillup.
* Add locking to upgrade process.
Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
Cross compile DEB packages for armhf/ARMv7 and aarch64/ARM64 using the Rust Tools team cargo cross tool.
Tested on Raspbian 11/Debian Bullseye on a Raspberry Pi 4b (armhf) and Armbian/Debian Buster on a Rock64 (aarch64).
Doesn't yet support stripping of cross compiled binaries (revisit this when Cargo supports the Rust 1.58.0 strip feature) or automated determination of DEB dependencies for cross compiled binaries.
Also removes a duplicate `--system` argument to `useradd` in the RPM `postinst` script.
- 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.