Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Nov 2014 00:01:13 +0100
From:      =?UTF-8?B?UmVuw6kgTGFkYW4=?= <rene@freebsd.org>
To:        chromium-list freebsd <freebsd-chromium@freebsd.org>
Subject:   backing down on Chromium ...
Message-ID:  <546E72B9.60700@freebsd.org>

next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello all,

after already four years I decided to back down somewhat on Chromium.
This is not an overnight decision, the feeling started creeping in
several months ago.

One reason is that maintaining Chromium all the way on FreeBSD would
seriously be a good candidate for a full-time job:
  - keep the existing patches working, they need to be checked and
    possibly rewritten on every major release
  - polishing patches for upstream and tickling the upstream bots
  - hunting down incompatibilities. This is mostly caused FreeBSD
    masquerading as Linux and consequently Chromium assumes that e.g.
    /proc is populated as on Linux.
  - writing missing code for FreeBSD, including but not limited to:
    - low-level network stuff
    - fcvt(3)
    - obtaining hard disk drive serial number for the Google Music (if
      I understand correctly)
    - obtaining detailed memory usage, proper GPU porting
  - keeping the GitHub and ports version in sync
  - writing VuXML entries once in a while
Also, other things seem more interesting (e.g. FreeBSD documentation or
other ports), and sometimes I felt more like being a Chromium than a
FreeBSD developer.

This does mean that *you* will have to continue, but I (boldly) think
there is enough interest for it.  This should hopefully get you started:
- - As you might know, we have an work-in-progress repository on GitHub:
  https://github.com/gliaskos/freebsd-chromium/
- - Patches are available in the Ports Tree and on GitHub. There are also
  experimental patches against the top-of-tree (like FreeBSD-CURRENT) at
  https://people.freebsd.org/~rene/chromium/
- - The latter location also contains a script to generate the patches
  (gen-diff.sh) and a script to try to build chromium in a chroot
  (update.sh). It also contains a list of required packages (pkg-list).
  Note that libxml2 and yasm can go once the bundled versions work.
- - Minor version updates are mostly a matter of running `make makesum`
  and checking if the pkg-plist is still OK.  See below for major
  version updates.
- - Notice that new upstream distribution files can take a day to appear,
  even in the case of a security update.

Porting a new major version (for GitHub or the Ports Tree) is a
different story though:
- - Checkout the beta branch at GitHub
- - Bump the PORTVERSION, run `make makesum`
- - Run `make checkpatch` to see which patches still apply. Temporarily
  move Broken / orphaned patches out of the way. Repeat till
  `make checkpatch` is fine.
- - Fix or delete the patches you just moved
- - Try to build the port. Have coffee, brain, and willpower ready...
- - If `make configure` fails, this is mostly because gyp is complaining.
  In case a directory got accidentally deleted by the
  remove_bundled_libraries.py script, put it back in, add it to its
  list, and try again.
- - In case you need inspiration for a patch, try to look at the
  corresponding Linux or MacOSX code.  A lot of times adding BSD to the
  list suffices.
- - Once Chromium links and staging passes, run `make check-plist` and
  `make package` to see if the package list is still OK.
- - Try to run it.
- - Once that works, you can send the patches using a PR, a website, or
  otherwise.
- - Every six weeks or so the Beta version gets Stable, which means it is
  time to merge the beta branch back into the master branch.
- - To get the patch for the Ports Tree, replace the old files/ directory
  with the new one, and update Makefile, pkg-*, and distinfo

In case you feel like working with upstream:
- - See the WWW site for some hints on getting started
- - Have a modern machine ready (many cores, RAM, ZFS, ccache)
- - Check upstream on how to get the sources (chroot highly recommended
  to not pollute your existing system).  Notice that the initial
  checkout can is between 10 GB and 15 GB large.
- - Apply the patches from https://people.freebsd.org/~rene/chromium/
- - Run the script to try to build Chromium:
  sh ./update.sh build nopull
  Even more coffee, brain, and willpower recommended.
- - To update from upstream, run:
  sh ./update.sh
  and check for merge conflicts in the git output.

Resources:
- - https://googlechromereleases.blogspot.com/
- - chromium-dev@chromium.org
- - chromium-packagers@chromium.org
- - #chromium on FreeNode

For now I will continue to:
- - Committing VuXML entries
- - Committing new versions to the Ports Tree (e.g. as PR) and to GitHub.
  Feel free to fork the repository.
- - Answer any questions you have.

Do mind that (at least in my experience), interest from upstream in BSD
varies.  There might eventually be BSD bots, but that doesn't
necessarily mean that build errors on BSD will be blocking (as they are
on Windows / Linux / MacOSX / Android / iOS).

A good person to contact would be Pawel Hajdan Jr
<phajdan.jr@chromium.org>

Regards,
René
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQJ8BAEBCgBmBQJUbnK4XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMDFBNzE2QjE2MkIwMEU1NUJFREVBMDVB
REJCRjg2MTBBMzc4OUI3AAoJEK27+GEKN4m3vY0P/jdG4W4vvVFquJ9SzKJwhCd3
rOrioQBmMolKiXMS9kdQbwwAf2pskK1VDi0+1fGimN4EIlVI8FO2+ORKQ/72u+0M
ZDLz9Aml29TgjiLWzuvFTXQq9siKKVVx6yszetWCDjkdsmEIBKyz3sSFM+yNTyNu
xmRydxomvl4FNcFMYtI4+nH5LxIIkntbCkJY/6niaDDVMl7jTJmvzcztOh4Q3eff
kkhTdYGmd1s3ZbqKhawaHXfN2Gs2UrZR/kLEyYxM0AuURNOYEoORenWTUa0LloX7
Nk5CBSpX/oQj6Pk9BFOzgcgThd2iIY2qz2ALaibFDLUgsRqor2d6O3zLH93jvqNY
zrasSrL4xIukvGv//e1sG51kOuyrR4ozmBiCSDd3jKM+OfSf/9kPIOaX7BQS4Ihm
VwrMYaONES9B23IAixFoeosaOemcM17RFIb4w7lrDCSsWVB9zHct/Y/GHiGpgbBS
xokTSB+Q1BMm86bBgux/v52Hr/14K5hFXfb8dWq2oZ8+JPxoS9ztMvEij+yfoJcs
GulquJsMj9irZEHEasC0PgC7DdTBAfUO1gHhT/Meai4mJFuBLjaHcTlHxwqnOn44
flIPAnG98aqReCqArHxTsZ5poainP+oX0jnmEHnxsVOZL1Eb1APnWQ23nNN/Oawq
0SQjf164vBJOTWJ1QR59
=fZZc
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?546E72B9.60700>