Building on fedora3?

Hi all,

I wonder if anyone is using FedoraCore3. I'd been recently building matplotlib RPMs with my Fedora 2 destktop without any troubles (after patching distutils to ignore a multiple RPMs assertion). I just upgraded my desktop to Fedora 3, and now the build fails with:

root@...455...[matplotlib-0.70]# python setup.py build
running build
running build_py
running build_ext
building 'matplotlib.backends._gtkagg' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -D_GNU_SOURCE -fPIC -fPIC -I/usr/local/include -I/usr/include -Isrc -Iagg22/include -I. -I/usr/local/include -I/usr/include -I/usr/local/include/freetype2 -I/usr/include/freetype2 -Isrc/freetype2 -Iagg22/include/freetype2 -I./freetype2 -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/local/include -I/usr/include -I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/python2.3 -c src/_gtkagg.cpp -o build/temp.linux-i686-2.3/src/_gtkagg.o
In file included from /usr/include/python2.3/Python.h:8,
                  from /usr/include/pygtk-2.0/pygobject.h:5,
                  from src/_gtkagg.cpp:8:
/usr/include/python2.3/pyconfig.h:850:1: warning: "_POSIX_C_SOURCE" redefined
In file included from /usr/include/string.h:26,
                  from /usr/lib/gcc/i386-redhat-linux/3.4.2/../../../../include/c++/3.4.2/cstring:51,
                  from src/_gtkagg.cpp:1:
/usr/include/features.h:150:1: warning: this is the location of the previous definition
In file included from src/_gtkagg.cpp:8:
/usr/include/pygtk-2.0/pygobject.h:140: error: expected `,' or `...' before "typename"
/usr/include/pygtk-2.0/pygobject.h:147: error: expected `,' or `...' before "typename"
error: command 'gcc' failed with exit status 1

Does anyone have a hint of what may be going on here? I looked at the pygobject.h file, but nothing jumps to my eye as obviously wrong.

Any help would be much appreciated.

Cheers,

f

Happy New Year, Fernando!

Gee, I can't believe I can answer one of your questions :slight_smile:

/usr/include/pygtk-2.0/pygobject.h:140: error: expected `,' or `...' before "typename"
/usr/include/pygtk-2.0/pygobject.h:147: error: expected `,' or `...' before "typename"
error: command 'gcc' failed with exit status 1

It's a known typo in the referenced two lines in pygobject.h. Until a patch is released, manually change "typename" to "_typename"; it's just in the function prototype so the name doesn't matter.

Best of all, on FC3, 'python setup.py bdist_rpm' works great and generates a distributable RPM provided one is mindful of the dependency on a statically linked, architecture-specific ATLAS library.

Steve Walton

I just spent half a day on this. There should be an entry in the release
notes on this.

I found a reference to the problem here:

http://www.daa.com.au/pipermail/pygtk/2004-October/008826.html

I downloaded the latest version of pygobject.h and everything worked agains.

Vinjvinj

···

-----Original Message-----
From: matplotlib-users-admin@lists.sourceforge.net
[mailto:matplotlib-users-admin@lists.sourceforge.net] On Behalf Of Fernando
Perez
Sent: Monday, January 03, 2005 8:33 PM
To: matplotlib-users@lists.sourceforge.net
Subject: [Matplotlib-users] Building on fedora3?

Hi all,

I wonder if anyone is using FedoraCore3. I'd been recently building
matplotlib RPMs with my Fedora 2 destktop without any troubles (after
patching
distutils to ignore a multiple RPMs assertion). I just upgraded my desktop
to
Fedora 3, and now the build fails with:

root@...455...[matplotlib-0.70]# python setup.py build
running build
running build_py
running build_ext
building 'matplotlib.backends._gtkagg' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -m32 -march=i386
-mtune=pentium4 -D_GNU_SOURCE -fPIC -fPIC -I/usr/local/include
-I/usr/include
-Isrc -Iagg22/include -I. -I/usr/local/include -I/usr/include
-I/usr/local/include/freetype2 -I/usr/include/freetype2 -Isrc/freetype2
-Iagg22/include/freetype2 -I./freetype2 -I/usr/local/include/freetype2
-I/usr/include/freetype2 -I/usr/local/include -I/usr/include
-I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include

