Pyudev depends only on a libudev implementation, rather than on
systemd-udevd specifically or on systemd generally. Let's adjust the
dependency list to make it more specific. In particular, this allows
pyudev to build and run with the overlay which substitutes eudev for
udev.
Pyudev is used by the auxiliary trackpad calibration tools included as
part of libinput. Because an enormous number of packages depend on
libinput, this allows a very large number of packages to be used
without systemd. Note that libinput.so does not depend on pyudev or
systemd -- only the trackpad calibration utilities bundled with
libudev use pyudev.
It is normal for such a large derivation to accumulate mixed codestyles
over all those years making it harder to maintain.
By splitting up dependencies to one per line I noticed two unused
dependencies (hunspell, sqlite) that were removed in this change.
Also most lists are now sorted alphabetically, so reasoning about them
has become much easier.
Lists now use the same style for indentation and concat, and environment
variables are all defined in preConfigure as opposed to bare in the
derivation.
The object dir, firefox build directory, is now in a predictable
directory at ${pwd}/mozobj as opposed to ${pwd}/obj-@CONFIG_GUESS@,
saving us one wildcard expansion. This is also a good prepration for the
PGO build where we need to reference bits inside this directory.
Added a few comments and clarified others from what I've learned how the
firefox build works.
Darwin support was marked broken in 2019 with Firefox 69 and has missed
therefore missed out and not been tested on the following 29 major
releases since.
It cannot be supported again without a darwin user stepping up to take
care and work on and test every major release, which hasn't happened
since I took over maintainership.
The recommendation of the people that tend to the firefox source build
is for darwin users to use firefox-bin instead.
cgit-pink is a fork of cgit that aims to be better maintained, because
cgit doesn't get a lot of attention any more, and almost every patch
sent in the last couple of years has been ignored.
The build system is exactly the same as cgit's, so I've created a
common cgit builder function. This way, improvements to cgit
packaging (I've already noticed a couple to make!) can be shared
between both packages. If the build systems diverge, we can separate
them out in future.