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 !!!
Somehow chromium thinks that your FreeBSD-11 Python is not multi-threaded. Maybe someone from python@ can shed a light?
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.
To avoid this error you should rebuild lang/python27 with SEM enabled.
Ah, my options set appears to predate SEM being default. Do I need to rebuild all dependent ports as well with this?
(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.
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