Opened 12 years ago
Closed 12 years ago
#36268 closed defect (fixed)
py27-pyqt4 @4.9.4 fails to upgrade
Reported by: | nonstop.server@… | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.2 |
Keywords: | Cc: | ||
Port: | py27-pyqt4 |
Description
Port py27-pyqt4 fails during the extract phase with the following errer message.
:error:extract org.macports.extract for port py27-pyqt4 returned: ERROR: In order to install this port as +debug, Qt4 must also be installed with +debug. :debug:extract Error code: NONE :debug:extract Backtrace: ERROR: In order to install this port as +debug,Qt4 must also be installed with +debug.
Port qt4-mac is installed with the debug variant enabled.
% port -q installed name qt4-mac qt4-mac @4.8.3_0+debug+demos+examples+quartz+raster (active)
Version Information:
Mac OS Version: Darwin 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 Xcode Version: Xcode 3.1.4 Component versions: DevToolsCore-1204.0; DevToolsSupport-1186.0 BuildVersion: 9M2809 Macports Version: Version: 2.1.2
Attachments (1)
Change History (14)
Changed 12 years ago by nonstop.server@…
comment:1 follow-up: 5 Changed 12 years ago by michaelld (Michael Dickens)
comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | michaelld@… removed |
---|---|
Owner: | changed from macports-tickets@… to michaelld@… |
This message is coming from the qt4 portgroup. It may need to be updated for the new all-framework qt4-mac build.
Currently the way it's supposed to work is: if the port debug variant is set, it requires that the qt4-mac debug variant is set. You may want to expand this to work the other way as well: if the port debug variant is not set, require that the qt4-mac debug variant is also not set. I'm not sure if that's actually required but it might be reasonable. I do this in the php portgroup.
The way the portgroup determines whether to show the message might be simplified using the new active_variants portgroup.
comment:3 Changed 12 years ago by michaelld (Michael Dickens)
I'd prefer to leave the +debug check in the qt4 portgroup with its current behavior: check for +debug only if +debug is selected as a variant of the current port.
comment:4 follow-up: 6 Changed 12 years ago by michaelld (Michael Dickens)
To the OP: What does the following return:
ls -lAF /opt/local/Library/Frameworks/QtCore.framework
I think I know the issue, but I want to confirm the 'ls' above first.
comment:5 Changed 12 years ago by nonstop.server@…
Replying to michaelld@…:
So, just to be clear, you're trying to "sudo port install py27-pyqt4 +debug"? or the like but with +debug as a variant?
I performed an upgrade of the port
% sudo port -dsu upgrade py27-pyqt4
which was installed with the debug variant enabled.
% port -q installed name py27-pyqt4 py27-pyqt4 @4.9.1_1+debug+scintilla (active)
comment:6 Changed 12 years ago by nonstop.server@…
Replying to michaelld@…:
% ls -AFl /opt/local/Library/Frameworks/QtCore.framework total 40 drwxr-xr-x 3 root wheel 102 Sep 21 14:04 Contents/ lrwxrwxrwx 1 root wheel 18 Sep 21 14:03 Headers@ -> Versions/4/Headers lrwxrwxrwx 1 root wheel 17 Sep 21 14:03 QtCore@ -> Versions/4/QtCore -rw-r--r-- 1 root wheel 975 Sep 21 13:59 QtCore.prl lrwxrwxrwx 1 root wheel 23 Sep 21 14:03 QtCore_debug@ -> Versions/4/QtCore_debug -rw-r--r-- 1 root wheel 992 Sep 21 13:59 QtCore_debug.prl drwxr-xr-x 4 root wheel 136 Sep 21 14:04 Versions/
comment:7 follow-up: 8 Changed 12 years ago by michaelld (Michael Dickens)
Thanks. I just pushed r97988, which should fix this issue. Please do a "sudo port selfupdate" and then try your upgrade command again.
comment:8 Changed 12 years ago by nonstop.server@…
Replying to michaelld@…:
Yes, thank you r97988 fixed this issue! The port upgraded just fine.
% port -q installed name py27-pyqt4 py27-pyqt4 @4.9.4_0+debug+scintilla (active)
comment:9 follow-up: 10 Changed 12 years ago by michaelld (Michael Dickens)
Glad to hear that. I'm a little concerned that the +debug isn't functioning correctly (it should configure, build, and installs correctly now). Can you test the actual functionality out? What does "ls -lAF /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/" return for you?
comment:10 Changed 12 years ago by nonstop.server@…
Replying to michaelld@…:
I did not yet test the functionality of the port, but here is the output of the ls.
% ls -AFl /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/ total 42240 -rwxr-xr-x 1 root wheel 13180 Sep 21 15:29 Qt.so* -rwxr-xr-x 1 root wheel 4051584 Sep 21 15:29 QtCore.so* -rwxr-xr-x 1 root wheel 394624 Sep 21 15:29 QtDeclarative.so* -rwxr-xr-x 1 root wheel 594948 Sep 21 15:29 QtDesigner.so* -rwxr-xr-x 1 root wheel 12156836 Sep 21 15:29 QtGui.so* -rwxr-xr-x 1 root wheel 185536 Sep 21 15:29 QtHelp.so* -rwxr-xr-x 1 root wheel 210112 Sep 21 15:29 QtMultimedia.so* -rwxr-xr-x 1 root wheel 1098704 Sep 21 15:29 QtNetwork.so* -rwxr-xr-x 1 root wheel 414540 Sep 21 15:29 QtOpenGL.so* -rwxr-xr-x 1 root wheel 315968 Sep 21 15:29 QtScript.so* -rwxr-xr-x 1 root wheel 32964 Sep 21 15:29 QtScriptTools.so* -rwxr-xr-x 1 root wheel 460292 Sep 21 15:29 QtSql.so* -rwxr-xr-x 1 root wheel 131168 Sep 21 15:29 QtSvg.so* -rwxr-xr-x 1 root wheel 53784 Sep 21 15:29 QtTest.so* -rwxr-xr-x 1 root wheel 677372 Sep 21 15:29 QtWebKit.so* -rwxr-xr-x 1 root wheel 496104 Sep 21 15:29 QtXml.so* -rwxr-xr-x 1 root wheel 269552 Sep 21 15:29 QtXmlPatterns.so* -rw-r--r-- 1 root wheel 1111 Sep 21 15:29 __init__.py -rw-r--r-- 1 root wheel 14560 Sep 21 15:29 pyqtconfig.py drwxr-xr-x 14 root wheel 476 Sep 21 15:30 uic/
comment:11 follow-up: 12 Changed 12 years ago by michaelld (Michael Dickens)
Good. And, what does "otool -L /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/QtGui.so" return?
How would you usually verify that +debug is working? I think with the move to all-framework-all-the-time, one has to set the shell environment "DYLD_IMAGE_SUFFIX=_debug" to get the debug version of the framework. Which IIRC hasn't worked since the release of 10.7 because Apple hasn't released system debug frameworks. Or, something like that. Maybe one has to link directly to the debug framework now?
comment:12 Changed 12 years ago by nonstop.server@…
Replying to michaelld@…:
Output of the otool list:
% otool -L /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/QtGui.so /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/QtGui.so: /opt/local/Library/Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.3) /opt/local/Library/Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.3) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)
Maybe using this tip will help you to get debugging working on 10.7. I archived it for future use, although I never actually implemented it myself.
source: http://blog.odnous.net/2011/06/frequently-overlooked-and-practical.html
Quick tip: Qt4 debugging with (i)pdb / pudb Since Qt4 has its own event loop it's not that easy to debug PyQt4 applications using standard tools. Python support for QtCreator is nowhere near. To be able to use your favourite Python debugger (pdb/ipdb/pudb) prepare the following snippet and call it every time you want to pause the execution: 1 def debug(): 2 from PyQt4.QtCore import pyqtRemoveInputHook 3 pyqtRemoveInputHook() 4 # Load either ipdb. 5 from ipdb import set_trace 6 # Or pdb. 7 # from pdb import set_trace 8 # Or pudb. 9 # from pudb import set_trace 10 # Enter debugging mode. 11 set_trace() Your debugger will show up when the execution reaches debug() call. It's somewhat crude way of debugging since there are IDEs that allow you to debug PyQt4 application in usual step-in/-over/-out way.
comment:13 Changed 12 years ago by michaelld (Michael Dickens)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thanks for the output and the tip. I'll have to try that when I get a chance. I'm going ahead and closing this ticket. Thanks for your prompt responses!
So, just to be clear, you're trying to "sudo port install py27-pyqt4 +debug"? or the like but with +debug as a variant?