Skip to content
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

Merged
merged 1 commit into from May 8, 2018

Conversation

matthewbauer
Copy link
Member

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.

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
Copy link
Member

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?

Copy link
Member Author

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).

@matthewbauer matthewbauer merged commit 03308d1 into NixOS:staging May 8, 2018
@@ -16,6 +16,9 @@ let
optional (!debug) "-DQT_NO_DEBUG"
++ lib.toList (args.NIX_CFLAGS_COMPILE or []);

configureFlags = [ "-no-framework" ]
++ (args.configureFlags or []);
Copy link
Contributor

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?

Copy link
Member Author

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?

Copy link
Contributor

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?

Copy link
Member Author

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.

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you for fixing this in dcea091!

/cc @vcunat Although this is a mass rebuild in master, and most packages were building with -no-framework because configure usually ignores unknown flags, so it might be better to revert this from master, merge staging, and then apply this to staging.

Copy link
Contributor

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

Copy link
Member Author

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?

Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants