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.


831 comments

awning singapore's picture

Hi, I do believe this is an excellent website. I stumbledupon it ;) I may revisit yet again
since i have book marked it. Money and freedom is the best way to
change, may you be rich and continue to help others.

Jewish Singles's picture

Good day! 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 setting up my own but
I'm not sure where to start. Do you have any points or suggestions?
Many thanks

3D Animation's picture

Hey there, You've done a grat job. I will definitely digg it and personally suggest to mmy friends.
I'm ure they'll be benefited from this web
site.

film xxx beaucoup gonzo d&#039;une nymphomane candide's picture

Sujet follement cultivant !!!

Wiley's picture

What i do not realize is in fact how you're not actually much more smartly-appreciated than you might be right
now. You're so intelligent. You understand therefore considerably with regards to this topic, made me in my opinion imagine
it from so many varied angles. Its like men and women are not interested unless it's one thing to do with
Lady gaga! Your personal stuffs outstanding. At all times
handle it up!

trouver un dj Thetford Mines's picture

I read this paragraph completely about the difference of newest
and preceding technologies, it's amazing article.

Dana Sibilsky's picture

Wow, this piece of writing is good, my sister is analyzing these things, so I am going to tell
her.

claires coupon print's picture

Do you mind if I quote a few of your posts as long as I provide credit and sources back to your
website? My website is in the exact same niche as
yours and my users would truly benefit from some of the information you provide here.
Please let me know if this alright with you. Regards!

http://codghostshacks.org/'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 exclusive content I've either written myself or outsourced
but it looks like a lot of it is popping it up all over the
web without my agreement. Do you know any ways to help prevent content from being ripped off?

I'd really appreciate it.

Binäre Optionen's picture

Hey there! Do you know if they make any plugins to help with SEO?
I'm trying to get my blog to rank for some targeted keywords but I'm not seeing very good success.
If you know of any please share. Thank you!

play-doh's picture

This post gives clear idea in favor of the new viewers of blogging,
that actually how to do blogging and site-building.

jvzoo's picture

I got this site from my friend who told me about this web site and
at the moment this time I am browsing this web page and reading very informative content here.

https://www.youtube.com/watch?v=rUX8ZVSSX4g's picture

I visited multiple web pages however the audio quality for
audio songs present at this site is in fact marvelous.

dealers solutions group richie bello's picture

Yes! Finally something about annualcreditreport com.

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.

george carlin's picture

Hello colleagues, its impressive paragraph about teachingand entirely explained,
keep it up all the time.

Forward Head Posture Fix review's picture

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

sword fish wooden boats's picture

Great article, exactly what I needed.

Lawyer's picture

What i don't realize is in reality how you're now not actually much more neatly-preferred than you may be right now.

You are so intelligent. You know therefore significantly when it comes to this subject, produced me for my part imagine it from numerous numerous angles.
Its like men and women are not fascinated until it's something to do with
Lady gaga! Your individual stuffs nice. At all times take care of it up!

Luca's picture

wonderful points altogether, you simply gained a brand new reader.

What might you recommend in regards to your put up that you simply made a few
days in the past? Any certain?

adam and eve shopping's picture

It's the best time to make some plans for the future and it is time to be happy.
I have read this post and if I could I desire to suggest you few
interesting things or tips. Maybe you can write next articles referring to this article.

I desire to read more things about it!

lead marketing automation's picture

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

Small penis's picture

I'm officially pleased with this website and that I wanted to take the time to thank you
from the base of my heart!

tickle's picture

I simply could not go away your website prior to suggesting
that I extremely loved the standard information an individual supply for your visitors?
Is going to be back continuously to investigate cross-check new
posts

Mickie's picture

Only important information is provided by this web site and that I am checking to it-this instant!
Thanks people!

Pastor Milton Raul's picture

This is very interesting, You are a very skilled blogger.
I have joined your rss feed and look forward to seeking more of your wonderful post.
Also, I've shared your site in my social networks!

Dominique's picture

I enjoy reading websites similar to this! Causes me to feel
a comfortable rewarding experience as well as educated!
Thank you so much!

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!

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.

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.

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.

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
ask!

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.

Pages

Add new comment