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
[WIP] qt57: add darwin support + add new modules #17328
Conversation
@@ -0,0 +1,7 @@ | |||
{ qtSubmodule, qtbase, pkgconfig, GConf, gtk, libX11}: | |||
|
|||
qtSubmodule { |
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.
@adolfogc Please add this module as a library separate from Qt until it is part of a release.
The update to Qt 5.7 is superseded by #17369, so you'll need to rebase your changes. Thanks for getting this working on Darwin! |
-qml-debug | ||
-rpath | ||
-verbose | ||
-silent |
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.
Using both -verbose
and -silent
is probably a mistake.
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.
Thanks for the catch. I've just rebased, fixed and pushed back.
@ttuegel I've made the requested changes. What's the difference between buildInputs and nativeBuildInputs when you're not cross-compiling? |
None, except documenting which inputs may be retained as runtime dependencies. I don't know if it will cross-compile, but I inherited the package that way. |
Ok, thanks. I was confused with how should I use those two lists for Qt. |
Is this ready to go on your end? (The title still says "[WIP]" so I wanted to double-check.) |
I still want to check why the travis build isn't working for Xcode. |
-plugindir $out/lib/qt5/plugins \ | ||
-importdir $out/lib/qt5/imports \ | ||
-qmldir $out/lib/qt5/qml \ | ||
-docdir $out/share/doc/qt5" |
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.
@ttuegel I moved these lines (86-89) to configureFlags. I removed them.
@ttuegel Please see this discussion. Should we rename nativeBuildInputs to buildInputs?
Taken from: https://nixos.org/nixpkgs/manual/#ssec-stdenv-attributes What I understand from reading the above is that propagatedBuildInputs is used to specify the packages retained as runtime dependencies. |
That is not true. Runtime dependencies are determined by Nix automatically at the end of a build by searching the output for store paths. Runtime dependencies can come from any of the build inputs, whether propagated or not. When cross-compiling, they cannot come from anything The difference between
|
Ok, thanks for explaining the difference between buildInputs and propagatedBuildInputs and their relationship to runtime dependencies. Regarding the other (difference between buildInputs and nativeBuildInputs) what is the action to take? Is it a good idea to rename nativeBuildInputs to buildInputs? My understanding is that they get both combined in a single list. (I fixed the link above, it was this discussion). |
@adolfogc That issue is about a greater refactoring of nixpkgs itself. For packages, the rule is currently as follows:
This is what should be used for the time being. If that nixpkgs refactoring happens, then it will change, but since that is not yet the case, you should stick to the current meaning of these attributes. |
|
||
nativeBuildInputs = | ||
[ bison flex gperf lndir patchelf perl pkgconfig python ruby ]; | ||
[ bison flex gperf lndir patchelf perl pkgconfig python ruby bash ]; |
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.
@adolfogc bash
is already included in stdenv
so this should not be necessary.
The build of |
@bennofs Thanks, your explanation and ttuegels have helped me understand how I should use those lists correctly. |
@ttuegel Thanks for the feedback, I will look into what's causing this regression and remove the unnecessary bash. |
- Adds support for Mac OS X (currently only Qt4 version 4.8 is available for Darwin). - Adds new Qt modules: QtMacExtras, QtQuickControls2, QtSCXML, QtSerialBus. - Other minor changes: - Modifies `maintainers/scripts/generate-qt.sh` to fetch tarballs using TLS. - Changes some substituteInPlace instances for grep (otherwise it fails building in Darwin). - Builds QtMultimedia with openal support. - Builds QtImageFormats with libmng, libwebp and jasper support. - Builds Qt using systems double-conversion library. - Builds QtConnectivity with bluez support (Linux). - Remove line that fixed bison to bison2. It was a workaround to a bug that was fixed with Qt 5.2.0. Thanks to @ttuegel for all the feedback.
I am closing this PR because it is outdated. Darwin support for all Qt 5 versions was added by another PR. Please open a new PR if there are still missing submodules. |
@ttuegel Thanks, good to hear Darwin support was added for Qt 5! |
Main changes
TO-DO
Fix issue causing regression in Nixos.
Figure out why some _dylib_s aren't found by ld (Darwin).
Figure out why the Travis build failed for Xcode:
The invocation of "nix-build -A qt57.qtdoc -A qt57.libdbusmenu -A qt57.qca-qt5 -A qt57.full -A qt57.qtconnectivity -A qt57.qtquickcontrols2 -A qt57.qtmacextras -A qt57.poppler -A qt57.qtmultimedia -A qt57.qtscript -A qt57.qtgraphicaleffects -A qt57.libcommuni -A qt57.qtxmlpatterns -A qt57.qtsensors -A qt57.accounts-qt -A qt57.qtscxml -A qt57.qtsvg -A qt57.qtquickcontrols -A qt57.grantlee
Add qtstyleplugins as a library separate from Qt5.Check for #17413. A rebase and a fix may be needed if it is merged before this one.
Check for #16561. It enables building the QtWebEngine module in Qt 5.6.
Things done
(nix.useChroot on NixOS,
or option
build-use-chroot
innix.conf
on non-NixOS)
nix-shell -p nox --run "nox-review wip"
./result/bin/
)