Removing `src/etc/Makefile` is overly intrusive, as the file is responsible
for installing pkg-config file. The issue when it would try to write to
the specified out-of-store paths can be easily resolved by overriding them
to ones within `$out` during installation.
Also set `sysconfdir` path properly to allow configuring it with `environment.etc`.
There should be no problem with missing files, as nothing was installed
to `$out/etc` previously either, other than an empty `munge` directory.
`localstatedir` is used at runtime and installation creates empty directories in `$out`.
But since we do not merge those directories into running system, having them in `$out`
serves no purpose. Creation of `StateDir` and logging is handled by systemd anyway.
`runstatedir` defaults to `$(localstatedir)/run` but that has long been
deprecated in favour of `/run`, so let’s fix that as well.
`pkgconfigdir` and `sysconfigdir` (not to be confused with the standard `sysconfdir`)
rely on FHS for proper detection and `systemdunitdir` tries to run `systemd --version`,
let’s just hardcode them. `sysconfigdir` is mentioned in the newly installed
and currently unused `munge.service` – a file within is loaded as `EnvironmentFile`
when it exists so let’s override the path for installation. This will again make it
so the file can serve as a template in `$out` but the service will load it from `/etc`.
The last two options are installation-only so we can directly set them to `$out` subdirectories.
- Format & re-order the expression.
- Use finalAttrs pattern.
- Fix license according to https://github.com/dun/munge/wiki/License-Info.
- Use `lib.getDev` instead of directly using `dev` output. This provides loose coupling in case `dev` output is merged back to `out`.
- Add comment to segregate cross-configuration hacks from rest of the configuration flags.
They were introduced in faacc88c93
and appear to be still necessary to build `pkgsCross.aarch64-multiplatform.munge`.
mesa.drivers is basically an implementation detail and should never be used
as a dependency of other expressions. It also no longer exists on Darwin.
mesa.osmesa is very niche and should generally be avoided.
mesa.libdrm is used in exactly one place and it's irrelevant there.