Skip to main content

Roadtrip of my first FreeBSD Porting experience

After a long time i am back again writing an article about my favorite OS and my first contribution to it.

All began in 2013 when i first met FreeBSD and its astonishing features. In Google Summer of Code 2014 i wrote a proposal for FreeBSD project but unfortunately it hadn't been accepted. I have been constantly tweaking with FreeBSD since 2013. So eventually these days i made my first contribution in FreeBSD ports system. I went to Wanted Ports page and tried porting euclid-wm to FreeBSD.

During this trip i became inseparable with the Bible of Porting which is FreeBSD Porter's Handbook.  An essential tool for everyone Porter wannabe!

First of all, my first priority was to compile and install euclid-wm in FreeBSD 10.1-RELEASE that i have installed in VirtualBox (i wrote down every change i made so i can automate things later). This business forced me to learn something that all these years i hated hearing of, makefile's anatomy. It is a powerful tool for program maintenance, whatever language you use (for example python, perl, C, C++). In order not to pollute my system with euclid-wm's files every time i wanted to check compilation and installation i searched for various port tools that can definitely aid my work. Surprisingly found many more than i have expected. Some of them are ports-mgmt/poudriere, ports-mgmt/portlint, ports-mgmt/porttools etc. Through ports-mgmt/poudriere i digged out a fantastic BSD-feature named jails. BSD developers have developed a tool (sysutils/ezjail) aiming to automated jails maintenance. You can read a great article about ezjail and its advantages written by guys here. Also there is ezjail site and a FreeBSD Handbook abou jails here ( and man pages of course :P) where you can find the complete documentation.

After the successful compilation and installation of euclid-wm (and the imminent celebration :P ), i got back to earth attempting to write port's Makefile according to Porter's Handbook. Brought up the paper that i have recorded the changes and made the patches, wrote pkg-descr file and generated distinfo file. Finally, port's Makefile took its terminal form. Throughout this process i needed to find where the source_file.tar.gz is located in the internet, which is its license, which are the options of the compilation, which are the dependencies and many more that Porter's Handbook indicated. Knocked my head many times during the steps of "How things works". People in FreeBSD IRC Channels are willingful to help you ( i visited an irc channel two times asking for help and they helped me in no time).

This is the PR on bugzilla.

As a conclusion i want to say that:
  1. FreeBSD community is one of the greatest communities i've ever met.
  2. Have documented nearly everything.
  3. Tweaking with a project can fill in your toolbox with new weapons (in my case: make, jails, several port tools, FreeBSD heir etc.

It was worthwhile!



Popular posts from this blog

Barbara vs Zombies

A few years back I made a game, Barbara vs Zombies, for my then-girlfriend Barbara. She used to like an old light-gun game, House of the Dead , so I depicted her dodging and shooting zombies in this one. Included a backstory with silly romanticism, cats, and inside jokes. It's been nearly a year since we broke up, and this game has been sitting forgotten in my hard disk. I eventually decided it shouldn't go to waste. It is, after all, a game meant to remind us of happy times. Download and play the game on Gamejolt  or . I had made an Android version too, maybe I'll get around to publishing it someday. Hang in there, 2020 was a tough year, but you've made it this far already, so congrats. 💖 -Kostas

Stick Veterans online: Good news & Bad news

After loads of work, online multiplayer for Stick Veterans seems to be progressing very well. In fact, it is nearly complete, as showing in recent tests. Today I ran the first playtest with 3 people; we connected over Hamachi , a free VPN solution, and it pretty much went smoothly (except for some non-critical bugs). Bad news is that LAN connections might be the only thing supported , with little hope for worldwide online games. I already mentioned that in the game's web pages ( post / Gamejolt post ) but I shall lay down the whole story here. In commercial games, online multiplayer is achieved by putting up dedicated 24/7 servers (preferably in various locations throughout the world) to which the players connect. In non-commercial games  (like Stick Veterans), we have to make do without servers, as they cost money (non-trivial amounts of it). As such, we simply allow any player to act as a server themselves, and other players connect to them. This is called

Ludum Dare 44 (late update): Alleycat Faust

Two months ago was the time at which the Ludum Dare 44 gamejam took place. It's been 2 years since I took part in a gamejam ( Global Game Jam in 2017 ), and 3 years since I took part in my first Ludum Dare ( LD35 in 2016 ), so it was about time I re-lived the experience.