Bug 123318 - avahi 0.6.7 won't build w/o X connection (related to pygtk)
|
Bug#:
123318
|
Product: Gentoo Linux
|
Version: 2005.1
|
Platform: All
|
|
OS/Version: Linux
|
Status: REOPENED
|
Severity: normal
|
Priority: P2
|
|
Resolution:
|
Assigned To: swegener@gentoo.org
|
Reported By: cbm@m.fsf.org
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: avahi 0.6.7 won't build w/o X connection (related to pygtk)
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2006-02-18 14:37 0000
|
When I tried to emerge avahi while sshed into my box, I got the following:
[snip]
checking for python extension module directory...
${exec_prefix}/lib/python2.4/site-packages
checking for python module gtk... no
configure: error: Could not find Python module gtk
!!! Please attach the following file when filing a report to bugs.gentoo.org:
!!! /var/tmp/portage/avahi-0.6.4/work/avahi-0.6.4/config.log
!!! ERROR: net-dns/avahi-0.6.4 failed.
Call stack:
ebuild.sh, line 1894: Called dyn_compile
ebuild.sh, line 941: Called src_compile
avahi-0.6.4.ebuild, line 84: Called econf 'compile' '--localstatedir=/var'
'--with-distro=gentoo' '--disable-qt4' '--disable-python-dbus'
'--disable-pygtk' '--disable-xmltoman' '--disable-monodoc'
'--disable-compat-libdns_sd' '--disable-compat-howl' '--disable-doxygen-doc'
'--enable-mono' '--enable-dbus' '--enable-python' '--enable-gtk' '--enable-qt3'
'--enable-glib' '--enable-gdbm' '--enable-python-dbus'
!!! econf failed
!!! If you need support, post the topmost build error, and the call stack if
relevant.
But at a local terminal, there was no problem:
[snip]
checking for python extension module directory...
${exec_prefix}/lib/python2.4/site-packages
checking for python module gtk... yes
checking for python module dbus... yes
checking for python module socket... yes
checking for python module gdbm... yes
checking for mcs... /usr/bin/mcs
checking for gacutil... /usr/bin/gacutil
[snip]
This is on my ~x86 box with emerge info:
Portage 2.1_pre4-r1 (default-linux/x86/2005.0, gcc-3.4.5, glibc-2.3.6-r2,
2.6.15.2 i686)
=================================================================
System uname: 2.6.15.2 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.12.0_pre16
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[enabled]
dev-lang/python: 2.4.2-r1
sys-apps/sandbox: 1.2.17
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1-r1
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.11-r3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env
/usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig collision-protection distcc distlocks sandbox sfperms
strict userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.mirrors.easynews.com/linux/gentoo/
http://gentoo.chem.wisc.edu/gentoo/ ftp://gentoo.mirrors.tds.net/gentoo
ftp://194.117.143.71/mirrors/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/ag-portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow X Xaw3d a52 aac aalib acpi alsa apache2 apm arts audiofile avi
berkdb bitmap-fonts bzip2 cairo cdr cjk crypt cups curl dbus dga dts dv dvb dvd
dvdr eds emacs emboss encode esd exif expat f77 faad fbcon ffmpeg fftw flac
fortran gcj gd gdbm gif gimpprint ginac gmp gnome gnustep gnutls gphoto2 gpm
gstreamer gtk gtk2 gtkhtml hal idn imagemagick imlib jack java jpeg lcms ldap
leim libcaca libg++ libwww lirc live mad matroska mikmod mmx mng mono motif
mozilla mp3 mpeg mysql nas ncurses nls nptl objc offensive ogg oggvorbis openal
opengl oss pam pdf pdflib perl plotutils png ppds python qhull qt quicktime
radeon readline rtc samba scanner sdk sdl slang speex spell sqlite sse ssl svg
tcltk tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts
unicode usb v4l v4l2 vcd vorbis wmf wxwindows xinerama xml xml2 xmms xosd
xprint xv xvid zlib elibc_glibc kernel_linux userland_GNU video_cards_ati"
Unset: ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LANG, LC_ALL, LDFLAGS, LINGUAS
If I unset DISPLAY and try to compile all is good, and the configure code is
clean. It checks if the module raised an ImportError. That there's no display
is completely ignored. What does:
python -c 'import gtk'
print when you're logged in remotely?
That command normally exits silently.
Unless I unset DISPLAY:
$ export DISPLAY=""
$ python -c 'import gtk'
Traceback (most recent call last):
File "<string>", line 1, in ?
File "/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 38, in
? from _gtk import *
RuntimeError: could not open display
which seems reasonable.
More info: when I ssh in I have X11 forwarding turned on (for example, I can
open an xterm).
Emerging the new avahi-0.6.7, I get:
checking for python extension module directory...
${exec_prefix}/lib/python2.4/s ite-packages
checking for python module gtk... X11 connection rejected because of wrong
authe ntication.
no
configure: error: Could not find Python module gtk
I think this has something to do with portage running as user portage instead
of root (root has the correct X-auth stuff to open windows over the ssh
connection but user portage doesn't). Thats my guess anyway.
Yes, that might be a problem, but configure only checks for ImportError's and
not for other weirdness. Normally it should work, even if gtk fails to
establish a connection to the X server.
Seems to me a quick fix would be to just put a DISPLAY="" somewhere in the
ebuild. I suppose there is a deeper issue here though.
Nope, no way, that is guly.
This problem seems to be known to the avahi developers. Please bear with me
until I have further information from them. :)
I encountered the same gtk configure error trying to emerge avahi-0.6.9, and I
also came across another error in compilation which looks like it is related to
the configure error. In both cases the workaround was to emerge in an sux shell
rather than an su shell--a variation on the workaround used by the original bug
reporter.
The second error gave the following output:
Making all in avahi-sharp
make[2]: Entering directory
`/var/tmp/portage/avahi-0.6.9/work/avahi-0.6.9/avahi-sharp'
/usr/bin/mdassembler --out avahi-sharp-docs --ecma ./en
mcs -keyfile:./avahi.snk -target:library -out:avahi-sharp.dll -debug
./AddressResolver.cs ./AssemblyInfo.cs ./BrowserBase.cs ./Client.cs
./ClientException.cs ./DomainBrowser.cs ./EntryGroup.cs ./HostNameResolver.cs
./RecordBrowser.cs ./ResolverBase.cs ./ServiceBrowser.cs ./ServiceResolver.cs
./ServiceTypeBrowser.cs ./Utility.cs -r:Mono.Posix
./gencfg.sh ../avahi-client/libavahi-client.la \
../avahi-common/libavahi-common.la \
../avahi-glib/libavahi-glib.la < avahi-sharp.dll.config.in >
avahi-sharp.dll.config
./gencfg.sh: line 7: ../avahi-glib/libavahi-glib.la: No such file or directory
make[2]: *** [avahi-sharp.dll.config] Error 1
make[2]: *** Waiting for unfinished jobs....
Processing namespace Avahi
Processing input file AddressResolver.xml
Processing input file BrowserBase.xml
Processing input file Client.xml
Processing input file ClientException.xml
Processing input file ClientFlags.xml
Processing input file ClientState.xml
Processing input file ClientStateArgs.xml
Processing input file ClientStateHandler.xml
Processing input file DomainBrowser.xml
Processing input file DomainBrowserType.xml
Processing input file DomainInfo.xml
Processing input file DomainInfoArgs.xml
Processing input file DomainInfoHandler.xml
Processing input file EntryGroup.xml
Processing input file EntryGroupState.xml
Processing input file EntryGroupStateArgs.xml
Processing input file EntryGroupStateHandler.xml
Processing input file ErrorCode.xml
Processing input file ErrorCodeArgs.xml
Processing input file ErrorCodeHandler.xml
Processing input file HostAddressArgs.xml
Processing input file HostAddressHandler.xml
Processing input file HostNameResolver.xml
Processing input file LookupFlags.xml
Processing input file LookupResultFlags.xml
Processing input file Protocol.xml
Processing input file PublishFlags.xml
Processing input file RecordBrowser.xml
Processing input file RecordClass.xml
Processing input file RecordInfo.xml
Processing input file RecordInfoArgs.xml
Processing input file RecordInfoHandler.xml
Processing input file RecordType.xml
Processing input file ResolverBase.xml
Processing input file ServiceBrowser.xml
Processing input file ServiceInfo.xml
Processing input file ServiceInfoArgs.xml
Processing input file ServiceInfoHandler.xml
Processing input file ServiceResolver.xml
Processing input file ServiceTypeBrowser.xml
Processing input file ServiceTypeInfo.xml
Processing input file ServiceTypeInfoArgs.xml
Processing input file ServiceTypeInfoHandler.xml
Have 43 elements in the Avahi
make[2]: Leaving directory
`/var/tmp/portage/avahi-0.6.9/work/avahi-0.6.9/avahi-sharp'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/avahi-0.6.9/work/avahi-0.6.9'
make: *** [all] Error 2
!!! ERROR: net-dns/avahi-0.6.9 failed.
!!! Function src_compile, Line 100, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.
As I said, the emerge was succesful when I did it in an sux shell. The only
thing different apart from that was that the successful build was USE=gtk,
while the unsuccesful one was USE=-gtk (in order to get around the earlier
configure error).
swegener: any progress?
One possible workaround is to set XAUTHORITY=/root/.Xauthority.
Note:
$ ssh localhost env XAUTHORITY= xclock
X11 connection rejected because of wrong authentication.
X connection to localhost:10.0 broken (explicit kill or server shutdown).
$ env XAUTHORITY= xclock
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0
i.e. if authentication is not available when connecting to a local X server the
application can recover, but when connecting via a ssh -X tunnel Xlib crashes
the application.
Nothing new, been busy with private stuff and still can't reproduce it here.
The code itself is sane and behaves well for me while setting XAUTHORITY to
/dev/null for example.
Have you checked tried reproducing it under a ssh X tunnel?
$ env XAUTHORITY=/dev/null python -c "'import gtk'"
$ ssh -X localhost env XAUTHORITY=/dev/null python -c "'import gtk'"
X11 connection rejected because of wrong authentication.
The application '-c' lost its connection to the display localhost:10.0;
most likely the X server was shut down or you killed/destroyed
the application.
I cannot test the other bug without avahi being installed. What is the correct
workaround? Why is the workaround not in the ebuild until the upstream bug has
been resolved?
Can we please get this fixed?
I added the unset DISPLAY workaround. The problem is in gtk itself, which
forcibly termintates the application in certain cases.
I tried the fix suggested in comment#8
XAUTHORITY=/root/.Xauthority
to no avail. The best fix is to emerge through SSH. That worked like a charm.
*** Bug 147476 has been marked as a duplicate of this bug. ***
This exact bug is affecting me with avahi 0.6.15 which is being emerged through
ssh without X forwarding. Has any stable workaround been determined?
Shrug; re-emerging dev-python/pygtk fixed the issue for me. No idea about this.
*** Bug 177895 has been marked as a duplicate of this bug. ***
Same issue in 0.6.19 here.
Hum, false report,sorry: my issue in 0.6.19 was caused by #177866 bug for
dev-lang/python, re-emerging it with threads flag on solved the issue.
*** This bug has been marked as a duplicate of bug 177866 ***
It didn't happen when I installed 0.6.19 but does happen with 0.6.20.
*** Bug 187260 has been marked as a duplicate of this bug. ***
*** Bug 189695 has been marked as a duplicate of this bug. ***
*** Bug 190419 has been marked as a duplicate of this bug. ***
I can confirm that reemerging pycairo did the fix for me. However, I still
believe an interference of vector graphics library with a network dicovery
service is beyond any sanity and should be pursued upstream, preferably into
pygtk.
nostris ~ # python -c 'import gtk'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib64/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 48,
in <module>
from gtk import _gtk
ImportError: /usr/lib64/python2.5/site-packages/gtk-2.0/gtk/_gtk.so: undefined
symbol: PyUnicodeUCS4_DecodeUTF8
*** Bug 208852 has been marked as a duplicate of this bug. ***
I had problems with Avahi.
emerge pygobject pycairo
solved my problems
Any progress on this one? I'm currently doing a chroot for a laptop where
ubuntu decided to die and I'm stuck here. Any workaround?
Thanks,
Norberto
Workaround does not fix my avahi problem.
I try to update net-dns/avahi from 0.6.19-r2 to 0.6.22-r1.
pycairo, pygobject, pygtk are up to date.
my emerge --info:
Portage 2.1.5_rc6 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.7-r1,
2.6.22-gentoo-r5 i686)
=================================================================
System uname: 2.6.22-gentoo-r5 i686 Mobile Intel(R) Pentium(R) III CPU - M
1200MHz
Timestamp of tree: Fri, 09 May 2008 15:45:01 +0000
app-shells/bash: 3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python: 2.4.4-r6, 2.5.1-r5
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox: 1.2.18.1-r2
sys-devel/autoconf: 2.13, 2.61-r1
sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils: 2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 1.5.26
virtual/os-headers: 2.6.24
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/config /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf
/etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c
/etc/udev/rules.d"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks parallel-fetch sandbox sfperms strict unmerge-orphans
userfetch"
GENTOO_MIRRORS="http://gentoo.gg3.net/ ftp://gg3.net/pub/linux/gentoo/
ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO http://gentoo.channelx.biz/
http://ftp.jaist.ac.jp/pub/Linux/Gentoo/
ftp://ftp.jaist.ac.jp/pub/Linux/Gentoo/ http://ftp.iij.ad.jp/pub/linux/gentoo/
ftp://ftp.iij.ad.jp/pub/linux/gentoo/ "
LANG="ja_JP.UTF-8"
LC_ALL="ja_JP.UTF-8"
LDFLAGS=""
LINGUAS="ja"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --stats --timeout=180 --exclude=/distfiles
--exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa apache2 arts avahi bash-completion berkdb cdr
chasen cjk cli cracklib crypt cups dbus doc dri dvd emacs encode examples
fastcgi ffmpeg flac fortran gdbm gif glitz gnome gpm gtk hal iconv immqt ipod
ipv6 isdnlog jpeg kakasi kde mecab midi mmx modperl mozdevelop mp4 mpeg mudflap
mysql ncurses nls nptl nptlonly ogg openmp oss pam pcre pdf perl png pppd
python qt qt3 qt4 readline real reflection ruby session sound source spl sqlite
ssl startup-notification svg symlink tcpd truetype unicode v4l vorbis x264 x86
xorg xscreensaver xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem
bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801
hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx
via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop
empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi
null plug rate route share shm softvol" APACHE2_MODULES="actions alias
auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file
authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user
autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires
ext_filter file_cache filter headers ident imagemap include info log_config
logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer
proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir
usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse"
KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001
mtxorb ncurses text" LINGUAS="ja" USERLAND="GNU" VIDEO_CARDS="i810"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS,
PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I was trying to emerge avahi and it was failing during the configure portion of
the install with the "cant find gtk module" error, so decided to try
configuring the package by hand, it turned out that it was actually failing on
the next check which was the python dbus check. After emerging dbus-python and
monodoc the ./configure worked fine, so tried re-emeging avahi and it worked
fine. I am using avahi-0.6.22-r1. Hopefully thats useful to somebody
I solved the issue for avahi-0.6.22-r1 by remerging pygtk first and pycairo
afterwards. The DISPLAY seems to be no problem, at least for me. Perhaps it
helps out.
From what I can tell this is kernel related, and use variables that are used in
your make.conf.
I am used "genkernel all", and my make.conf has the following:
use="doc examples tetex opengl cdr glibc Locales dbus gdbmalsa python gnome gdm
kde xgl -dli -selinux qt3 -qt3 -arts X hal avahi"
Now I have installed quite a few packages in the mean time from portage, but
ultimately speaking I kept receiving the same errors relating with python until
I make sure that:
1: I recompiled the kernel with the "genkernel all"
2: Sifted through /etc/init.d, and made a symlink into /etc/runlevels/default
for dbus.
3: Rebooted into the new kernel after making sure /boot/grub/grub.conf had the
right info in it.
It still have direct rendering, and honestly the installation of packages from
portage has become much easier, and seemly faster since the kernel rebuild (of
course though! Now I'm not receiving python errors!!).
-- I assume dbus needs to be started as a service. After I got pyGTK to be
recognized as a module [installed (without gui)], I started to get the message
of dbus-python not being installed as a module, which I found rather odd -
regardless I did a few things such as recompiling pygtk, pycairo, cairo,
pygobject, dbus-python, dbus, and so fourth.... as well as "genkernel all"
before I rebooted.
Figured I could drop in my 2 cents.
genkernel is a nifty lil tool....
When I emerge pygtk (using python 2.6) it has the message
* Unable to establish /usr/lib64/python2.6/site-packages/pygtk.py symlink
* Unable to establish /usr/lib64/python2.6/site-packages/pygtk.pth symlink
There are simlinks in the /usr/lib64/python2.5/site-packages/ directory, but
the file they simlink to is missing as well.