Using Tinderbox as a package builder

Tim Bishop tim-lists at bishnet.net
Thu Oct 20 07:09:43 EDT 2011


Hi Steve,

On Wed, Oct 19, 2011 at 09:45:21AM -0400, Steve Wills wrote:
> > I've been using Tinderbox for testing ports for quite a long time. It
> > does a great job, thanks!
> >
> > Now I'm looking at providing binary packages for a bunch of servers
> > and it seems like a good idea to use Tinderbox to do this as well. At
> > a simplistic level I could just do this on a regular basis:
> >
> > 1. Update ports tree
> > 2. Queue my list of leaf ports for rebuilding
> >
> > Whilst this would do what I need, it would rather pointlessly rebuild
> > all of the leaf ports regardless of whether they needed rebuilding.
> > What I need is a way to only rebuild those that have changed.
> >
> > I'd also like to use custom OPTIONS for building some of the ports.
> > This is easy enough to do with Tinderbox, but I'd need to generate an
> > INDEX file using the same options to get the dependencies right.
> 
> I'm curious, what are you running on the hosts to update the packages? I'm
> guessing whatever that is needs the INDEX? I'm thinking I could use
> something like that as well.

I'm using portmaster to do the package install/updates on the hosts. I
have portmaster.rc setup to use only packages and get them from my
server. So I can run stuff like "portmaster cat/port" to install
something or "portmaster -a" to upgrade everything. It pulls an INDEX
file from the same server as the packages.

I've generated the INDEX file using a local port. I looked at the list
archives and noticed others were doing it using a hook after the ports
tree had been updated, but that doesn't work when you have builds for
different OS versions. By doing it in a port I also get to take
advantage of any OPTIONS set up for my build too.

My final daily (scripted) process is:

1. Update ports tree
2. Build my index port in the required builds
3. Extract the INDEX-?.bz2 file from the generated package and put it in
the same place as the packages
4. Build all of the packages in my list using -norebuild so I only
rebuild things that need it

On my hosts I have a cron job that runs "portmaster -L", munges the
output slightly, and mails me a list of available updates.

It's all still a little rough round the edges though :-)

Tim.

-- 
Tim Bishop
http://www.bishnet.net/tim/
PGP Key: 0x5AE7D984


More information about the tinderbox-list mailing list