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.


cash from home online's picture

Nice post. I was checking continuously this blog and I am impressed!
Very helpful information particularly the last section :)
I handle such information a lot. I was seeking this
certain info for a long time. Thanks and good luck.

igmusic's picture

Great goods from you, man. I've understand your stuff previous
to and you are just too excellent. I actually like what you have acquired here, really like what
you are stating and the way in which you say it. You make it
enjoyable and you still take care of to keep it smart.
I cant wait to read far more from you. This is actually a great website.

Pernaton Gel's picture

you're actually a good webmaster. The site loading speed is amazing.
It sort of feels that you are doing any distinctive
trick. Also, The contents are masterwork. you've performed a
wonderful task on this topic!'s picture

Good way of telling, and fastidious paragraph to get data regarding my presentation focus, which
i am going to convey in institution of higher education.

Mildred's picture

Excellent post! We are linking to this great post
on our site. Keep up the good writing.

build muscle fast's picture

I loved as much as you'll receive carried out right here. The sketch is
attractive, your authored subject matter stylish.
nonetheless, you command get got an edginess over that
you wish be delivering the following. unwell unquestionably come further formerly again as exactly the
same nearly very often inside case you shield this increase.'s picture

I just could not go away your website before suggesting that I actually enjoyed the usual information an individual supply for your guests?
Is going to be again continuously in order to check up on new posts

doublebase gel's picture

Aw, this was an incredibly good post. Taking the time and actual effort to
make a good article... but what can I say... I put things off a lot and don't manage to get nearly anything done.

Noob Electronics's picture

I relish, result in I discovered exactly what I used to be taking a look for.
You've ended my four day lengthy hunt! God Bless you man. Have a great day.


music videos's picture

Woah! I'm really loving the template/theme of this website.
It's simple, yet effective. A lot of times it's challenging to get that "perfect balance" between usability and
visual appearance. I must say you have done a awesome job with this.
In addition, the blog loads super fast for me on Opera.

Excellent Blog!

spiderman's picture

Hi, this weekend is pleasant designed for me, for the reason that this point in time
i am reading this fantastic educational paragraph here at my home.

Shiv Nair's picture

Hі, і think tһat і ѕaԝ yоս νiѕіtᥱd
mу ѡeƅѕіtе tɦսs i ϲamᥱ tⲟ "rеtᥙгn thе fɑѵⲟг".Ӏ'm attᥱmρtіng tօ fіnd thіngѕ tⲟ іmргoνе mү ᴡeЬѕіtе!Ⅰ suρpߋѕе itѕ
οҝ tо use a
fᥱᴡ ߋf ʏߋսг іԀеаѕ!!

Ⲏeгᥱ іѕ mу
ɦоmᥱрaɡе - Shiv Nair

Dirk's picture

Very nice article, totally what I needed.

beauty sleep's picture

Why viewers still use to read news papers when in this technological globe everything is available on web?

volcano vaporizer case amazon's picture

By getting the high you seek from a slow combustion of herbs,
you will also get a great aroma to fill your room as
well. You can ask anyone in the world, as there are very few who
have not been delighted after using this particular vape, as
they have set a new trend in the world of vapes.

Both digital and classic models have air filters, a Silencer
that can be used for a more quiet operation and interchangeable solid and easy valves.

muaythai-training's picture

Hey! This is kind of off topic but I need some guidance from
an established blog. Is it hard to set up your own blog? I'm not very techincal but I can
figure things out pretty quick. I'm thinking about creating
my own but I'm not sure where to start.
Do you have any ideas or suggestions? Thank you

detox shakes's picture

If some one wants expert view on the topic of blogging afterward i recommend him/her to
pay a visit this web site, Keep up the good work.

low APR car finance's picture

In addition via online technique you can get numerous online UK lenders that can help the borrowers to get this method at low interest rates with supple repayment options.

May be, your rates will not be as good as you would have liked, but you can get
one. No matter exactly how affordable it seems, make sure to reject
the first offer he or she provides to you.

Minnie's picture

Because the admin of this website is working, no uncertainty
very shortly it will be renowned, due to its quality

shiliushi's picture

I needed to thank you for this good read!!
I absolutely enjoyed every little bit of it. I have you book marked to look
at new stuff you post...'s picture

Thanks for finally talking about > Add new comment | < Liked it!

Mtl Guestlist's picture

Your style is unique compared to other people I
have read stuff from. Many thanks for posting when you've got the opportunity,
Guess I'll just bookmark this page.

Purella Skin Cream's picture

Hey! I know this is kinda off topic but I'd figured I'd ask.

