Universal tinderbox


Tinderbox's main purpose would be as a developer tool to assist in FreeBSD port maintainers in getting various software packages available to FreeBSD users, but can it be used for more than that - yes. It is based on the scripts used by pointyhat to constantly compile ports to test for errors as well as create packages that are available to download through the various mirror sites. Which means it also gives you the ability to compile your own packages repository. If you want to make it do other things you would need to get into the scripts and adjust it to suit. Basically it is a set of scripts that sets up a clean system environment then compiles ports within it. That is a series of preset commands with some runtime options. There is no reason it can't be adjusted to run any automated task that you want to test within multiple clean systems.

So why would you want to build your own packages repository? Maybe you want your packages built with extra options turned on. Maybe you want to compile your ports with -O3 or CPUTYPE=corei7 to get a bit more performance. Or you support a range of servers and desktops that are not all the same OS versions and company policy prevents binary downloads from external sources being installed on your systems. Or you just want to build your own ports but want to know everything builds successfully before changing anything on your base system.

That last one comes in handy if you want to compile everything with clang. While effort is being made to move away from gcc and have everything built with clang, we aren't there yet. When you build your own ports in your base system various dependencies are built and installed before the port that needs them. This leads to newer libraries installed that may not work well with older versions of packages that use them and this mixed bag gets left that way when one port breaks. So it can be useful to know that everything compiles that is needed before anything in the base system gets changed. If you are using zfs then you could also use snapshots to rollback after a bad upgrade, but that's another story.

If you make changes to your ports tree to fix build issues then share the fixes with others by submitting a problem report. Chances are others would like to use the same fixes you made.

But tinderbox also lets you build against system versions that you don't have installed. How does that help you? Maybe you have an old 7.4 machine that you want to upgrade, you can build all the ports you want for that machine against FreeBSD 9.0 so they are all ready before you upgrade. It is often recommended that you recompile your ports after major system version updates. But then what if your upgrade goes bad and you want to go back to your old system? With tinderbox you could also build your ports against an older version and downgrade with confidence. While no-one would recommend you do that, it can give you peace of mind knowing that you have a way to fall back when changes don't work the way you want. If you want the option to fallback you may want to build both package versions before you upgrade.

In previous posts I have talked about setting up builds with a variety of system versions and configuring the environment options for each so I won't repeat that here. If you are wanting to build your own ports then you may want to expand the environment settings a bit. While you don't get the flexibility that you have with the /etc/make.conf you can add most of the options you would normally use there. The main limitation is you don't get conditional sections so anything you setup will be applied to every port you build. I previously showed you how to set the cputype used and you should be able to figure out how to add your own CFLAGS to the environment settings.

The recent options changes within the ports infrastructure (referred to as optionsng) does provide a way to set options for every port - tinderbox limitations prevent you using that within the environment settings for every port, but you can set some global options or turn on a few important options if that is all you want to do. Options set in the environment file will be applied to each port build, whether you choose to build with non-default options or not. If you want to configure options for a lot of ports then use the standard option config dialogs to set them up. My compileport script from the previous post allows you to use the -O option to use non-default options for each port.

So what are some options that you may want to add to your environment?

export PAPERSIZE=a4 export QT4_OPTIONS="CUPS QGTKSTYLE" export WITHOUT_JAVA=true export OPTIONS_SET="PGSQL SQLITE" export OPTIONS_UNSET="MYSQL JAVA" export PERL_VERSION=5.16.0

Well PAPERSIZE seems obvious. QT4_OPTIONS shows that any values with a space needs to be quoted, without the quotes only the first item is recognized. Within the environment file you can't use variable+=addvalue to set your variables gradually - you only get variable=value. The OPTIONS_SET and OPTIONS_UNSET provide a way to globally turn on or off common options. While a lot of options are unique to each port there is some consistency with naming that may also be expanded over time, with optionsng already adding some common ones like THREADS and DOCS to replace the NOPORTDOCS option that was previously available. To set an option only for a specific port use <uniquename>_SET. To get the ports uniquename use make -V UNIQUENAME eg -

