diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix index 610a8ab77606..7798a5903e97 100644 --- a/pkgs/tools/system/hwinfo/default.nix +++ b/pkgs/tools/system/hwinfo/default.nix @@ -1,10 +1,13 @@ -{ lib -, stdenv -, fetchFromGitHub -, flex -, libuuid -, libx86emu -, perl +{ + lib, + stdenv, + fetchFromGitHub, + flex, + libuuid, + libx86emu, + perl, + kmod, + systemdMinimal, }: stdenv.mkDerivation rec { @@ -37,15 +40,25 @@ stdenv.mkDerivation rec { substituteInPlace Makefile --replace "/sbin" "/bin" --replace "/usr/" "/" substituteInPlace src/isdn/cdb/Makefile --replace "lex isdn_cdb.lex" "flex isdn_cdb.lex" substituteInPlace hwinfo.pc.in --replace "prefix=/usr" "prefix=$out" + + # replace absolute paths with relative, we will prefix PATH later + substituteInPlace src/hd/hd_int.h \ + --replace-fail "/sbin/modprobe" "${kmod}/bin/modprobe" \ + --replace-fail "/sbin/rmmod" "${kmod}/bin/rmmod" \ + --replace-fail "/usr/bin/udevinfo" "${systemdMinimal}/bin/udevinfo" \ + --replace-fail "/usr/bin/udevadm" "${systemdMinimal}/bin/udevadm" + + # check for leftover references to FHS binaries. + if grep /sbin /usr/bin src/hd/hd_int.h + then + echo "Santity check failed. The above lines should be replaced in src/hd/hd_int.h" + exit 1 + fi ''; - makeFlags = [ - "LIBDIR=/lib" - ]; + makeFlags = [ "LIBDIR=/lib" ]; - installFlags = [ - "DESTDIR=$(out)" - ]; + installFlags = [ "DESTDIR=$(out)" ]; meta = with lib; { description = "Hardware detection tool from openSUSE";