OpenBSD Journal

Landry Breuil: t2k13 hackathon report - firefox, webkit2 & xfce

Contributed by pitrh on from the puffies, lizards, spiders, oh my! dept.

The 8th report in our t2k13 hackathon report series comes from Landry Breuil (landry@), who writes about sundry news in the ports and packages collection:

Prior to t2k13, I had the luck to give a talk at BSDCan in Ottawa about Mozilla on OpenBSD, where I also found henning@, beck@, reyk@ and Peter Hansteen, along with some other friends from the FreeBSD/Dragonfly/NetBSD crowd. This was a really nice event with interesting talks (bhyve anyone ?), and I look forward to come back there next year.

Fast forward 10 days later in Toronto, sharing a big table with ajacoutot@, kurt@, robert@, pirofti@, matthieu@ & jasper@.. looking back at that week, it went really well for me, I managed to score 3 big milestones i had planned to tackle:

- get WebRTC working in Firefox trunk. WebRTC is the next-generation web standard to allow real-time audio/video communications in the browser, without plugins, browser directly accessing natively the webcam & mic of the user. Definitely a Skype killer.

This all started some months ago in bug #807492 when a FreeBSD contributor published some patches for FreeBSD support. After spending lots of time debugging his patches, polishing & refining them, I got to the point where Firefox asks me if I want to share access to my webcam & mic with some WebRTC test site, and the webcam just works fine via uvideo(4). The basic p2p text chat also seems to work, but I need to debug more the sound layer, currently the mic doesnt seem to work as it uses Pulseaudio for now which doesnt support recording with sndio(7). This is now in the peer review stage in mozilla's bugzilla, and I have good hopes to have it landed for Firefox 24 - probably not enabled by default yet, since it'll need extensive testing, but the basic blocks will be here. Thanks kurt@ for providing access to a fast i386 build machine, that definitely made the hack-patch-build-test-repeat cycle shorter!

- fix Firefox on sparc64. It had been badly broken deep in the JS engine since version 4.0, but thanks to's work who showed me his insane screenshot of Firefox Aurora running on his NetBSD/sparc64 desktop, for which he had been posting patches to bugzilla to fix all the problems in the JS engine, I got to the point (after several 11h-builds or so on a fast VM loaned by ajacoutot@) of having Firefox trunk (ie 24) running on sparc64, loading Google Maps or Bombermine just fine (which are two of the strongest js stresstest for an engine..) and even got Thunderbird trunk running too. I spent some time trying to get martin's patches properly reviewed & commited in the trunk, so I think Firefox 24 will be working just fine on sparc64, and hoping to keep it that way ! That will allow me to ditch the EOL'ed upstream www/firefox36 port, which was kept around only for sparc64.

- try to get the WebKit 2 API working on OpenBSD. This was impossible before, as it relied on shm_open(3) which we didn't have yet.. but tedu@ came up at t2k13 with a sane implementation of that function, which Webkit2 uses for proper IPC between the rendering engine process and the actual web browser process. After countless hours of fiddling with various patches & building the beast, I finally had a complete diff for the www/webkit port that built on i386 & amd64, but runtime testing with www/midori or the provided MiniBrowser test app showed that it wasn't working that much. After discussion with the midori developer, it appears the WebKit2 API is not yet stable nor finished despite the 2.0 version of the package, and the only possible consumers being midori & epiphany so far, iI think we'll have to wait for Webkit 2.2 to see if the situation improved. At least most of the port plumbing work is done for it!

Besides those 3 nice milestones, I've also done a lot of small other work:
- updated www/mozilla-firefox to version 21 - updated my beta www/mozilla-firefox port to version 22.0b3, tested it successfully on i386 & powerpc
- figured out what button in the configure script to push to be able to build Firefox & Seamonkey with clang on i386 again, after having had to come back to gcc4 for memory issues
- updated some Xfce ports & midori to last bugfix releases
- did some xserver 1.14 update testing for matthieu@
- ran some testing ports bulk builds for kde3 move to python2.7, cmake & harfbuzz updates, upcoming gethostbyname_r implementation.. the OPI ports build cluster didn't have time to cool down during this hackathon!
- did some testing of the upcoming llvm/clang 3.3rc2, made sure firefox would still build with it on i386 & amd64
- started looking into a port of Salt, an Ansible/Puppet/Chef competitor

And finally, after having first visited the Mozilla Toronto office some weeks ago & met some of the Mozilla people there i had only known via IRC for some years now, I organized a lunch between some Mozilla developers & some OpenBSD developers - we finally ended up being invited by the Mozilla Foundation to their offices, where we had quite some interesting discussions about various problems each team had, what were our specificities, what we could learn from each other - that was really nice!

I really had a great time at t2k13, chatting with lots of developers I hadn't seen for a long time & also meeting new people, that was really appreciated. Thanks again krw@ for organizing such a perfect event in a great city (ah, the islands & the CN tower..), and to russell for hosting us at his awesome BBQ! And thanks to BSDCan for flying me to canada so i could attend both events!

Thank you very much for the report, Landry! (and everybody else keep watching this spot, we have more t2k13 reports in the pipeline)

(Comments are closed)

  1. By Damien Couderc ( on

    Recent versions of Firefox and Thunderbird on sparc64 ! Yeah \o/


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]