I am trying to build sys-apps/pkgcore on an openvz gentoo guest, but cannot get to there because the snakeoil dependency fails to build. Have dev-lang/python-2.6.5-r3 and 3.1.2-r4 installed on the server. However, I have already built snakeoil / pkgcore on my local desktop with same python/portage versions and did not encounter trouble. Reproducible: Always Steps to Reproduce: 1. emerge -uDNtav sys-apps/pkgcore Actual Results: Fails at step building dev-python/snakeoil Expected Results: snakeoil builds successfully, and moves on to pkgcore. Works fine on my 64bit desktop, fails on my 32bit openvz guest server.
Created attachment 240695 [details] emerge --info dev-python/snakeoil-0.3.7 output
Created attachment 240699 [details] snakeoil-0.3.7 build.log
Created attachment 240701 [details] snakeoil-0.3.7 build environment
Created attachment 240893 [details] patch to detect broken Please try this patch out- basically it detects python upstream bug 3770 and disables multiprocessing in full for 2to3 if it's spotted.
Tried the attachment, I get >>> Emerging (1 of 2) dev-python/snakeoil-0.3.7-r1 from unknown repo * snakeoil-0.3.7.tar.bz2 RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] >>> cfg-update-1.8.2-r1: Checksum index is up-to-date ... * CPV: dev-python/snakeoil-0.3.7-r1 * REPO: * USE: elibc_glibc kernel_linux userland_GNU x86 >>> Unpacking source... >>> Unpacking snakeoil-0.3.7.tar.bz2 to /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/environment: line 3353: epatch: command not found >>> Source unpacked in /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work >>> Preparing source in /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7 ... * Building of dev-python/snakeoil-0.3.7-r1 with CPython 2.6... ... creating build-3.1/lib/snakeoil/xml copying snakeoil/xml/bundled_elementtree.py -> build-3.1/lib/snakeoil/xml copying snakeoil/xml/__init__.py -> build-3.1/lib/snakeoil/xml warning: snakeoil_build_py: byte-compiling is disabled, skipping. starting 2to3 conversion; this may take a while... Traceback (most recent call last): File "/usr/lib/python3.1/multiprocessing/synchronize.py", line 28, in <module> from _multiprocessing import SemLock ImportError: cannot import name SemLock During handling of the above exception, another exception occurred: Traceback (most recent call last): File "setup.py", line 111, in <module> 'test': test, File "/usr/lib/python3.1/distutils/core.py", line 149, in setup dist.run_commands() File "/usr/lib/python3.1/distutils/dist.py", line 919, in run_commands self.run_command(cmd) File "/usr/lib/python3.1/distutils/dist.py", line 938, in run_command cmd_obj.run() File "/usr/lib/python3.1/distutils/command/build.py", line 128, in run self.run_command(cmd_name) File "/usr/lib/python3.1/distutils/cmd.py", line 315, in run_command self.distribution.run_command(command) File "/usr/lib/python3.1/distutils/dist.py", line 938, in run_command cmd_obj.run() File "/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7/snakeoil/distutils_extensions.py", line 286, in run converter([x[0] for x in py3k_rebuilds], write=True) File "/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7/snakeoil/distutils_extensions.py", line 264, in f2 return f(*args, **kwds) File "/usr/lib/python3.1/lib2to3/refactor.py", line 620, in refactor self.queue = multiprocessing.JoinableQueue() File "/usr/lib/python3.1/multiprocessing/__init__.py", line 218, in JoinableQueue from multiprocessing.queues import JoinableQueue File "/usr/lib/python3.1/multiprocessing/queues.py", line 22, in <module> from multiprocessing.synchronize import Lock, BoundedSemaphore, Semaphore, Condition File "/usr/lib/python3.1/multiprocessing/synchronize.py", line 33, in <module> " function, see issue 3770.") ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770. * ERROR: dev-python/snakeoil-0.3.7-r1 failed: * Building failed with CPython 3.1 in distutils_building() function * * Call stack: * ebuild.sh, line 54: Called src_compile * environment, line 3333: Called distutils_src_compile * environment, line 1006: Called python_execute_function 'distutils_building' * environment, line 2133: Called die * The specific snippet of code: * die "${failure_message}"; * * If you need support, post the output of 'emerge --info =dev-python/snakeoil-0.3.7-r1', * the complete build log and the output of 'emerge -pqv =dev-python/snakeoil-0.3.7-r1'. * This ebuild is from an overlay: '/usr/local/portage/' * The complete build log is located at '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/environment'. * S: '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7' >>> Failed to emerge dev-python/snakeoil-0.3.7-r1, Log file: >>> '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/build.log' * Messages for package dev-python/snakeoil-0.3.7-r1: * ERROR: dev-python/snakeoil-0.3.7-r1 failed: * Building failed with CPython 3.1 in distutils_building() function * * Call stack: * ebuild.sh, line 54: Called src_compile * environment, line 3333: Called distutils_src_compile * environment, line 1006: Called python_execute_function 'distutils_building' * environment, line 2133: Called die * The specific snippet of code: * die "${failure_message}"; * * If you need support, post the output of 'emerge --info =dev-python/snakeoil-0.3.7-r1', * the complete build log and the output of 'emerge -pqv =dev-python/snakeoil-0.3.7-r1'. * This ebuild is from an overlay: '/usr/local/portage/' * The complete build log is located at '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/temp/environment'. * S: '/var/tmp/portage/dev-python/snakeoil-0.3.7-r1/work/snakeoil-0.3.7' === Which is different from my previous bug and points squarely at my dev-lang/python. Thanks for the tip. Thanks for the python tip. I noticed that my home machine has dev-lang/python-2.6.5-r3 and 3.1.2-r4 but my server has 2.6.5-r2 and 3.1.2-r3. I'll try switching over and see if that solves my problem.
Created attachment 240913 [details, diff] assign, not equals test.. Sorry, there is a stupid typo in the proc_count disabling- it does an equality test instead of assigning. This version should fix it.
Fixed via 0.3.7-r1.