11:37:01 <michalrud> #startmeeting Packaging Chromium for Fedora
11:37:02 <zodbot> Meeting started Tue Aug  2 11:37:01 2016 UTC.  The chair is michalrud. Information about MeetBot at http://wiki.debian.org/MeetBot.
11:37:02 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
11:37:02 <zodbot> The meeting name has been set to 'packaging_chromium_for_fedora'
11:37:09 <michalrud> #meetingname flock2016
11:37:10 <zodbot> The meeting name has been set to 'flock2016'
11:37:40 <michalrud> #topic Chrome project scale
11:38:09 <michalrud> Over 200 third-party packages included in Chromium, as Windows has no package concept like Linux
11:38:17 <michalrud> Stable release every 6 weeks
11:38:23 <michalrud> over 200 comits every day
11:39:47 <michalrud> package for Fedra has ~5 custom patches that are not yet upstreamed
11:40:27 <michalrud> compiling Chromium on laptop takes a couple of hours, but on a fast machine it's ~40 minutes
11:41:36 <michalrud> Since there are ~200 patches every day, rebases are going to be hard when having custom patches
11:41:50 <michalrud> distro patches are best upstreamed
11:42:11 <michalrud> in practice, it works in case for Fedora
11:42:58 <michalrud> dealing with breakages is hard every stable release because of amount of patches
11:43:33 <michalrud> the idea is to have a place with Chromium packages from different distros
11:43:45 <michalrud> and to discuss issues and solutions so they can be reused among distros
11:43:54 <michalrud> a lot of issues are common
11:44:19 <michalrud> it's not RPM vs DEB discussion, but on the higher level issues are similar
11:44:32 <michalrud> people are invited to join chromium-packagers
11:45:40 <michalrud> Chromium will refuse to start when sandboxing is inadequate
11:45:54 <michalrud> but it won't work inside of chroot, so another laptop was needed for testing
11:46:10 <michalrud> #topic build/linux/unbundle
11:47:09 <michalrud> another directory with files for packages
11:47:28 <michalrud> Chromium developers didn't like conditionals inside of main files, so packaging stuff is separate
11:48:03 <michalrud> remove_bundled_libraries.py - python script for removing 3rd party packages, 100+ entries in actual packages
11:48:19 <michalrud> everything which is not whitelisted explicitely is removed
11:48:53 <michalrud> so you'll get a consistent list of 3rd party packages which stay, so you can see which one can get outdated
11:49:35 <michalrud> problem: shim headers: #include in source code has path to third_party/ folder
11:49:54 <michalrud> conditionals would have to be used, Chromium community is against it
11:50:19 <michalrud> also #include "" is used which uses the bundled sources instead than the ones provided by system
11:51:29 <michalrud> so they have recreated this third_party folder and created header files there, which only include the file provided by system
11:53:39 <michalrud> GYP is used in Chromium, which is able to generate project files for IDEs
11:53:56 <michalrud> GYP is Chromium-centric, and its files are hard to read
11:54:09 <michalrud> GYP is being replaced with GN (Generate Ninja)
11:54:15 <michalrud> Ninja - make replacement
11:54:40 <michalrud> GN is also better documented than GYP, which was practically undocumented
11:55:00 <michalrud> GN needs to be bootstrapped, as it is written in C++, while GYP was done in Python
11:55:13 <michalrud> GN has no support for CFLAGS as of now, unfortunately
11:55:22 <michalrud> GN is easier to understand
11:56:01 <michalrud> Notable unbundled libraries: ffmpeg, flac, libevent, libpng, zlib, yasm, snappy, libxslt, libxml, libwebp, harfbuzz-ng...
11:56:31 <michalrud> #topic Interesting ideas
11:57:27 <michalrud> Use original hunspell as Chromium is using a modified one, hunspell was originally on SVN so it was hard to contribute, but it's now on GitHub
12:00:13 <michalrud> unbundling pdfium, which is a package to view PDF files inside of Chrome, initially closed source, is based on Foxit, now open source but with some bundled libraries
12:00:59 <michalrud> creating some way to report crashes to Chromium, as distro crash reporting may have problems with multiprocess architecture of Chromium
12:01:15 <michalrud> #topic Contributions welcome
12:01:32 <michalrud> 114 unique domains of contributors mails
12:02:27 <michalrud> This included Blink, for of WebKit which is used by Chromium but also other projects
12:02:50 <michalrud> Google CLA != copyright assignment
12:03:30 <michalrud> it's very similar to Fedora Project Contributor Assignment
12:04:53 <michalrud> some people think their use case is weird and too obscure to be accepted, but there are some weird contributions as well
12:06:12 <michalrud> maybe not weird, but not too popular, like support for QNX, AIX, Solaris or S390
12:06:57 <michalrud> #topic Questions
12:07:22 <michalrud> Q: Do you do performance benchmarks? Compare it with Windows or other distributions?
12:07:58 <michalrud> A: Individual packages are not performance tested, but upstream every commit is checked and patches which introduce severe regressions are reverted
12:08:15 <michalrud> A: It's open source, so if people want to contribute, it's welcome
12:08:42 <michalrud> Q: Is there a place like a COPR repository where work in progress can be found?
12:09:01 <michalrud> A: it's included in Fedora now, so no need to
12:09:20 <michalrud> Q: Is V8 debundled?
12:09:23 <michalrud> A: V8 is bundled.
12:11:00 <michalrud> A: Both projects move at a very fast pace, the cycle is very fast
12:11:24 <michalrud> A: but there are other projects like NodeJS  which use V8 which may not move as fast
12:17:07 <michalrud> Q: is Pepper Flash going to be open sourced
12:17:31 <michalrud> A: This is probably a question to Adobe, given the security bugs they may not want it
12:18:04 <michalrud> Q: Performance between bundled and debundled versions of Chromium?
12:18:33 <michalrud> A: no in-depth tests, Chrome and Chromium may be differences as Chrome can be more optimized during compile time
12:19:43 <michalrud> A (from audience): Change may be that in debundled you're using shared libraries what makes a startup time longer, but better overall performance
12:21:44 <michalrud> #endmeeting