python3 is references in the shebang of three scripts:
/nix/store/gbi67akslfd2n5d8q4vxpy8qzih31myl-qtbase-6.5.0
└───libexec/qt-testrunner.py: …#!/nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10/bin/python3.# C…
libexec/sanitizer-testrunner.py: …#!/nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10/bin/python3.# C…
mkspecs/features/uikit/devices.py: …#!/nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10/bin/python3.# C…
→ /nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10
All of them are normally not used in the build process of packages thus
the shebangs batching can be safely skipped.
Apart from the previous ones, two new patches are added. One for
reducing the runtime closure size by removing reference to cmake, the
other for fixing the linker flags in generated qmake files.
The qt build system embeds information about compilers used during
building qtbase into the generated cmake files, to avoid mixing
different compilers when building qt modules, however this greatly
bloats the closure size of qtbase and the mixed use of compilers is
sometimes desired in Nixpkgs.
The qt build system locates header files, libraries and other installed
components with paths relative to the cmake files. Thus the default
behavior of moving them to the "dev" output breaks these expectations
and is now disabled.
The "multiple-outputs.sh" setup hook moves "include", "lib/cmake" and
other folders into the "dev" output if it exists, thus breaking the
invariants expected by the qt build system and we used to patch cmake to
fixup the generated cmake files. In a series of changes to rework qt
packaging, we are now setting "moveToDev" to false to suppress that
behavior, and the cmake patch is no longer required.
QT apps tend to call makeWrapper with a lot of arguments, which causes
noticable slowdowns (+100ms for app startup). The slow down boils down
to two reasons:
- the required string processing is O(N^2)
- bash is slow at doing the processing
By using the binary wrapper, we fix the second point, brining the
overhead down from 100ms to just 4ms or thereabouts.
I tested this change by rebuilding my whole system with it (I use
plasma). It booted and it works (that's where I type this commit
message), but I am not 100% sure if this won't break anything else.
Closes: #225871