Running subcommands like `libinput measure` requires python and some python modules.
I previously added the dependencies in [1] but [2] accidentally moved them to checkInputs so they are not available at runtime by patchShebangs (especially since tests are disabled).
Additionally, the tools were ported from evdev python module to python-libevdev in libinput 1.14, which was missed [3] during upgrade.
Finally, other python modules are needed so let's add them as well.
[1]: https://github.com/NixOS/nixpkgs/pull/51304
[2]: de14f0c6e1
[3]: b291f2a995
ITS rules are used for extracting translatable strings and they have
been moved to external files in 2.13.92 so they are not needed in
the config files themselves.
Removing them also cuts down on errors/warnings produced when using
older versions of fontconfig (< 2.12.92). Now it will only complain
about the description element but that is fortunately just a warning,
not errors like the ones caused by the its attributes.
Thanks to this, we can change the config version in NixOS module
back to 2.11 allowing us to re-use the 2.13/2.14 configs for apps
built against 2.12 fontconfig.
With previous patch, we no longer load non-versioned fonts.conf file to avoid incompatibilities
but this also means fontconfig will not load system-wide installed fonts on non-NixOS systems.
As a compromise, let's hardcode the FHS font paths to the built-in config so that the system
fonts work there. Unlike with the system config we do not need to worry about compatibility as
incompatible font files will be simply ignored.
Of course there will still be disparity if the system install fonts to some other location than
these two but I am afraid this is the best we can do.
See https://github.com/NixOS/nixpkgs/pull/73795#issuecomment-635771967 for discussion.
Falling back to unversioned `/etc/fonts/conf.d` when versioned one does not exist
is problematic since it only occurs on non-NixOS systems and those are likely
to have a different version of fontconfig. When those versions use incompatible
elements in the config, apps using fontconfig will crash.
Instead, we are now falling back to the in-package `fonts.conf` file that loads
both the versioned global `conf.d` directory and the in-package `conf.d` since using
upstream settings on non-NixOS is preferable to not being able to use apps there.
In fact, we would not even need to link `fonts.conf`, as the in-package `fonts.conf`
will be always used unless someone creates the global one manually (the option is still
retained if one wants to write a custom NixOS module and to avoid unnecessary stat call on NixOS).
Additionally, since the `fonts.conf` will always load `conf.d` from the package, we no longer
need to install them to sytem `/etc` in the module. This needed some mucking with `50-user.conf`
which disables configs in user directories (a good thing IMO, NixOS module will turn it back on)
but otherwise, it is cleaner. The files are still prioritized by their name, regardless of their location.
See https://github.com/NixOS/nixpkgs/pull/73795#issuecomment-634370125 for more information.
systemd complains:
Jul 08 12:43:59 kaiser systemd[1]: /nix/store/bvfikb8v9m646m23fqm0rfnnsj6plc2k-libvirt-6.2.0/lib/systemd/system/libvirtd-admin.socket:11: ListenStream= references a path below legacy directory /var/run/, updating /var/run/libvirt/libvirt-admin-sock → /run/libvirt/libvirt-admin-sock; please update the unit file accordingly.
Jul 08 12:43:59 kaiser systemd[1]: /nix/store/bvfikb8v9m646m23fqm0rfnnsj6plc2k-libvirt-6.2.0/lib/systemd/system/libvirtd-ro.socket:11: ListenStream= references a path below legacy directory /var/run/, updating /var/run/libvirt/libvirt-sock-ro → /run/libvirt/libvirt-sock-ro; please update the unit file accordingly.
Jul 08 12:43:59 kaiser systemd[1]: /nix/store/bvfikb8v9m646m23fqm0rfnnsj6plc2k-libvirt-6.2.0/lib/systemd/system/libvirtd.socket:9: ListenStream= references a path below legacy directory /var/run/, updating /var/run/libvirt/libvirt-sock → /run/libvirt/libvirt-sock; please update the unit file accordingly.
Let's just set it correctly manually, that is what Red Hat does:
ba7592f6c1
See also:
390997925a
* Format with nixpkgs-format.
* Reorder the attribute to be more in line with convention.
* Use simpler git ref.
* Hardcode paths within bindings using patch (the replaced value actually changed in this version and without this clean-up, it would have gone unnoticed.)
* Let the build script install the python bindings instead of doing it manually (required the same hardcoding as above in the setup.py.)
* Use cmakeFlags attribute with placeholder instead of doing that in preConfigure.
* Move udev rules to lib since etc is meant for admins.
* License is actually lgpl2.1+.
In be1b22538a,
CMake setup-hook started to respect setOutputFlags. Since qtModule disables it by default,
cmake no longer received the multiple-output adjusted installation directory flags when
building the qtwebkit package. This resulted in incorrect paths in generated pkg-config files
and CMake config files.
Let’s temporarily enable setOutputFlags in the qtwebkit expression, until the commit is reverted.
Configure log still prints `checking for GST... yes`
and the new GST libs appear in RPATH.
wxGTK28 does't seem able to configure with non-legacy GST,
but it's almost unused... so I didn't touch it.
Build the documentation by default, but install it to seperate outputs
so it doesn't have to be downloaded. Documentation is still disabled
when cross-compiling, because that is currently broken:
wayland -> graphviz -> libdevil -> openexr -> ilmbase (broken)
This will disable many reverse dependencies. If you need your program to work
you will need to migrate it to the newer gstreamer package.
https://github.com/NixOS/nixpkgs/issues/39975