We had neglected to nice `RC_INSTALL_ALL_EXTRAS`, which will take care
of installing the "extras" for us.
Now that they are in a standard directory, we don't need to smuggle in
the extra `-I` for Nix's tests either.
reuse actually can also be used as a python library:
https://github.com/fsfe/reuse-tool/blob/main/src/reuse/__init__.py#L11-L12
This change allows composing a python with `reuse` in `PYTHONPATH`:
```
$(nix-build -E "with import ./. {}; (python3.withPackages (ps: [ps.reuse]))")/bin/python
Python 3.11.5 (main, Aug 24 2023, 12:23:19) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import reuse
>>> reuse.__doc__
'reuse is a tool for compliance with the REUSE recommendations.\n\nAlthough the API is documented, it is **NOT** guaranteed stable between minor or\neven patch releases. The semantic versioning of this program pertains\nexclusively to the reuse CLI command. If you want to use reuse as a Python\nlibrary, you should pin reuse to an exact version.\n\nHaving given the above disclaimer, the API has been relatively stable\nnevertheless, and we (the maintainers) do make some efforts to not needlessly\nchange the public API.\n'
```
vs before:
```
❯ $(nix-build -E "with import ./. {}; (python3.withPackages (_: [ reuse]))")/bin/python
Python 3.11.5 (main, Aug 24 2023, 12:23:19) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import reuse
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'reuse'
```
People are actively writing release notes already and with this it's
ensured that the contents are actually valid.
Also, when writing release notes for something, I'd like to be able to
see a preview.
Using `/bin/sh` in udev rules is fine (as it's guaranteed to point to a
(bash) shell on NixOS), and actually is better than hardcoding absolute
paths, at least in cases where these rules are also added to the
(systemd-based) initrd (via boot.initrd.services.udev.rules).
To allow this, we need to update the check routine that assembles the
list of files needing fixup, to explicitly exclude `/bin/sh` occurences.
To do this, we convert the pattern to a PCRE regex (which requires "/"
to be escaped), and add `(?!/bin/sh\b)` as a negative lookahead.
This subsequently allows udev rules to (start using) `/bin/sh` again, so
they'll work in-initrd.
* Always use PHP 8.2: at the time of writing, Nextcloud also suggests to
use 8.2 rather than 8.3 in the manual for v28.
One contributing factor is probably that all plugins need new releases
to declare PHP 8.3 support.
* Fix upgradeWarning for installing v27 now that v28 is out.
* Drop upgrade warning for v24. This one is EOL for quite a while
already, so right now everybody should've switched (or carefully
studied the release notes in case they were upgrading from <23.05) and
we can clean up the module a little bit.
v25 was dropped not so long ago, so if it's still referenced (because
somebody didn't declare `services.nextcloud.package` and has
`system.stateVersion = "22.11";`) it's appropriate to still give a
specialized error.
services.udev.path already contains some defaults, these are however
defined in the module implementation, not options.
Update the description to make this more clear.