Porting Mozilla to *BSD

How to Keep Up with Fast Moving Projects and Upstream Patches

Landry Breuil <landry@openbsd.org>

EuroBSDCon 2013 / Sep,28 / Malta

Who ?

OpenBSD

As a project

As a desktop/laptop OS

Mozilla, the project

Not only firefox

Infrastructure/Community

Fast release schedule

In use since Firefox 4.0

Platforms

Mozilla, the tools

Mercurial

Queues

hg qpop, hg qseries, hg qnew, hg qpush, hg qfinish...

Branches / inbound

Sheriffs watch the tree, star failures, and handle merges

Project repositories (fx-team, build-system, b2g-inbound, birch, alder..)

Bugzilla a.k.a. bmo

Workflow

Tbpl (a.k.a. TinderboxPushLog)

http://tbpl.mozilla.org

Try

dawn:~/src/mozilla-central/ $hg qseries
bug-844818-separate-alsa-pulse-webrtc
bug-844430-libsctp-openbsd
bug-807492-webrtc-bsd
bug-807492-webrtc-openbsd-fixes
try
dawn:~/src/mozilla-central/ $hg log -l1 | grep summary
summary:     try: -b do -p all -u all -t all
dawn:~/src/mozilla-central/ $hg push -f ssh://hg.mozilla.org/try
	
Runs all tests on all platforms with mozilla-central tip + my patches

Commit bit

Mozilla on OpenBSD

Not only firefox

History

History (cont'd)

State in 2010

Patchy patchy patch

Local customization vs upstreamable patch ?

mozilla.port.mk

ports in git

branches workflow in git

updating a port

# Change MOZILLA_VERSION, adjust deps
make makesum
make patch
# fix/rm/add patches if needed
make update-patches
make update-plist
make port-lib-depends-check

TEST. FEEDBACK. TEST.

State in 2011

releases/betas are tracked...

patches are being pushed upstream...

let's be proactive and tackle aurora/central!

Buildbot

Hardware

Relationship with upstream

Relationship between *BSDs

Main problems

State in 2013

Future work

Questions ?

MoCo is always hiring: http://careers.mozilla.org/

Slides on http://rhaalovely.net/~landry/eurobsdcon2013/

Thanks for listening

/

#