Skip to content

v6.0.0

Compare
Choose a tag to compare
@ximon18 ximon18 released this 26 Jan 14:23
· 49 commits to main since this release
af3bb38

This breaking release includes the following changes:

  • Change the behaviour of rpm_scriptlets_path when evaluated in the context of an "alternate" RPM package such that "alternate" RPM packages don't automatically reuse the same maintainer scripts that were used by the "primary" package. See #52.

Should I upgrade?

Only users who do all of the following are potentially affected by this release:

  • Are packaging RPMs, and
  • Are generating more than one RPM package from the same Cargo.toml, and
  • Have at least one table in Cargo.toml named [package.metadata.generate-rpm-alt-base-<ALT_PKG_NAME>] (where <ALT_PKG_NAME> is a placeholder for the actual value used in your Cargo.toml).

Users who do not create RPM packages, or only create a single RPM package from a single Cargo.toml file, are unaffected and do not need to upgrade to this release of Ploutos.

Which issue does this fix?

Issue #52, raised because of NLnetLabs/krill#1003.

Why was this fix required?

To prevent alternate packages wrongly re-using the maintainer scripts of the primary package, e.g. wrongly trying to create users, add systemd units or whatever your RPM scriptlets are doing for the primary package.

Where can I find out more?

Why did this require a breaking release?

Any projects using v5 of Ploutos who had alternate RPM packages already may have been relying on the behaviour that the same maintainer scripts are used for all packages.

How can I keep the previous behaviour?

Create a symbolic link with the name of the alternate package appended and point the link to the original rpm scriptlet file, or create a second file with the same content as the first.

For example, given:

  • .github/workflows/pkg.yml contains rpm_scriptlets_path = "/tmp/scriptlets.toml".
  • Cargo.toml contains [cargo.metadata.generate-rpm-alt-base-myalt].

Then do the following (on Linux): ln -s A B. That can be understood as "create a link from existing file A and call the link B".

For example:

$ ln -s /tmp/scriptlets.toml /tmp/scriptlets.toml-myalt