Merge pull request #258667 from returntoreality/indi-udev

indilib: fix udev rules

authored by Weijia Wang and committed by GitHub e0096b49 fd34a71c

+48 -4
+11
pkgs/development/libraries/science/astronomy/indilib/default.nix
··· 1 1 { stdenv 2 2 , lib 3 3 , fetchFromGitHub 4 + , bash 4 5 , cmake 5 6 , cfitsio 6 7 , libusb1 8 + , kmod 7 9 , zlib 8 10 , boost 9 11 , libev ··· 57 59 58 60 # Socket address collisions between tests 59 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 + 60 71 61 72 meta = with lib; { 62 73 homepage = "https://www.indilib.org/";
+19
pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
··· 1 1 { stdenv 2 2 , lib 3 + , bash 3 4 , cmake 5 + , coreutils 4 6 , cfitsio 5 7 , libusb1 6 8 , zlib ··· 23 25 , withFirmware ? false 24 26 , firmware ? null 25 27 }: 28 + 29 + let 30 + libusb-with-fxload = libusb1.override { withExamples = true;}; 31 + in 26 32 27 33 stdenv.mkDerivation rec { 28 34 pname = "indi-3rdparty"; ··· 67 73 "-DWITH_FISHCAMP=off" 68 74 "-DWITH_SBIG=off" 69 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 + 70 89 71 90 meta = with lib; { 72 91 homepage = "https://www.indilib.org/";
+18 -4
pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
··· 1 1 { stdenv 2 2 , lib 3 + , bash 3 4 , cmake 4 5 , cfitsio 6 + , coreutils 5 7 , libusb1 6 8 , zlib 7 9 , boost ··· 21 23 , src 22 24 , autoPatchelfHook 23 25 }: 24 - 26 + let 27 + libusb-with-fxload = libusb1.override { withExamples = true;}; 28 + in 25 29 stdenv.mkDerivation rec { 26 30 pname = "indi-firmware"; 27 31 ··· 39 43 "-DCMAKE_INSTALL_LIBDIR=lib" 40 44 "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d" 41 45 "-DRULES_INSTALL_DIR=lib/udev/rules.d" 42 - "-DFIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware" 46 + "-DFIRMWARE_INSTALL_DIR=lib/firmware" 47 + "-DQHY_FIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware/qhy" 43 48 "-DCONF_DIR=etc" 44 49 "-DBUILD_LIBS=1" 45 50 "-DWITH_PENTAX=off" ··· 52 57 done 53 58 ''; 54 59 55 - postFixup = '' 56 - rm $out/lib/udev/rules.d/99-fli.rules 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 57 71 ''; 58 72 59 73 meta = with lib; {