Opened 14 years ago

Closed 13 years ago

#26387 closed defect (fixed)

xorg-xcb-proto/python dependency loop via tk/libX11

Reported by: spyro@… Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: High Milestone:
Component: ports Version: 1.9.1
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia), tracey@…, raimue (Rainer Müller), drkp (Dan Ports), olivier.serve@…
Port: xorg-xcb-proto python26

Description

This ticket is a followup to Ticket #26381

While that ticket is now fixed, a dependency loop still remains between python and xorg-xcb-proto. The attached patch resolves this issue.

Attachments (1)

Portfile-xorg-xcb-proto.diff (891 bytes) - added by spyro@… 14 years ago.

Download all attachments as: .zip

Change History (21)

Changed 14 years ago by spyro@…

comment:1 Changed 14 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: mcalhoun@… added
Keywords: haspatch removed
Owner: changed from macports-tickets@… to blb@…
Port: python added; xorg-xcb-proto removed

We can't really do that because xorg-xcb-proto builds python modules.

comment:2 Changed 14 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Why does python need tk?

comment:3 Changed 14 years ago by spyro@…

Unfortunately, tk is one of the core parts of python: http://docs.python.org/library/tk.html

It is python's included gui framework. I suppose one could just use port install python26 +no_tkinter, but this would not really be a full python installation (it breaks IDLE, the dev environment included with python).

Couldn't xorg-xcb-proto use the system python like xorg-libxcb did?

comment:4 Changed 14 years ago by jeremyhu (Jeremy Huddleston Sequoia)

No. It's not just used to build. xorg-xcb-proto installs python modules.

comment:5 Changed 14 years ago by spyro@…

So in that case, the patch that I created probably messed up my xorg-xcb-proto install?

I suppose that the best thing to do would be:

  1. To use port install python26 +no_tkinter
  2. Then install xorg-xcb-proto normally
  3. Then reinstall python without +no_tkinter

I wonder if there is any way to streamline this process or atleast to make it more obvious?

Thank you for your help!

comment:6 Changed 14 years ago by blb@…

Cc: mcalhoun@… removed
Owner: changed from blb@… to mcalhoun@…

comment:7 Changed 14 years ago by tracey@…

Cc: tracey@… added

Cc Me!

comment:8 Changed 14 years ago by jmroot (Joshua Root)

Dodgy workaround applied in r71286, since this is an "everything is broken!" situation from a new user's perpective.

So, taking into account that tkinter is considered a core python module, and our tk port must depend on X11 on 64-bit platforms because the aqua variant uses Carbon, what are we going to do about this?

comment:9 Changed 14 years ago by jmroot (Joshua Root)

Port: xorg-xcb-proto python26 added; python removed

comment:10 in reply to:  5 Changed 14 years ago by jzwolak@…

Replying to spyro@…:

So in that case, the patch that I created probably messed up my xorg-xcb-proto install?

I suppose that the best thing to do would be:

  1. To use port install python26 +no_tkinter
  2. Then install xorg-xcb-proto normally
  3. Then reinstall python without +no_tkinter

I wonder if there is any way to streamline this process or atleast to make it more obvious?

Thank you for your help!

Here are the exact commands that worked for me:

sudo port install python26 +no_tkinter
sudo port -f activate python26
sudo port install xorg-xcb-proto
sudo port clean python26
sudo port install python26

And then I can install ImageMagick, xorg, or whatever. Note that the second command may not be necessary on your system, it was necessary on mine because I had some files lying around from a previous Python installation attempt.

comment:12 Changed 14 years ago by danielluke (Daniel J. Luke)

IIRC the python sub-ports were pulled back into the python main port because python -S won't load modules. Is tkinter something that needs to be run in that situation? My initial thought would be to just pull tkinter out into its own port (like we used to do with all of the python modules). If having it installed as a module doesn't brake IDLE, it might be the best (bad) fix.

comment:13 in reply to:  12 ; Changed 14 years ago by raimue (Rainer Müller)

Cc: raimue@… added

Replying to dluke@…: Actually that would be what I suggested in April 2009 already ;-)

Another solution would be to move the python module xcbgen to its own port?

comment:14 Changed 14 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Moving xcbgen to its own port won't help because we'll still need to depend on it in xorg-libxcb

comment:15 in reply to:  13 Changed 14 years ago by danielluke (Daniel J. Luke)

Replying to raimue@…:

Replying to dluke@…: Actually that would be what I suggested in April 2009 already ;-)

Yep :)

Unless someone else comes up with an alternate solution, I think we need to go this route.

comment:16 Changed 14 years ago by drkp (Dan Ports)

Cc: dports@… added

Cc Me!

comment:17 Changed 13 years ago by olivier.serve@…

Cc: olivier.serve@… added

Cc Me!

comment:17 Changed 13 years ago by danielluke (Daniel J. Luke)

... any reason not to create py26-tkinter (based off of py24-tkinter) and move the +no_tkinter stuff into the main python26 port? (this has been broken for a while now).

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

Nope. Please do.

comment:19 Changed 13 years ago by danielluke (Daniel J. Luke)

py26-tkinter added in r74547

comment:20 Changed 13 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: newclosed

+no_tkinter incorporated into the main python26 port in r74548 (without a revbump)

Note: See TracTickets for help on using tickets.