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

[qttools] Build error with qml option using x64-linux-dynamic triplet #28340

Closed
vserdyuk opened this issue Dec 14, 2022 · 5 comments · Fixed by #38682
Closed

[qttools] Build error with qml option using x64-linux-dynamic triplet #28340

vserdyuk opened this issue Dec 14, 2022 · 5 comments · Fixed by #38682
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team.

Comments

@vserdyuk
Copy link
Contributor

vserdyuk commented Dec 14, 2022

Host Environment

  • OS: Linux (Ubuntu 20.04)
  • Compiler: GCC 9.4.0

To Reproduce

Steps to reproduce the behavior:

./vcpkg install qttools[linguist,qml]:x64-linux-dynamic

Failure logs

Building qttools[core,designer,linguist,qml]:x64-linux-dynamic...
warning: -- Using community triplet x64-linux-dynamic. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: /home/user/src/vcpkg/triplets/community/x64-linux-dynamic.cmake
-- Using cached qttools-everywhere-src-6.4.1.tar.xz.
-- Extracting source /home/user/src/vcpkg/downloads/qttools-everywhere-src-6.4.1.tar.xz
-- Using source at /home/user/src/vcpkg/buildtrees/qttools/src/here-src-6-6912f98d2b.clean
-- Configuring x64-linux-dynamic
-- Building x64-linux-dynamic-dbg
-- Building x64-linux-dynamic-rel
CMake Error at installed/x64-linux-dynamic/share/qtbase/qt_install_submodule.cmake:274 (file):
  file COPY cannot make directory
  "/home/user/src/vcpkg/packages/qttools_x64-linux-dynamic/tools/Qt6/bin/designer":
  Success.
Call Stack (most recent call first):
  installed/x64-linux-dynamic/share/qtbase/qt_install_submodule.cmake:339 (qt_fixup_and_cleanup)
  ports/qttools/portfile.cmake:83 (qt_install_submodule)
  scripts/ports.cmake:147 (include)


error: building qttools:x64-linux-dynamic failed with: BUILD_FAILED
error: Please ensure you're using the latest port files with `git pull` and `vcpkg update`.

Logs: qttools-logs.zip. Didn't archive install* logs because they are long and have no errors, besides, the build itself seems to be successful, failure occurs at copying to packages directory.

Additional context

Seems that it tries to create directory /home/user/src/vcpkg/packages/qttools_x64-linux-dynamic/tools/Qt6/bin/designer but a file with the same name already exists (designer executable):

user@hyperv-kubuntu-2004:~/src/vcpkg/packages/qttools_x64-linux-dynamic/tools/Qt6/bin$ ll
total 5484
drwxrwxr-x 2 user user    4096 дек 14 14:20 ./
drwxrwxr-x 3 user user    4096 дек 14 14:20 ../
-rwxr-xr-x 1 user user  911488 дек 14 14:20 designer*
-rwxr-xr-x 1 user user  423896 дек 14 14:20 lconvert*
-rwxr-xr-x 1 user user 1467136 дек 14 14:20 linguist*
-rwxr-xr-x 1 user user  532048 дек 14 14:20 lprodump*
-rwxr-xr-x 1 user user  470856 дек 14 14:20 lrelease*
-rwxr-xr-x 1 user user   44528 дек 14 14:20 lrelease-pro*
-rwxr-xr-x 1 user user  780960 дек 14 14:20 lupdate*
-rwxr-xr-x 1 user user   44504 дек 14 14:20 lupdate-pro*
-rwxr-xr-x 1 user user  117632 дек 14 14:20 pixeltool*
-rwxr-xr-x 1 user user  109384 дек 14 14:20 qdbus*
-rwxr-xr-x 1 user user  259408 дек 14 14:20 qdbusviewer*
-rwxr-xr-x 1 user user  144104 дек 14 14:20 qtattributionsscanner*
-rwxr-xr-x 1 user user  115376 дек 14 14:20 qtdiag*
-rwxr-xr-x 1 user user  115376 дек 14 14:20 qtdiag6*
-rwxr-xr-x 1 user user   41432 дек 14 14:20 qtplugininfo*

Static builds successfully: ./vcpkg install qttools[linguist,qml]:x64-linux. Also successfull is dynamic build without qml feature: ./vcpkg install qttools[linguist]:x64-linux-dynamic. But I need this qml feature to translate qml files.

@vserdyuk vserdyuk added the category:port-bug The issue is with a library, which is something the port should already support label Dec 14, 2022
@Neumann-A
Copy link
Contributor

hmm. Looks familar. Didn't fix that? Unix systems forbid having a binary and a folder with the same name.

@Neumann-A
Copy link
Contributor

Ah okay was qtdeclarative with qmllint:

        if(EXISTS "${CURRENT_PACKAGES_DIR}/${qt_plugindir}" AND NOT PORT STREQUAL "qtdeclarative") #qmllint conflict
            file(COPY "${CURRENT_PACKAGES_DIR}/${qt_plugindir}/" DESTINATION "${qt_tooldest}")
        endif()

maybe the plugin copying needs to be reconsidered and instead depend on qt.conf working.

@JonLiu1993 JonLiu1993 added category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. and removed category:port-bug The issue is with a library, which is something the port should already support labels Dec 15, 2022
@JonLiu1993
Copy link
Member

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue.

@JonLiu1993 JonLiu1993 closed this as not planned Won't fix, can't repro, duplicate, stale Mar 29, 2023
@bansan85
Copy link
Contributor

I confirm that the problem still exists.

@JonLiu1993 JonLiu1993 reopened this Dec 12, 2023
@tsondergaard
Copy link
Contributor

Remains reproducible with ./vcpkg install 'qttools[designer,qml]' --triplet=x64-linux-dynamic --host-triplet=x64-linux-dynamic also with latest Qt 6.6.3 update.

vicroms pushed a commit that referenced this issue May 29, 2024
- Fix control of cups dependency 
- Fix binary and directory name collision in dynamic builds by not
deploy plugins into tools/Qt6/bin (wasn't necessary in the first place
due to qt.conf working as expected) (closes #28340)
- (New) Fix deploy script on windows (closes #38936)
- Fix dbus linkage as described here
#38682 (comment)
- Fix qtwebengine resource location to be in line what is stated in the
generated `qt.conf`. There is probably a variable to control the
installation location but moving was simpler then trying to find that
variable. You will only notice it if you actually try to run a program
using QtWebEngineProcess with the same `qt.conf`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants