From fb14fab9778f02a00194442a3b7193fa5b24e629 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Wed, 23 Apr 2025 11:00:46 +0200 Subject: [PATCH] qt: fixate the linux version When building on Linux, the Qt build process includes `CMAKE_SYSTEM_VERSION` in the resulting module description, which defaults to the kernel version of the build host, breaking reproducibility. This change clears the `CMAKE_SYSTEM_VERSION` which is supported by the build process and leaves out the version, giving us reproducibility and avoiding increased rebuilds when the Linux kernel is updated. This is tracked upstream as QTBUG-136060 --- pkgs/development/libraries/qt-6/modules/qtbase/default.nix | 3 +++ pkgs/development/libraries/qt-6/qtModule.nix | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qtbase/default.nix b/pkgs/development/libraries/qt-6/modules/qtbase/default.nix index 9329008e29a6..7410132dd38f 100644 --- a/pkgs/development/libraries/qt-6/modules/qtbase/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qtbase/default.nix @@ -263,6 +263,9 @@ stdenv.mkDerivation rec { "-DQT_FEATURE_system_sqlite=ON" "-DQT_FEATURE_openssl_linked=ON" "-DQT_FEATURE_vulkan=ON" + # don't leak OS version into the final output + # https://bugreports.qt.io/browse/QTBUG-136060 + "-DCMAKE_SYSTEM_VERSION=" ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "-DQT_FEATURE_sctp=ON" diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix index d21056419477..e5089813c39a 100644 --- a/pkgs/development/libraries/qt-6/qtModule.nix +++ b/pkgs/development/libraries/qt-6/qtModule.nix @@ -39,8 +39,11 @@ stdenv.mkDerivation ( ++ (args.propagatedBuildInputs or [ ]); cmakeFlags = - args.cmakeFlags or [ ] - ++ lib.optional stdenv.hostPlatform.isDarwin "-DQT_NO_XCODE_MIN_VERSION_CHECK=ON"; + # don't leak OS version into the final output + # https://bugreports.qt.io/browse/QTBUG-136060 + [ "-DCMAKE_SYSTEM_VERSION=" ] + ++ lib.optional stdenv.hostPlatform.isDarwin "-DQT_NO_XCODE_MIN_VERSION_CHECK=ON" + ++ args.cmakeFlags or [ ]; moveToDev = false;