cd /usr/ports/devel/py-gdata make -V UNIQUENAME py27-gdata cd /usr/ports/x11-toolkits/py-gtk2 make -V UNIQUENAME py-gtk2

While there is some consistency you can't always guess the ports uniquename from the portname. You may also want to look in /var/db/ports/<portname>/options for installed ports to see what values you have already used and what is available.

By default tinderbox isn't setup to store the port options you configure. You need to do that manually. To make it work you need to create a directory called options at the top of the tinderbox directory and inside that create a directory for each buildname you want options saved. As standard in unix the directory can be a link to another so you can use your existing options. To compile the ports with non-default options you need to build the ports with the -O option (or -o option to clear existing options and then set options)

So now all there is to do is create a build environment for your ports and start building. If you've been following along and have the base jails setup then -

cd /usr/local/tinderbox mkdir options cd options ln -s /var/db/ports 9-mypackages cd ../scripts ./tc createBuild -b 9-mypackages-amd64-clang -j 9.0-amd64 -p FreeBSD setenv OPTPORTLIST `pkg_info -aoq` ./compileport -O -B 9-mypackages -A amd64 -C clang

And if you are setting up your own packages to distribute through your network of FreeBSD machines you have a couple of options. To use them with the standard pkg_add you can either set PKG_PATH or PACKAGESITE to point to your packages. See man pkg_add for more details. If you use portmaster then you can set LOCAL_PACKAGEDIR to point to /usr/local/tinderbox/packages/9-mypackages-amd64-clang (or a common network mount) as well as PM_PACKAGES=first and PM_PACKAGES_LOCAL=pmp_local. Other package management tools should offer similar config options.


880 comments

hoodies for men's picture

Thank you for another informative website. Where else may I am getting that kind of info written in such a perfect way?
I have a project that I'm simply now operating on, and I've been at the
glance out for such information.

asx da mitsubishi's picture

Howdy exceptional blog! Does running a blog such as this take a lot of
work? I have very little understanding of programming but I had been hoping to start my own blog in the near future.
Anyhow, should you have any ideas or techniques for new blog
owners please share. I understand this is off topic however I simply
needed to ask. Many thanks!

animals's picture

Usually I do not read post on blogs, but I wish to say that this write-up very compelled me to
check out and do so! Your writing taste has been amazed me.

Thank you, quite nice post.

mobilt bredbånd airport extreme's picture

The yellow is for the video feed and the red and the white are for the right audio and the left audio respectively.

tap titans cheats's picture

I like the valuable info you provide in your articles.
I'll bookmark your weblog and check again here frequently.
I am quite sure I will learn many new stuff right
here! Best of luck for the next!

force effects's picture

You are so interesting! I do not think I've truly
read through anything like this before. So great to discover
somebody with a few genuine thoughts on this issue. Really..

thank you for starting this up. This website is something
that is needed on the web, someone with a bit of originality!

Binära Optioner's picture

I am really impressed together with your writing abilities and also
with the layout for your weblog. Is that this
a paid theme or did you modify it your self?
Anyway stay up the excellent high quality writing, it is uncommon to
look a great weblog like this one these days..

fortuner club's picture

Someone necessarily help to make critically posts I'd state.
This is the first time I frequented your website page and thus far?
I surprised with the research you made to create this particular put up extraordinary.
Great process!

best weight loss apps 2013's picture

Always please take a healthy snack with you to work or whenever
you are out. Protein Powders - These are extremely popular nutritional supplements, probably as they are
so versatile. You will find that there are numerous things
which need to come together in order to
get rid of the weight but when you pick one thing to truly master at the same time you will see your confidence soars.

ketone slim's picture

Hi there, I found your web site via Google whilst searching for a related subject,
your website came up, it appears good. I have bookmarked it in my google bookmarks.

