Below you will find my report from openSUSE Conference 2019 (oSC19) where I gave a talk Rust packaging: Cross-distro collaboration done right. Also I have decided to go some parts back on bicycle, so on the the bottom you will find story about that.

About conference

The openSUSE Conference is the annual openSUSE community event that brings people from around the world together to meet and collaborate. The organized talks, workshops, and BoF sessions provide a framework around more casual meet ups and hack sessions. A party here and there provides the time to relax and have fun, making connections on a more personal level. The conference was held in Germany, in the very nice city — and origin of SUSE — Nuremberg (Nürnberg).

Day 0 (pre-conference)

I was coming from Prague by bus with a bicycle. It was raining day before, so I got very nice option from a driver (keep my bike clean by putting it inside where luggage is). We’ve been stopped by German police for checking documents which delayed our ride by 20 minutes. Right after arrival I went for 55 km ride to the hill Moritzberg (604 m) which I tried to climb from few sides in forest which did not work out (wet ground and steep uphill) so I had to climb it on the normal road. After return I’ve met Neal Gompa and Petr Šabata and we went out to try out Nuremberg sausages. We’ve took 20 of them («For experts») to share with Neal. They turned out to be small, but it was enough for both of us. While eating them and drinking good German beer we’ve discussed many different things related to Fedora including Modularity.

Igor is talking about yet another problem he is having with Modularity.

Day 1

Arriving to the conference venue on a bike was quite pleasant (thanks to bicycle paths almost everywhere in city and amount of parks). One thing which I forgot is the bike lock, but I met Richard Brown and he offered to lock our bikes together.

First thing which brought my attention was some QR-code on the registration desk which says something like “This is not the first one, search better,” so I had to walk around and try to find correct one. There were 10 of them in different places of Biergarten, each is asking you some question about openSUSE (logos, abbreviations, versions and so on). Once you find all of them and answer correctly, you can pick up prize on registration desk. I really enjoyed this so I proposed this idea for our events.

I have missed first half of the talks with fixing problem with dynamic BuildRequires and second half by talking with Michael Schröder about libsolv-related things. We’ve discussed what modularity would mean for libsolv, some known corner-cases and I promised to write document which describes how it is supposed to be handled (some kind of test cases).

Then there was some kind of meetup of OBS (Open Build Service) community (both developers and users) where OBS-related things were discussed. I wish we could have something like “RPM buildsystems meetup” where people could discuss problems in different buildsystems (Koji, OBS) and share solutions.

Day 2

Second day was not much different from first which I spent mostly talking to people.

We’ve spent a lot of time discussing with Neal Gompa and Florian Festi how to improve Fedora buildsystem Koji and make our packagers’ life easier. In short:

  • %changelog section is going away
    • it will be generated from git commits
    • existing content will be in read-only file
  • Release field is going to be set to 0%{?dist}
    • it will be generated and re-written by the buildsystem

This way, cherry-picking between branches will be easy, rebuilds won’t need any commits to the repository. All this will allow us to automate much more in packaging area. I’m going to work on a Fedora Objective about this in the upcoming months.

Day 3

Table with fedora logo out of FedoraLovesRust stickers.

The day started from my talk about cross-distro collaboration and our Rust example.

Then we’ve had long discussion with Marcus Rueckert about collaboration. He is an author of Ruby packaging (and gem2rpm fork) in openSUSE, so we figured out that we are trying to do the same with our *2rpm tooling, however we have different configuration formats. Then we figured out that RPM templates would also need some configuration, so if we can re-use same file configuration would be cool. Regarding macro and packaging tooling we’ve agreed that having one upstream repository shared between ecosystems and having somebody from RPM upstream occasionally checking it would be very useful. I don’t think we’ve agreed on exact next steps, but we are in contact now.

The dragons

Since I came with a bike, I was planning to ride for 3 days (from Deggendorf to Budweis (České Budějovice) through the Bohemian Park (Šumava). Florian told me that in that forest there are dragons, otherwise people would already build proper train connection there (it is faster to go through other connections in Germany or even Austria).

Part 1

Originally I was planning to go for 90 kilometers from Deggendorf to Srní, but I forgot that in Germany everything is closed on Sundays and did not estimate my condition properly. After 1.5h and only 20 kilometers from Deggendorf I was out of water and realized that this way I will be not earlier than at 11 PM at my destination. Luckily, I stopped on the train station which is the last point on my route where I can take train which could bring me closer to where I go fast.

I took train to the Ludwigsthal from where I continued on bike. After 8 kilometers I met nicest part of my route — 3 kilometers constantly going up at 10% grade. I was not ready for that. After crossing border with Czech Republic somewhere in the forest I got a puncture in my rear wheel. Luckily it was not big, so after all I managed to get to my destination around 10 PM stopping just few times to put some air where I met with my friend with whom we will continue.

Part 2

After breakfast we realized that our booking includes “Welcome drink,” so we decided to take some wine/beer. Very luckily hotel had a puncture patches which we used to fix my bike (yes, I forgot to take spare tube for such trip). The plan was to go for 110 kilometers from Srní to Horní Planá (town on the Lipno Dam reservoir). We’ve quickly reconsidered doing that trip after 1 hour and being just 8 kilometers away where we stopped to drink water from some kind of the spring. We decided to skip lookout tower.

At some point I punctured my rear wheel once more with a spike so we had to fix it. Very close from that place, we turned to the wrong direction and realized that only when we climbed another hundred meters. Turned out that it was very good because we can skip rest of hills and just get to the place we were going, for dinner which we were already going late.

When it was just 15 kilometers left, it started to rain quite a lot. And kept raining until the morning.

Part 3

After breakfast we were already considering to take a train and just be done with it, but forecast was promising (3 hours without rain) which was good enough to get closer to Budějovice (most likely to Český Krumlov, quite popular touristic place). As you might guess, rain caught us right before we managed to finish ride.

Grand finale

Bikes are secured on the car’s roof. We arrived to Brno after 3.5 hours. What is the yet another problem we hit? Leave your guess in the comments 🙂