Bug 238639 - devel/gn: maybe unusable by www/firefox
Summary: devel/gn: maybe unusable by www/firefox
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-ports-bugs (Nobody)
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2019-06-17 05:19 UTC by Jan Beich
Modified: 2019-06-20 16:16 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2019-06-17 05:19:00 UTC
www/firefox may start requiring devel/gn or devel/chromium-gn in future. For now upstream bundles preprocessed GN->JSON files. Unfortunately, it doesn't work with devel/gn compared to devel/chromium-gn. Can you investigate?

https://bugzilla.mozilla.org/show_bug.cgi?id=1534615
https://firefox-source-docs.mozilla.org/build/buildsystem/gn.html

Environment:
$ pkg install python27
$ hash git 2>/dev/null || pkg install mercurial
$ hg clone https://hg.mozilla.org/mozilla-unified firefox ||
  git clone https://github.com/mozilla/gecko-dev firefox
$ cd firefox
$ hg update central || git checkout origin/master
$ echo "export CC=clang80 CXX=clang++80 # whichever mesa installs" >>.mozconfig
$ echo "ac_add_options --disable-debug-symbols" >>.mozconfig
$ ./mach bootstrap # select Firefox for Desktop

Steps to reproduce:
$ pkg install gn
$ ./mach configure
$ ./mach build-backend -b GnConfigGen
 0:01.09 _virtualenvs/init/bin/python config.status --backend GnConfigGen
Reticulating splines...
 0:00.68 File already read. Skipping: modules/brotli/moz.build
Running "/usr/local/bin/gn gen media/webrtc/trunk/webrtc/gn-output --args=is_debug=false host_cpu="x64" target_os="freebsd" target_cpu="x64" --ide=json"
ERROR at //rtc_base/BUILD.gn:850:5: Only source, header, and object files belong in the sources of a source_set. //rtc_base/sigslottester.h.pump is not one of the valid types.
    "sigslottester.h.pump",
    ^---------------------
See //rtc_base/BUILD.gn:813:1: whence it was called.
rtc_source_set("rtc_base_tests_utils") {
^---------------------------------------
See //BUILD.gn:288:7: which caused the file to be included.
      "rtc_base",
      ^---------
Traceback (most recent call last):
  File "config.status", line 1255, in <module>
    config_status(**args)
  File "python/mozbuild/mozbuild/config_status.py", line 145, in config_status
    the_backend.consume(definitions)
  File "python/mozbuild/mozbuild/backend/base.py", line 128, in consume
    if (not self.consume_object(obj) and
  File "python/mozbuild/mozbuild/gn_processor.py", line 550, in consume_object
    obj.gn_target)
  File "python/mozbuild/mozbuild/gn_processor.py", line 521, in generate_gn_config
    subprocess.check_call(gen_args, cwd=srcdir, stderr=subprocess.STDOUT)
  File "/usr/local/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/local/bin/gn', 'gen', u'media/webrtc/trunk/webrtc/gn-output', u'--args=is_debug=false host_cpu="x64" target_os="freebsd" target_cpu="x64"', '--ide=json']' returned non-zero exit status 1
Comment 1 Oleh Hushchenkov 2019-06-17 10:28:12 UTC
(In reply to Jan Beich from comment #0)
I will look on it.
Comment 2 Oleh Hushchenkov 2019-06-17 16:07:25 UTC
Currently (version 75) chromium uses outdated by 4 months bundled version of gn.

The old behavior was changed by this https://gn.googlesource.com/gn/+/8730b0feb6b991fa47368566501ab9ccfb453c92 commit, when non-buildable sources in binary targets just ignored.

So, it still worked with chromium-gn for now. But when chromium will update their copy of gn the situation will be the same.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2019-06-20 16:16:33 UTC
Thanks. At worst a slave port just for www/firefox can be created. For now that future is too vague to do anything.