diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix new file mode 100644 index 000000000000..59472c4b25ce --- /dev/null +++ b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix @@ -0,0 +1,104 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, perl +, wrapGAppsHook +, wrapQtAppsHook +, qtbase +, qtcharts +, qtpositioning +, qtmultimedia +, qtserialport +, qtwayland +, qtwebengine +, calcmysky +, qxlsx +, indilib +, libnova +, qttools +, exiv2 +, nlopt +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "stellarium"; + version = "23.4"; + + src = fetchFromGitHub { + owner = "Stellarium"; + repo = "stellarium"; + rev = "v${finalAttrs.version}"; + hash = "sha256-rDqDs6sFaZQbqJcCRhY5w8sFM2mYHHvw0Ud2Niimg4Y="; + }; + + patches = [ + # Compatibility with INDI 2.0 series from https://github.com/Stellarium/stellarium/pull/3269 + (fetchpatch { + url = "https://github.com/Stellarium/stellarium/commit/31fd7bebf33fa710ce53ac8375238a24758312bc.patch"; + hash = "sha256-eJEqqitZgtV6noeCi8pDBYMVTFIVWXZU1fiEvoilX8o="; + }) + ]; + + postPatch = lib.optionalString stdenv.isDarwin '' + substituteInPlace CMakeLists.txt \ + --replace 'SET(CMAKE_INSTALL_PREFIX "''${PROJECT_BINARY_DIR}/Stellarium.app/Contents")' \ + 'SET(CMAKE_INSTALL_PREFIX "${placeholder "out"}/Applications/Stellarium.app/Contents")' + substituteInPlace src/CMakeLists.txt \ + --replace "\''${_qt_bin_dir}/../" "${qtmultimedia}/lib/qt-6/" + ''; + + nativeBuildInputs = [ + cmake + perl + wrapGAppsHook + wrapQtAppsHook + qttools + ]; + + buildInputs = [ + qtbase + qtcharts + qtpositioning + qtmultimedia + qtserialport + qtwebengine + calcmysky + qxlsx + indilib + libnova + exiv2 + nlopt + ] ++ lib.optionals stdenv.isLinux [ + qtwayland + ]; + + preConfigure = '' + export SOURCE_DATE_EPOCH=$(date -d 20${lib.versions.major finalAttrs.version}0101 +%s) + '' + lib.optionalString stdenv.isDarwin '' + export LC_ALL=en_US.UTF-8 + ''; + + # fatal error: 'QtSerialPort/QSerialPortInfo' file not found + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-F${qtserialport}/lib"; + + dontWrapGApps = true; + + postInstall = lib.optionalString stdenv.isDarwin '' + makeWrapper $out/Applications/Stellarium.app/Contents/MacOS/Stellarium $out/bin/stellarium + ''; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = { + description = "Free open-source planetarium"; + mainProgram = "stellarium"; + homepage = "https://stellarium.org/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ kilianar ]; + }; +}) |