Would you be interested in trading links or maybe guest
authoring a blog post or vice-versa? My blog goes over a lot of the same subjects as
yours and I believe we could greatly benefit from each
other. If you happen to be interested feel free to shoot me an e-mail.
I look forward to hearing from you! Wonderful blog by the way!

boost brain power's picture

Saved as a favorite, I love your blog!

Asian bridal makeup's picture

Since the admin of this web page is working, no question very rapidly it will be
famous, due to its feature contents.'s picture

Hello I am so delighted I found your site, I really found you by accident, while I was searching on Aol for something
else, Anyhow I am here now and would just like to say kudos for a remarkable
post and a all round exciting blog (I also love the theme/design), I don't have time
to go through it all at the minute but I have bookmarked it and
also added your RSS feeds, so when I have time I will be back to
read much more, Please do keep up the great b.

Tree Services Loxahatchee 33470's picture

Hello, i read your blog from time to time and i own a similar one and i was just curious
if you get a lot of spam remarks? If so how do you
prevent it, any plugin or anything you can advise? I get so much lately it's driving me insane
so any support is very much appreciated.

portes garage's picture

I could not resist commenting. Well written!

米拉奇战记 Miragine War MMO's picture

Good way of describing, and good piece of writing to obtain data regarding my presentation topic, which i am going to present in university.

Become an Uber Driver's picture

It's actually a great and useful piece of information. I am satisfied
that you simply shared this helpful information with
us. Please stay us up to date like this. Thank you for sharing.

Surprise Eggs's picture

Helpful info. Lucky me I discovered your site unintentionally, and I am stunned why this twist of fate did not came about in advance!

I bookmarked it.

unique hoodies's picture

Great article, just what I wanted to find.

clash of clans hack's picture

My relatives always say that I am killing my time here at web, except
I know I am getting know-how all the time by reading thes nice articles or reviews.

Sienna's picture

Good day! Do you know if they make any plugins to protect against hackers?
I'm kinda paranoid about losing everything I've worked hard on. Any

mobile strike hack tool's picture

It is so well-liked recreation due to this fact we perceive that.

ridtube live's picture

Excellent site you have here.. It's difficult to
find high-quality writing like yours nowadays.

I truly appreciate individuals like you! Take care!!'s picture

What's up, just wanted to say, I loved this post. It was practical.
Keep on posting!

Barack Obama's picture

Excellent blog! Do you have any tips for aspiring writers?
I'm planning to start my own blog soon but I'm a little lost on everything.

Would you suggest starting with a free platform
like Wordpress or go for a paid option? There are so many choices out there that I'm totally overwhelmed ..
Any suggestions? Cheers!

Arnold's picture

Excellent article. I'm going through a few of these issues as

Get Hard Again's picture

Link exchange is nothing else however it is simply
placing the other person's website link on your page at suitable place and other person will also do same in support of you.

Michele Frazier's picture

Fantastic blog! Do you have any hints for aspiring writers?
I'm planning to start my own website soon but I'm a little lost on everything.
Would you advise starting with a free platform like Wordpress or go for a paid option? There are so many choices out there
that I'm completely overwhelmed .. Any ideas?

light fixtures's picture

Exceptional post but I was wanting to know if you could write a litte more on this subject?
I'd be very thankful if you could elaborate a little bit further.
Many thanks!

apple iphone 4's picture

This website certainly has all the info I wanted about this
subject and didn't know who to ask.

Become an Uber Driver's picture

A motivating discussion is definitely worth comment.

There's no doubt that that you need to publish more about this topic,
it may not be a taboo matter but usually people don't
discuss these subjects. To the next! Best wishes!!

buy paypal vba's picture

Good day! I just would like to offer you a big thumbs up for the excellent info you've got here on this post.
I am coming back to your blog for more soon.

порнографія's picture

Usually I don't learn article on blogs, but I would like to say
that this write-up very compelled me to take a look at and do so!
Your writing style has been surprised me. Thanks, very nice post.

foods high in vitamin c's picture

Unquestionably believe that that you stated. Your favorite reason appeared to be at the internet
the easiest thing to have in mind of. I say to you, I definitely get irked at the same time as other people consider worries that
they plainly don't realize about. You managed to
hit the nail upon the top as well as outlined out the
entire thing with no need side effect , people could take a signal.

Will likely be back to get more. Thank you

my little pony's picture

Hello to every body, it's my first go to see of this weblog;
this website carries awesome and really excellent stuff for visitors.

Celsa's picture

Hi, I resad your blog daily. Your humoristic style is awesome, keep doing what you're doing!

x games bmx bike's picture

Tuna catches will not affect the gloves' charges.


Add new comment