Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 520146 - x11-libs/libxcb-1.10 - No Python implementation found for the build.
Summary: x11-libs/libxcb-1.10 - No Python implementation found for the build.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-17 19:58 UTC by Alex Barker
Modified: 2014-09-03 10:32 UTC (History)
2 users (show)

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


Attachments
build.log (build.log,19.75 KB, text/x-log)
2014-08-18 00:11 UTC, Alex Barker
Details
build_debug.log (build_debug.log,763.51 KB, text/x-log)
2014-08-18 00:11 UTC, Alex Barker
Details
libxcb-fix.patch (libxcb-fix.patch,428 bytes, patch)
2014-08-19 00:00 UTC, Alex Barker
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Barker 2014-08-17 19:58:09 UTC
I am really out of ideas for this one.  This works fine with arm6j-pc-linux-gnu and arm7a-pc-linux-gnu but not x86!?!  python was installed as a dep, info added

crosscompiler crossdev_scripts # i586-pc-linux-gnu-emerge -av libXt libXtst 

 * IMPORTANT: 5 news items need reading for repository 'gentoo'. 
 * Use eselect news to read news items. 


These are the packages that would be merged, in order: 

Calculating dependencies... done! 
[ebuild  N     ] x11-libs/libxcb-1.10 to /usr/i586-pc-linux-gnu/ USE="-doc (-selinux) -static-libs -xkb" 0 kB 
[ebuild  N     ] x11-libs/libSM-1.2.2-r1 to /usr/i586-pc-linux-gnu/ USE="ipv6 uuid -doc -static-libs" 0 kB 
[ebuild  N     ] x11-libs/libX11-1.6.2 to /usr/i586-pc-linux-gnu/ USE="ipv6 -doc -static-libs {-test}" 0 kB 
[ebuild  N     ] x11-libs/libXext-1.3.2 to /usr/i586-pc-linux-gnu/ USE="-doc -static-libs" 0 kB 
[ebuild  N     ] x11-libs/libXfixes-5.0.1 to /usr/i586-pc-linux-gnu/ USE="-static-libs" 0 kB 
[ebuild  N     ] x11-libs/libXt-1.1.4 to /usr/i586-pc-linux-gnu/ USE="-static-libs" 0 kB 
[ebuild  N     ] x11-libs/libXi-1.7.4 to /usr/i586-pc-linux-gnu/ USE="-doc -static-libs" 0 kB 
[ebuild  N     ] x11-libs/libXtst-1.2.2 to /usr/i586-pc-linux-gnu/ USE="-doc -static-libs" 0 kB 

Total: 8 packages (8 new), Size of downloads: 0 kB 

Would you like to merge these packages? [Yes/No] 

>>> Verifying ebuild manifests 

>>> Emerging (1 of 8) x11-libs/libxcb-1.10 for /usr/i586-pc-linux-gnu/ 
 * libxcb-1.10.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                                                                         [ ok ] 
 * No Python implementation found for the build. This is usually 
 * a bug in the ebuild. Please report it to bugs.gentoo.org 
 * along with the build log. 

 * ERROR: x11-libs/libxcb-1.10::gentoo failed (setup phase): 
 *   No supported Python implementation installed. 
 * 
 * Call stack: 
 *              ebuild.sh, line  93:  Called pkg_setup 
 *     libxcb-1.10.ebuild, line  37:  Called python-any-r1_pkg_setup 
 *   python-any-r1.eclass, line 324:  Called python_setup 
 *   python-any-r1.eclass, line 312:  Called die 
 * The specific snippet of code: 
 *      die "No supported Python implementation installed." 
 * 
 * If you need support, post the output of `emerge --info '=x11-libs/libxcb-1.10::gentoo'`, 
 * the complete build log and the output of `emerge -pqv '=x11-libs/libxcb-1.10::gentoo'`. 
 * The complete build log is located at '/usr/i586-pc-linux-gnu/tmp/portage/x11-libs/libxcb-1.10/temp/build.log'. 
 * The ebuild environment file is located at '/usr/i586-pc-linux-gnu/tmp/portage/x11-libs/libxcb-1.10/temp/die.env'. 
 * Working directory: '/usr/lib64/portage/pym' 
 * S: '/usr/i586-pc-linux-gnu/tmp/portage/x11-libs/libxcb-1.10/work/libxcb-1.10'

Reproducible: Always




http://bpaste.net/show/624507/
http://bpaste.net/show/624492/

