Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#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 Changed 11 years ago by Veence (Vincent)

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.

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 in reply to:  2 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 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: newclosed

comment:10 in reply to:  8 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 found 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

Last edited 11 years ago by mmpagani (Marco Pagani) (previous) (diff)

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 Changed 11 years ago by Veence (Vincent)

Hello Marco, are you by chance building a universal version of QGis ? Cheers!

comment:15 Changed 11 years ago by mmpagani (Marco Pagani)

Cc: pgnmrc69@… added

Cc Me!

comment:16 in reply to:  14 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.

comment:18 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Note: See TracTickets for help on using tickets.