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.


838 comments

tickle's picture

It's not my first time to go to see this web site, i am visiting this web site dailly and get fastidious data from
here every day.

freon's picture

Good day I am so grateful I found your blog, I really found you by accident, while I
was searching on Aol for something else, Nonetheless I am here now and would just like to say thank you for a
marvelous post and a all round exciting blog (I also love the theme/design), I don't
have time to browse it all at the minute but I have saved it and
also added your RSS feeds, so when I have time I will be back to read a lot more, Please do keep
up the excellent jo.

https://youtu.be/'s picture

Hi there every one, here every one is sharing such familiarity,
so it's fastidious to read this website, and I used to
visit this blog all the time.

Wedding Singer's picture

Good day! I know this is kinda off topic however , I'd figured I'd ask.
Would you be interested in trading links or maybe guest authoring a blog
article 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're interested feel free to send me an e-mail.

I look forward to hearing from you! Superb blog by the way!

replica omega submariner's picture

Do you mind if I quote a few of your posts as long
as I provide credit and sources back to your site?

My blog site is in the very same area of interest as yours and my users would really benefit from a lot of the information you present here.
Please let me know if this okay with you. Cheers!

pop music 2016's picture

I do not know whether it's just me or if perhaps everyone else encountering
issues with your website. It seems like some of the text in your content are running off the screen. Can somebody
else please comment and let me know if this is happening to them too?
This might be a issue with my browser because I've had this happen before.

Thank you

cheap limousine's picture

It's appropriate time to make a few plans for the longer term and it is time to be happy.
I've learn this publish and if I could I desire to counsel you few interesting things or suggestions.
Maybe you could write next articles referring to this article.
I desire to read even more issues approximately it!

limo vip's picture

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

lo que callamos las mujeres's picture

I tend not to comment, but I read some of the remarks on this page Add new comment | Shaneware.biz.
I do have a couple of questions for you if it's okay. Could it be only me
or does it give the impression like some of these remarks come across like
they are written by brain dead individuals? :-P And, if you are posting at other sites, I'd like to keep up with everything
new you have to post. Could you list of every one of your shared pages like your twitter feed, Facebook page or linkedin profile?

pink songs 2012's picture

If you want to get much from this paragraph then you have to apply such strategies to your won web site.

Weed Addiction's picture

Helping a Friend Deal With Marijuana Addiction

order's picture

Magnificent beat ! I wish to apprentice even as you amend your web site, how could i
subscribe for a weblog web site? The account aided me a
applicable deal. I were tiny bit acquainted of this your broadcast offered shiny clear concept

www.evernote.com's picture

Early clinical studies reported the vaccination prevented
illness in three out of four women.

skippy62able's picture

Article writing is also a excitement, if you be acquainted with then you can write otherwise it is
complicated to write.

Air Conditioning Install's picture

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

Any recommendations or advice would be greatly
appreciated. Appreciate it

Reggae Music's picture

Hi! 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 tips?

motivational video's picture

WOW just what I was searching for. Came here by searching for personal injuries claims

cake tray forming machine's picture

Hello, I enjoy reading all of your article post. I wanted
to write a little comment to support you.

lose belly fat in tamil's picture

Greetings! Very helpful advice within this article!
It's the little changes which will make the biggest changes.

Thanks for sharing!

Bilnd Trust der film's picture

Greetings from Colorado! I'm bored at work so I decided to browse your site on my iphone during lunch break.
I love the information you present here and can't wait to take a look when I get home.
I'm shocked at how quick your blog loaded on my cell phone ..
I'm not even using WIFI, just 3G .. Anyhow, good blog!

komplett kostenlos's picture

Truly when someone doesn't know after that its
up to other visitors that they will help, so here it takes place.

youtu.be's picture

I wanted to thank you for this excellent read!! I certainly enjoyed every
bit of it. I have got you bookmarked to look at new things
you post...

lo que callamos las mujeres's picture

Informative article, totally what I needed.

Article About Buy Youtube Subscriber's picture

Video-sharing sites let you create "tags," which
are words that describe your video. At the end of
your videos you can motivate your viewers to click that link to your blog
as well. You shouldn't just record a video for the sake
of having one on your site; you record it because you want your audience to
know more about what you're offering in a less boring way than having to read through black and white text.

jones's picture

It is the best time to make a few plans for the longer term and it is time to be happy.
I've read this post and if I may just I want to suggest
you some fascinating things or advice. Perhaps you can write next articles relating to this article.
I want to learn even more things approximately it!

marketing tricks social media's picture

Good post. I learn something totally new and challenging
on blogs I stumbleupon every day. It's always interesting to read articles from other writers and
practice something from other web sites.

