Previously, version 0.4.9 was a tarbomb and in version 0.5.0 this
fortunately isn't the case anymore so we don't need to set sourceRoot by
ourselves.
I've also moved the definition of makeFlagsArray to the attribute
makeFlags, because we can use $(var) to substitute shell variables
within make.
The references to /lib/udev/scsi_id no longer exist in version 0.5.0 and
it seems that libudev is used directly.
Nevertheless, there are still references to FHS paths such as /var/run,
/etc/multipath.conf and /etc/multipath but these are only relevant at
runtime and can be configured to point to a different path elsewhere.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
The updates we had in the past (7719f7f and 1faf610) broke the mdadm
installer test and systems in the wild using mdraid because newer mdadm
versions contained a self-referenc to its own store path.
Instead of putting a big warning about updating in the package
expression, let's just add allowedReferences so the build immediately
fails if there is a self-reference.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Let's use makeFlags directly instead of stitching together a
makeFlagsArray in preBuild.
This should make the expression much more readable and clean.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Okay, this update is a bit more tricky and the patch I've included is
not very nice to be honest.
So the patch causes "mdadm --udev-rules" to search for the right store
path using /proc/self/exec. This has the disadvantage that we could end
up having /run/current-system/bin/mdadm in the rule file.
But on the other hand, when we're on NixOS, we don't need to use that
command *at*all*, so we should be safe.
The patch also sets BINDIR to /sbin, which causes the included rule and
systemd files to not work out of the box on NixOS. But we have a
substituteInPlace where we do rewrite /sbin/mdadm to the right store
path in our udev rule generator, so that shouldn't be an issue.
I've tested this using the mdraid installer test and it succeeded.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Tested & reviewed by vcunat:
- the patch seems not needed anymore,
- reflects changes in their build system
ftp://download.nvidia.com/XFree86/packaging/linux/new-kbuild-for-355/README
This hopefully fixes intermittent initrd failures where udevd cannot
create a Unix domain socket:
machine# running udev...
machine# error getting socket: Address family not supported by protocol
machine# error initializing udev control socket
machine# error getting socket: Address family not supported by protocol
The "unix" kernel module is supposed to be loaded automatically, and
clearly that works most of the time, but maybe there is a race
somewhere. In any case, no sane person would run a kernel without Unix
domain sockets, so we may as well make it builtin.
http://hydra.nixos.org/build/30001448
* Download tarball instead of git repo, drop autoreconfHook.
* The application now needs SDL2 instead of SDL.
* The build failed without 'gsl', so add that. (I think ./configure can
be told to build without it, but it's only 5.7 MiB.)