This post is quite long, I wrote another report much shorter for undeadly so pick the one you prefer.


For me hacking stuff began a bit earlier. In september I sent a diff to update py-setuptools, it even got in a bulk but the update was discussed a bit slowly so it never hit the tree. py-setuptools is the package used to create most of python packages. Currently 635 ports have py-setuptools as a build depends. Serious sh^Htuff.

So, on the week before going to Budapest, I took another shot at updating this port. naddy@ kindly put my diff in a bulk. Two ports got their py3 flavors broken. In their py3 flavor, for these two ports the .so now would have an abi tag. Fixing them was very simple though it took me quite a long time (compared to how simple the fix was) to understand the proposal by sthen@. I hope I'll do better next time...

The update diff and fixes were committed on saturday evening, that was a good appetizer!

In Paris

On sunday evening I met with landry@ at a RER B (our lovely rail system to go the airport) station so we could talk during the journey. At the airport we met with ajacoutot@ and espie@.

In Budapest

Going to the hackroom from the hotel, was quite easy, you just had to cross the street.


I began the hackathon with updating a few ports that I often update though I'm not listed as maintainer (hidden maintainer). Scapy had released a new version the week before and so I began to work on it.

Scapy usually publishes a new release more or less around every Christmas. This year they released it a bit early. I already did the previous upgrade back in January so I already knew the port and upstream (while taking care of a port, I really mind about the ease to work with upstream) and scapy's contributors are cool!

Scapy is not a random port regarding OpenBSD. Under /usr/src/regress, 65 files do "import" something from scapy. I asked bluhm@ to test my diff as he has some setups do it automatically. I had a few issues, one was a bit frustrating because the problem came from a dependency and I solved it with make uninstall && doas pkg_add matplotlib. I reported the other issues to upstream and they nicely helped me. For now the diff is still on ports@ as I'm waiting for the feedback armani@ (he's the maintainer).

But, secretly I was slacking about my main goal for this hackathon.


My main goal for this hackathon was updating py-flask. Flask is a python web framework very easy to use and to get your hands on. For three years they didn't create any new release but finally at the end of May they released a new version. I sent a diff to update it but I only got reluctant answer for the update.

This time, I really wanted to get it in. Getting a diff was quite easy as I already did most of the work back in June. I improved it a bit and sent it back to ports@. While waiting for some feedback I updated some other ports I'm familiar with.


A few weeks ago, I noticed in the commit message that czarkoff@ added a py3 flavor to a port which the name isn't py-foobar but just foobar, this doesn't work as the port system creates py3-foobar in the py3 flavor. He pointed out that puppetboard was in the same case and fixed the port but nothing changed regarding puppetboard. I raised the issue to jasper@ and sebastia@ (previous and current maintainers). Finally I sent two diffs to sebastia@ one to move to py2, the other to move to py3 but in either case dropping the useless flavor.

As sebastia@ didn't mind, he followed my preference and tried the py3 diff, he noticed that the rcscript provided by the port needed to be updated (not because of this change, it was overlooked when the py3 flavor was added: if you installed puppetboard through the port to have the py3 flavor, it would have installed py3-gunicorn but the rcscript called the binary provided by the py2 gunicorn).

Finally my py-flask diff went in, partly because I traded a review from rpointel@: he reviewed my flask diff and I reviewed his django diff :D

As ajacoutot@ was working on syspatch, he wanted to make an asciinema of a demo, so he created a port and he asked me to review it. He's often giving me ok and testing diff in bulk builds, so I was happy to help him back.

I also reviewed a couple of updates sent by florian@ for ports related to the RIPE atlas, I'm always happy to help src hackers in the ports tree because I think the less time they spend in the ports tree, the more time they have to hack in src.

A long time ago, I had a python3 project with these ports, so I wanted to add a py3 flavor to all of them. I added py3 flavors to their dependencies, they went in; but the diffs for py-ripe.atlas.* were never committed for some reasons. I took another shot and now libraries supports both python versions and the tools package uses python3 (because it's 2016).

During the day some of us went to the bath so for the evening we ordered pizzas and watched some funny videos on youtube. While watching the videos, I updated another of low hanging fruits.


To find the low hanging fruits that need some love, I extensively use portroach. Some maintainers' name were noted with non-ascii characters, I noticed that because portroach didn't like it. I talked about it with other hackers and eventually removed non-ascii characters.

After that, I found another reason to bother landry@. We have a port geo/openbsd-developers where developers can put their locations. With the data, landry@ created a map which is cool but sometimes it doesn't get updated and the technology behind are quite old. A few months ago he created a new map that uses more a up to date OSM frontend. I told him that the map were using old data from the port so he fixed that and he also added the link on its webpage so I can find the map easily. Thanks Landry!

Then I updated another python port. This port was doing something weird regarding the dependencies it needs. I patched the file but... naddy@ told me that it broke during the bulk.

It was a very good thing that different people were always running bulk builds along the whole week so whenever you broke something, you quickly knew it. Landry really appreciated! :D


I had my plane on the afternoon, so the day was short. I was slacking a bit on twitter when I saw a tweet about a newer version of py-pip. I already updated a couple of times in the past. So I looked at it and quickly cooked a diff which was, shortly after ok'ed by shadchin@ \o/

I asked ajacoutot to put a diff for cython in a bulk, so I was often looking for any possible breakage.


Back in France, the bulk finally finished without problem and I could commit my cython update.

Sum up

I had a really good time, I talked quite a lot with all the different people. Thanks to all people who made it possible!