Adventures in tinderbox

For those that don't know anything about FreeBSD it is an operating system that traces it's heritage back to the original unix development at AT&T starting in 1970. FreeBSD uses what is called ports to build a whole range of software that you can use. If you know linux and say well we just use yum to install binary programs, that's fine, ports is the structure holding up the FreeBSD equivalent, which is called packages. So you get two options, 1. use a port to compile the software yourself or 2. have a pre-built binary package installed. The port needs to be setup and working before you can get a binary package to install.

Being in the process of helping fix issues related to getting programs to compile within the FreeBSD ports system I have gone and setup tinderbox on my machine. Basically tinderbox allows you to setup virtual systems to test the build process of the port you are working on. This means you can test that the port builds on any number of FreeBSD versions, which is a good starting point to allowing others to use it. Yeah, I said a good starting point, someone will find that it won't work on their machine while program x is installed. But hey that's one of the joys of programming. ;-)

Anyway to the point of this post - setting up tinderbox. While there is some decent documentation it doesn't fully cover all features, maybe these are the newer features. Anyway this is the first of a series of posts that cover my exploration into setting up tinderbox my way.

Tinderbox uses some terms a little different than you may expect so lets start with the first building block - a tinderbox jail. Within tinderbox a jail is a copy of a FreeBSD install of a particular version, that is what you get when you run make buildworld installworld from /usr/src. The idea is you have a few of these jails setup, I will use 10-CURRENT and 9-STABLE as examples here. One area here that isn't covered in the docs is using subversion to get your source files, so that is what I will use. The main FreeBSD development changed to using svn several years ago now but with them keeping the cvs repo mirrored to the svn updates there doesn't appear to be much info on using svn yet. This wiki page seems to be the best info available.

So to get started install tinderbox - from ports of course.

cd /usr/ports/ports-mgmt/tinderbox make install clean

Before install you can run make config to change a few options - personally I swapped mysql with PostgreSQL and csup with cvsup, which I didn't end up using. Installing will put all the scripts in /usr/local/tinderbox/scripts and I will assume that is where your setup is. Beside the scripts dir you will also find several other empty dirs at this point, I'll mention them as we get to the relevant parts.

I won't go into the setup step here as what you need to know is in the docs (tinderbox/scripts/README) basically create the database to be used and save a few options into config files.

Then you stat by creating some jails, you obviously need to give it some info for that.

usage: tc createJail -j <jailname> -u CSUP|CVSUP|LFTP|SVN|USER|NONE [-t <tag>] [-d <description>] [-C] [-P <protocol>] [-H <updatehost>] [-D <updatehostdirectory>] [-m <mountsrc>] [-I] [-a <arch>]

