Opened 7 years ago

Closed 7 years ago

#53789 closed defect (fixed)

qt5-qtdeclarative and qt5-qtquickcontrols conflict

Reported by: dershow Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: jjstickel (Jonathan Stickel)
Port: qt5-qtdeclarative qt5-qtquickcontrols

Description

qt5 just upgraded from 5.6.2_1 to 5.7.1_0, along with subports. It seems that one of the subports is causing a problem:

--->  Computing dependencies for qt5-qtdeclarative
--->  Fetching archive for qt5-qtdeclarative
--->  Attempting to fetch qt5-qtdeclarative-5.7.1_0.darwin_16.x86_64.tbz2 from https://packages.macports.org/qt5-qtdeclarative
--->  Attempting to fetch qt5-qtdeclarative-5.7.1_0.darwin_16.x86_64.tbz2.rmd160 from https://packages.macports.org/qt5-qtdeclarative
--->  Installing qt5-qtdeclarative @5.7.1_0
--->  Cleaning qt5-qtdeclarative
--->  Computing dependencies for qt5-qtdeclarative
--->  Deactivating qt5-qtdeclarative @5.6.2_1
--->  Cleaning qt5-qtdeclarative
--->  Activating qt5-qtdeclarative @5.7.1_0
Error: Failed to activate qt5-qtdeclarative: Image error: /opt/local/libexec/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.dylib is being used by the active qt5-qtquickcontrols port.  Please deactivate this port first, or use 'port -f activate qt5-qtdeclarative' to force the activation.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_aqua_qt5/qt5-qtdeclarative/main.log for details.
--->  Uninstalling qt5-qtdeclarative @5.6.2_1
--->  Cleaning qt5-qtdeclarative
--->  Computing dependencies for qt5-qtserialport
--->  Fetching archive for qt5-qtserialport
--->  Attempting to fetch qt5-qtserialport-5.7.1_0.darwin_16.x86_64.tbz2 from https://packages.macports.org/qt5-qtserialport
--->  Attempting to fetch qt5-qtserialport-5.7.1_0.darwin_16.x86_64.tbz2.rmd160 from https://packages.macports.org/qt5-qtserialport
--->  Installing qt5-qtserialport @5.7.1_0
--->  Cleaning qt5-qtserialport
--->  Computing dependencies for qt5-qtserialport
--->  Deactivating qt5-qtserialport @5.6.2_1
--->  Cleaning qt5-qtserialport
--->  Activating qt5-qtserialport @5.7.1_0
--->  Cleaning qt5-qtserialport
--->  Uninstalling qt5-qtserialport @5.6.2_1
--->  Cleaning qt5-qtserialport
--->  Computing dependencies for qt5-qtsensors
The following dependencies will be installed:  qt5-qtdeclarative
Continue? [Y/n]: Y
--->  Activating qt5-qtdeclarative @5.7.1_0
Error: Failed to activate qt5-qtdeclarative: Image error: /opt/local/libexec/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.dylib is being used by the active qt5-qtquickcontrols port.  Please deactivate this port first, or use 'port -f activate qt5-qtdeclarative' to force the activation.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_aqua_qt5/qt5-qtdeclarative/main.log for details.

It is not clear if force activation will break other subports, so I'm not sure how to proceed? Or should some other port be uninstalled before doing the upgrade?

Change History (10)

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Resolution: invalid
Status: newclosed

Trac is not for tech support. Follow-up on the Macports Users mailing list instead.

comment:2 Changed 7 years ago by dershow

If a user installs a port. Then, upgrades the port, and it fails, it is likely due to a bug in the port file. So, I would think that should be reported as such.

comment:3 Changed 7 years ago by mf2k (Frank Schima)

Port: qt5-qtdeclarative qt5-qtquickcontrols added; qt5 removed
Resolution: invalid
Status: closedreopened
Summary: qt5 can't upgradeqt5-qtdeclarative and qt5-qtquickcontrols conflict

You are right. This is a port conflict.

comment:4 Changed 7 years ago by mf2k (Frank Schima)

Cc: mcalhoun@… removed
Owner: set to MarcusCalhoun-Lopez
Status: reopenedassigned

comment:5 Changed 7 years ago by mf2k (Frank Schima)

What is weird is that they both installed without error for me when installing qt5 just now.

f$ port installed qt5-qtdeclarative qt5-qtquickcontrols
The following ports are currently installed:
  qt5-qtdeclarative @5.7.1_0 (active)
  qt5-qtquickcontrols @5.7.1_0 (active)

Why do you see the conflict?

Version 0, edited 7 years ago by mf2k (Frank Schima) (next)

comment:6 Changed 7 years ago by jjstickel (Jonathan Stickel)

I just encountered the same problem. Apparently libqquicklayoutsplugin.dylib moved from package qt5-qtquickcontrols to qt5-qtdeclarative in version 5.7.1. Updating causes a problem because qt5-qtdeclarative is earlier in the dependency tree and wants to install before qt5-qtquickcontrols, but the already installed qt5-qtquickcontrols-5.6.2 still owns the file.

Workaround is to force uninstall qt5-qtquickcontrols, then reinstall it (at the updated version). qt5-qtdeclarative will get updated in the process. I have no idea how to resolve the issue in the Portfiles to allow for a seamless update.

comment:7 Changed 7 years ago by jjstickel (Jonathan Stickel)

Cc: jjstickel added

comment:8 Changed 7 years ago by neverpanic (Clemens Lang)

This is a classic case for the "deactivate hack", see wiki:PortfileRecipes#deactivatehack. qt5-qtdeclarative needs to force-deactivate the old version of qt5-qtquickcontrols.

comment:9 Changed 7 years ago by neverpanic (Clemens Lang)

The same probably applies for qt5-qtenginio and the qt5 port; instead of telling the user to manually uninstall qt5-qtenginio, the qt5 port should just force-deactivate it.

comment:10 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.