MarcusCom Tinderbox
What is Tinderbox
Tinderbox is a package building system for FreeBSD ports, based on official
Portbuild scripts used on pointyhat building cluster.
Tinderbox was written by Joe Marcus Clarke.
You can define multiple jails (base system versions) and
multiple portstrees. The combination of jail and
portstree is called a build. A Tinderbox jail
is not what is understood as a jail in FreeBSD, it is in
fact a given world in a chroot. Tinderbox supports automatic
tracking of dependencies and only rebuilds packages that changed
since last run. Tinderbox has support for email notification
of failed builds. Tinderbox also integrates well with
ccache.
Tinderbox is designed to easily provide package sets of
ports you need, for platforms and architectures you need. Tinderbox
is also excellent tool for testing new ports and port
upgrades, especially for testing dependencies and packing lists.
It's also useful for testing ports on various releases of
FreeBSD, since you can run FreeBSD 4.X world as a jail
on FreeBSD 5.X/6.X host.
Tinderbox is written in Perl, uses MySQL or PostgreSQL as data
storage and PHP for optional web front-end. You need the DBD::Mysql
(or DBD::Pg for Postgres) perl module, MySQL 4.1 or newer or
PostgreSQL 7.4 or newer, PHP with php4-mysql (php4-pgsql for
Postgres) extension and PEAR::DB classes installed.
Mailing
list about Tinderbox (archives).
Feel free to subscribe.
See the Tinderbox README (en español) for detailed instructions
on setting up and using Tinderbox.
Download
tinderbox-2.4.2.tar.gz
(2007-12-18) Bug fix release:
- Add support for FreeBSD 8.X.
- Fix a database query bug.
- Ensure the .env files are properly read and export when
building the Makefile and database entries.
- Use the C locale when calculating build times.
- Do not die if a Build's log directory is missing when running
tbcleanup.
This release comes with a rawenv change, so make sure you
copy rawenv.dist to rawenv to get the latest variables.
This release would not have been possible without the patches
and testing from Ade Lovett, Wesley Shields, Boris Samorodov, and
Alexander Logvinov.
tinderbox-2.4.1.tar.gz (2007-09-03) Bug fix release:
- Sync with the latest applicable pointyhat changes. This
includes extraneous UID and GID checking.
- Support for creating per-Jail make.conf and
src.conf files is supported. These files should live in
${tb}/jails/JAIL, and are used for the Jail builds. You
will still need to use Hooks to populate custom
make.conf files in your Builds.
- Sorting now works properly in the www-exp frontend.
- Hooks that contain arguments with spaces can now be properly
executed.
- Various other bug fixes have gone in as well.
This release would not have been possible without the
contributions by Dmitriy Kirhlarov and Alexander Logvinov (and, of
course, pointyhat and Kris).
tinderbox-2.4.0.tar.gz (2007-07-18) New feature
release:
- Hooks : A hook is a "callout" which gives Tinderbox the
ability to run custom code at pre-determined times. For example,
you can establish a Hook to run just before a Port is built,
after a Build is extracted, before a PortsTree is updated, etc.
Pre-condition hooks can even cause an operation to terminate if
so desired. The new commands to manipulate Hooks are tc
listHooks and tc updateHookCmd.
- OPTIONS processing : If you enable OPTIONS
support in Tinderbox, you can have tc addPort automatically
prompt you to configure OPTIONS. Just run tc addPort
with the new -o argument, and you will be prompted with
the usual dialog(1) screen to configure OPTIONS.
OPTIONS configuration will happen recursively if the
-r argument is specified, and non-recursively
otherwise.
- Failed dependents tracking : If a port fails to build, it
will update the datastore for all of its dependents so that they
will be reported as pseudo-failed. That is, they will have a
unique appearance in the www-exp frontend to indicate that they
were not built because a dependency failed.
- Port build duration is tracked and an estimated time to
completion is now shown in the www-exp frontend. Here is an example.
- The /usr/X11R6 symlink is now ignored and not
treated as a leftover.
- The Tinderbox www-exp index page informs users that cookies
are required to use Tinderbox.
Note: This release comes with a pretty hefty schema
change, so one must run upgrade.sh to add the new schema
elements.
This release would not be possible without the contributions and
feedback from Edwin Groothius, Tom Mclaughlin, Diane Bruce, Pav
Lucistnik, Florent Thoumie, Martin Wilke and Alexander
Logvinov.
tinderbox-2.3.6.tar.gz (2007-05-19) Bug fix release:
This release address the change of X11BASE from
/usr/X11R6 to /usr/local. A few other bugfixes
are also included. All users are encouraged to upgrade. When you
do, you will have to manually copy rawenv.dist to
rawenv to get the X11BASE change to take
effect.
tinderbox-2.3.5.tar.gz (2007-02-26) Bug fix and new
feature release:
- No longer disable malloc debugging in Jails (only affects
-CURRENT Jails by default).
- Sync with the new -CURRENT mount commands.
- Properly support alternate LOCALBASE and
X11BASE values throughout the build process.
- Fix a bug where uninitialized variables might be referenced
in portbuild.
- Sync with pointyhat to allow for longer build executions and
larger file sizes.
- Sync the log file analysis code with pointyhat to provide
better hints as to why failures are occurring.
- Make sure the environment is clean when generating
Makefiles.
- Handle the upcoming merged mtree structure.
- Handle the upcoming fontconfig 2.4 upgrade.
- Fix a bug where stale Build Ports could cause tinderd to
fail.
Note: this release includes a micro dsversion bump, so
you must run the upgrade.sh to ensure your database static data is
up-to-date.
The Tinderbox team would like to thank Diane Bruce, Tim Bishop,
Maxime Henrion (mux), Alexander Logvinov, and Florent Thoumie (flz)
for their contributions to this release.
tinderbox-2.3.4.tar.gz (2006-11-28) Bug fix and new
feature release:
- A performance bug with tbcleanup that was introduced
in 2.3.3 has been fixed.
- The portbuild environment is now scrubbed to prevent
pollution. This greatly helps in producing the same packages as
pointyhat.
- The HOME environment variable is initialized to
/root to fix certain false positive leftover
problems.
- If a port fails to build, the Build is reinitialized before
the next port build is started (unless -noclean is
passed to tinderbuild) to prevent pollution.
- All the new failure patterns have been merged from pointyhat.
This will produce much more accurate failure analysis.
- A new feature has been added to support introducing custom
OPTIONS into port builds. Consult the README for more details.
- With the start of Xorg 7.x merge testing, port problems are
being found due to the move to LOCALBASE. Therefore,
Tinderbox needs an easy way to set non-standard
LOCALBASE and X11BASE. This has been addressed
in 2.3.4. To make use of this feature you must either copy
rawenv.dist to rawenv, or add
LOCALBASE and X11BASE variables to your rawenv
file. For example:
-
LOCALBASE=/usr/local
X11BASE=/usr/X11R6
When you want to run a build with non-standard
LOCALBASE and/or X11BASE paths, just change
rawenv, then start your build.
Note: this release includes a micro dsversion bump, so
you must run the upgrade.sh to ensure your database static data is
up-to-date.
The Tinderbox team would like to thank Marcus Alves Grando
(mnag), Alexander Nedotsukov (bland), Erwin Lancing (erwin), and
Pav Lucistnik (pav) for their input on this release.
tinderbox-2.3.3.tar.gz (2006-10-28) Bug fix release:
- Dependencies on Perl modules that are found in Perl 5.8.8
have been removed.
- The GConf hacks have been modified to account for the GNOME
move from X11BASE to LOCALBASE.
- Support for using csup (if present) instead of cvsup has been
added.
- The create script no longer matches on substrings of
Tinderbox object names.
- The maximum file size limit has been increased from 300 MB to
600 MB to account for newer versions of OpenOffice.org.
- The buggy concurrent locking code for distfile caching in
portbuild has been replaced with a more reliable
implementation using lockf.
- Emails for ports not in the datastore now contain the correct
log file name.
- Emails sent for a Postgres-backed Tinderbox now contain the
correct log file name.
- tb cleanup now mounts portstrees before performing
the cleanup operation.
- A bug where the -r flag was not being correctly passed to
mount(8) has been fixed.
- More Postgres incompatibilities have been fixed.
Contributors to this release were Tom McLaughlin (tmclaugh),
Oliver Lehmann (oliver), Boris Samorodov <bsam at ipt.ru>,
and Erwin Lansing (erwin).
tinderbox-2.3.2.tar.gz (2006-07-04) Bug fix an minor
feature release:
- Documentation has been added for the various .env files.
- The build process has been brought in closer sync with
pointyhat.
- Overall dependency handling has been improved.
- tc addPort now properly updates ports that already
exist in the datastore.
- tc tbcleanup does a better job of cleaning up.
- Support has been added for custom cvsweb URLs.
- Various grammar problems have been fixed.
Contributors to this release are Aaron Dalton (aaron), Shaun
Amott (shaun), Oliver Lehmann (oliver), Ade Lovett (ade), and Pav
Lucistnik (pav).
tinderbox-2.3.1.tar.gz (2006-04-22) Bug fix and minor
feature release:
- Fix a bug in PHP 4 that caused dates to contain negative
numbers (www-exp frontend only).
- Import the latest pointyhat build code so that the build
process is now more pedantic.
- Fix a bug where an alternate cvsup program could not be
successfully specified.
- Make leftover detection more robust.
- Other minor debugs have been fixed.
Besides the great effort by Tinderbox committers, the Tinderbox
team would like to start thanking contributors to the various
releases. First, we would like to acknowledge Edwin Groothuis who
contributed a great deal to previous releases, especially to the
www-exp frontend.
Contributors to this release were Andreas Kohn <andreas at
syndrom23.de> and Ion-Mihai Tetcu <itetcu at
people.tecnik93.com>.
tinderbox-2.3.0.tar.gz (2006-02-04) Bug fix and new
feature release:
- Support for the X.Org 6.9.0 mtree layout has been added.
- A message is now printed to the user once tinderbuild enters
its cleanup phase. This should hopefully prevent people from
hitting Control+C too much, and causing an incomplete
cleanup.
- Many Postgres incompatibilities have been fixed.
- The Latest Builds page is now auto-refreshed every 15
seconds while there is an active build, and every 5 minutes when
no build is running (www-exp front-end only).
- You can now sort the Build Ports columns (www-exp
front-end only).
- The duration of a port build is now displayed via the web
(www-exp front-end only).
- More directories (e.g. /usr/local/www) are now
checked for leftovers.
- Alternate cvsup programs (e.g. csup) can now be specified for
updating Jails and PortsTrees.
- Various other bugs have been fixed.
tinderbox-2.2.1.tar.gz (2005-12-24) Bug fix release:
- Fix a bug where linprocfs was being unmounted by linux_base
thus causing Java ports to fail.
- Fix a bug that cause enterbuild to report that the
given Build did not exist.
- Increase filesize limit to 300 MB to accommodate OpenOffice
distfiles.
tinderbox-2.2.0.tar.gz (2005-12-09) Bug fix and feature
release:
- Tinderbox now provides reasons why a port build may have
failed, and these reasons can be displayed using the www-exp
frontend. A new -nolog option was added to
tinderbuild to turn this feature off.
- There is a new -onceonly option to
tinderbuild that disables the phase 2
tinderbuild pass.
- A new -trybroken flag was added to
tinderbuild to build ports that are marked
BROKEN.
- A new -jobs flag was added to tinderbuild
to control how many parallel make jobs are spawned during a
build.
- Ports that are marked as IGNORE (or otherwise duds)
are now properly displayed as such in the www-exp frontend.
- A new script called enterbuild has been added to
drop into a running build just before a port is built for
purposes of in-depth troubleshooting. See the README for more details.
- A bell character ('\007') is printed at the end of a
tinderbuild to alert the user the build has
completed.
- Various bugs have been fixed.
Latest Tinderbox sources can be checked out from anonymous CVS
at marcuscom.com. Get instructions
for anonymous access or
browse CVSweb. Tinderbox lives in portstools
module.
Upgrade Instructions
Consult the README for
instructions for upgrading to the latest version of Tinderbox.
NOTE FOR USERS UPGRADING FROM TINDERBOX 2.0: The user
password encryption algorithm has changed. You must regenerate all
user passwords after upgrading to 2.1.0 or later.
Tinderbox Users
Public installations
i386 GNOME 2
Packages
amd64 GNOME
2 Packages
Personal installations
Pav Lucistnik, Florent Thoumie, Tom McLaughlin, Jeremy
Messenger, Mario Sergio Fujikawa Ferreira, Michael Johnson, Kirill Ponomarew, Michael L.
Hostbaek, Oliver
Lehmann, Erwin
Lansing
Acknowledgments
Tinderbox would not be where it is today without the invaluable
contributions of Michael L. Hostbaek, Oliver Lehmann,
Ade Lovett, Pav Lucistnik, and Jeremy
Messenger.
$MCom: tinderweb/index.html,v 1.48 2007/12/19 02:12:47 marcus Exp $