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?


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.


https://www.reiffandbily.com's picture

Heya i'm for the first time here. I found this board and I
find It truly useful & it helped me out a lot. I hope to give something back and
help others like you aided me.

shop.bxlinggou.cn's picture

I really like reading websites similar to this! Causes enlightened and in addition me to feel a rewarding
that is warm sensation! Thankyou so much!

mariobet üyelik's picture

I used to be suggested this blog by way of my cousin. I am no longer
certain whether or not this publish is written via him as nobody else understand such certain about my trouble.
You are incredible! Thanks!

GCLUB's picture

This paragraph gives clear idea in support of the new viewers of
blogging, that truly how to do running a blog.

harrah&#039;s's picture

I was more than happy to uncover this great site.
I wanted to thank you for ones time due to this fantastic read!!
I definitely savored every part of it and i also have you book
marked to check out new stuff in your blog.

лучшие пляжи пхукета's picture

hello there and thank you for your info - I've definitely picked up anything new from right here.

I did however expertise a few technical issues using
this site, as I experienced to reload the site a lot of times previous to
I could get it to load correctly. I had been wondering if your hosting is OK?
Not that I am complaining, but sluggish loading instances times will sometimes affect your placement in google
and can damage your high-quality score if ads and
marketing with Adwords. Well I'm adding this RSS to my
e-mail and could look out for a lot more of your respective fascinating content.
Make sure you update this again soon.

android app game's picture

An outstanding share! I have just forwarded this onto
a colleague who has been conducting a little research on this.
And he in fact ordered me breakfast due to the fact that I found it for him...
lol. So allow me to reword this.... Thanks for the meal!!

But yeah, thanx for spending some time to talk about this matter here on your site.

[Best Sports Application for 2017] Fire Fan !'s picture

You need to take part in a contest for one of the highest quality sites on the net.
I will highly recommend this website!

Antoine's picture

It's so difficult to find material that is useful today, but this
undoubtedly qualifies as you. Causing certainly will surely come back soon and pleased!

ed.ted.com's picture

Howdy! Would you mind if I share your blog with
my twitter group? There's a lot of folks that I think would really
appreciate your content. Please let me know.


Gold Cutcrease Makeup Tutorial (Beginner Friendly)'s picture

At this time I am going to do my breakfast, afterward having my breakfast
coming yet again to read additional news.

Joe leno's picture

Hi, Neat post. There's a problem along with your website in web explorer, might
test this? IE nonetheless is the marketplace
chief and a good section of people will omit your magnificent writing due to this problem.

look at these guys's picture

I'm basically pleased with this blog and I desired to take
the time to thank you from your underside of my heart!

falsetto's picture

Hi there it's me, I am also visiting this web page on a regular basis,
this web page is genuinely pleasant and the users are in fact sharing nice

defamation lawyer's picture

Very nice article, totally what I wanted to find.

wowo gym's picture

Hey there! I just wish to offer you a big thumbs up for your excellent info you've got right here on this post.
I will be returning to your site for more soon.

boost internet speed's picture

Hello, I desire to subscribe for this weblog to get hottest updates, so where can i do it please help.

baby frozen elsa's picture

Its like you read my mind! You seem to understand a lot approximately this, such as
you wrote the e-book in it or something. I believe that you could do with some p.c.

to force the message home a bit, but instead of that, this is wonderful
blog. A great read. I'll definitely be back.

http://braintuitions.com's picture

We composed this overview for an audience of newbie online marketers, experienced business owners in order to
small company owners, entrance to mid-level candidates, and marketing supervisors looking for sources to train their direct records.

tickle's picture

Appreciate this post. Will try it out.

sos ambulance casablanca's picture

Thank you, I have recently been looking for information about this subject for ages and yours is the best I've found out so far.
But, what in regards to the bottom line? Are you sure concerning the source?

manutenção de piscinas's picture

Thanks for sharing your thoughts about palm pilot.

manutenção de piscinas's picture

Hey there! Would you mind if I share your blog with my myspace group?
There's a lot of people that I think would really enjoy your content.
Please let me know. Thank you

Robux Hack's picture

There is definately a great deal to find out about this topic.

I like all of the points you've made.

manutenção de piscinas's picture

I do not know whether it's just me or if perhaps everyone else experiencing issues with your site.
It appears as if some of the written text on your content are running off the screen. Can somebody else please
comment and let me know if this is happening to them as well?
This could be a problem with my internet browser because I've had
this happen previously. Appreciate it

cheap campervan rental's picture

Thank you for the auspicious writeup. It in fact was a amusement account it.
Look advanced to more added agreeable from you! However,
how could we communicate?

youtube.com's picture

We're a group of volunteers and starting a new scheme in our community.

