poudriere options

Matthew Seaman matthew at FreeBSD.org
Tue Feb 9 15:05:13 UTC 2016

On 2016/02/09 14:33, Albert Shih wrote:
> Hi everyone.
> Some basic question about make.conf and poudriere.
> I currently use poudriere with different kind of make.conf.
> But how can I have the standard configuration of make.conf. For example
> I got a poudriere with
>   DEFAULT_VERSIONS= ruby=2.1 perl5=5.20 python=2.7 php=5.6 pgsql=9.4 apache=2.4
> that's fine for some special use. But sometime I would like to use the
> standard version, meanning when pgsql go to 95 I don't have to make a
> another poudriere jail.
> How can I have the standard version of all DEFAULT_VERSIONS, should I
> change it when /usr/ports/UPDATING change, or I create a poudriere jail
> with empty DEFAULT_VERSION.

Hi Albert,

With poudriere you have three different knobs to twiddle to generate
different pkg sets:

   - jail (ie. which version of FreeBSD to build packages for)

   - ports (ie. choose a different version or a possibly locally
            modified copy of the ports)

   - package set

It's this last one that you want.  You can load specific options or
make.conf bits for each named set.  Suppose you call your package set
'special', then:

   -- ${POUDRIEREDIR}/special-make.conf will be read in /after/ the
default ${POUDRIEREDIR}/make.conf (so, put generic settings in plain
make.conf and override things you want different in special-make.conf)

   -- Port options will be stored in ${POUDRIEREDIR}/special-options/
Poudriere will only refer to this directory for port options when doing
a 'special' bulk build.

If you want to start off with your usual settings for most ports and
then only change a few things, just copy the generic options/ directory
one time, and then use

    poudriere options -z special -c some/port

to change just the options for the ports you're interested in.

To run a bulk using these special settings, simply add '-z special' to
your usual 'poudriere bulk ....' command line.  Or you can also have an
alternate list of 'special' ports to build.

The way I usually use this is to build overlay repos, so eg. I build a
standard set of packages with postgresql92-{client,server,contrib} plus
I build a smaller set of packages that includes
postgresql95-{client,server,contrib} plus any packages that depend
directly on one of those postgresql pkgs.  You can then overlay the much
smaller postgresql95 repo on top of the usual repo containing
postgresql92 by having two repo.conf files with appropriate priority:
settings.  Any postgresql related port should get the postgresql95
variant, anything else unrelated to postgresql will just get the generic
version from the main repo.  Works pretty well in general.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 972 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20160209/b1910dd5/attachment.sig>

More information about the freebsd-questions mailing list