Portage 2.2.8-r1 (default/linux/amd64/13.0, gcc-4.8.3, glibc-2.19-r1, 3.12.21-gentoo-r1 x86_64)
=================================================================
System uname: Linux-3.12.21-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_950_@_3.07GHz-with-gentoo-2.2
KiB Mem:     2052760 total,   1254232 free
KiB Swap:    2097148 total,   2090080 free
Timestamp of tree: Thu, 14 Aug 2014 23:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.7, 3.3.5-r1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo crossdev-apple x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=x86-64 -mtune=generic -Os -fomit-frame-pointer -fno-stack-protector -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=x86-64 -mtune=generic -Os -fomit-frame-pointer -fno-stack-protector -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/tmp"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/crossdev-apple /usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="acl amd64 berkdb bzip2 cli cracklib crypt cxx dri gdbm iconv minimal mmx modules multilib ncurses nls nptl openmp pam pcre readline session sse sse2 ssl tcpd unicode urandom zlib" ABI_X86="64" 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" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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 ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Rémi Cardona (RETIRED) gentoo-dev 2014-08-17 23:13:26 UTC
Please upload the pastebins as attachments.

Thanks
Comment 2 Alex Barker 2014-08-18 00:11:03 UTC
Created attachment 383060 [details]
build.log
Comment 3 Alex Barker 2014-08-18 00:11:15 UTC
Created attachment 383062 [details]
build_debug.log
Comment 4 Alex Barker 2014-08-19 00:00:10 UTC
Created attachment 383098 [details, diff]
libxcb-fix.patch

After 3 days of digging this is the only workaround I can come up with.  I have no idea why, but for some reason has_version just doesn't work with the --host-root flag.

I guess the first question is, what is this host-root?  I assume this is the HOST install location vs the TARGET install location?  If that is the case the it still doesn't explain why "$PORTAGE_BIN_PATH"/ebuild-ipc has_version "${eroot}" "${atom}" inside of /usr/lib64/portage/bin/phase-helpers.sh is returning 0 when my python installation matches in both roots.  Which brings me to my second question, what is ebuild-ipc and how it is suppose to operate?  I would assume `ebuild-ipc has_version "/" ">=dev-lang/python-2.7.5-r2:2.7[xml]"` would return true because 2.7.7 is what is installed at root and set as the default python interpreter! 

