indilib: fix udev rules

This fixes the udev rules so that the indi packages can be added to
nixos services.udev.packages option. It also fixes the loading of
firmware for devices which need fxload.

+48 -4
+11
pkgs/development/libraries/science/astronomy/indilib/default.nix
··· 1 { stdenv 2 , lib 3 , fetchFromGitHub 4 , cmake 5 , cfitsio 6 , libusb1 7 , zlib 8 , boost 9 , libev ··· 57 58 # Socket address collisions between tests 59 enableParallelChecking = false; 60 61 meta = with lib; { 62 homepage = "https://www.indilib.org/";
··· 1 { stdenv 2 , lib 3 , fetchFromGitHub 4 + , bash 5 , cmake 6 , cfitsio 7 , libusb1 8 + , kmod 9 , zlib 10 , boost 11 , libev ··· 59 60 # Socket address collisions between tests 61 enableParallelChecking = false; 62 + 63 + postFixup = lib.optionalString stdenv.isLinux '' 64 + for f in $out/lib/udev/rules.d/*.rules 65 + do 66 + substituteInPlace $f --replace "/bin/sh" "${bash}/bin/sh" \ 67 + --replace "/sbin/modprobe" "${kmod}/sbin/modprobe" 68 + done 69 + ''; 70 + 71 72 meta = with lib; { 73 homepage = "https://www.indilib.org/";
+19
pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
··· 1 { stdenv 2 , lib 3 , cmake 4 , cfitsio 5 , libusb1 6 , zlib ··· 23 , withFirmware ? false 24 , firmware ? null 25 }: 26 27 stdenv.mkDerivation rec { 28 pname = "indi-3rdparty"; ··· 67 "-DWITH_FISHCAMP=off" 68 "-DWITH_SBIG=off" 69 ]; 70 71 meta = with lib; { 72 homepage = "https://www.indilib.org/";
··· 1 { stdenv 2 , lib 3 + , bash 4 , cmake 5 + , coreutils 6 , cfitsio 7 , libusb1 8 , zlib ··· 25 , withFirmware ? false 26 , firmware ? null 27 }: 28 + 29 + let 30 + libusb-with-fxload = libusb1.override { withExamples = true;}; 31 + in 32 33 stdenv.mkDerivation rec { 34 pname = "indi-3rdparty"; ··· 73 "-DWITH_FISHCAMP=off" 74 "-DWITH_SBIG=off" 75 ]; 76 + 77 + postFixup = lib.optionalString stdenv.isLinux '' 78 + for f in $out/lib/udev/rules.d/*.rules 79 + do 80 + substituteInPlace $f --replace "/sbin/fxload" "${libusb-with-fxload}/sbin/fxload" \ 81 + --replace "/lib/firmware/" "$out/lib/firmware/" \ 82 + --replace "/bin/sleep" "${coreutils}/bin/sleep" \ 83 + --replace "/bin/cat" "${coreutils}/bin/cat" \ 84 + --replace "/bin/echo" "${coreutils}/bin/echo" \ 85 + --replace "/bin/sh" "${bash}/bin/sh" 86 + done 87 + ''; 88 + 89 90 meta = with lib; { 91 homepage = "https://www.indilib.org/";
+18 -4
pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
··· 1 { stdenv 2 , lib 3 , cmake 4 , cfitsio 5 , libusb1 6 , zlib 7 , boost ··· 21 , src 22 , autoPatchelfHook 23 }: 24 - 25 stdenv.mkDerivation rec { 26 pname = "indi-firmware"; 27 ··· 39 "-DCMAKE_INSTALL_LIBDIR=lib" 40 "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d" 41 "-DRULES_INSTALL_DIR=lib/udev/rules.d" 42 - "-DFIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware" 43 "-DCONF_DIR=etc" 44 "-DBUILD_LIBS=1" 45 "-DWITH_PENTAX=off" ··· 52 done 53 ''; 54 55 - postFixup = '' 56 - rm $out/lib/udev/rules.d/99-fli.rules 57 ''; 58 59 meta = with lib; {
··· 1 { stdenv 2 , lib 3 + , bash 4 , cmake 5 , cfitsio 6 + , coreutils 7 , libusb1 8 , zlib 9 , boost ··· 23 , src 24 , autoPatchelfHook 25 }: 26 + let 27 + libusb-with-fxload = libusb1.override { withExamples = true;}; 28 + in 29 stdenv.mkDerivation rec { 30 pname = "indi-firmware"; 31 ··· 43 "-DCMAKE_INSTALL_LIBDIR=lib" 44 "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d" 45 "-DRULES_INSTALL_DIR=lib/udev/rules.d" 46 + "-DFIRMWARE_INSTALL_DIR=lib/firmware" 47 + "-DQHY_FIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware/qhy" 48 "-DCONF_DIR=etc" 49 "-DBUILD_LIBS=1" 50 "-DWITH_PENTAX=off" ··· 57 done 58 ''; 59 60 + postFixup = lib.optionalString stdenv.isLinux '' 61 + for f in $out/lib/udev/rules.d/*.rules 62 + do 63 + substituteInPlace "$f" --replace "/sbin/fxload" "${libusb-with-fxload}/sbin/fxload" \ 64 + --replace "/bin/sleep" "${coreutils}/bin/sleep" \ 65 + --replace "/bin/cat" "${coreutils}/bin/cat" \ 66 + --replace "/bin/echo" "${coreutils}/bin/echo" \ 67 + --replace "/bin/sh" "${bash}/bin/sh" \ 68 + --replace "/lib/firmware/" "$out/lib/firmware/" 69 + sed -e 's|-D $env{DEVNAME}|-p $env{BUSNUM},$env{DEVNUM}|' -i "$f" 70 + done 71 ''; 72 73 meta = with lib; {