Your web site offered us with valuable information to work on. You have done a formidable job and
our whole community will be thankful to you.

Radio Live Stream's picture

My brother recommended I might like this
website. He used to be entirely right. This publish truly made my day.
You can not consider simply how so much time I had spent for this information! Thanks!

dental continuing education courses's picture

Whats up are using Wordpress for your blog platform?
I'm new to the blog world but I'm trying to get started and create my own. Do you need
any html coding expertise to make your own blog?
Any help would be greatly appreciated!

Music's picture

Somebody essentially assist to make significantly articles I'd state.
This is the first time I frequented your website page and so far?
I surprised with the research you made to make this actual publish extraordinary.
Great process!

www.youtube.com's picture

Usually I do not learn article on blogs, but I wish to say that this write-up very forced me to take a look at and do it!

Your writing style has been amazed me. Thanks, quite nice article.

creme brulee's picture

Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter
updates. I've been looking for a plug-in like this for
quite some time and was hoping maybe you would have some experience with something like this.

Please let me know if you run into anything. I
truly enjoy reading your blog and I look forward to your new updates.

vip digital printing's picture

Stunning! You don't come by info such as this simply and that I am so happy!
Preserve it-up folks!

www.worldcopper.cn's picture

I desired to take some time to specific my appreciation in your direction which awesome blog!
Loving it!

lekarstvami.net's picture

Excellent way of telling, and nice article to get data regarding my presentation focus, which
i am going to present in academy.

my weblog - credit monitoring services (lekarstvami.net)

coloring apps's picture

Hi there would you mind stating which blog platform you're
working with? I'm going to start my own blog soon but I'm having a tough time selecting
between BlogEngine/Wordpress/B2evolution and Drupal.

The reason I ask is because your design and style seems
different then most blogs and I'm looking for
something completely unique. P.S My apologies for getting off-topic but I had to

graduate schools's picture

Very good post. I absolutely love this website. Keep writing!

top marketing agencies's picture

Our Master of Science in Marketing program has
numerous student ambassadors chartered to supply help in order to information through email for
potential or brand-new pupils on various topics such as the Dallas environment, housing, living expenditures, academic and also social life.

http://edu-vol.ru/en/node/82904's picture

Wonderful website you have here but I was curious
about if you knew of any forums that cover the same topics talked about here?

I'd really love to be a part of community where I can get responses from other knowledgeable people that share the same interest.
If you have any suggestions, please let me know. Cheers!

landing page builder's picture

Hello there, I discovered your website by the use of Google even as searching
for a related subject, your website got here up, it appears good.

I've bookmarked it in my google bookmarks.
Hi there, just became aware of your weblog through Google, and found that it's really informative.

I am gonna watch out for brussels. I will appreciate if you
happen to continue this in future. Lots of people might be benefited out of your writing.

deal's picture

Hey there! I know this is kinda off topic but I
was wondering which blog platform are you using for this site?
I'm getting sick and tired of Wordpress because I've had issues
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.

aparate foto ieftine's picture

Greetings! Very helpful advice in this particular post!
It is the little changes that make the most important changes.
Thanks a lot for sharing!

TormentedFrog's picture

I'm now not certain where you are getting your information, but good topic.
I needs to spend a while learning much more or working out more.
Thank you for great info I was looking for this information for my mission.

compilation's picture

What a material of un-ambiguity and preserveness of precious familiarity concerning unpredicted feelings.

facebook ads creator's picture

What's Going down i'm new to this, I stumbled upon this I have found It absolutely
helpful and it has helped me out loads. I am hoping to contribute & aid
other customers like its helped me. Good job.

como ganar dinero por internet's picture

I do accept as true with all the concepts you have introduced to your post.
They are very convincing and can certainly work. Still, the posts are
very short for starters. May you please lengthen them a bit from subsequent time?
Thanks for the post.

canvas printing online south africa's picture

It is so difficult to find information that is
important but this truly qualifies as one. Making content and certainly will surely keep coming
back shortly!

SCORES's picture

Hi there! This blog post could not be written any better!
Going through this article reminds me of my previous roommate!
He constantly kept preaching about this. I most certainly will
send this article to him. Pretty sure he's going to have a great read.

Thank you for sharing!

coloring book's picture

Hi, I do believe this is a great website. I stumbledupon it ;)
I will revisit yet again since I saved as a favorite
it. Money and freedom is the best way to change, may you be rich and continue to guide others.

bridging loans scotland's picture

Thanks for ones marvelous posting! I truly enjoyed
reading it, you're a great author. I will be sure to bookmark your blog and will come back later in life.
I want to encourage one to continue your great posts, have a
nice holiday weekend!


Add new comment