Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 385843 - add dev-libs/libxml2[python] to desktop profile (WAS: dev-libs/libxml2 should have python USE flag enabled by default (needed e.g. for gnome-doc-utils))
Summary: add dev-libs/libxml2[python] to desktop profile (WAS: dev-libs/libxml2 should...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
: 386451 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-10-06 09:51 UTC by Joshua Rich
Modified: 2011-10-09 19:32 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joshua Rich 2011-10-06 09:51:46 UTC
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
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 11:22:39 UTC
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...
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2011-10-06 13:09:52 UTC
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.
Comment 3 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 13:18:23 UTC
(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.
Comment 4 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-10-06 15:13:46 UTC
(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
Comment 5 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 17:31:20 UTC
(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
Comment 6 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-10-06 17:53:35 UTC
(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)
Comment 7 Mart Raudsepp gentoo-dev 2011-10-06 17:56:43 UTC
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)
Comment 8 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-06 18:00:06 UTC
(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.
Comment 9 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-10-06 18:35:53 UTC
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.
Comment 10 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-10-07 13:03:40 UTC
(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
Comment 11 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-10-09 19:32:18 UTC
*** Bug 386451 has been marked as a duplicate of this bug. ***