github: run tests also on push to release branches
Fixes for release branches are often cherry-picked and then
directly pushed. This commit ensures that this results in a
full test run too. Right now we are flying a bit blind and
may miss that fixes like PR#9242 also need to go to the
release branches.
mkversion.sh: simple hack to include dirty in version if the tree is dirty
We want dirty to show up in the version number if the tree is in fact dirty when
we build. Currently, if the version is dirty on a tag, we would get something
like 2.46-dirty as version_from_git, which will not be the same as 2.46 from the
changelog, and then we produce a silly version number like:
2.46+git2.46.2.46
but with this we now produce:
2.46-dirty
And for commits that are not directly on a tag, and are dirty, we get
2.46+git83.g1671726-dirty
which also produces the desired effect of including dirty in the version.
The systemd backend is relatively unique, as it is only used by one
interface. The GPIO interface uses it to create systemd units which
export GPIOs from kernel / firmware to userspace and back.
The specification system for the systemd backend is comprised of named
services. The code allows for repeated generation of identical services,
sharing the same name, that are coalesced as long as their definitions
are identical.
Based on a customer report, we found a mistake in how this coalescing
was performed. The code performed pointer comparison, not object
equality comparison. This patch fixes this issue, adds unit tests
checking that case and improves the diagnostic error message to simplify
debugging in the future.