diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix new file mode 100644 index 000000000000..102a8b901cce --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix @@ -0,0 +1,81 @@ +{ stdenv +, lib +, bash +, cmake +, cfitsio +, coreutils +, libusb1 +, zlib +, boost +, libnova +, curl +, libjpeg +, gsl +, fftw +, indilib +, libgphoto2 +, libraw +, libftdi1 +, libdc1394 +, gpsd +, ffmpeg +, version +, src +, autoPatchelfHook +}: +let + libusb-with-fxload = libusb1.override { withExamples = true;}; +in +stdenv.mkDerivation rec { + pname = "indi-firmware"; + + inherit version src; + + nativeBuildInputs = [ cmake autoPatchelfHook ]; + + buildInputs = [ + indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd + libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw + ]; + + cmakeFlags = [ + "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d" + "-DRULES_INSTALL_DIR=lib/udev/rules.d" + "-DFIRMWARE_INSTALL_DIR=lib/firmware" + "-DQHY_FIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware/qhy" + "-DCONF_DIR=etc" + "-DBUILD_LIBS=1" + "-DWITH_PENTAX=off" + ]; + + postPatch = '' + for f in {libfishcamp,libsbig,libqhy}/CMakeLists.txt + do + substituteInPlace $f --replace "/lib/firmware" "lib/firmware" + done + ''; + + postFixup = lib.optionalString stdenv.isLinux '' + for f in $out/lib/udev/rules.d/*.rules + do + substituteInPlace "$f" --replace "/sbin/fxload" "${libusb-with-fxload}/sbin/fxload" \ + --replace "/bin/sleep" "${coreutils}/bin/sleep" \ + --replace "/bin/cat" "${coreutils}/bin/cat" \ + --replace "/bin/echo" "${coreutils}/bin/echo" \ + --replace "/bin/sh" "${bash}/bin/sh" \ + --replace "/lib/firmware/" "$out/lib/firmware/" + sed -e 's|-D $env{DEVNAME}|-p $env{BUSNUM},$env{DEVNUM}|' -i "$f" + done + ''; + + meta = with lib; { + homepage = "https://www.indilib.org/"; + description = "Third party firmware for the INDI astronomical software suite"; + changelog = "https://github.com/indilib/indi-3rdparty/releases/tag/v${version}"; + license = licenses.lgpl2Plus; + maintainers = with maintainers; [ hjones2199 sheepforce ]; + platforms = platforms.linux; + }; +} |