Bug 191991 - www/chromium fails configure steps
Summary: www/chromium fails configure steps
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-chromium (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-20 19:44 UTC by Sean Bruno
Modified: 2014-07-31 15:30 UTC (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sean Bruno freebsd_committer freebsd_triage 2014-07-20 19:44:30 UTC
I have version chromium-35.0.1916.153_1 installed currently but I am unable to build chromium via poudriere on multple boxes.  I assume I have missed a step somewhere.

cd /wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153 && /usr/bin/env XDG_DATA_HOME=/wrkdirs/usr/ports/www/chromium/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/www/chromium/work  HOME=/wrkdirs/usr/ports/www/chromium/work TMPDIR="/tmp" CC="cc"  CXX="c++"  GYP_DEFINES="use_cups=1  use_system_yasm=1  use_system_libxml=1  use_system_ffmpeg=0  use_system_libusb=1  use_system_libevent=1  use_system_libvpx=0  linux_breakpad=0  linux_strip_binary=1  linux_use_tcmalloc=0  linux_use_heapchecker=0  test_isolation_mode=noop  clang_use_chrome_plugins=0  disable_nacl=1  enable_webrtc=1  enable_openmax=1  enable_one_click_signin=1  werror=  no_gc_sections=1  os_ver=1100027  prefix_dir=/usr/local  python_ver=2.7 google_api_key=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8  google_default_client_id=996322985003.apps.googleusercontent.com  google_default_client_secret=IR1za9-1VK0zZ0f_O8MVFicn ffmpeg_branding=Chrome proprietary_codecs=1 use_pulseaudio=0 buildtype=Official clang=1" XDG_DATA_HOME=/wrkdirs/usr/ports/www/chromium/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/www/chromium/work  HOME=/wrkdirs/usr/ports/www/chromium/work TMPDIR="/tmp" PYTHON="/usr/local/bin/python2.7" PKG_CONFIG=pkgconf ac_cv_path_PERL=/usr/local/bin/perl ac_cv_path_PERL_PATH=/usr/local/bin/perl AR=/usr/bin/ar CFLAGS="-O2 -pipe  -fno-stack-protector -Wno-unknown-warning-option -fno-strict-aliasing"  CPPFLAGS=""  CXXFLAGS="-O2 -pipe -fno-stack-protector -Wno-unknown-warning-option -fno-strict-aliasing "  LDFLAGS="" XDG_DATA_HOME=/wrkdirs/usr/ports/www/chromium/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/www/chromium/work  HOME=/wrkdirs/usr/ports/www/chromium/work TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh /usr/local/bin/python2.7  ./build/gyp_chromium chrome/chrome.gyp --depth .
Updating projects from gyp files...
Traceback (most recent call last):
  File "./build/gyp_chromium", line 296, in <module>
    gyp_rc = gyp.main(args)
  File "/wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153/tools/gyp/pylib/gyp/__init__.py", line 527, in main
    return gyp_main(args)
  File "/wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153/tools/gyp/pylib/gyp/__init__.py", line 503, in gyp_main
    options.circular_check)
  File "/wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153/tools/gyp/pylib/gyp/__init__.py", line 129, in Load
    params['parallel'], params['root_targets'])
  File "/wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153/tools/gyp/pylib/gyp/input.py", line 2698, in Load
    generator_input_info)
  File "/wrkdirs/usr/ports/www/chromium/work/chromium-35.0.1916.153/tools/gyp/pylib/gyp/input.py", line 591, in LoadTargetBuildFilesParallel
    parallel_state.pool = multiprocessing.Pool(8)
  File "/usr/local/lib/python2.7/multiprocessing/__init__.py", line 232, in Pool
    return Pool(processes, initializer, initargs, maxtasksperchild)
  File "/usr/local/lib/python2.7/multiprocessing/pool.py", line 138, in __init__
    self._setup_queues()
  File "/usr/local/lib/python2.7/multiprocessing/pool.py", line 233, in _setup_queues
    from .queues import SimpleQueue
  File "/usr/local/lib/python2.7/multiprocessing/queues.py", line 48, in <module>
    from multiprocessing.synchronize import Lock, BoundedSemaphore, Semaphore, Condition
  File "/usr/local/lib/python2.7/multiprocessing/synchronize.py", line 59, 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 code 1

Stop.
make: stopped in /usr/ports/www/chromium
====>> Cleaning up wrkdir
===>  Cleaning for chromium-35.0.1916.153_1
build of /usr/ports/www/chromium ended at Sun Jul 20 11:20:32 PDT 2014
build time: 00:02:07
!!! build failure encountered !!!
Comment 1 Rene Ladan freebsd_committer freebsd_triage 2014-07-21 14:56:16 UTC
Somehow chromium thinks that your FreeBSD-11 Python is not multi-threaded. Maybe someone from python@ can shed a light?
Comment 2 Stephen Hurd freebsd_committer freebsd_triage 2014-07-21 20:17:46 UTC
I can confirm that my Python2.7 on 10.0-RELEASE-p7 appears to not support queues:

root@portable:/usr/ports/www/chromium # python
Python 2.7.8 (default, Jul 18 2014, 02:59:47) 
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> import multiprocessing
>>> from multiprocessing import queues
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/multiprocessing/queues.py", line 48, in <module>
    from multiprocessing.synchronize import Lock, BoundedSemaphore, Semaphore, Condition
  File "/usr/local/lib/python2.7/multiprocessing/synchronize.py", line 59, 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.

Adding the promising-looking --no-parallel to the gyp command-line does not seem to help though.  Nor does adding no_parallel=1 or parallel=0 to the defines.

Python 3.3.5 on the same system does seem to have working queues though:

root@portable:/usr/ports/www/chromium # python3
Python 3.3.5 (default, Apr 20 2014, 15:47:23) 
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> import multiprocessing
>>> from multiprocessing import queues
>>> 

But I apparently can't use it to run gyp:

root@portable:/usr/ports/www/chromium # setenv PYTHON_VERSION python3.3
root@portable:/usr/ports/www/chromium # make configure
===>  chromium-35.0.1916.153_1 needs Python 2.7 at most. But you specified 3.3.
*** Error code 1

Stop.
make: stopped in /usr/ports/www/chromium

While building python 2.7 with the (non-default) PTH option looks like it would work, that seems unsatisfactory as a requirement to build Chromium.
Comment 3 Carlos J Puga Medina 2014-07-21 23:28:44 UTC
To avoid this error you should rebuild lang/python27 with SEM enabled.
Comment 4 Stephen Hurd freebsd_committer freebsd_triage 2014-07-22 00:12:25 UTC
Ah, my options set appears to predate SEM being default.

Do I need to rebuild all dependent ports as well with this?
Comment 5 Carlos J Puga Medina 2014-07-22 00:21:44 UTC
(In reply to Stephen Hurd from comment #4)
> Ah, my options set appears to predate SEM being default.
> 
> Do I need to rebuild all dependent ports as well with this?

There isn't any entry related in /usr/ports/UPDATING, so I think is not obligatory but recommended in any case.
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2014-07-22 01:46:34 UTC
Carlos is correct, the SEM option was made the default in r361735 [1] for the following reasons:

- POSIX semaphores are now supported and working in all supported FreeBSD (GENERIC) releases.

- They are expected and part of a default upstream Python build (unless not supported by the system, or broken)

- While 'technically' optional in that one *can* disable them with the appropriate configure argument, it is not exposed in ./configure --help or otherwise documented as a user-configurable knob.

- To address issues just like this for binary packages (see special note in commit log below)

[1] https://svnweb.freebsd.org/ports?view=revision&revision=361735