OpenBSD Journal

p2k18 Hackathon report: Gilles Chehade on organizing a hackathon and OpenSMTPD

Contributed by Paul 'WEiRD' de Weerd on from the planes-trains-and-strikes dept.

The latest p2k18 hackathon report comes from Gilles Chehade (gilles@), who writes:

For this second hackathon in Nantes, I made sure the issues that plagued the first edition became non-issues.

I checked there was no road work nearby, no world championship of badminton booking all hotels in towns, no widespread riots destroying all ATM machines in town.

Everything was perfect for the national train company to go on strike precisely on the first and last days of hackathon :-)

Turned out not to impact too many people and those impacted managed to change their plans to reach Nantes.

By the end of the first day the hackroom was full of busy developers.

Between work and studies, I had not been able to do any significant OpenBSD work in nearly two years, so this hackathon was the opportunity to dive back into code and enjoy my hobby again, I was really looking forward to it.

At EuroBSDCon 2017, I mentioned the need we had to refactor the configuration grammar and underlying data structures as the one-line per rule was a design error which was impacting development a lot.

I had worked on and off for months on this before the hackathon, writing new grammar from scratch, adapting the structures and simplifying a LARGE amount of code.

I ended up with an almost functional diff but could not find the time to fix all corner-cases and kept reverting my servers to -current smtpd.

My plan for this hackathon was to finish this work for good so it would not necessarily be committed but would be usable on my servers and could be sent to hackers@.

It turns out that unlike other hackathons, I managed to stick to my plan and actually do what I intended :-)

I spent time with eric@ discussing the grammar, looking at the corner-cases, reaching consensus on the semantics, then eventually by the third day I had an instance of "new config" smtpd running just fine on my machines.

The remaining days of the hackathon were spent refining the grammar and doing man page work.

To give an insight, the change basically splits "accept" rules into "action and match" rules, so that:

    accept from any for local alias <aliases> deliver to mbox
    accept from local for any relay

Becomes:

    action local_users mbox alias <aliases>
    action remote_users relay

    match from any for local apply local_users
    match from local for any apply remote_users

landry@ made me realise that was very close to fdm's syntax which I was not aware of but gives me even more confidence this is the right move.

All I need to do before sending the diff is to make sure all options are documented, make sure all options are behaving as documented, write a couple man pages, determine the best way to commit this diff given that it breaks the queue in a way that cannot be made backwards-compatible.

Other than that, I ate too much, drank too much, slept too little, been too stupid, talked too silly, it was a good hackathon.

I'd like to thank Aymeric Fouchault, Ludivine Drouet and the entire Epitech team (with a special mention to Jeremy Andrey) for hosting us at Epitech Nantes again, it was great !

I'd also like to thank VPTech, my employer, for allowing me to attend during work hours and the OpenBSD foundation as well as developers for making the event possible :-)

Thanks for the report, Gilles, and for giving readers a glimpse at the OpenSMTPD future.

(Comments are closed)


Comments

Credits

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 deadly.org 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.]