https://github.com/NixOS/nixpkgs/pull/192197 broke these packages by adding
systemd as a dependency. This meant that the included package was no longer the
python3 systemd package, but the general systemd derivation. This broke the
packages at runtime. This PR fixes that.
Many packages have some kind of flag indicating whether or not to build with
systemd support. Most of these default to `stdenv.isLinux`, but systemd does
not build on (and is marked `broken` for) `isStatic`. Only a few packages have
the needed `&& !isStatic` in the default value for their parameter.
This commit moves the logic for the default value of these flags into
`systemd.meta.{platforms,badPlatforms}` and evaluates those conditions using
`lib.meta.availableOn`.
This provides three benefits:
1. The default values are set correctly (i.e. including `&& isStatic`)
2. The default values are set consistently
3. The way is paved for any future non-Linux systemd platforms (FreeBSD is
reported to have experimental systemd support)
The current version is broken on the version of mautrix-python in nixpkgs and there are a couple fixes scattered in unreleased commits. Simply update to HEAD to get it working again.
It appears that these are bumped to match manual testing however they do not work well in nixpkgs as every time a dependency is updated this package breaks. To resolve this issue just strip the max version requirements and assume that it works.
Ideally we would do a semver-type comparison but this is likely not an issue because a new major version would need a new attribute name anyways.