Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Mar 2014 17:13:18 +0100
From:      =?UTF-8?B?UmVuw6kgTGFkYW4=?= <rene@freebsd.org>
To:        "Torne (Richard Coles)" <torne@chromium.org>
Cc:        chromium-packagers@chromium.org, chromium@freebsd.org
Subject:   Re: [chromium-packagers] more thoughts on porting Chromium to FreeBSD
Message-ID:  <531DE49E.8000207@freebsd.org>
In-Reply-To: <CAEV-rjdoJg7%2BUvC8Mtdy4xGHz5BdVAEq%2BNUrponhXNQrboeV=Q@mail.gmail.com>
References:  <531D83D1.2050005@freebsd.org> <CAEV-rjdoJg7%2BUvC8Mtdy4xGHz5BdVAEq%2BNUrponhXNQrboeV=Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03/10/2014 11:16, Torne (Richard Coles) wrote:
> On 10 March 2014 09:20, René Ladan <rene@freebsd.org
> <mailto:rene@freebsd.org>> wrote:
>
>     Hi,
>
>     [this is an updated rewrite of an earlier private mail]
>
>     some more thoughts and ideas I gathered while porting Chromium to
>     FreeBSD:
>     - FreeBSD seems to piggy-back on Linux too much because ninja will
>     build
>     *_linux files on FreeBSD which might or might not be useful. I guess
>     that ideally there should be *_freebsd versions of these files and the
>     build system should know about them. If I understand correctly, this
>     should prevent the need for patches like:
>     +        ['OS=="freebsd"', {
>     +         'sources/': [
>     +           ['exclude',
>     '^browser/storage_monitor/udev_util_linux.cc'],
>     ....
>     where linux files are explicitly excluded afterwards. Which leads
>     to the
>     question what file(s) decide that FreeBSD should build *_linux files.
>
>
> "linux" in the chromium tree means a lot of different things depending
> on context; in some places it means "thing that depends on
> Linux-specific C library/syscall functionality" (e.g. most uses in
> src/base),
So in this case _freebsd versions should be made?
> but in other places it means "POSIX system with a GNOME/KDE/similar
> desktop" and is mostly about dbus and xdg and related stuff.
and in this case probably not. Should the _linux files be renamed to
something more generic (_posix, _unix_desktop, ...) ?
> I'm not sure whether you'll do better by including linux sources by
> default and excluding the ones that aren't appropriate for *BSD, or
> excluding them and then re-including the ones that are relevant (you
> don't want to have to write a BSD-specific version of anything that
> isn't absolutely necessary).
Hm, there does not seem to be a hard rule here. Somehow having dedicated
_freebsd files looks cleaner but that does impose more work.
>  
>
>     - GN probably needs to be ported to FreeBSD to be able to continue
>     bootstrapping the build. I sent tickets for this after making the
>     bootstrap binary run on both FreeBSD 8.4-i386 (oldest supported
>     version
>     of we omit FreeBSD 8.3 which will expire after April) and FreeBSD
>     10.0-amd64 (latest release). The main ticket is 180743014 which
>     depends
>     on tickets 178193018 and 185713005.
>
>
> Just to let you know, the gn project is being put on hold and the
> invocations of it are going to be removed from chromium's build
> process: see
> https://groups.google.com/a/chromium.org/forum/#!searchin/chromium-dev/gn/chromium-dev/LQKLbTU-PuU/8akR_c84JZ8J
> <https://groups.google.com/a/chromium.org/forum/#%21searchin/chromium-dev/gn/chromium-dev/LQKLbTU-PuU/8akR_c84JZ8J>;
> . It's probably not worth you putting much/any effort into this right now.
Ah, I sent in those tickets just before this was announced. But only the
first one is specific to GN, the other two are more generic.

>  
>
>     - Possibly related to GN is this error that I get when running
>     "ninja -C
>     out/Release" in my tip-of-tree git checkout:
>     ninja: Entering directory `out/Release'
>     ninja: error:
>     '../../chrome/renderer/resources/extensions/bluetooth_custom_bindings.js',
>     needed by 'gen/chrome/grit/renderer_resources.h', missing and no known
>     rule to make it
>
>
> This isn't related to gn; grit is the normal resource generation tool.
> If this doesn't work then the hooks haven't run correctly, or the
> revision you have is broken.
Woops, this was because my script was running gyp_chromium with a
vanilla GN (which does not know about FreeBSD) and therefore it never
runs GYP before invoking ninja. It runs fine again apart from expected
breakage.

Regards,
René



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?531DE49E.8000207>