Skip to content

Conversation

andre4ik3
Copy link
Member

Closes #376837

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@andre4ik3 andre4ik3 mentioned this pull request Aug 10, 2025
13 tasks
@andre4ik3
Copy link
Member Author

andre4ik3 commented Aug 10, 2025

@normalcea

suggestion: whitespacing and logical separation of arguments

This is just up to your preference, but I personally don't see the reason to add a whitespace between the other arguments and the Qt components/custom logic. The reason being that it then becomes arbitrary in what is separated by whitespace and what isn't and derivation code should always be as uniform as possible.

Fixed

question: kdePackages usage

I'm not an authority on Qt packaging, but why is kdePackages used here and not simply just qt6 I didn't notice a difference on my end (I'm using GNOME so all old qt stuff gets funneled into xwayland anyway).

I used kdePackages mostly as a habit since it's a complete set that includes qt6Packages (which in turn then includes qt6). But since qt6 is more minimal I do agree it should be used instead.

Also added fex-qt5 as a Qt5 version e.g. for Plasma 5 users.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. labels Aug 10, 2025
Comment on lines 34 to 41
External/Vulkan-Headers \
External/drm-headers \
External/jemalloc \
External/jemalloc_glibc \
External/robin-map \
External/vixl \
Source/Common/cpp-optparse \
External/Catch2
Source/Common/cpp-optparse
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rest of these remaining dependencies are forks

@normalcea
Copy link
Contributor

Issue (blocking): Qt5 software is deprecated

Plasma 5 and Qt 5 based versions of associated software are deprecated in NixOS 25.05, and will be removed in NixOS 25.11. Users are encouraged to upgrade to Plasma 6.

Plasma 5 is not a target anymore, so the additional fex-qt5 cannot be included.

@andre4ik3 andre4ik3 changed the title fex{-qt5}: update to qt6, make qt optional fex: update to qt6, make qt optional Aug 10, 2025
(lib.cmakeBool "ENABLE_LTO" true)
(lib.cmakeBool "ENABLE_ASSERTIONS" false)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These were removed as they were the default in FEX anyway.

@normalcea
Copy link
Contributor

Issue: multiple distinct changes in one commit

There are changes here not related to qt within the single commit here, they should be split off into an additional commit within this PR.

@andre4ik3
Copy link
Member Author

Done :)

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Aug 10, 2025
@normalcea
Copy link
Contributor

normalcea commented Aug 11, 2025

nitpick: Un-refactor by removing with usage.

diff --git a/pkgs/by-name/fe/fex/package.nix b/pkgs/by-name/fe/fex/package.nix
index d3b563f89ded..0fc032d220fb 100644
--- a/pkgs/by-name/fe/fex/package.nix
+++ b/pkgs/by-name/fe/fex/package.nix
@@ -68,13 +68,10 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
     xxHash
     fmt
   ]
-  ++ lib.optionals withQt (
-    with qt6;
-    [
-      qtbase
-      qtdeclarative
-    ]
-  );
+  ++ lib.optionals withQt [
+    qt6.qtbase
+    qt6.qtdeclarative
+  ];

   cmakeFlags = [
     (lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")

@emilazy emilazy enabled auto-merge August 21, 2025 04:14
@emilazy
Copy link
Member

emilazy commented Aug 21, 2025

Oh, needs conflicts resolving.

@andre4ik3
Copy link
Member Author

Done

@nixpkgs-ci nixpkgs-ci bot added 2.status: merge conflict This PR has merge conflicts with the target branch 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. 2.status: merge conflict This PR has merge conflicts with the target branch labels Aug 21, 2025
Copy link
Member

@emilazy emilazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fex.override { withQt = false; } is broken:

Running phase: fixupPhase
@nix {"action":"setPhase","phase":"fixupPhase"}
/nix/store/mwwx1jklblgc6rs6z0nyczwfgmfk1h0m-stdenv-linux/setup: line 269: wrapQtApp: command not found

@andre4ik3
Copy link
Member Author

Right, the wrapQtApp needs to be an optionalString. I can't fix it right now but will fix it in a few hours.

@andre4ik3
Copy link
Member Author

Done, confirmed both with and without Qt builds and runs tests fine now.

@andre4ik3
Copy link
Member Author

Added back vulkan-headers as vendored, as FEX tracks a specific commit it's compatible with (needed for library forwarding).

@andre4ik3 andre4ik3 requested review from normalcea and emilazy August 25, 2025 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 12.approvals: 2 This PR was reviewed and approved by two persons.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

fex: update qt5 dependency to qt6
3 participants