Summary ------- As [`github.com/qt/qtdoc/blob/6f57506953cc1efaf474368393ecb1df38c9f46a/doc/src/qmlapp/qml.qdoc`][1] explains, the `qml` tool has allowed me in the past (when developing with Qt5) to run `.QML` files from the terminal, without needing to get IDE-specific stuff like [`github.com/orcun-gokbulut/qml-debug/blob/69b74cf92e547fb7383f8aa6f03ddea71fadfd4b/README.md#description`][2] working. However, although installing [`qt5-qtdeclarative-5.15.13-1.fc40`][3] allows me to run `qml`, I intend to utilize Qt6, and [`qt6-qtdeclarative-6.7.0-2.fc40`][4] does not install the `qml` binary to `qEnvironmentVariable("PATH")`. Reproducibility --------------- Always Steps to Reproduce ------------------ ~~~sh #!/usr/bin/env sh dnf provides qml ~~~ Actual Results -------------- > ~~~YAML > Updating and loading repositories: > Repositories loaded. > qt5-qtdeclarative-devel-5.15.15-1.fc41.i686 : Development files for qt5-qtdeclarative > Repo : fedora > Matched From : > Filename : /usr/bin/qml > > qt5-qtdeclarative-devel-5.15.15-1.fc41.x86_64 : Development files for qt5-qtdeclarative > Repo : fedora > Matched From : > Filename : /usr/bin/qml > ~~~ Expected Results ---------------- It should list `qt6-qtdeclarative`. Additional Information ---------------------- [1]: https://github.com/qt/qtdoc/blob/6f57506953cc1efaf474368393ecb1df38c9f46a/doc/src/qmlapp/qml.qdoc#L1-L145 [2]: https://github.com/orcun-gokbulut/qml-debug/blob/69b74cf92e547fb7383f8aa6f03ddea71fadfd4b/README.md#description [3]: https://kojipkgs.fedoraproject.org//packages/qt5-qtdeclarative/5.15.13/1.fc40/x86_64/qt5-qtdeclarative-5.15.13-1.fc40.x86_64.rpm [4]: https://kojipkgs.fedoraproject.org//packages/qt6-qtdeclarative/6.7.0/2.fc40/x86_64/qt6-qtdeclarative-6.7.0-2.fc40.x86_64.rpm
There is qml-qt6 binary to use. The real binary is installed into /usr/lib64/qt6/bin/qml and symlinked to /usr/bin as qml-qt6 to not conflict with the Qt5 version.
> The real binary is installed into `/usr/lib64/qt6/bin/qml` and symlinked to `/usr/bin as qml-qt6`. That doesn't *appear* to apply to my installation: Prerequisite ------------ 1. 1. ~~~sh #!/usr/bin/env sh dnf provides qml-qt6 ~~~ 2. > ~~~YAML > Updating and loading repositories: > Repositories loaded. > qt6-qtdeclarative-devel-6.8.2-1.fc41.i686 : Development files for qt6-qtdeclarative > Repo : updates > Matched From : > Filename : /usr/bin/qml-qt6 > > qt6-qtdeclarative-devel-6.8.2-1.fc41.x86_64 : Development files for qt6-qtdeclarative > Repo : updates > Matched From : > Filename : /usr/bin/qml-qt6 > > qt6-qtdeclarative-devel-6.7.2-3.fc41.i686 : Development files for qt6-qtdeclarative > Repo : fedora > Matched From : > Filename : /usr/bin/qml-qt6 > > qt6-qtdeclarative-devel-6.7.2-3.fc41.x86_64 : Development files for qt6-qtdeclarative > Repo : fedora > Matched From : > Filename : /usr/bin/qml-qt6 > ~~~ 2. 1. ~~~sh #!/usr/bin/env sh sudo dnf install qt6-qtdeclarative ~~~ 2. > ~~~YAML > Updating and loading repositories: > Repositories loaded. > Package "qt6-qtdeclarative-6.8.2-1.fc41.x86_64" is already installed. > > Nothing to do. > ~~~ Strange ------- 3. 1. ~~~sh #!/usr/bin/env sh file /usr/bin/qml-qt6 ~~~ 2. > ~~~YAML > /usr/bin/qml-qt6: cannot open `/usr/bin/qml-qt6' (No such file or directory) > ~~~ 4. 1. ~~~sh #!/usr/bin/env sh file /usr/lib64/qt6/bin/qml ~~~ 2. > ~~~YAML > /usr/lib64/qt6/bin/qml: cannot open `/usr/lib64/qt6/bin/qml' (No such file or directory) > ~~~ Can you explain this, or am I being stupid?
It's in qt6-qtdeclarative-devel and not in the main qt6-qtdeclarative package.
Right. Real apologies for being stupid. However, I'm pretty confident I've not misunderstood this - I've just installed `qt6-qtdeclarative-devel`, and although `/usr/lib64/qt6/bin/qml` exists, there is no `/usr/bin/qml` symlink, so it's still not in `$PATH` like before. I'd can bring receipts like before if of use, but can you check whether you *definitely* have a `/usr/bin/qml` symlink? This time, I don't think I'm wasting your time: - > `/usr/bin/qml`: cannot open `/usr/bin/qml` (No such file or directory) - > `/usr/lib64/qt6/bin/qml`: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter `/lib64/ld-linux-x86-64.so.2`, `BuildID[sha1]=7a8723b47dbb1a280e710d4b84ab8e6c898c5a1b`, for GNU/Linux 3.2.0, stripped
(In reply to Jan Grulich from comment #1) > There is qml-qt6 binary to use. The real binary is installed into > /usr/lib64/qt6/bin/qml and symlinked to /usr/bin as qml-qt6 to not conflict > with the Qt5 version. Read it one more time please. It's qml-qt6.
(In reply to Jan Grulich from comment #5) > Read it one more time please. It's qml-qt6. I'm so sorry. It's exactly where you said it is. Hopefully you found this as hilarious as I now do.
(In reply to Mr. Beedell, Roke Julian Lockhart from comment #6) > I'm so sorry. It's exactly where you said it is. Hopefully you found this as > hilarious as I now do. No problem :). I'm glad it's solved now.