Ticket #26387 (closed defect: fixed)
xorg-xcb-proto/python dependency loop via tk/libX11
| Reported by: | spyro@… | Owned by: | mcalhoun@… |
|---|---|---|---|
| Priority: | High | Milestone: | |
| Component: | ports | Version: | 1.9.1 |
| Keywords: | Cc: | jeremyhu@…, tracey@…, raimue@…, dports@…, 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
Change History
comment:1 Changed 5 years ago by jeremyhu@…
- Owner changed from macports-tickets@… to blb@…
- Keywords haspatch removed
- Port changed from xorg-xcb-proto to python
- Cc mcalhoun@… added
We can't really do that because xorg-xcb-proto builds python modules.
comment:3 Changed 5 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 5 years ago by jeremyhu@…
No. It's not just used to build. xorg-xcb-proto installs python modules.
comment:5 follow-up: ↓ 10 Changed 5 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:
- To use port install python26 +no_tkinter
- Then install xorg-xcb-proto normally
- 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:8 Changed 5 years ago by jmr@…
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:10 in reply to: ↑ 5 Changed 5 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:
- To use port install python26 +no_tkinter
- Then install xorg-xcb-proto normally
- 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 follow-up: ↓ 13 Changed 5 years ago by dluke@…
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 ; follow-up: ↓ 15 Changed 5 years ago by raimue@…
- 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 5 years ago by jeremyhu@…
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 5 years ago by dluke@…
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:17 Changed 4 years ago by dluke@…
... 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 4 years ago by jmr@…
Nope. Please do.
comment:19 Changed 4 years ago by dluke@…
py26-tkinter added in r74547
comment:20 Changed 4 years ago by dluke@…
- Status changed from new to closed
- Resolution set to fixed
+no_tkinter incorporated into the main python26 port in r74548 (without a revbump)

