Fixes this error:
$ ./result/bin/backintime-qt
/nix/store/fpr65b2gwpa4q9w3k6z8kjcd9yprmg6s-backintime-qt-1.3.3
Traceback (most recent call last):
File "/nix/store/fpr65b2gwpa4q9w3k6z8kjcd9yprmg6s-backintime-qt-1.3.3/share/backintime/qt/app.py", line 35, in <module>
import qttools
File "/nix/store/fpr65b2gwpa4q9w3k6z8kjcd9yprmg6s-backintime-qt-1.3.3/share/backintime/qt/qttools.py", line 32, in <module>
from packaging.version import Version
ModuleNotFoundError: No module named 'packaging'
Fixes https://github.com/NixOS/nixpkgs/issues/241966.
besides updating the version/src sha, upstream switched to GTK3, as can
be seen in the release notes [0]. This apparently requires the ocaml
cairo2 bindings an zlib. I also used wrapGAppsHook to supply the schemas
from gsettings-desktop-schemas. Screenshot: https://i.imgur.com/CrPvLgQ.png
I can not test the Icon creation since I am not using a desktop, @viric
please check. Maybe this is also done by wrapGAppsHook..
[0] https://github.com/bcpierce00/unison/releases/tag/v2.53.0
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)
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
Done with the help of https://github.com/Mindavi/nixpkgs-mark-broken
Tool is still WIP but this is one of the first results.
I manually audited the results and removed some results that were not valid.
Note that some of these packages maybe should have more constrained platforms set
instead of broken set, but I think not being perfectly correct is better than
just keep trying to build all these things and never succeeding.
Some observations:
- Some darwin builds require XCode tools
- aarch64-linux builds sometimes suffer from using gcc9
- gcc9 is getting older and misses some new libraries/features
- Sometimes tools try to do system detection or expect some explicit settings for
platforms that are not x86_64-linux