Hi there, Building x11-terms/gnome-terminal 3.2.0 from the gnome overlay without the python USE flag set on dev-libs/libxml2 results in a build failure for x11-terms/gnome-terminal. Adding the USE flag back fixes the problem. Reproducible: Always Steps to Reproduce: 1. echo 'dev-libs/libxml2 -python' >> /etc/portage/package.use/temp 2. emerge -1 dev-libs/libxml2 x11-terms/gnome-terminal Actual Results: if [ -f "C/gnome-terminal.xml" ]; then d="../"; else d="/var/tmp/portage/x11-terms/gnome-terminal-3.2.0/work/gnome-terminal-3.2.0/help/"; fi; \ mo="en_GB/en_GB.mo"; \ if [ -f "${mo}" ]; then mo="../${mo}"; else mo="/var/tmp/portage/x11-terms/gnome-terminal-3.2.0/work/gnome-terminal-3.2.0/help/${mo}"; fi; \ (cd en_GB/ && \ `which xml2po` -m docbook -e -t "${mo}" \ "${d}C/gnome-terminal.xml" > gnome-terminal.xml.tmp && \ cp gnome-terminal.xml.tmp gnome-terminal.xml && rm -f gnome-terminal.xml.tmp) Traceback (most recent call last): File "/usr/bin/xml2po-2.7", line 191, in <module> main(sys.argv[1:]) File "/usr/bin/xml2po-2.7", line 88, in main from xml2po import Main File "/usr/lib64/python2.7/site-packages/xml2po/__init__.py", line 27, in <module> import libxml2 ImportError: No module named libxml2 make[2]: *** [en_GB/gnome-terminal.xml] Error 1 make[2]: Leaving directory `/var/tmp/portage/x11-terms/gnome-terminal-3.2.0/work/gnome-terminal-3.2.0/help' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/x11-terms/gnome-terminal-3.2.0/work/gnome-terminal-3.2.0' make: *** [all] Error 2 emake failed Expected Results: No build error. Portage 2.2.0_alpha62 (default/linux/amd64/10.0/desktop/gnome, gcc-4.5.3, glibc-2.13-r4, 3.0.6-gentoo x86_64) ================================================================= System uname: Linux-3.0.6-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E7500_@_2.93GHz-with-gentoo-2.1 Timestamp of tree: Thu, 06 Oct 2011 08:15:02 +0000 app-shells/bash: 4.2_p10 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.2-r3 dev-util/cmake: 2.8.5-r2 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1 sys-apps/openrc: 0.9.3-r1 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.11.1-r1 sys-devel/binutils: 2.21.1-r1 sys-devel/gcc: 4.5.3-r1 sys-devel/gcc-config: 1.4.1-r1 sys-devel/libtool: 2.4-r3 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 2.6.39 (virtual/os-headers) sys-libs/glibc: 2.13-r4 Repositories: gentoo misc-local ephemeral sunrise x11 gnome vala Installed sets: ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -floop-interchange -floop-strip-mine -floop-block" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/applications /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /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/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe -floop-interchange -floop-strip-mine -floop-block" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs buildpkg compress-build-logs distlocks ebuild-locks fakeroot fixlafiles fixpackages multilib-strict news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-march=native -O2 -pipe -floop-interchange -floop-strip-mine -floop-block" GENTOO_MIRRORS="http://mirror.internode.on.net/pub/gentoo/ http://mirror.aarnet.edu.au/pub/gentoo http://linux.anu.edu.au/gentoo" LANG="en_AU.utf8" LC_ALL="en_AU.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common" LINGUAS="en en_AU en_GB" MAKEOPTS="-j3 -l 1.0" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="--exclude lost+found" 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/misc-gentoo-overlay /var/lib/layman/ephemeral /var/lib/layman/sunrise /var/lib/layman/x11 /var/lib/layman/gnome /var/lib/layman/vala" SYNC="rsync://mirror.internode.on.net/gentoo-portage/" USE="X a52 aac acl acpi alsa amd64 avahi bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dga dri dts dvd dvdr eds emboss encode evo exceptions exif fam fbcon firefox flac fontconfig fortran fuse gd gdbm gdu gif glade gmp gnome gnome-keyring gpm gstreamer gtk gtk3 gzip iconv icu introspection ithreads jpeg lcms libcanberra libnotify lzma lzo mad mmx mng modules mp3 mp4 mpeg mudflap multilib nautilus ncurses networkmanager nls nptl nptlonly ogg opengl openmp pam pango pcre pdf png policykit ppds pppd pulseaudio qt3support readline sdl session spell sse sse2 sse3 sse4 ssl ssse3 startup-notification svg sysfs threads tiff truetype udev unicode upnp usb vala vorbis x264 xattr xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="lvm mdraid plymouth" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_AU en_GB" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" SANE_BACKENDS="genesys" USERLAND="GNU" VIDEO_CARDS="nvidia fbdev vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
gnome-terminal-3.2.0 has a build-time dependency on app-text/gnome-doc-utils. All versions of gnome-doc-utils have a build-time and run-time dependency on libxml2-2.6.12[python]. I suppose the thing to do is to make libxml2's python USE flag enabled by default, since gnome-doc-utils are used all over the place. This would have been caught simply by running emerge with the --deep argument. Which, incidentally, really ought to be made the default behavior...
How about enabling it in package.use of the gnome desktop profile? Doesn't sound like a good enough reason to enable it for everybody in the ebuild.
(In reply to comment #2) > Doesn't sound like a good enough reason to enable it for everybody in the > ebuild. Mesa also needs libxml2[python] to build. And even if you use closed-source drivers, mesa is still a required dependency for xorg-server.
(In reply to comment #1) > I suppose the thing to do is to make libxml2's python USE flag enabled by > default, since gnome-doc-utils are used all over the place. Well, you must admit that you have a skewed view of the world through your GNOME goggles. On MY desktop: % equery d gnome-doc-utils * These packages depend on gnome-doc-utils: app-text/evince-2.32.0-r3 (>=app-text/gnome-doc-utils-0.3.2) gnome-extra/gcalctool-5.32.2 (>=app-text/gnome-doc-utils-0.3.2) media-gfx/gthumb-2.12.3 (app-text/gnome-doc-utils) x11-terms/gnome-terminal-2.32.1 (>=app-text/gnome-doc-utils-0.3.2) .. which hardly qualifies as "all over the place" > (In reply to comment #2) > Mesa also needs libxml2[python] to build. And even if you use closed-source > drivers, mesa is still a required dependency for xorg-server. In the mesa case, libxml2[python] is *ONLY* a build dep, so when you rebuild mesa then libxml2[python] will be rebuilt (as needed, if deps are not satisfied). So, let's throw the mesa case out and revisit comment #2
(In reply to comment #4) > In the mesa case, libxml2[python] is *ONLY* a build dep, so when you rebuild > mesa then libxml2[python] will be rebuilt (as needed, if deps are not > satisfied). So, let's throw the mesa case out and revisit comment #2 libxml2[python] will not be rebuilt when you run "emerge mesa". Instead, you will get an error message, and you will need to edit /etc/portage/package.use (inconvenient) or enable --autounmask-write (dangerous). And if every person who has to build mesa would need to manually set a particular USE flag on libxm2, then Gentoo should, IMHO, set this use flag by default. PS. On the system where I am typing this: $ equery d gnome-doc-utils | wc -l 67
(In reply to comment #5) > libxml2[python] will not be rebuilt when you run "emerge mesa". Instead, you > will get an error message, and you will need to edit /etc/portage/package.use > (inconvenient) or enable --autounmask-write (dangerous). And if every person > who has to build mesa would need to manually set a particular USE flag on > libxm2, then Gentoo should, IMHO, set this use flag by default. Points taken, but please be careful... "inconvenient" & "dangerous" are just opinions that will encourage bikeshedding. > PS. On the system where I am typing this: > $ equery d gnome-doc-utils | wc -l > 67 Well, it isn't about any *one* system here, I just included that info to point out that you cannot say "all over the place" [on every Gentoo desktop]. You just proved my point. So yes, on GNOME desktops gnome-doc-utils is used a large number of times. In the end, I think we have highlighted a optimal solution: echo "dev-libs/libxml2 python" >> .../profiles/targets/desktop/package.use all because xorg-server needs mesa and this solution is the least annoying for Gentoo users (and satisfies the most non-desktop users[1]) - What do you think? [1]: This is what you might see on a server, eg: % equery d libxml2 * These packages depend on libxml2: app-arch/libarchive-2.8.4-r1 (!expat ? dev-libs/libxml2) dev-lang/php-5.3.8 (simplexml ? >=dev-libs/libxml2-2.6.8) (soap ? >=dev-libs/libxml2-2.6.8) (wddx ? >=dev-libs/libxml2-2.6.8) (xml ? >=dev-libs/libxml2-2.6.8) (xmlrpc ? >=dev-libs/libxml2-2.6.8) (xmlreader ? >=dev-libs/libxml2-2.6.8) (xmlwriter ? >=dev-libs/libxml2-2.6.8) (xsl ? >=dev-libs/libxml2-2.6.8) dev-libs/libxslt-1.1.26-r1 (>=dev-libs/libxml2-2.6.27:2) net-analyzer/rrdtool-1.3.8 (>=dev-libs/libxml2-2.6.31) net-dns/bind-tools-9.7.3 (xml ? dev-libs/libxml2) net-libs/neon-0.29.6 (!expat ? dev-libs/libxml2) sys-devel/gettext-0.18.1.1-r1 (dev-libs/libxml2) www-servers/lighttpd-1.4.29-r3 (webdav ? dev-libs/libxml2) x11-libs/cairo-1.10.2-r1 (svg ? dev-libs/libxml2)
libxml2 has been in my hitlist for splitting out the bindings to a separate package for a while now. Something that has been for a very very very VERY rainy day for me though. How feasible would that be? Stuff needing python bindings just deps on it, gets around of portage not auto-including a reemerge with satisfying USE flag demands, etc etc. A clean split case in a perfect world (where there are no maintainer time problems)
(In reply to comment #6) > In the end, I think we have highlighted a optimal solution: > echo "dev-libs/libxml2 python" >> .../profiles/targets/desktop/package.use > all because xorg-server needs mesa and this solution is the least annoying for > Gentoo users (and satisfies the most non-desktop users[1]) - What do you think? I think that would be a reasonable solution.
update summary, please comment if you have an opinion @kde: You are a child of the desktop profile but I can't see why or how this would adversely affect you. Consider this an FYI.
(In reply to comment #9) > update summary, please comment if you have an opinion None given, not going to wait on this any longer than needed... + 07 Oct 2011; Jeremy Olexa <darkside@gentoo.org> targets/desktop/package.use: + Provide a better user experience on desktop profiles by enabling python + useflag on dev-libs/libxml2, bug 385843
*** Bug 386451 has been marked as a duplicate of this bug. ***