From b105efc145b59730b9f62b422fd9d4e7ee992481 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Fri, 4 Nov 2022 22:39:52 +0800 Subject: [PATCH 1/7] calcmysky: 0.1.0 -> 0.2.1 --- pkgs/applications/science/astronomy/calcmysky/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/astronomy/calcmysky/default.nix b/pkgs/applications/science/astronomy/calcmysky/default.nix index 528fc74394f8..83d98590828d 100644 --- a/pkgs/applications/science/astronomy/calcmysky/default.nix +++ b/pkgs/applications/science/astronomy/calcmysky/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "calcmysky"; - version = "0.1.0"; + version = "0.2.1"; src = fetchFromGitHub { owner = "10110111"; repo = "CalcMySky"; rev = "v${version}"; - hash = "sha256-0tHxHek4wqJKLl54zF7wDYN+UPL2y35/YAb6Dtg4k48="; + hash = "sha256-7Yj6OlZ7weenekXYGhK5EWcME20oCHiLPOxz5KEuKy4="; }; nativeBuildInputs = [ cmake wrapQtAppsHook ]; From 74fd5f0cbab50f850b5005433102655bf6e04fa2 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Fri, 4 Nov 2022 22:41:00 +0800 Subject: [PATCH 2/7] stellarium: 1.0 -> 1.1 --- pkgs/applications/science/astronomy/stellarium/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix index cabb281551d7..37d5a15f7ac6 100644 --- a/pkgs/applications/science/astronomy/stellarium/default.nix +++ b/pkgs/applications/science/astronomy/stellarium/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "stellarium"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "Stellarium"; repo = "stellarium"; rev = "v${version}"; - sha256 = "sha256-6EAykJ0yWeU1EBR5+7JjWGUVBE1DKW+W8yJOt0smkaE="; + sha256 = "sha256-ellfBZWOkvlRauuwug96C7P/WjQ6dXiDnT0b3KH5zRM="; }; nativeBuildInputs = [ From 423d2dada006e1b09095a1524b43e107e18ee34d Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Fri, 4 Nov 2022 22:57:38 +0800 Subject: [PATCH 3/7] qt6.qtbase: add patch for correctly loading tzdata --- pkgs/development/libraries/qt-6/default.nix | 1 + .../libraries/qt-6/patches/qtbase-tzdir.patch | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/libraries/qt-6/patches/qtbase-tzdir.patch diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 754436cb0b96..8f587996f8d5 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -51,6 +51,7 @@ let inherit bison cups harfbuzz libGL dconf gtk3 developerBuild cmake; patches = [ ./patches/qtbase-qmake-pkg-config.patch + ./patches/qtbase-tzdir.patch ]; }; diff --git a/pkgs/development/libraries/qt-6/patches/qtbase-tzdir.patch b/pkgs/development/libraries/qt-6/patches/qtbase-tzdir.patch new file mode 100644 index 000000000000..fc36130c7aad --- /dev/null +++ b/pkgs/development/libraries/qt-6/patches/qtbase-tzdir.patch @@ -0,0 +1,48 @@ +diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp +index 627a4a81..a5f50acc 100644 +--- a/src/corelib/time/qtimezoneprivate_tz.cpp ++++ b/src/corelib/time/qtimezoneprivate_tz.cpp +@@ -51,7 +51,11 @@ typedef QHash QTzTimeZoneHash; + // Parse zone.tab table, assume lists all installed zones, if not will need to read directories + static QTzTimeZoneHash loadTzTimeZones() + { +- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab"); ++ // Try TZDIR first, in case we're running on NixOS. ++ QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab"); ++ // Fallback to traditional paths in case we are not on NixOS. ++ if (!QFile::exists(path)) ++ path = QStringLiteral("/usr/share/zoneinfo/zone.tab"); + if (!QFile::exists(path)) + path = QStringLiteral("/usr/lib/zoneinfo/zone.tab"); + +@@ -727,18 +731,21 @@ QTzTimeZoneCacheEntry QTzTimeZoneCache::findEntry(const QByteArray &ianaId) + if (!tzif.open(QIODevice::ReadOnly)) + return ret; + } else { +- // Open named tz, try modern path first, if fails try legacy path +- tzif.setFileName("/usr/share/zoneinfo/"_L1 + QString::fromLocal8Bit(ianaId)); ++ // Try TZDIR first, in case we're running on NixOS ++ tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId)); + if (!tzif.open(QIODevice::ReadOnly)) { +- tzif.setFileName("/usr/lib/zoneinfo/"_L1 + QString::fromLocal8Bit(ianaId)); ++ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId)); + if (!tzif.open(QIODevice::ReadOnly)) { +- // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ +- auto check = validatePosixRule(ianaId); +- if (check.isValid) { +- ret.m_hasDst = check.hasDst; +- ret.m_posixRule = ianaId; ++ tzif.setFileName("/usr/lib/zoneinfo/"_L1 + QString::fromLocal8Bit(ianaId)); ++ if (!tzif.open(QIODevice::ReadOnly)) { ++ // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ ++ auto check = validatePosixRule(ianaId); ++ if (check.isValid) { ++ ret.m_hasDst = check.hasDst; ++ ret.m_posixRule = ianaId; ++ } ++ return ret; + } +- return ret; + } + } + } From 170ab46380ada1f20d4ac3adbccd7d99960c0a5d Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sat, 5 Nov 2022 00:16:02 +0800 Subject: [PATCH 4/7] qt6Packages.qxlsx: init --- pkgs/top-level/qt6-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/qt6-packages.nix b/pkgs/top-level/qt6-packages.nix index 3320ff4ee204..46417f1d9aae 100644 --- a/pkgs/top-level/qt6-packages.nix +++ b/pkgs/top-level/qt6-packages.nix @@ -30,6 +30,8 @@ in quazip = callPackage ../development/libraries/quazip { }; + qxlsx = callPackage ../development/libraries/qxlsx { }; + poppler = callPackage ../development/libraries/poppler { lcms = pkgs.lcms2; qt6Support = true; From f2870ff9e2e35e4e338fd8af9483394605f1585f Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sat, 5 Nov 2022 00:33:02 +0800 Subject: [PATCH 5/7] calcmysky: build with qt6 --- pkgs/applications/science/astronomy/calcmysky/default.nix | 2 ++ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/science/astronomy/calcmysky/default.nix b/pkgs/applications/science/astronomy/calcmysky/default.nix index 83d98590828d..3b66284e8b0c 100644 --- a/pkgs/applications/science/astronomy/calcmysky/default.nix +++ b/pkgs/applications/science/astronomy/calcmysky/default.nix @@ -22,6 +22,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake wrapQtAppsHook ]; buildInputs = [ glm eigen qtbase ]; + cmakeFlags = [ "-DQT_VERSION=6" ]; + doCheck = true; meta = with lib;{ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9456fdfe6487..8c63cca9c806 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27514,7 +27514,7 @@ with pkgs; inherit (gnome2) libglade; }; - calcmysky = libsForQt5.callPackage ../applications/science/astronomy/calcmysky { }; + calcmysky = qt6Packages.callPackage ../applications/science/astronomy/calcmysky { }; calcurse = callPackage ../applications/misc/calcurse { }; From e177a194c0c4cf0e80258ddef3a38e018b4d44cd Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sat, 5 Nov 2022 00:41:12 +0800 Subject: [PATCH 6/7] qt6.qtmultimedia: add and propagate the required/recommended gst plugins reference: https://doc.qt.io/qt-6/videooverview.html#linux --- pkgs/development/libraries/qt-6/default.nix | 5 ++++- pkgs/development/libraries/qt-6/modules/qtmultimedia.nix | 6 +++++- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 8f587996f8d5..5d17df8028d2 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -17,6 +17,9 @@ , writeText , gstreamer , gst-plugins-base +, gst-plugins-good +, gst-libav +, gst-vaapi , gtk3 , dconf , buildPackages @@ -67,7 +70,7 @@ let qtlanguageserver = callPackage ./modules/qtlanguageserver.nix { }; qtlottie = callPackage ./modules/qtlottie.nix { }; qtmultimedia = callPackage ./modules/qtmultimedia.nix { - inherit gstreamer gst-plugins-base; + inherit gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi; }; qtnetworkauth = callPackage ./modules/qtnetworkauth.nix { }; qtpositioning = callPackage ./modules/qtpositioning.nix { }; diff --git a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix index 5e6dace906dc..bfd33cadf395 100644 --- a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix @@ -9,6 +9,9 @@ , alsa-lib , gstreamer , gst-plugins-base +, gst-plugins-good +, gst-libav +, gst-vaapi , libpulseaudio , wayland , elfutils @@ -20,5 +23,6 @@ qtModule { pname = "qtmultimedia"; qtInputs = [ qtbase qtdeclarative qtsvg qtshadertools ]; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ gstreamer gst-plugins-base libpulseaudio elfutils libunwind alsa-lib wayland orc ]; + buildInputs = [ libpulseaudio elfutils libunwind alsa-lib wayland orc ]; + propagatedBuildInputs = [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8c63cca9c806..73918b3dfd6c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21915,7 +21915,7 @@ with pkgs; inherit newScope; inherit lib stdenv fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper writeText; inherit bison cups dconf harfbuzz libGL perl gtk3 ninja; - inherit (gst_all_1) gstreamer gst-plugins-base; + inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi; inherit buildPackages; cmake = cmake.overrideAttrs (attrs: { patches = attrs.patches ++ [ From e562fc6e0535d85fcbb681d506a3a3cb3366213e Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sat, 5 Nov 2022 00:52:11 +0800 Subject: [PATCH 7/7] stellarium: build with qt6 --- .../science/astronomy/stellarium/default.nix | 18 ++++++++++++++---- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix index 37d5a15f7ac6..1b0f5abdf98b 100644 --- a/pkgs/applications/science/astronomy/stellarium/default.nix +++ b/pkgs/applications/science/astronomy/stellarium/default.nix @@ -3,13 +3,15 @@ , fetchFromGitHub , cmake , perl +, wrapGAppsHook , wrapQtAppsHook , qtbase , qtcharts -, qtlocation +, qtpositioning , qtmultimedia -, qtscript , qtserialport +, qttranslations +, qtwayland , qtwebengine , calcmysky , qxlsx @@ -31,16 +33,18 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake perl + wrapGAppsHook wrapQtAppsHook ]; buildInputs = [ qtbase qtcharts - qtlocation + qtpositioning qtmultimedia - qtscript qtserialport + qttranslations + qtwayland qtwebengine calcmysky qxlsx @@ -54,6 +58,12 @@ stdenv.mkDerivation rec { 'SET(CMAKE_INSTALL_PREFIX "${placeholder "out"}/Applications/Stellarium.app/Contents")' ''; + dontWrapGApps = true; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + meta = with lib; { description = "Free open-source planetarium"; homepage = "https://stellarium.org/"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 73918b3dfd6c..46ccb5c00df2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36139,7 +36139,7 @@ with pkgs; sq = callPackage ../development/tools/sq { }; - stellarium = libsForQt5.callPackage ../applications/science/astronomy/stellarium { }; + stellarium = qt6Packages.callPackage ../applications/science/astronomy/stellarium { }; stellarsolver = libsForQt5.callPackage ../development/libraries/science/astronomy/stellarsolver { };