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.
Resolved the following conflicts (by carefully applying patches from the both
branches since the fork point):
pkgs/development/libraries/epoxy/default.nix
pkgs/development/libraries/gtk+/3.x.nix
pkgs/development/python-modules/asgiref/default.nix
pkgs/development/python-modules/daphne/default.nix
pkgs/os-specific/linux/systemd/default.nix
Fixes#31685
This patch is applied in Homebrew here and looks to have worked for
them:
fafbdbd237/Formula/qt.rb (L33-L44)
I rewrote the patch to work in our src tree (got rid of qtbase/ prefix
in files).
Right now I am just applying the patch in 5.10 because I don’t have
time to try these out on 5.6 or 5.9. Anyone who wants to can try it on
those if they have time.
This should be based off of staging and need to test in Hydra before
we don’t have extra issues introduced.
This aligns the package name more with the attrname.
This is a re-application of the idea behind 7405af72e6
("qt: make package names of "full" variants appear as such"), which
seems to have been lost on the way.
First, closure size is reduced by including the static libraries in $out instead
of trying to move them to $dev. The Qt build system cannot handle libraries
being split between different prefixes. Previously, the static libraries were
moved into $dev and the shared libraries were symlinked from $out to $dev to
fool the build system. However, this causes $dev to be retained at
runtime. Instead, we now keep the static libraries in $out. Fortunately, the
static libraries are not very large anyway.
Second, we build with QT_NO_DEBUG defined unless debugging is enabled. This
causes some assertions to be removed; when assertions are included, they pull
paths from $dev into the runtime closure by using the __FILE__ macro. We also
now patch qtbase to remove even more assertions when QT_NO_DEBUG is defined.