Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#28816 closed defect (fixed)

py-macholib has dep on py-modulegraph that is not satisfied by py-modulegraph-devel

Reported by: simsong@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: py-macholib

Description (last modified by blb@…)

Hi. I've been using macports for several years. I just wiped a mac and reinstalled everything. SO this is a clean macports installation.

First I installed Unison, and that worked. Then I tried to install py-matplotlib and got this very strange dependency set:

--->  Computing dependencies for py-matplotlib
--->  Dependencies to be installed: freetype libpng py-configobj python24 py-dateutil py-setuptools py-tz py-numpy fftw-3 py-nose py-pyobjc2 py-elementtree py-py2app-devel py-altgraph py-bdist_mpkg py-macholib py-modulegraph py-modulegraph-devel py-pyobjc2-cocoa py-tkinter tcl tk Xft2 fontconfig pkgconfig xrender xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb python27 bzip2 db46 gdbm readline sqlite3 xorg-libpthread-stubs xorg-xcb-proto libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-renderproto xorg-libXScrnSaver xorg-libXext xorg-scrnsaverproto

... And you know what? It didn't work:

--->  Activating py-modulegraph-devel @0.7.2_0
Error: Target org.macports.activate returned: Image error: /opt/local/lib/python2.4/site-packages/modulegraph/__init__.py is being used by the active py-modulegraph port.  Please deactivate this port first, or use 'port -f activate py-modulegraph-devel' to force the activation.
Error: Failed to install py-modulegraph-devel
Log for py-modulegraph-devel is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py-modulegraph-devel/main.log
Error: The following dependencies were not installed: py-pyobjc2 py-py2app-devel py-modulegraph-devel py-pyobjc2-cocoa py-tkinter tcl tk Xft2 fontconfig pkgconfig xrender xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb python27 bzip2 db46 gdbm readline sqlite3 xorg-libpthread-stubs xorg-xcb-proto libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-renderproto xorg-libXScrnSaver xorg-libXext xorg-scrnsaverproto
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
15:18 132:~$ 

Just doesn't seem to me that this should happen...

Change History (10)

comment:1 Changed 13 years ago by blb@…

Description: modified (diff)

Unless there's a specific need for python 2.4, why not use py27-matplotlib (and hence, python 2.7) instead?

comment:2 Changed 13 years ago by simsong@…

Thanks for responding. The point that I guess I am not making clear here is that the dependencies for py27-matplotlib include things that include python2.4. The dependencies are inconsistent. Starting with a clean MacPorts installation is is not possible to install py27-matplotlib. The dependencies don't let it work.

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

The main problem is that we don't really support python 2.4 anymore. Maybe ports that you are installing - like xorg-xcb-proto - have variants for python 2.5 and above, but not python 2.4. My suggestion is to forget about trying to use the py-* (i.e. python 2.4) ports and move to at least python 2.5 - i.e. py25-*. Then in your /opt/local/etc/macports/variants.conf add "+python25" or whatever. I recommend at least python 2.6.

comment:4 Changed 13 years ago by simsong@…

I understand that you don't support python 2.4. I'm not asking you to support python 2.4. I don't want to use python 2.4.

What I am saying is that some of the dependencies of py27-matplotlib are explicitly calling for the installation of python2.4.

Or are you saying that I should be installing py27-matplotlib? if that is the case, then why is "py-matplotlib" still in the source tree at all? It just causes confusion. (Witness me). Why not just remove it?

comment:5 in reply to:  4 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to simsong@…:

I understand that you don't support python 2.4. I'm not asking you to support python 2.4. I don't want to use python 2.4.

What I am saying is that some of the dependencies of py27-matplotlib are explicitly calling for the installation of python2.4.

Or are you saying that I should be installing py27-matplotlib?

Yes, that is what we are saying.

if that is the case, then why is "py-matplotlib" still in the source tree at all?

For people who want to use matplotlib with Python 2.4.

It just causes confusion. (Witness me). Why not just remove it?

Indeed, it might be time to remove all the Python 2.4 ports. However, it will be a large effort to locate all the ports that still declare dependencies on them, and update them to use a newer Python.

comment:6 Changed 13 years ago by jmroot (Joshua Root)

Port: py-macholib added
Resolution: fixed
Status: newclosed
Summary: wacko dependencies require installing BOTH python2.4 and Python2.7 in order to install matplotlibpy-macholib has dep on py-modulegraph that is not satisfied by py-modulegraph-devel

Fixed the actual error shown in the description in r77027.

comment:7 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added

Further fixed by making the py*-modulegraph-devel ports replaced_by the py*-modulegraph ports, since the -devel ports are older: r77030, r77032, r77036, r77037

comment:8 Changed 13 years ago by simsong@…

Thanks for your help on this. I blew away /opt an reinstalled py27-matplotlib and it worked just fine. Please close this ticket.

You may not be able to locate all of the 2.4 ports, but I do recommend removing py-matplotlib.

comment:9 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

It looks like py-matplotlib is used by py-matplotlib-basemap and py-nltk, but that no ports use py-matplotlib-basemap or py-nltk. So we could deal with these three ports in isolation from other py-* ports. We would not simply delete the ports; we would mark them as replaced_by newer Python versions of these ports, probably the py27-* ports I think. In the case of py-nltk, a py27-nltk would first have to be created, and we'd want to clear the plan with the current maintainer of py-nltk.

comment:10 Changed 13 years ago by simsong@…

Ah, thanks for the info and the education. It is so much harder to run a large software development ecology than the smaller software development projects that I am used to maintaining.

Note: See TracTickets for help on using tickets.