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 bsdnow.tv 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!

 -Anastasios

Comments

Popular posts from this blog

Hi folks!

Eventually, after some brainstorming conversations with Kostas we decided to create this blog in order to post our work.

As you may guess my name is Anastasios. My interests are comprised of computer security, linux, operating systems and many more low level programming concepts :P.

Finally and before my first post, I would like to thank Kostas for taking care of junkbytes.com because i wasn't involved in the creation process. May the source be with you Kostas :) .

So regarding my first post, last days i encountered a very interesting way to execute ptrace. What is ptrace system call ?

ptrace is a system call found in several Unix and Unix-like operating systems. By using ptrace (the name is an abbreviation of "process trace") one process can control another, enabling the controller to inspect and manipulate the internal state of its target. ptrace is used by debuggers and other code-analysis tools, mostly as aids to software development. (wikipedia.org)

As you can see i…

Revisiting "Stick Soldiers"

Update 16 Sep 2016: The project mentioned in this post has its own page on Gamejolt and Itch.io now: Visit "Stick Veterans" on Gamejolt or Itch.io for more info.
Some of you may have played the classic games Stick Soldiers 1 and 2 by WhiteSpaceUnlimited. Stick Soldiers belongs to the list of small, humble games that manage to captivate our interest and have made many of us spend a lot of our free time and have a lot of fun. (you can download them here: SS1, SS2)

Stick Soldiers has remained discontinued for the past years after the hiatus of the development team and the cancellation of the long-awaited sequel Stick Soldiers 3 by Andrew Russell Studios.

For a long time, I have aspired to revive the Stick Soldiers series by making a fan sequel to the game. Since school's start, I spent about a whole year working on a Game Maker / Ultimate3D project, aiming to evolve it to a complete and worthy sequel, which I called "Stick Soldiers: Encore". Second year of school …

Digital Forensics: Imaging

Hello! Sorry for being inactive so much time but summer lasted a little bit longer than usual..!

Regarding my digging in digital forensics, i decided to create a series of posts beginning with imaging. So today i will show you the three most prevalent formats of "post-mortem" imaging and how to obtain them (on a *nix system) from a test disk.

The discussed formats are the following:
(1) Raw Format
(2) Expert Witness Compression Format (or ewf)
(3) Advanced Forensic Format (or aff)