Italienische Band's picture

Great article! We will be linking to this particularly great article on our site.
Keep up the good writing.

Tamil Christian Songs's picture

Greetings! I know this is kinda off topic but I was wondering which blog platform are you using for this
site? I'm getting tired of Wordpress because I've had problems with hackers and I'm looking at alternatives for another platform.
I would be fantastic if you could point me in the direction of a good platform.

Arma 3 Helicopter Fails's picture

First off I would like to say superb blog! I had a quick question which I'd like
to ask if you do not mind. I was curious to find out how you center yourself and clear your
mind before writing. I have had trouble clearing my thoughts in getting my thoughts
out. I do take pleasure in writing but it just seems like the first 10 to 15 minutes are lost simply just trying to figure out how
to begin. Any ideas or tips? Many thanks!

www.youtube.com's picture

Hi! 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 tips?

warheads's picture

Wonderful goods from you, man. I have keep in mind your stuff previous to and you are simply extremely wonderful.
I actually like what you've bought right here, certainly like what you are saying and the best way by which
you are saying it. You make it enjoyable and you continue to take care of to keep it sensible.

I cant wait to read far more from you. This is actually a tremendous site.

Tac dung cua yen sao doi voi phu nu's picture

At this moment I am going to do my breakfast, later
than having my breakfast coming yet again to read additional news.

Bergführer's picture

Thanks for sharing your thoughts. I really appreciate your efforts and I am waiting for your next write ups thank you
once again.

asbestos law suit's picture

Wonderful post! We are linking to this particularly great article on our site.
Keep up the great writing.

Handyortung's picture

Have you ever thought about creating an e-book or guest
authoring on other blogs? I have a blog based on the same topics you discuss
and would love to have you share some stories/information. I
know my subscribers would value your work. If you are even remotely interested, feel
free to shoot me an email.

vinyl-treppenstufen's picture

This is the perfect website for anybody who hopes to find out about this topic.

You realize a whole lot its almost hard to argue with you
(not that I personally will need to...HaHa). You certainly put a brand new spin on a subject
which has been written about for years. Excellent stuff, just wonderful!

michael's picture

It's very effortless to find out any topic on web as compared to books, as
I found this article at this web site.

Tax Lawyer Ca's picture

Get in touch with: 866-385-7441

For those who have an irs bank levy or an irs wage levy.
Release that irs levy using the support of a tax lawyer
who can get a release of tax lien via an offer in compromise with
the IRS.

Dentist Seattle's picture

I wanted to thank you for this great read!!
I absolutely enjoyed every little bit of it. I have you book marked to look at new
stuff you post...

https://imgur.com/gallery/wE5Cqcb's picture

It's best to then enter the activation code which you had obtained.
You should log within the Cell Strike account with
the intention to enjoy the VIP and Gold as you would like.

Auto Auction Portland's picture

Please let me know if you're looking for a writer
for your blog. You have some really good posts and I feel I would be a good asset.
If you ever want to take some of the load off, I'd absolutely love to write some articles for your blog in exchange for
a link back to mine. Please send me an e-mail if interested.
Thanks!

edelstahl geländer's picture

Hmm it appears like your site ate my first comment (it was extremely long) so I guess I'll just sum it
up what I had written and say, I'm thoroughly enjoying your blog.
I as well am an aspiring blog writer but I'm still new to the whole thing.
Do you have any recommendations for first-time blog writers?

I'd definitely appreciate it.

Electrical Contractor's picture

I have read so many content concerning the blogger lovers but this post is in fact a nice paragraph,
keep it up.

cool's picture

Very shortly this web page will be famous amid all blogging users, due to it's nice posts

Que Caro Estoy Pagando's picture

Valuable info. Fortunate me I discovered your site by accident, and I'm stunned why this
twist of fate did not happened in advance! I bookmarked
it.

Auto Auction Portland's picture

I don't even know the way I stopped up here, however I thought this publish used to be great.

I do not understand who you are however definitely you are going to a famous
blogger when you are not already. Cheers!

https://youtu.be/'s picture

It's an awesome article in favor of all the web users; they will get advantage from it
I am sure.

youtube.com's picture

fantastic issues altogether, you just received a new reader.
What may you suggest about your put up that you made some
days ago? Any positive?

desire's picture

This piece of writing will help the internet visitors
for creating new webpage or even a blog from start to end.

Believe that it is possible by Pastor Davis Byars's picture

Hello! This is kind of off topic but I need some help from an established blog.
Is it tough to set up your own blog? I'm not very techincal but
I can figure things out pretty fast. I'm thinking about making my own but I'm not sure where
to begin. Do you have any ideas or suggestions?

Thanks

Pages

Add new comment