Hi there, just changed into aware of your weblog via Google, and located that it
is really informative. I am going to be careful
for brussels. I'll be grateful when you proceed this in future.
Numerous people will probably be benefited from your writing.

Cheers!

pure colon detox's picture

Excellent pieces. Keep writing such kind of info on your page.
Im really impressed by your site.
Hello there, You have done an excellent job. I'll certainly
digg it and for my part suggest to my friends.
I'm sure they will be benefited from this web site.

heroes Charge wiki arena's picture

You can definitely see your skills within the work you write.
The arena hopes for even more passionate writers such as
you who aren't afraid to say how they believe. At all times go after your
heart.

make your own tshirts's picture

I think this is among the most important info for me. And i am glad reading your article.

But should remark on few general things, The web site style is wonderful, the articles
is really great : D. Good job, cheers

2014/2015 The new Real Madrid shirt's picture

You've made some good points there. I looked on the internet to find out more about the issue and found most individuals will go along with your views on this site.

Jamey's picture

Hurrah! Finally I got a website from whewre I be able to genuinely get useful information concerning
my study and knowledge.

www.kresy.pl's picture

It's amazing in support of me to have a web site, which is useful in support of my experience.
thanks admin

pirater un compte facebook gratuitement's picture

Rlease let me know if you're looking for a author for your site.

Uou have some reallY great posts and I feel I wosld be a good asset.
If you eyer want to take some of the load off, I'd asolutely love to write some material for your blog in exchange for a link bask to mine.
Please dzend me an email if interested. Many thanks!

korean gangster movies's picture

What's up, this weekend is fastidious in favor of me, because this
occasion i am reading this impressive informative piece of writing here at my home.

Aaris Alston's picture

I always emailed this web site post page to all my friends, since if like to read it then my contacts
will too.

tickle's picture

This design is incredible! You definitely know how to keep a reader entertained.

Between your wit and your videos, I was almost moved
to start my own blog (well, almost...HaHa!) Wonderful job.
I really loved what you had to say, and more than that, how you presented it.
Too cool!

Pur Slim's picture

I was able to find good information from your blog
posts.

regalos publicitarios personalizados's picture

Especiero: destinado a aquellos que las condimentas
de cualquier lugar del mundo son sus mejores amigas.

Video Enigma bonuses's picture

Continue reading more in the officcial blog - viral video chart.
Peopole tend tto pay more attention to a video file compared to an image or plain text documentation. Your marketing stratey iis your passport to improved sales
and connections to businesses and corporations that will benefit from
yur expertise.

máy đếm tiền's picture

This is my first time go to see at here and i am actually impressed to read
everthing at alone place.

University Of Washington Nursing Faculty Jobs's picture

I am really grateful to the owner University Of Washington Nursing Faculty Jobs this site who
has shared this enormous article at at this place.

work life balance coaching|High Performance Coaching 's picture

Have you ever considered about adding a little bit more than just your articles?
I mean, what you say is valuable and everything. However imagine if
you added some great images or videos to give your posts
more, "pop"! Your content is excellent but with images and clips,
this website could certainly be one of the greatest in its niche.
Amazing blog!

plumberinsydneyau.com's picture

If you are going for finest contents like myself, just visit this web site everyday since it offers quality
contents, thanks

connie danielson's picture

Attractive portion of content. I simply stumbled upon your site and in accession capital to claim that I acquire actually enjoyed account your weblog posts.
Anyway I'll be subscribing for your augment and even I fulfillment you get entry to persistently
quickly.

crossy road hack android all characters's picture

Every cheat is continually tested by our designers for upgrades and all the
tests are completed one road accounts that were crossy that were actual.

Kim Bettasso's picture

Hey There. I found your blog using msn. This
is an extremely well written article. I'll be sure to bookmark
it and return to read more of your useful info.

Thanks for the post. I'll definitely return.

leucoencephalitides's picture

Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to far added agreeable from you!
By the way, how could we communicate?
Hello, i think that i saw you visited my web site thus i came to "return the
favor".I am trying to find things to enhance my website!I suppose its ok to use some of you\

