Summary: | dev-python/pyxml is needed by iso-codes (and others) but this is not reflected in ebuild | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Seymore <morters> |
Component: | [OLD] Development | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | agaffney, bugs, gentoo, java, pva, python, tallgirl |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Seymore
2008-07-28 14:40:41 UTC
I doubt dev-java/commons-lang depends on pyxml. May it be that you updated from Python 2.4 to 2.5, but missed to run python-updater, as instructed by the post-install message? (In reply to comment #1) Python updater was actually my first guess, but I did run it. Then downloaded python-eselect (or whatsitsname) and actively selected python-2.5. Then proceded to uninstall python-2.4. I also did several revdep-rebuilds. Also, pyxml wasn't outdated, it was simply not there. I just installed dev-java/commons-lang and now it did compile. That said, the error message got 4 or so hits on google, so chances are this is not a very common problem. iso-codes-1.5 comes with the following information
ChangeLog:821: * Allow iso-codes to build without pyxml. Patch thanks to
ChangeLog-822- James Henstridge. Closes: #331357, #328152.
seems that wasn't all - or do we speak about the iso-codes-0.58 ebuild?
> I just installed dev-java/commons-lang and now it did compile.
You may be irritated by error message being repeated at the end of the emerge run. This particular piece of software doesn't use python at all.
my amd64 box doesn't have pyxml installed but iso-codes compiled well. You message refers to a missing Sax parser but the file in the message belongs to python. I might be mistaken about commons-lang. But I did "emerge -C pyxml" and "emerge iso-codes" and then iso-codes failed. After installing pyxml, iso-codes compiled. So there is some relationship between the two. the ebuild is for app-text/iso-codes-1.5 My guess is that I dont need pyxml *in particular* but that I need some package for taking care of the same thing pyxml does. All that xml stuff is in python 2.5. It's possible that something that was an external package in 2.4 but included in 2.5 got unmerged (portage was doing that briefly). Could you re-emerge python 2.5 and see if that fixes your problem? The default xml parser is pyexpat, which comes with python, unless the "build" use flag is used, which is reserved for bootstrapping purposes exclusively and entirely unsupported. Unless there's a bug in the expat detection during the Python build, this likely is a plain invalid PEBKAC issue. Is this an issue with the Gentoo release media or are you building the stages yourself? To clarify about the java packages, python xml code is used in dev-java/javatoolkit used in the java eclasses, more info in bug 236377. As far as I'm concerned, the problem is solved. I have had no more problems with iso-codes or pyxml. If you guys can't find anything obviously wrong with ebuilds/dependencies, I'll bet it's just my twisted system who's to blame. Therefore, I say we just put this bug as "resolved", until at least one more encounters this "bug". (If this is really nagging someone, however, I'll be happy to run tests and such on my box.) Seymore, it would be just nice, if you'd answer my above question and also tell if /usr/lib/python2.5/lib-dynload/pyexpat.so exists on your system. (In reply to comment #10) > Seymore, it would be just nice, if you'd answer my above question and also tell > if /usr/lib/python2.5/lib-dynload/pyexpat.so exists on your system. > Not sure about what Seymore case is, but I did update from 2.4 to 2.5, ran python-updates and eselect-python, and pyexpat.so is NOT in the system. Seymore kind of answered that on Comment # 2 2008-07-28 15:24:06, mentioning that pyxml just wasn't there. Of course, as soon as pyxml was installed, the issue got addressed, since this installs pyexpat.so. I also saw iso-codes fail to build on a fresh install from media. The version of dev-libs/expat that was on the system was 1.95.8, but emerge'ing expat updated it to 2.0.1. So, I'm thinking there is a missing dependency that just so happens to be satisfied before people miss it. But from a clean install, iso-codes will fail because pyxml hasn't been installed. Once pyxml has been installed, iso-codes installs successfully. One observation of mine is that from a fresh stage3 install, "emerge gnome" finds a number of missing dependencies. Needing to emerge pyxml before emerge'ing gnome is just one of the missing dependencies. Summing up, either one of python-2.5 or pyxml provides the xml parsing modules. I think I'm just going to put a || ( >=dev-lang/python-2.5 dev-python/pyxml ) in DEPEND and be done with it as it has been said that missing pyexpat in python 2.5 is a result of using build USE flag. @herd what say you ? Yes, USE=build in installed packages beyond bootstrap is wrong and unsupported as far as we care It looks like this problem stems from the 'expat' USE that was just recently (~36 hours ago) to the python ebuild. It's disabled by default, so anyone emerging python isn't going to have expat support. Perhaps this should be IUSE="+expat" instead. CCing vapier since he made that change to the python ebuild. CCing actual maintainers of python. It sounds like this change wasn't agreed to by them as they'd surely know the affects? vapier already default enabled it. Do we need to start built_with_use checking now, because he doesn't like USE=build, when expat support should only be avoided for bootstraps I think? I'm not quite sure what the current discussion is about. However, if the comment in #15 says the OP's (ie. my) problem stems from something that happened 36 hours ago, that is not so. This thread goes back to the end of July. Apologies to you all for not answering Carsten Lohrke's question: 1. I do not have the "build" flag enabled in make.conf or /etc/portage/package.use I did not know of such a flag, and I cant remember ever removing one. 2. I was using a release media (medium?), though which I cannot say. Probably the one that was available around july. it's always going to be an issue with USE=build and USE=expat. fix the packages in question to have proper USE checks. python should have USE=build dropped anyways, but that's a different issue. leio: and you might want to get your information straight rather than make random conjectures about things you're not knowledgeable about I guess we should start with getting portage to check for USE=expat on python for glsa.py to work... Unlike USE=expat, that sometimes selects between libxml2 and expat, USE=build should never be enabled after bootstrap. USE=-expat is a completely valid global configuration when the user prefers libxml2 or the like. The correct USE flag here to use is either none (always enable) or IUSE=xml in my opinion. Of course when that gets disabled, breakage ensues too, potential breakages we'd like to know before or shortly after the change for all affected packages or teams, instead of having to find out the hard way long afterwards when damage is not minimal anymore. But I guess this isn't a perfect world... It is also customary to mention in the ChangeLog on whose authority a non-maintainer commit is done when it's a non-trivial change (like a change that causes breakages for stuff that didn't need to built_with_use check before but now needs to). As for the original bugs, perhaps expat-1.9x to expat-2 made xml module not work for a while because the ABI broke and stuff using expat needed rebuilds with revdep-rebuild? <crazy thought> What if we add a SLOTTED version of Python or just another package for python, like python-embedded-2.5.2, python-livecd-2.5.2 or python-minimal-2.5.2 for this cases? </crazy thought> What I mean is, as python-2.5 integrated a lot of stuff into it from python-2.4 like ElementTree, pySqlite and ctypes (to name some) some new packages may assume that python already provides those elements and we can have tons of missing deps or namespaces changes leading to apps usage errors. This way, people needing a minimal python for whatever reason can use the version freely without ever wondering if a small change on an ebuild may break portage. Another thing, please, read Python Project's documentation to properly make changes to dev-lang/python ebuilds. We found out about the USE flag change cause some users starter to have issues with cElementTree not working after a Python upgrade. Best regards, (In reply to comment #23) > <crazy thought> > What if we add a SLOTTED version of Python or just another package for > python, like python-embedded-2.5.2, python-livecd-2.5.2 or python-minimal-2.5.2 > for this cases? > </crazy thought> Here's another crazy thought; how about USE=minimal? :p Just reporting I had the same problem. On a seriously outdated system I was/am updating, iso-codes failed in the same way as the original bug. It installed without problem after first installing pyxml. (so my problem is solved) Some more info I see might help: I do not have /usr/lib/python2.5/lib-dynload/pyexpat.so even after installing pyxml. I've done both python-update and revdep-rebuild. my python: [ebuild R ] dev-lang/python-2.5.2-r7 USE="berkdb gdbm ipv6 ncurses readline sqlite ssl threads -build -doc -examples -tk -ucs2 -wininst emerge --info ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Portage 2.1.6.4 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.5-r2, 2.6.20-gentoo-r10 i686) ================================================================= System uname: Linux-2.6.20-gentoo-r10-i686-AMD_Athlon-tm-_64_Processor_3500+-with-glibc2.0 Timestamp of tree: Mon, 12 Jan 2009 10:05:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.6-r1 dev-lang/python: 2.3.5-r3, 2.4.4-r4, 2.5.2-r7 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.9-r2 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" 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/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ ftp://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j7" 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" USE="X acl acpi berkdb bluetooth branding bzip2 cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif gpm gstreamer hal iconv ipv6 isdnlog ithreads jpeg ldap libnotify mad midi mikmod mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png ppds pppd python qt qt3 qt3support qt4 quicktime readline reflection sdl session spell spl ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis win32codecs x86 xml xorg xulrunner xv 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 mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="radeon vga vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iso-codes-3.3 failed for me in the same way and I installed pyxml (oneshot) and then I was able to compile iso-codes. $ emerge --info WARNING: One or more repositories have missing repo_name entries: /opt/portage/profiles/repo_name NOTE: Each repo_name entry should be a plain text file containing a unique name for the repository on the first line. Portage 2.2_rc22 (default/linux/x86/2008.0, gcc-4.3.2, glibc-2.9_p20081201-r1, 2.6.24-gentoo-r4-cujo-gcc4.3 i686) ================================================================= System uname: Linux-2.6.24-gentoo-r4-cujo-gcc4.3-i686-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-glibc2.0 Timestamp of tree: Sat, 17 Jan 2009 02:45:01 +0000 app-shells/bash: 3.2_p48 dev-java/java-config: 1.3.7-r1, 2.1.6-r1 dev-lang/python: 2.4.4-r13, 2.5.2-r8 dev-python/pycrypto: 2.0.1-r6 dev-util/cmake: 2.6.2 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.4.1-r1 sys-apps/sandbox: 1.3.2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.19 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv" GENTOO_MIRRORS="http://gentoo.mirrors.tds.net/gentoo http://mirror.espri.arizona.edu/gentoo/ http://gentoo.mirrors.easynews.com/linux/gentoo/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j3" 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="/opt/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X Xaw3d a52 aac accessibility acl acpi adns alsa ao audiofile bash-completion bzip2 cairo caps cddb cdr cli crypt curl dbus dga dio directfb doc dri dts dv dvb dvd dvdr dvdread encode exif fbcon ffmpeg fftw firefox flac freetds gd geoip gif gpm hardened ieee1394 innodb ipod ipv6 isdnlog java javascript jpeg jpeg2k kde kdeenablefinal kdexdeltas lirc lm_sensors logrotate mad memlimit midi mmap mmx mp3 mpeg mplayer mudflap mysql mysqli nis nls nptl nptlonly nsplugin odbc offensive ogg opengl openmp pam pcntl png posix pppd qt3 qt4 quicktime readline reflection samba sasl sharedmem sndfile sockets sox sqlite sqlite3 sse sse2 ssl svg svga sysfs sysvipc theora threads tiff truetype unicode usb v4l vorbis win32codecs wxwindows x264 x86 xine xinerama xorg xv xvid xvmc zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anonauthn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif 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" USERLAND="GNU" VIDEO_CARDS="dummy fbdev nv nvidia vga vmware" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS hopefully fixed in 3.5.1. Please reopen if it's not the case. I wasn't able to compile app-text/iso-codes-3.5.1 until I emerged dev-lang/python-2.5.4-r2 with USE="xml". You might want to check for that use flag; I don't have pyxml installed. Please reopen. yeah somebody changed it recently and didn't check what it was breaking. Maybe like this: Index: iso-codes-3.5.1.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/app-text/iso-codes/iso-codes-3.5.1.ebuild,v retrieving revision 1.1 diff -u -p -r1.1 iso-codes-3.5.1.ebuild --- iso-codes-3.5.1.ebuild 18 Jan 2009 21:53:13 -0000 1.1 +++ iso-codes-3.5.1.ebuild 31 Jan 2009 20:35:33 -0000 @@ -18,7 +18,8 @@ IUSE="" RDEPEND="" DEPEND="sys-devel/gettext || ( - >=dev-lang/python-2.3[-build] + dev-lang/python:2.5[xml] + dev-lang/python:2.4[-build] dev-python/pyxml )" src_unpack() { 2.3 isn't in the tree anymore, and I have no clue what we'd need to require for 2.6. LC_ALL=C ./iso639tab.py iso_639.xml > iso_639.tab Traceback (most recent call last): File "./iso639tab.py", line 70, in <module> p = make_parser() File "/usr/lib64/python2.5/xml/sax/__init__.py", line 93, in make_parser raise SAXReaderNotAvailable("No parsers found", None) xml.sax._exceptions.SAXReaderNotAvailable: No parsers found make[2]: *** [iso_639.tab] Error 1 make[2]: Leaving directory `/var/tmp/portage/app-text/iso-codes-3.5.1/work/iso-codes-3.5.1/iso_639' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/app-text/iso-codes-3.5.1/work/iso-codes-3.5.1/iso_639' make: *** [all-recursive] Error 1 * * ERROR: app-text/iso-codes-3.5.1 failed. So if neither python[xml]or pyxml are installed things go pear-shaped. +*iso-codes-3.5.1-r1 (03 Feb 2009) + + 03 Feb 2009; Patrick Lauer <patrick@gentoo.org> + +iso-codes-3.5.1-r1.ebuild: + Small dep fix. Closes #233166 @patrick, why the r1 ? it's a _dep_ fix only. Plus the change you did is afaik undefined because each version of python in tree as a variation the following use flags build, xml or expat. A simple egrep "USE" *.ebuild |egrep --color "xml|expat|build" will convince you that there is no uniformity and hence we cannot use USE deps properly, at least not with the scope you set it to. hence reopening. @python, can we get this USE story straight please ? Ok, I've dropped 3.5.1-r1 since it's broken even in simple case of mixing branches. I thought about this solution: || ( dev-lang/python:2.4[-build] <dev-lang/python-2.5.4-r2:2.5[-build] >=dev-lang/python-2.5.4-r2:2.5[-build,xml] dev-lang/python:2.6[expat] dev-python/pyxml )" but it'll break as soon as python herd fix something in :2.5 slot. So probably it's good idea to have a bit more consistent USE flags in :2.5 slot or please designate version after which it's 100% xml USE flag will not change. Hello everyone, Ive updated every python ebuild in portage and in python experimental overlay. Now they all have +xml and build use flags. So, you can freely check for [-build,xml] regardless of the version. Sorry for any inconveniences!. Best regards, Thank you very much, Jesus. This is fixed now. |