Building TkAgg backend without a running X server [revisited]

Hi,

Is there any chance that the patch I submitted on 31 October on this
list could still make it into 0.91.0?

On an aside, what is the best way to submit patches to mpl? Via the
bug-tracker, or as attached files or direct in-line in mpl-devel
mails?

To refresh your memory on the patch:

I've reworked the Tcl/Tk checking code in setupext.py (see attached
patch). It is now possible to build matplotlib with Tk support without
requiring a running X server. This is useful for doing autobuilds
(e.g. as done by Debian) and for building a package on one machine to
be installed and used on another.

This seems to be an old issue... (see matplotlib-devel, "building
matplotlib without X-server connection," 11 Nov 2004)

The patch also fixes a potential hang, which happens when I try to
build the latest matplotlib on Debian Etch with Python 2.4, on a
system with libtk8.4-dev installed but no running X server. The build
should have continued without TkAgg support, but it hangs. The hang
occurs because the Tcl/Tk checking code calls Tkinter.Tk() multiple
times, which is not a good idea. In fact, just running the following
snippet hangs the interpreter in this scenario:

import Tkinter
tk = Tkinter.Tk()
tk = Tkinter.Tk()

The patch applies to setupext.py in revision r4501. I checked it with
matplotlib r4064, using Python 2.4 on Debian Etch, and Python 2.5 on
Mac OS X 10.4.10. It hasn't been checked on Python 2.3 or on
Windows.

Regards,
Ludwig

setupext.py.patch (11 KB)

I would like to register my strong support for this patch. The bug in
question also prevents one from doing "python setup.py bdist_rpm" on
rpm-based systems. I recently tried to debug this myself and got as far
as identifying exactly the problem Ludwig describes, but ran out of
time/energy before coming up with the fix. I am very grateful to Ludwig
for having fixed the problem. I hope his patch will go in soon.

--Jim Amundson

···

On Thu, 29 Nov 2007 18:13:39 +0200 Ludwig Schwardt <ludwig.schwardt@...149...> wrote:

I've reworked the Tcl/Tk checking code in setupext.py (see attached
patch). It is now possible to build matplotlib with Tk support without
requiring a running X server. This is useful for doing autobuilds
(e.g. as done by Debian) and for building a package on one machine to
be installed and used on another.

This seems to be an old issue... (see matplotlib-devel, "building
matplotlib without X-server connection," 11 Nov 2004)

This seems like a good idea to me, and it works for me (I can build mpl with the TkAgg extension from a console with X completely shutdown on RHEL4...).

John -- does the timing for this work with you release plans? (It probably needs some testing in a bunch of different environments.) If so, I'm happy to commit this.

Cheers,
Mike

James Amundson wrote:

···

On Thu, 29 Nov 2007 18:13:39 +0200 > Ludwig Schwardt <ludwig.schwardt@...149...> wrote:

I've reworked the Tcl/Tk checking code in setupext.py (see attached
patch). It is now possible to build matplotlib with Tk support without
requiring a running X server. This is useful for doing autobuilds
(e.g. as done by Debian) and for building a package on one machine to
be installed and used on another.

This seems to be an old issue... (see matplotlib-devel, "building
matplotlib without X-server connection," 11 Nov 2004)

I would like to register my strong support for this patch. The bug in
question also prevents one from doing "python setup.py bdist_rpm" on
rpm-based systems. I recently tried to debug this myself and got as far
as identifying exactly the problem Ludwig describes, but ran out of
time/energy before coming up with the fix. I am very grateful to Ludwig
for having fixed the problem. I hope his patch will go in soon.

--Jim Amundson

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

Hi,

Is there any chance that the patch I submitted on 31 October on this
list could still make it into 0.91.0?

91.0 is already out, but I just committed it so it will make it in for 91.1.

On an aside, what is the best way to submit patches to mpl? Via the
bug-tracker, or as attached files or direct in-line in mpl-devel
mails?

I advise posting here first -- more developers read this list so it is
more likely to get prompt attention. If it doesn't, put it up on the
sf site and send a reminder here with a link to the patch. That way
it will be there when some developer goes to catch up on patches.

Thanks,
JDH\

···

On Nov 29, 2007 10:13 AM, Ludwig Schwardt <ludwig.schwardt@...149...> wrote:

Ah! I see you just applied it yourself, John.

Consider the question answered!

(And again, thanks for the patch, Ludwig.)

Cheers,
Mike

Michael Droettboom wrote:

···

This seems like a good idea to me, and it works for me (I can build mpl with the TkAgg extension from a console with X completely shutdown on RHEL4...).

John -- does the timing for this work with you release plans? (It probably needs some testing in a bunch of different environments.) If so, I'm happy to commit this.

Cheers,
Mike

James Amundson wrote:

On Thu, 29 Nov 2007 18:13:39 +0200 >> Ludwig Schwardt <ludwig.schwardt@...149...> wrote:

I've reworked the Tcl/Tk checking code in setupext.py (see attached
patch). It is now possible to build matplotlib with Tk support without
requiring a running X server. This is useful for doing autobuilds
(e.g. as done by Debian) and for building a package on one machine to
be installed and used on another.

This seems to be an old issue... (see matplotlib-devel, "building
matplotlib without X-server connection," 11 Nov 2004)

I would like to register my strong support for this patch. The bug in
question also prevents one from doing "python setup.py bdist_rpm" on
rpm-based systems. I recently tried to debug this myself and got as far
as identifying exactly the problem Ludwig describes, but ran out of
time/energy before coming up with the fix. I am very grateful to Ludwig
for having fixed the problem. I hope his patch will go in soon.

--Jim Amundson

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

This seems like a good idea to me, and it works for me (I can build mpl
with the TkAgg extension from a console with X completely shutdown on
RHEL4...).

I tested in my normal X11 enabled solaris build environment and in a
remote no X linux session and it went through fine. I can test on OX
X tonight.

John -- does the timing for this work with you release plans?

Yep -- since we probably will be waiting until next week to get 91.1
out, this will give us ample opportunity to hit obvious problems with
this patch.

JDH

···

On Nov 29, 2007 2:14 PM, Michael Droettboom <mdroe@...31...> wrote: