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

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.
Cheers!

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!

queens-peak's picture

Hey this is somewhat of off topic but I was wanting to know if blogs use
WYSIWYG editors or if you have to manually code with HTML.

I'm starting a blog soon but have no coding experience so I wanted to get guidance from someone with
experience. Any help would be enormously appreciated!

he need some milks's picture

Do you mind if I quote a couple of your articles as long as I provide credit
and sources back to your site? My website is in the exact same area of interest as yours and my users
would genuinely benefit from a lot of the information you provide
here. Please let me know if this ok with you. Thank you!

Link vào m88's picture

I delight in, cause I found exactly what I
was having a look for. You've ended my four day lengthy hunt!

God Bless you man. Have a great day. Bye

showseros's picture

What's up it's me, I am also visiting this web page on a regular basis, this site is
in fact pleasant and the people are truly sharing pleasant thoughts.

Cameron's picture

I recently couldn't leave without saying thank you from the bottom of my heart
after looking over this website that is amazing!

ecommerce experts's picture

I've been surfing online more than 3 hours today, yet I never found any interesting
article like yours. It's pretty worth enough for me.
In my view, if all website owners and bloggers made good
content as you did, the net will be much more useful than ever before.

franchise digital home business 2016's picture

An intriguing discussion is worth comment. I believe that you need to
write more about this subject, it might not be a taboo subject but typically
folks don't discuss such issues. To the next! Cheers!!

Augusto de Arruda Botelho's picture

Excellent beat ! I wish to apprentice even as you
amend your web site, how can i subscribe for a weblog site?
The account aided me a acceptable deal. I were a little bit acquainted of this your broadcast
provided vivid clear idea

sirenitaazul's picture

Appreciation to my father who informed me regarding this weblog,
this website is actually amazing.

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

hello there and thank you for your information - I have
certainly picked up something new from right here. I did however
expertise some technical points using this web site, as
I experienced to reload the website lots of times previous to
I could get it to load correctly. I had been wondering if your hosting is OK?
Not that I'm complaining, but sluggish loading instances times will often affect your placement in google and can damage your high
quality score if advertising and marketing with Adwords.

Anyway I'm adding this RSS to my e-mail and could look out for much more of your respective exciting content.
Make sure you update this again very soon.

coloring apps for kids's picture

Hello there! This article could not be written much better!
Looking at this post reminds me of my previous roommate!
He always kept preaching about this. I will forward this post to him.

Fairly certain he's going to have a good read. Many thanks for sharing!

cheap sr22 insurance's picture

You really make it seem really easy with your presentation but I in finding
this topic to be really something that I feel I'd never understand.

It sort of feels too complicated and very vast for me. I am having a look ahead for your subsequent post,
I will attempt to get the hold of it!

http://alde.az/index.php/component/k2/itemlist/user/39749's picture

Spectacular! You don't come by information similar to this quickly and I am not
so ungrateful! Maintain it up folks!

http://youtu.be/0aF7HJLFHw0's picture

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

open a checking account online's picture

Very rapidly this website will be famous among all blog
people, due to it's fastidious articles

28882666.com's picture

Wow! This website definitely presses with me
and that I can say nothing significantly less than I love it!

www.youtube.com's picture

It is perfect time to make a few plans for the
longer term and it is time to be happy. I have read this post and if I could I want to recommend you some fascinating issues or suggestions.

Maybe you can write subsequent articles referring to this article.
I wish to learn even more issues about it!

iphone se battery repair's picture

With havin so much written content do you ever run into any issues of plagorism or copyright infringement?

My website has a lot of completely unique content I've either written myself or outsourced but it
looks like a lot of it is popping it up all over
the internet without my permission. Do you know any solutions to help reduce content from being stolen? I'd genuinely appreciate it.

Obama slide dance's picture

Hi, i read your blog occasionally and i own a similar one
and i was just wondering if you get a lot of spam remarks?
If so how do you stop it, any plugin or anything you can advise?
I get so much lately it's driving me crazy so any assistance is very much
appreciated.

Lose weight Fast's picture

This paragraph provides clear idea for the new people of blogging,
that really how to do blogging.

nhl 2016's picture

Magnificent beat ! I would like to apprentice while you amend your website,
how can i subscribe for a blog website? The account helped me a acceptable deal.
I had been tiny bit acquainted of this your broadcast offered bright clear concept

Madden 17 Gameplay's picture

Very good write-up. I definitely appreciate this website.
Keep it up!

ruilen's picture

Wonderful blog! I found it while searching on Yahoo
News. Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get there!
Many thanks

the today show's picture

Hi, yes this piece of writing is truly fastidious and I have learned lot of things from it concerning blogging.
thanks.

11:11's picture

This text is invaluable. When can I find out more?

talousvalmennus's picture

I was able to find good advice from your articles.

gordon ramsay dash hack's picture

Hi terrific blog! Does running a blog such as
this require a lot of work? I've no expertise in coding but I
was hoping to start my own blog soon. Anyhow, if you have
any recommendations or techniques for new blog owners please share.
I understand this is off subject but I just had to ask.

Thanks a lot!

summoners war hack's picture

Thanks for finally writing about > Add new comment | Shaneware.biz < Liked it!

madden mobile 17 hack's picture

You're so awesome! I do not suppose I have read anything like that before.
So great to discover another person with unique thoughts on this subject.

Really.. many thanks for starting this up.
This site is one thing that's needed on the internet,
someone with a little originality!

video sales letter software's picture

Wow that was odd. I just wrote an extremely long comment but after I clicked submit my comment didn't
show up. Grrrr... well I'm not writing all that over again. Anyways, just wanted to say wonderful blog!

M88's picture

I am actually happy to read this website posts
which carries lots of valuable facts, thanks for providing
such data.

castle clash hack's picture

I rarely leave a response, however after reading a few of the responses on Add new comment | Shaneware.biz.
I do have 2 questions for you if you do not mind. Is it only me or does it
give the impression like some of these responses look as if they are coming from brain dead visitors?
:-P And, if you are writing at additional social sites, I'd like to follow
you. Would you post a list of the complete urls of your social sites like
your linkedin profile, Facebook page or twitter feed?

sales funnel software's picture

It's really a nice and helpful piece of information. I am glad that you just shared this helpful info with us.
Please keep us informed like this. Thank you for sharing.

The Amazing Race Season 28 Episode 3's picture

I was wondering if you ever thought of changing the page layout of your
website? Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could connect with it better.
Youve got an awful lot of text for only having one or two pictures.
Maybe you could space it out better?

นักร้องงานแต่ง's picture

Hello there! This is kind of off topic but I need some
guidance from an established blog. Is it very hard 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 points or suggestions?
With thanks

The Best Marketing Platform's picture

Greetings from Idaho! I'm bored at work so I decided to check out your site on my iphone during lunch break.
I love the knowledge you provide here and can't wait to take a
look when I get home. I'm surprised at how quick your blog loaded on my mobile ..

I'm not even using WIFI, just 3G .. Anyhow, very good site!

best interest credit card's picture

When someone writes an piece of writing he/she maintains the plan of a user
in his/her brain that how a user can know it. Thus that's why this paragraph is great.
Thanks!

summoners war hack's picture

Hey! I understand this is sort of off-topic however I needed to ask.
Does operating a well-established blog such as yours take a lot of work?

I'm brand new to operating a blog but I do write in my journal every day.
I'd like to start a blog so I can share my experience and views online.
Please let me know if you have any kind of recommendations or tips for brand new aspiring bloggers.

Appreciate it!

Pages

Add new comment