#40669 closed defect (fixed)
qgis@2.0.1 together with py27-pyqt4(-devel)@4.10.3_2 (@4.10.4_0) & py27-qscintilla @2.7.2_3 : dependencies can not be resolved because of indirect mutual exclusivness
Reported by: | Dr.Martin.Froehlich@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.0 |
Keywords: | Cc: | michaelld (Michael Dickens), Veence (Vincent), mmpagani (Marco Pagani), cooljeanius (Eric Gallager) | |
Port: | qgis py27-pyqt4 py27-pyqt4-devel py27-qscintilla |
Description
Can not install qgis@2.0.1 because it depends on py27-pyqt4-devel and py27-qscintilla. Furthermore py27-qscintilla depends on py27-pyqt4 leading finally to disaster: py27-pyqt4 and py27-pyqt4-devel are mutually exclusive.
Problem: qgis is not installable.
Additional question: Why are there two packages, py27-pyqt4 and py27-pyqt4-devel which are mutually exclusive, but the Portfiles are identical (as the result of diff, files taken from the web site)?
vulpecula-2<0% 2096 ~ port deps py27-pyqt4-devel Full Name: py27-pyqt4-devel @4.10.4_0 Build Dependencies: pkgconfig Library Dependencies: qt4-mac, py27-sip, qt4-mac, dbus-python27 vulpecula-2<0% 2097 ~ port deps py27-pyqt4 Full Name: py27-pyqt4 @4.10.3_2 Build Dependencies: pkgconfig Library Dependencies: python27, py27-sip, qt4-mac, dbus-python27 vulpecula-2<0% 2098 ~ port dependents py27-pyqt4 py27-qscintilla depends on py27-pyqt4 vulpecula-2<0% 2099 ~ port dependents py27-pyqt4-devel Error: Registry error: py27-pyqt4-devel not registered as installed. vulpecula-2<1% 2100 ~ port deps py27-qscintilla Full Name: py27-qscintilla @2.7.2_3 Build Dependencies: pkgconfig Library Dependencies: python27, qscintilla, py27-pyqt4, py27-sip vulpecula-2<0% 2101 ~ port deps qgis Full Name: qgis @2.0.1_0+postgis2+postgresql92+python27 Build Dependencies: cmake, pkgconfig, bison, ld64, py27-sip Library Dependencies: qt4-mac, libiconv, expat, openssl, proj, geos, gdal, sqlite3, gsl, qwt52, fcgi, spatialindex, py27-pyqt4-devel, py27-qscintilla, postgresql92, postgis2 Runtime Dependencies: py27-psycopg2, py27-spatialite vulpecula-2<0% 2102 ~ port deps qgis@2.0.1_0+postgis2+postgresql92 Full Name: qgis @2.0.1_0+postgis2+postgresql92+python27 Build Dependencies: cmake, pkgconfig, bison, ld64, py27-sip Library Dependencies: qt4-mac, libiconv, expat, openssl, proj, geos, gdal, sqlite3, gsl, qwt52, fcgi, spatialindex, py27-pyqt4-devel, py27-qscintilla, postgresql92, postgis2 Runtime Dependencies: py27-psycopg2, py27-spatialite vulpecula-2<0% 2103 ~ port info py27-pyqt4-devel py27-pyqt4-devel @4.10.4 (python, devel) Variants: debug, phonon, scintilla, universal Description: PyQt4 is a set of Python bindings for the Qt4 toolkit. The bindings are implemented as a set of Python modules: qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml, and contains 300 classes and over 5,750 functions and methods. Homepage: http://www.riverbankcomputing.co.uk/software/pyqt/intro Build Dependencies: pkgconfig Library Dependencies: qt4-mac, py27-sip, qt4-mac, dbus-python27 Conflicts with: py27-pyqt4 Platforms: macosx License: GPL-2 GPL-3 Maintainers: michaelld@macports.org, openmaintainer@macports.org vulpecula-2<0% 2104 ~ port info py27-pyqt4 py27-pyqt4 @4.10.3_2 (python, devel) Variants: debug, phonon, scintilla, universal Description: PyQt4 is a set of Python bindings for the Qt4 toolkit. The bindings are implemented as a set of Python modules: qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml, and contains 300 classes and over 5,750 functions and methods. Homepage: http://www.riverbankcomputing.co.uk/software/pyqt/intro Build Dependencies: pkgconfig Library Dependencies: python27, py27-sip, qt4-mac, dbus-python27 Conflicts with: py27-pyqt4-devel Platforms: macosx License: GPL-2 GPL-3 Maintainers: michaelld@macports.org, openmaintainer@macports.org vulpecula-2<0% 2105 ~ port info qgis qgis @2.0.1 (gis) Variants: debug, grass, postgis, [+]postgis2, postgresql91, [+]postgresql92, postgresql93, python26, [+]python27, universal Description: QGIS is a GIS. It can visualize, inject data into PostGres/PostGIS, or serve as a Qt front-end to Grass. Extended with Python plugins, it can become a quite powerful GIS on its own. Homepage: http://www.qgis.org/ Build Dependencies: cmake, pkgconfig, bison, ld64, py27-sip Library Dependencies: qt4-mac, libiconv, expat, openssl, proj, geos, gdal, sqlite3, gsl, qwt52, fcgi, spatialindex, py27-pyqt4-devel, py27-qscintilla, postgresql92, postgis2 Runtime Dependencies: py27-psycopg2, py27-spatialite Platforms: darwin License: GPL Maintainers: vince@macports.org vulpecula-2<0% 2106 ~ sudo port -v install qgis ---> Computing dependencies for qgis.. Error: Unable to execute port: Can't install py27-pyqt4-devel because conflicting ports are installed: py27-pyqt4
Result of file-comparison:
vulpecula-2<0% 2111 ~/Downloads diff -u Portfile-py27-pyqt4 Portfile-py27-pyqt4-devel vulpecula-2<0% 2112 ~/Downloads
No output, that is: Files are identical.
Change History (18)
comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | michaelld@… vince@… added |
---|---|
Keywords: | qgis py27 py27-pyqt4 py27-pyqt4-devel py27-qscintilla removed |
comment:2 follow-up: 6 Changed 11 years ago by Veence (Vincent)
comment:3 Changed 11 years ago by Dr.Martin.Froehlich@…
py27-pyqt-devel does not install out of the box: It is using snapshot 507d15ce70b8 but only snapshot f24cac93a1b0 is available on http://www.riverbankcomputing.com/static/Downloads/PyQt4/. We need an updated version (snapshot and checksums) first, I think.
BTW: 'subport' is a fine mechanism, but I think it would be advantageous to use a way to install those versions side by side, to enable cutting edge and more stable releases a coexistence. At least it would prevent such situations which, in my experience, are not always as easy to heal as in this case apparently.
Thanks for your effords!
comment:4 Changed 11 years ago by Veence (Vincent)
Your computer is called 'small fox' (Kleiner Fuchs)?
Darn. The snapshot used has changed – theoretically it should have been stored by the Macports main server and fetch from there.
We have to use an unstable version, because it fixes a bug that plagues the previous stable ones and prevents QGis from correctly compiling. Besides, almost all QGis patches are tied to the versions 4.15 of SIP (4.14 works fine and is officially recommended, but with Macports we can’t afford going back in time).
Your reasoning is sound, however both py-pyqt4 and py-pyqt4-devel install files in the same place. The solution is to upgrade all ports that depend on py-pyqt4 to a path dependency rather than a port dependency. That way, Macports only checks if a given path is present (e.g.. /opt/local/share/py27-qt4) and does not care whether it has been created by the standard or devel flavor.
Bezüglich der Anstrengungen, kein Problem: mit Vergnügen!
comment:5 Changed 11 years ago by michaelld (Michael Dickens)
I just updated py*-pyqt4-devel to the current snapshot in r111910. I wish those snapshots lasted longer.
comment:6 Changed 11 years ago by EJFielding (Eric Fielding)
Replying to vince@…:
Both Portfiles derive from the same base via a mechanism known as ‘subports’. The gist is that, instead of writing one (almost) identical Portfile for each Python version (or software version), we write a unique Portfile and embed test mechanisms to find out which specific port we are installing and act accordingly. This way we save both time and space (and legibility).
It seems Michael had left a spurious hard dependency on py27-pyqt4 in the py-qscintilla port, that I have removed in r111888. Try again, first installing py27-pyqt4-devel, and then proceed with qgis. Please tell me/us in case it still fails.
I have tried to install py27-pyqt4-devel, but it refuses to install because I already have py27-pyqt4 installed. Do I need to uninstall py27-pyqt4 first? ====== sudo port install py27-pyqt4-devel ---> Computing dependencies for py27-pyqt4-devel Error: Unable to execute port: Can't install py27-pyqt4-devel because conflicting ports are installed: py27-pyqt4 =======
comment:7 Changed 11 years ago by Dr.Martin.Froehlich@…
Now I could upgrade my second Computer (@vince: that one called lepus en:hare, de:Hase, and vulpecula truely is Latin for 'Small Fox', de:'Füchschen') without Problems. On vulpecula I had to re-install the packages. In the end everything works as desired, from the packaging point of view.
Thanks to everyone involved!
comment:8 follow-up: 10 Changed 11 years ago by Veence (Vincent)
Supertoll! :) Does your installation work all right? On my MBA 2013, QGis fails to display about two thirds of its icons. I can use the software, but mainly with menus. If you’re interested, I just committed a new port called ‘sfcgal’ (and updated PostGIS) that links CGAL to PostGIS and introduces 3D operators like intersections, unions, etc. Jedenfalls, genieß Vincent (PS – oddity: ‘lepus’ is masculine in Latin but its modern Italian counterpart, ‘lepre’, is feminine…)
comment:9 Changed 11 years ago by Veence (Vincent)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:10 Changed 11 years ago by Dr.Martin.Froehlich@…
Replying to vince@…:
Supertoll! :) Does your installation work all right? On my MBA 2013, QGis fails to display about two thirds of its icons. I can use the software, but mainly with menus.
No obvious errors encountered!
If you’re interested, I just committed a new port called ‘sfcgal’ (and updated PostGIS) that links CGAL to PostGIS and introduces 3D operators like intersections, unions, etc.
Interesting, where can I read more about it?
comment:11 Changed 11 years ago by mmpagani (Marco Pagani)
Martin and Vince,
I understand from your message exchange you've been able to solve the incompatibility problem between py27-pyqt4-devel and py27-pyqt4. However I haven't been able to follow exactly the workaround you find to solve this problem.
Would you be so kind to provide a short description of the steps I should follow in order to have qgis installed on my mac? I guess Eric was asking the same thing.
Thanks a lot for your help,
Marco
comment:12 Changed 11 years ago by Veence (Vincent)
The best way would be to force the uninstall of py27-pyqt4 and install py27-pyqt4-devel right away after. To my knowledge, every port that depends on py27-pyqt4 has been updated to support py27-pyqt4-devel also. But please do a backup before.
comment:13 Changed 11 years ago by mmpagani (Marco Pagani)
Thank you Vince for your feedback. Following your instructions I've been able to start the qgis installation process. However, I get an error during the Building process.
Error: org.macports.build for port qgis returned: command execution failed Please see the log file for port qgis for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/qgis/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port qgis failed
You find my log file here: http://pastebin.com/77J8ceEB
I'm running Macports Version: 2.2.1 on a Mac with OS X 10.8.5. My ports list is available here http://pastebin.com/M5MFmSaK
Thank you very much again for your help.
Best wishes,
Marco
comment:14 follow-up: 16 Changed 11 years ago by Veence (Vincent)
Hello Marco, are you by chance building a universal version of QGis ? Cheers!
comment:16 Changed 11 years ago by mmpagani (Marco Pagani)
Hello Vince,
I also tried a build with the +universal option but I found an incompatibility with a package. Unfortunately I didn't collected information since I considered it a quick and dirty attempt. If you're interested I can give a try and send you more detailed information.
Cheers, Marco
Hello Marco, are you by chance building a universal version of QGis ? Cheers!
comment:17 Changed 11 years ago by Veence (Vincent)
Marco,
no please don’t build universal if you don’t need to. Keep it simple and plain ;)
I have just quickly examined your log file. I'll dive into it deeper tomorrow. Just give me a few hours to rest.
V.
Both Portfiles derive from the same base via a mechanism known as ‘subports’. The gist is that, instead of writing one (almost) identical Portfile for each Python version (or software version), we write a unique Portfile and embed test mechanisms to find out which specific port we are installing and act accordingly. This way we save both time and space (and legibility).
It seems Michael had left a spurious hard dependency on py27-pyqt4 in the py-qscintilla port, that I have removed in r111888. Try again, first installing py27-pyqt4-devel, and then proceed with qgis. Please tell me/us in case it still fails.