P.S. /usr/portage/eclass/python-any-r1.eclass is still calling has_version with ROOT=/ Should this be changed? (bug #401239)

"if ROOT=/ has_version "${PYTHON_PKG_DEP}"; then"
Comment 5 Rémi Cardona (RETIRED) gentoo-dev 2014-08-19 11:03:17 UTC
Way beyond my knowledge of python stuff in portage. Calling in help from those in the know.

@python: help!
Comment 6 Mike Gilbert gentoo-dev 2014-08-19 15:53:59 UTC
Which use flags are enabled on x11-proto/xcb-proto in your build/host system?

I suspect that using --host-root with ${MULTILIB_USEDEP} is not valid -- MULTILIB_USEDEP would be populated according to the configuration under ROOT, not /.
Comment 7 Alex Barker 2014-08-19 23:45:13 UTC
(In reply to Mike Gilbert from comment #6)
> Which use flags are enabled on x11-proto/xcb-proto in your build/host system?

I am not doing anything particularly ground breaking here.
Installed versions:  2.7.7(2.7)(05:58:12 PM 08/14/2014)(berkdb gdbm ncurses readline ssl threads wide-unicode xml -build -doc -examples -hardened -ipv6 -sqlite -tk -wininst ELIBC="-uclibc")

> I suspect that using --host-root with ${MULTILIB_USEDEP} is not valid --
> MULTILIB_USEDEP would be populated according to the configuration under
> ROOT, not /.

I have tried both with and without a multilib profile on the build/host, same result.  

On a related note the x11-proto/xcb-proto-1.10 fails to get pulled in due to 
--root-deps=rdeps, which is interesting because if I remove --root-deps complacently, it still throws away the dependency info.  Its not a huge deal to emerge xcb-proto first, the question is why all this fancy dancing around resolving dependencies with things like python_gen_any_dep && has_version --host-root if they don't work?  Is this a mulitlib isn't finished yet issue or a eclass are buggy issue or I am totally lost here?
Comment 8 Mike Gilbert gentoo-dev 2014-08-20 01:34:40 UTC
(In reply to Alex Barker from comment #7)
> I am not doing anything particularly ground breaking here.
> Installed versions:  2.7.7(2.7)(05:58:12 PM 08/14/2014)(berkdb gdbm ncurses
> readline ssl threads wide-unicode xml -build -doc -examples -hardened -ipv6
> -sqlite -tk -wininst ELIBC="-uclibc")

That's python, not xcb-proto.
Comment 9 Mike Gilbert gentoo-dev 2014-08-20 01:46:55 UTC
Anyway, I was able to sucessfully cross-compile x11-libs/libxcb for armv7a after installing x11-proto/xcb-proto with valid PYTHON_TARGETS in both the build system (/) and the host/target system (ROOT), using the embedded profile.

There's something funky with your system.
Comment 10 Alex Barker 2014-08-20 16:20:35 UTC
(In reply to Mike Gilbert from comment #9)
> Anyway, I was able to sucessfully cross-compile x11-libs/libxcb for armv7a
> after installing x11-proto/xcb-proto with valid PYTHON_TARGETS in both the
> build system (/) and the host/target system (ROOT), using the embedded
> profile.
> 
> There's something funky with your system.

Correct, I am also able to cross compile x11-libs/libxcb for armvj and armv7a after manually merging xcb-proto.  That part seems to function *somewhat* correctly.  The issue with the xcb-proto stuff is that if I emerge WITHOUT '--root-deps=rdeps' the documentation suggests that it should pull in the xcb-proto stuff and a lot of other dependencies... however it does not.  This is probably an issue for another bug.

The issue at hand is trying to compile libxcb for i-any-86 where regardless of xcb-proto being merged first, it just fails with cannot find python because has_version --host-root is returning 0 instead of 1 as it did with previous armv[67]{1}.  When I remove --host-root it works as expected with i686, but only with i-any-86!  To add a little more wtf to the mix, all of the arguments being passed to has_verison for the package are identical between arm and x86 leading me to believe the issue is in some eclass somewhere.

Again I have tired with a mulilib and no-multilib amd64 profile and it behaves exactly the same.  I have just ended up sprinkling around patches and local overlays to work around these issues.  Someone who knows a bit more about the python integration than I do may want to look at the way that the python-any-r1.eclass is searching for software versions at '/'.
Comment 11 Mike Gilbert gentoo-dev 2014-08-20 23:33:10 UTC
(In reply to Alex Barker from comment #10)
> Correct, I am also able to cross compile x11-libs/libxcb for armvj and
> armv7a after manually merging xcb-proto.  That part seems to function
> *somewhat* correctly.  The issue with the xcb-proto stuff is that if I
> emerge WITHOUT '--root-deps=rdeps' the documentation suggests that it should
> pull in the xcb-proto stuff and a lot of other dependencies... however it
> does not.  This is probably an issue for another bug.

The emerge manpage says this:

--root-deps[=rdeps]
If  no  argument  is  given  then  build-time dependencies of packages for ROOT are installed to ROOT instead of /.

So, you would need to run emerge --root-deps ... to see the behavior your are expecting.

I will try to build an i586 cross-toolchain and reproduce this issue.
Comment 12 Mike Gilbert gentoo-dev 2014-08-21 02:15:43 UTC
I am still unable to reproduce this failure with a i586-gentoo-linux-gnu cross-toolchain with either the default/linux/x86/13.0 or embedded profile.

So, I will be unable to troubleshoot this on my own.

Can you try removing ${MULTILIB_USEDEP} or ${PYTHON_USEDEP} from the has_version --host-root ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},${PYTHON_USEDEP}]" call to see which one is tripping it up?

Or maybe it is neither of them; either way, it would be helpful to narrow down the problem.
Comment 13 Mike Gilbert gentoo-dev 2014-08-21 02:29:12 UTC
This might be the issue.

+  21 Aug 2014; Mike Gilbert <floppym@gentoo.org> libxcb-1.10.ebuild:
+  Add missing ${PYTHON_DEPS} to DEPEND, bug 520146.
Comment 14 Alex Barker 2014-09-02 16:18:19 UTC
(In reply to Mike Gilbert from comment #12)
> Can you try removing ${MULTILIB_USEDEP} or ${PYTHON_USEDEP} from the
> has_version --host-root
> ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},${PYTHON_USEDEP}]" call to
> see which one is tripping it up?

It is def the ${MULTILIB_USEDEP}, things work fine with only the ${PYTHON_USEDEP}

> +  21 Aug 2014; Mike Gilbert <floppym@gentoo.org> libxcb-1.10.ebuild: 
> +  Add missing ${PYTHON_DEPS} to DEPEND, bug 520146.

I am not sure where that came from or what it means.  I tried adding the following but it had no effect:

DEPEND="${RDEPEND}
        dev-libs/libxslt
        ${PYTHON_USEDEP}
        $(python_gen_any_dep \
                ">=x11-proto/xcb-proto-1.10[${MULTILIB_USEDEP},\${PYTHON_USEDEP}]")"
Comment 15 Mike Gilbert gentoo-dev 2014-09-02 16:24:53 UTC
Copying the multilib team since this seems to be some issue with MULTILIB_USEDEP.
Comment 16 Mike Gilbert gentoo-dev 2014-09-03 10:32:37 UTC
Thinking on this, python doesn't support multilib, so it makes no sense to enforce MULTILIB_USEDEP in python_check_deps.

As well, xcb-proto does not install any libraries; the only thing multilib does is install a pkg-config file in each libdir.

+  03 Sep 2014; Mike Gilbert <floppym@gentoo.org> libxcb-1.10.ebuild:
+  Drop MULTILIB_USEDEP from xcb-proto in python_check_deps, bug 520146.