New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable installing frameworks for qt #40187
Disable installing frameworks for qt #40187
Conversation
We prefer to have $out/include & $out/lib installed so that things like multiple outputs can work. There is no way to do this in Qt currently without also disabling the ‘framework’ install. Not sure if this will break anything but it will fix issues we run into on some projects like python2.7-pyside: Linux: https://hydra.nixos.org/build/73219181 macOS: https://hydra.nixos.org/build/73059550 Hopefully this gives us consistency between the two.
@@ -37,9 +37,7 @@ let | |||
srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; }; | |||
|
|||
patches = { | |||
qtbase = [ ./qtbase.patch ] ++ | |||
optionals stdenv.isDarwin [ ./qtbase-darwin.patch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forgot to remove this file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No its listed below. It used to be optional but it’s safe to apply everywhere (this is going to staging anyway).
@@ -16,6 +16,9 @@ let | |||
optional (!debug) "-DQT_NO_DEBUG" | |||
++ lib.toList (args.NIX_CFLAGS_COMPILE or []); | |||
|
|||
configureFlags = [ "-no-framework" ] | |||
++ (args.configureFlags or []); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@matthewbauer This broke audaciousQt5
(https://hydra.nixos.org/build/74997027) and is out of place here because it is used for all packages defined with libsForQt5.callPackage
. Could you move -no-framework
away?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where can we put this though? I think qmake flags is the right place maybe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that -no-framework
should only apply to Qt configure, and should not be passed to any qmake
. Am I right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that will work. My confusion is from thinking that all qt derivations use the configure script. Most will just use qmake & hopefully -no-framework is remembered.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually this fixed quite a few packages: https://hydra.nixos.org/eval/1460869#tabs-now-succeed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Do you know what's going on with the cancelled builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vcunat has cancelled them to free up resources for staging
builds; there should be no manually cancelled builds once staging
is merged.
Motivation for this change
Qt will not install things in the normal place on Darwin unless we add this flag. It just tells Qt to not install the framework and work in the normal "Unix" style where /lib & /include are installed to.