Mark Dubowitz's picture

Today, I went to the beach with my kids. I found a sea shell and gave it to my 4 year
old daughter and said "You can hear the ocean if you put this to your ear."
She put the shell to her ear and screamed. There was a hermit crab inside and it
pinched her ear. She never wants to go back!
LoL I know this is enttirely off topic but I had to tell someone!

Mark Dubowitz's picture

I have been surfing online more than 3 hours today,
yeet I neger found any interesting article like yours. It is pretty worth enough for me.

In my view, if all site owners and bloggers made good content
as you did, the web will be much more useful than ever before.

at (949) 644-6988's picture

WOW just what I was loioking for. Came here by searching for endless

Skye's picture

So go' save the city annd be the next caped crusader of
Gotham City. Thiss huge delay in the making hhas given time to fuel some grand rumors.
To get tthe trophy, you have to take out all the henchman.

Glinda's picture

Thank you for the good writeup. It in reality used to be a amusement account it.

Glance complicated to far brought agreeable from you!
However, how can we communicate?

antique english silver's picture

Hi it's me, I am also visiting this web page daily, this web
site is truly good and the viewers are truly sharing fastidious thoughts.

crack and serial number's picture

Hello there! This is my first comment here so I just wanted to give a quick shout out and say I
really enjoy reading through your blog posts. Can you suggest any
other blogs/websites/forums that cover the same subjects?
Thank you!

รับดูแลผู้ป่วย's picture

Hello my loved one! I want to say that this post is awesome,
nice written and include approximately all vital infos.
I'd like to see extra posts like this .

heroes charge hack's picture

You can get this Personalities Cost Crack Tool that is free
as by just hitting the download button bellow.

this website's picture

I enjoy reading an article that can make people think.
Also, thank you for allowing for me to comment!

mystery.bigmir.net's picture

Your style is really unique in comparison to other folks I have read
stuff from. I appreciate you for posting when you've got the opportunity, Guess I'll just bookmark this site.

My web site; natural forskolin for weight loss (mystery.bigmir.net)

Clash of The kings's picture

Hi there it's me, I am also visiting this website regularly, this
website is in fact fastidious and the visitors are truly sharing pleasant thoughts.

escapada romantica andalucia's picture

Hi! I understand this is sort of off-topic however I had to ask.
Does building a well-established website such as
yours require a large amount of work? I'm brand new to blogging but I do
write in my diary everyday. I'd like to start a blog so I can share my own experience and feelings online.

Please let me know if you have any kind of
suggestions or tips for brand new aspiring blog owners.

Thankyou!

marvel future fight hack no survey no password's picture

I know this if off topic but I'm looking into starting my own blog and was
curious what all is needed to get set up? I'm assuming
having a blog like yours would cost a pretty penny?
I'm not very internet savvy so I'm not 100% sure.

Any recommendations or advice would be greatly appreciated.
Kudos

www.facebook.com's picture

Hi there everyone, it's my first pay a visit at this web site,
and post is actually fruitful designed for me, keep up posting such
posts.

agen bola tangkas's picture

Oregon Rams (Pacific Time Frame Zone web marketers). What do you believe have been the obstacles to reaching your
healthy goals. A team with 2 losses might have lost both games right before the upcoming
game, and be on a losing streak.

Marvel Future fight's picture

Marvel took back Punisher and Daredevil (and also on this recreation),
the rest will fall in place by some means.

how to organize your home's picture

Every weekend i used to go to see this web site,
because i wish for enjoyment, since this this website conations truly good funny information too.

New Bingo Sites's picture

Yоu rереаt thіѕ fоr ѕеvеn dауѕ аnd уоu wіll nо
tісе thе fruіtѕ.
In addition, many of the words used started to take on slightly different meanings, depending on the context in which they are
used. It's probably some mix of the two, so I have to give him props for not going
too far in either direction.

Pages

Add new comment