From 14db724f1fea213e71ddc177f34f16d02dc185f8 Mon Sep 17 00:00:00 2001 From: Hunter Jones Date: Fri, 23 Apr 2021 15:53:58 -0500 Subject: [PATCH] indlib: 1.8.9 -> 1.9.0 --- .../science/astronomy/indilib/default.nix | 4 +- .../astronomy/indilib/indi-3rdparty.nix | 60 ++++++++++------- .../astronomy/indilib/indi-firmware.nix | 66 +++++++++++++++++++ .../science/astronomy/indilib/indi-full.nix | 27 ++++++-- .../astronomy/indilib/indi-with-drivers.nix | 4 +- pkgs/top-level/all-packages.nix | 1 - 6 files changed, 130 insertions(+), 32 deletions(-) create mode 100644 pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix index f7966046fa8..7a9a5a80700 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/default.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "indilib"; - version = "1.8.9"; + version = "1.9.0"; src = fetchFromGitHub { owner = "indilib"; repo = "indi"; rev = "v${version}"; - sha256 = "sha256-W6LfrKL56K1B6srEfbNcq1MZwg7Oj8qoJkQ83ZhYhFs="; + sha256 = "sha256-YdVBzhz+Gim27/Js5MhEJNukoXp5eK9/dZ+JQVyls0M="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix index 34ef4088713..5909a06cfb5 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix @@ -1,6 +1,5 @@ { stdenv , lib -, fetchFromGitHub , cmake , cfitsio , libusb1 @@ -18,39 +17,54 @@ , libdc1394 , gpsd , ffmpeg +, version +, src +, withFirmware ? false +, firmware ? null }: stdenv.mkDerivation rec { pname = "indi-3rdparty"; - version = "1.8.9"; - src = fetchFromGitHub { - owner = "indilib"; - repo = pname; - rev = "v${version}"; - sha256 = "0klvknhp7l6y2ab4vyv4jq7znk1gjl5b3709kyplm7dsh4b8bppy"; - }; - - 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" - "-DWITH_SX=off" - "-DWITH_SBIG=off" - "-DWITH_APOGEE=off" - "-DWITH_FISHCAMP=off" - "-DWITH_DSI=off" - "-DWITH_QHY=off" - "-DWITH_ARMADILLO=off" - "-DWITH_PENTAX=off" - ]; + inherit version src; nativeBuildInputs = [ cmake ]; buildInputs = [ indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw + ] ++ lib.optionals withFirmware [ + firmware + ]; + + postPatch = '' + for f in indi-qsi/CMakeLists.txt \ + indi-dsi/CMakeLists.txt \ + indi-armadillo-platypus/CMakeLists.txt + do + substituteInPlace $f \ + --replace "/lib/udev/rules.d" "lib/udev/rules.d" \ + --replace "/etc/udev/rules.d" "lib/udev/rules.d" \ + --replace "/lib/firmware" "lib/firmware" + done + ''; + + cmakeFlags = [ + "-DINDI_DATA_DIR=share/indi" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d" + "-DRULES_INSTALL_DIR=lib/udev/rules.d" + # Pentax, Atik, and SX cmakelists are currently broken + "-DWITH_PENTAX=off" + "-DWITH_ATIK=off" + "-DWITH_SX=off" + ] ++ lib.optionals (!withFirmware) [ + "-DWITH_APOGEE=off" + "-DWITH_DSI=off" + "-DWITH_QHY=off" + "-DWITH_ARMADILLO=off" + "-DWITH_FISHCAMP=off" + "-DWITH_SBIG=off" ]; meta = with lib; { diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix new file mode 100644 index 00000000000..d23673ac37a --- /dev/null +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix @@ -0,0 +1,66 @@ +{ stdenv +, lib +, cmake +, cfitsio +, libusb1 +, zlib +, boost +, libnova +, curl +, libjpeg +, gsl +, fftw +, indilib +, libgphoto2 +, libraw +, libftdi1 +, libdc1394 +, gpsd +, ffmpeg +, version +, src +}: + +stdenv.mkDerivation rec { + pname = "indi-firmware"; + + inherit version src; + + nativeBuildInputs = [ cmake ]; + + 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=\${CMAKE_INSTALL_PREFIX}/lib/firmware" + "-DCONF_DIR=etc" + "-DBUILD_LIBS=1" + "-DWITH_PENTAX=off" + ]; + + postPatch = '' + for f in libfishcamp/CMakeLists.txt libsbig/CMakeLists.txt + do + substituteInPlace $f --replace "/lib/firmware" "lib/firmware" + done + ''; + + postFixup = '' + rm $out/lib/udev/rules.d/99-fli.rules + ''; + + 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 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix index e52da9f2eab..50aa9fb8b4a 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix @@ -1,11 +1,30 @@ -{ callPackage, indilib, indi-3rdparty }: +{ stdenv, lib, callPackage, fetchFromGitHub, indilib }: let - indi-with-drivers = ./indi-with-drivers.nix; + indi-version = "1.9.0"; + indi-3rdparty-src = fetchFromGitHub { + owner = "indilib"; + repo = "indi-3rdparty"; + rev = "v${indi-version}"; + sha256 = "sha256-5VR1MN52a0ZtaHYw4lD6LWmnvc1oHlfE5GLGbfBKvqE="; + }; + indi-firmware = callPackage ./indi-firmware.nix { + version = indi-version; + src = indi-3rdparty-src; + }; + indi-3rdparty = callPackage ./indi-3rdparty.nix { + version = indi-version; + src = indi-3rdparty-src; + withFirmware = stdenv.isx86_64; + firmware = indi-firmware; + }; in -callPackage indi-with-drivers { - pkgName = "indi-full"; +callPackage ./indi-with-drivers.nix { + pname = "indi-full"; + version = indi-version; extraDrivers = [ indi-3rdparty + ] ++ lib.optionals stdenv.isx86_64 [ + indi-firmware ]; } diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix index 27ac86ddbad..5ec1acdf21e 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix @@ -1,7 +1,7 @@ -{ buildEnv, indilib ? indilib, extraDrivers ? null , pkgName ? "indi-with-drivers" }: +{ buildEnv, indilib ? indilib, pname ? "indi-with-drivers", version ? null, extraDrivers ? null }: buildEnv { - name = pkgName; + name = "${pname}-${version}"; paths = [ indilib ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 75dc83b7256..057268cf25e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15052,7 +15052,6 @@ in indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { }; indilib = callPackage ../development/libraries/science/astronomy/indilib { }; - indi-3rdparty = callPackage ../development/libraries/science/astronomy/indilib/indi-3rdparty.nix { }; indi-full = callPackage ../development/libraries/science/astronomy/indilib/indi-full.nix { }; inih = callPackage ../development/libraries/inih { };