-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include
-I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/freetype2/config -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/python2.3 -c src/_gtkagg.cpp -o
build/temp.linux-i686-2.3/src/_gtkagg.o
In file included from /usr/include/python2.3/Python.h:8,
                  from /usr/include/pygtk-2.0/pygobject.h:5,
                  from src/_gtkagg.cpp:8:
/usr/include/python2.3/pyconfig.h:850:1: warning: "_POSIX_C_SOURCE"
redefined
In file included from /usr/include/string.h:26,
                  from
/usr/lib/gcc/i386-redhat-linux/3.4.2/../../../../include/c++/3.4.2/cstring:5
1,
                  from src/_gtkagg.cpp:1:
/usr/include/features.h:150:1: warning: this is the location of the previous

definition
In file included from src/_gtkagg.cpp:8:
/usr/include/pygtk-2.0/pygobject.h:140: error: expected `,' or `...' before
"typename"
/usr/include/pygtk-2.0/pygobject.h:147: error: expected `,' or `...' before
"typename"
error: command 'gcc' failed with exit status 1

Does anyone have a hint of what may be going on here? I looked at the
pygobject.h file, but nothing jumps to my eye as obviously wrong.

Any help would be much appreciated.

Cheers,

f

-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Stephen Walton wrote:

Happy New Year, Fernando!

Gee, I can't believe I can answer one of your questions :slight_smile:

Well, I'm happy to give you a chance to help :slight_smile:

/usr/include/pygtk-2.0/pygobject.h:140: error: expected `,' or `...' before "typename"
/usr/include/pygtk-2.0/pygobject.h:147: error: expected `,' or `...' before "typename"
error: command 'gcc' failed with exit status 1

It's a known typo in the referenced two lines in pygobject.h. Until a patch is released, manually change "typename" to "_typename"; it's just in the function prototype so the name doesn't matter.

Ah, many thanks! After fixing this, it all worked great, except for one confusing little accident I'll mention in case someone else has the same problem.

I was getting a 'pygtk present but import failed' message, which I couldn't understand. I modified setup.py to reraise the exception at that point, and it turned out to be a RuntimeError('could not open display') exception. Well, it happens that I do a lot of my sysadmin work using screen, so that I can reattach to a session from anywhere, or leave long-running compiles going. By default, screen blocks X11 (I need to learn how to fix this), so the gtk initialization was failing due to lack of access to my display, even though the library is all there. The fix was to run the bdist_rpm _outside_ of screen, but it might be worth changing the setup file so that this error does not crash the build. I'm not sure it should really be necessary to have a running X11 for the build, as long as all the necessary headers and libraries are present.

Anyway, thanks again (and also to Vineet) for the help. You saved me a lot of frustration.

Regards,

f

Fernando Perez wrote:

I was getting a 'pygtk present but import failed' message, which I couldn't understand. I modified setup.py to reraise the exception at that point, and it turned out to be a RuntimeError('could not open display') exception.

Yes, I noticed the same thing when I tried to build matplotlib through an SSH session which didn't have X forwarding enabled. I get the message "pygtk present but import failed
Using default library and include directories for Tcl and Tk because a Tk window failed to open. You may need to define DISPLAY for Tk to work so that setup can determine where your libraries are located." The code is in setupext.py starting at line 198:

    try:
        tk=Tkinter.Tk()
    except Tkinter.TclError:
        print "Using default library and include directories for Tcl and Tk because a"
        print "Tk window failed to open. You may need to define DISPLAY for Tk to work"
        print "so that setup can determine where your libraries are located."

The 'import gtk' at line 149 in setup.py also fails if DISPLAY is not set.