Jailname sounds obvious - the catch is it must start with the main system version number so 10-CURRENT not FREEBSD-10, -u will be SVN and can be left out if you setup SVN as your default, protocol will be svn (this may also be http or svn+ssh but you'll need a login account for ssh access to the official repo), update host will be unless you get fancy and run your own mirror, updatehostdirectory is the svn path to get to what you want. So for a jail based on the current head development we get

cd /usr/local/tinderbox/scripts ./tc createJail -j 10-CURRENT -P svn -H -D base/head -d "FreeBSD 10-CURRENT tinderbox jail"

And for 9-STABLE we get

cd /usr/local/tinderbox/scripts ./tc createJail -j 9-STABLE -P svn -H -D base/stable/9 -d "FreeBSD 9-STABLE tinderbox jail"

So you may notice that the FreeBSD svn setup is a little different than you might expect - they don't use tags or branches the way you expect. Instead the path defines the release tag as such. So you can see that you get 9-stable from base/stable/9 you can also get 9.0-release from base/releng/9.0 or 5.2.1 from base/release/5.2.1 (yes 5.2.1 was the last minor release update) If you want to know the difference between RELEASE and RELENG then read this page. I would say current along with 8 and 9 stable would be sufficient but some may want to add other main releases to their testing list and may need them to find a regression between updates.

At this stage you will find that within /usr/local/tinderbox/jails a folder is created that contains the source and build files for each jail you create. When it is finished there will be a nice tarball of the jails world setup. If you mess around and want to start again then run ./tc rmJail -j my-messed-up-jail (from within tinderbox/scripts) and then remove it's folder within jails. rmJail removes the info from your database but leaves the jail files in place for you - I think there should probably be an option to delete all the files along with the jail definition, note for a suggestion or patch.

Some other options for -D that may interest you are -

base/head base/stable/9 base/releng/9.0 base/stable/8 base/releng/8.2 base/releng/8.1 base/releng/8.0 base/stable/7 base/releng/7.4 base/releng/7.3 base/releng/7.2 base/releng/7.1 base/releng/7.0

Well building the jails will take a few hours, so stay tuned for the next exciting episode.


dafabet mobile's picture

Asking questions are actually good thing if you are not
understanding anything completely, however this article presents good understanding yet.

m88 com the thao's picture

Hi there, just wanted to mention, I liked this article.

It was helpful. Keep on posting!

188 bet's picture

It's amazing to go to see this web site and reading the
views of all friends about this paragraph, while I am also keen of getting experience.

cheap hotels app's picture

We're a group of volunteers and starting a brand new scheme in our community.
Your site offered us with useful information to work on. You
have performed an impressive process and our entire neighborhood
might be grateful to you.'s picture

That is really interesting, You are a very professional blogger.
I've joined your rss feed and look ahead to in the hunt for extra
of your magnificent post. Additionally, I've shared your web site in my social networks

12bet's picture

Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something.
I think that you could do with a few pics to drive the
message home a bit, but other than that, this is magnificent blog.
An excellent read. I'll certainly be back.

Sequoia Capital India Shailendra Singh's picture

I've been exploring for a little for any high quality articles or blog posts on this sort of area .
Exploring in Yahoo I finally stumbled upon this web site.
Reading this information So i'm happy to show that I have
a very just right uncanny feeling I discovered just what I needed.

I so much no doubt will make certain to do not forget this web site and give
it a look on a relentless basis.

Gold Cutcrease Makeup Tutorial (Beginner Friendly)'s picture

What's up, after reading this awesome post i am too delighted to share my know-how here with colleagues.

Augusto de Arruda Botelho's picture

Hi there! This post couldn't be written much better!
Looking at this post reminds me of my previous roommate!
He always kept preaching about this. I'll forward this
article to him. Pretty sure he's going to have a great read.
Thank you for sharing!

ellittica classifica's picture

You could definitely see your skills in the work you write.
The world hopes for even more passionate writers such as you
who are not afraid to mention how they believe.
All the time go after your heart.

Facetime For Android's picture

A brief list of the most downloaded and most essential android apps which you coud obtain absolutely FREE!'s picture

Greate pieces. Keep writing such kind of information on your site.
Im really impressed by it.
Hello there, You've performed an incredible job. I will certainly
digg it and individually suggest to my friends. I'm confident they will be benefited from
this web site.

peppa pig en español's picture

It is really a nice and helpful piece of information. I'm
happy that you simply shared this useful info with us. Please stay us informed
like this. Thank you for sharing.

Patsy's picture

Howdy! I'm at work surfing around your blog from my new apple iphone!
Just wanted to say I love reading through your log and look forward to all your posts!
Keep up the great work!

surprise eggs's picture

hello there and thank you for your info - I've certainly picked up anything new from
right here. I did however expertise some technical points
using this site, since I experienced to reload the site lots of
times previous to I could get it to load correctly.
I had been wondering if your web host is OK? Not that I am complaining, but
sluggish loading instances times will sometimes affect your placement in google and can damage your quality score if ads and marketing with Adwords.

Well I'm adding this RSS to my email and could look out for much more of your respective intriguing content.
Make sure you update this again very soon.

jual hand lifting's picture

Generally I don't read post on blogs, however I wish to say that
this write-up very pressured me to try and do it!
Your writing taste has been amazed me. Thank you,
quite great article.

Affordable home residential service's picture

After I initially left a comment I seem to have clicked the -Notify me when new comments are added-
checkbox and from now on every time a comment is added I
get 4 emails with the same comment. Perhaps there
is an easy method you are able to remove me from that service?

goyang dumang's picture

You really make it seem so easy with your presentation however I find
this matter to be actually something which I feel I'd
never understand. It sort of feels too complex and extremely large for me.
I'm having a look ahead on your subsequent submit, I will attempt to get the hang of

location chapiteau's picture

Thanks for sharing your thoughts on location chapiteau. Regards

commercial's picture

It's in point of fact a great and helpful piece of information. I'm happy that you just shared this helpful information with us.
Please keep us informed like this. Thanks for sharing.

lead marketing automation's picture

For most recent information you have to go to see internet and on the
web I found this website as a finest site for newest updates.

cake tray forming machine's picture

Hey there just wanted to give you a quick heads up. The text in your post seem to be running off the screen in Safari.
I'm not sure if this is a formatting issue or something to do with web browser compatibility but I thought I'd post
to let you know. The design look great though!
Hope you get the problem fixed soon. Thanks

madden 17 aggressive catch's picture

Hi there colleagues, its fantastic paragraph regarding tutoringand fully explained, keep
it up all the time.'s picture

Thanks , I've just been looking for info approximately this
topic for ages and yours is the greatest I have discovered so far.
However, what in regards to the conclusion? Are you certain about the

adjustable rates mortgages's picture

Thank you a lot for sharing this with all folks you actually realize what
you're talking about! Bookmarked. Please additionally discuss with my web site =).
We could have a link change agreement between us

agilent equipment's picture

Hello! This post couldn't be written any better!
Reading through this post reminds me of my old room mate!
He always kept talking about this. I will forward this
article to him. Pretty sure he will have a good read.
Thanks for sharing!

whiteboard animation software's picture

With havin so much content and articles do you ever run into
any problems of plagorism or copyright infringement?
My site has a lot of completely unique content I've either authored myself or outsourced but it appears a
lot of it is popping it up all over the web without my agreement.
Do you know any methods to help prevent content
from being stolen? I'd definitely appreciate it.

summoners war hack's picture

I don't even know how I ended up here, but I thought this post was good.
I do not know who you are but certainly you're going
to a famous blogger if you aren't already ;) Cheers!

sijoittamisen perusteet's picture

It's going to be ending of mine day, but before end I am reading
this fantastic article to increase my know-how.

radio live's picture

Amazing! This blog looks exactly like my old one! It's on a totally different topic but it has pretty much the same page
layout and design. Superb choice of colors!

iphone se battery change's picture

Hmm is anyone else experiencing problems with the pictures on this blog loading?
I'm trying to find out if its a problem
on my end or if it's the blog. Any suggestions would
be greatly appreciated.

automobile accident's picture

Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your website?
My blog is in the very same area of interest as yours and my users would truly benefit from a lot of the information you
present here. Please let me know if this alright with you.
Thank you!'s picture

After I initially commented I seem to have clicked on the -Notify
me when new comments are added- checkbox and from now on every time a
comment is added I get 4 emails with the same comment. There has to
be a means you are able to remove me from that service?

clinicas para bajar de peso en montevideo's picture

bookmarked!!, I really like your website!

nba 2k16 money plays's picture

Everyone loves it when people get together and share thoughts.
Great site, stick with it!

Tamil Christian Songs's picture

Hey there, I think your website might be having browser compatibility issues.
When I look at your blog in Ie, it looks fine but
when opening in Internet Explorer, it has some overlapping.
I just wanted to give you a quick heads up! Other then that, excellent blog!

Italienische Hochzeitsband's picture

What's up i am kavin, its my first occasion to commenting anywhere, when i read this piece of
writing i thought i could also create comment due to
this good paragraph.

phen375 reviews the shocking truth about phen375's picture

Hello, i feel that i noticed you visited my blog so i came to go back the choose?.I am trying to
find things to enhance my website!I suppose its ok to make use of a few of your concepts!!'s picture

I'm amazed, I must say. Rarely do I encounter a blog that's
equally educative and entertaining, and let me tell you, you've hit the nail on the head.

The problem is something which not enough people are speaking intelligently about.
I am very happy that I came across this during my search for
something concerning this.

boiler cleaned's picture

Greetings! Very helpful advice within this post!
It's the little changes that will make the largest changes.

Thanks for sharing!

stl's picture

An impressive share! I have just forwarded this onto a friend who
had been doing a little homework on this. And he in fact ordered me dinner because
I discovered it for him... lol. So allow me to reword this....
Thanks for the meal!! But yeah, thanks for spending the time to discuss
this topic here on your blog.

global threat's picture

Howdy! This post couldn't be written much better! Reading through this post reminds me of
my previous roommate! He always kept preaching about this. I'll forward this information to him.

Fairly certain he's going to have a good read.
Many thanks for sharing!

Eulah's picture

Thanks for your personal marvelous posting! I genuinely enjoyed reading it, you will be a great
author.I will ensure that I bookmark your blog and definitely
will come back sometime soon. I want to encourage you to continue your great job, have a nice evening!

Freiwild's picture

Amazing! Its really amazing post, I have got much clear idea on the topic of
from this paragraph.'s picture

We are a bunch of volunteers and opening a brand new scheme in our community.
Your website provided us with useful info to work on. You've performed a formidable activity and our
entire community can be grateful to you.

potty training tips for boys's picture

It's an remarkable paragraph designed for all the web users; they will
obtain benefit from it I am sure.

cake tray forming machine's picture

Wow, that's what I was exploring for, what
a data! existing here at this weblog, thanks admin of this website.

usmmp green screen's picture

Highly descriptive blog, I liked that a lot. Will there be a part 2?

broma telefonica's picture

Hi, of course this article is truly pleasant and I have learned lot of things from it about blogging.


challenge's picture

Right here is the perfect site for everyone who would like
to understand this topic. You understand a whole lot its almost hard to argue
with you (not that I personally would want to...HaHa).
You certainly put a brand new spin on a topic that's been written about for ages.
Excellent stuff, just great!


Add new comment