Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Apr 2015 17:10:14 -0500
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Miroslav Lachman <000.fbsd@quip.cz>
Cc:        FreeBSD Ports <ports@freebsd.org>
Subject:   Re: poudriere-3.1.4 options not working as expected
Message-ID:  <55400546.6020407@FreeBSD.org>
In-Reply-To: <553FFF5E.5070600@quip.cz>
References:  <553FFF5E.5070600@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--smqldACHcuwjuiecx5DP9biQkjnobFoSo
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 4/28/2015 4:45 PM, Miroslav Lachman wrote:
> I am trying to set up own pkg repository for our servers. We have
> different FreeBSD versions, arch and roles of servers, so I am in the
> stage of finding common set of ports, options etc.
>=20
> For example. We have "projectA" with 3 webservers with simmilar set o
> installed ports and used options, but one of them is also mailserver -
> so it have some additional ports.
> Twho servers are on 10.1-RELEASE and the third is on 8.4-RELEASE
>=20
> I created to files with list of origins: projectA and projectA-server3
> projectA is a list of common ports for all 3 servers
> projectA-server3 is a list of additional ports for the third server -
> mailserver
>=20

I answered questions below but I think your approach is wrong. Just make
1 set / repository and use meta packages. See my blog
http://blog.shatow.net/posts/2013-07-21-managing-role-based-freebsd-serve=
rs-with-meta-packages-and-poudriere/

You would make a local/projectA meta package, local/projectB meta
package, etc. Your bulk list would only have the top-level meta-packages.=


The one downside is that this would be 1 set with the same options.

> I configured options for common set "projectA" with command
>=20
> # poudriere options -z projectA -p default -f
> /usr/local/etc/poudriere.d/pkglists/projectA
>=20
> This first problem is that it shows me dialogs for additional options
> which I deselect in previous dialog. For example I configured
> "memcached" without SASL, pecl-memcached without SASL, "libmemcached"
> without SASL but it still asks me to configure Cyrus-SASL options
>=20
[...]
>=20
> So why poudriere options did ask me for cyrus-sasl option if it is not
> needed and not built?


The 'options' subcommand just calls 'make config-conditional' on the
port and then 'make config-recursive' on it again so that this issue
doesn't happen. Perhaps these commands are broken in the ports framework.=


>=20
>=20
>=20
>=20
> The second problem is that I tried to combine two ports lists together
> for projectA-server3 and set options for server3 this way:
>=20
> # poudriere options -z projectA -p default -j 8_4_amd64 -f
> /usr/local/etc/poudriere.d/pkglists/projectA-server3
>=20
> I was expecting this command to asks me for an options only for this
> list of additional ports and it did. (stored in
> 8_4_amd64-projectA-options) So far so good.
>=20
> But I need to build all ports (from both lists) for this machine
> (server3) because it is 8.4 and not 10.1, so I used command
>=20
> # poudriere bulk -v -j 8_4_amd64 -z projectA -p default -f
> /usr/local/etc/poudriere.d/pkglists/projectA -f
> /usr/local/etc/poudriere.d/pkglists/projectA-server3
>=20
> I expected it to use common options from directory
> poudriere.d/projectA-options and additional options from
> poudriere.d/8_4_amd64-projectA-options but all packages not having
> options in poudriere.d/8_4_amd64-projectA-options (but having them in
> poudriere.d/projectA-options) were built with default options.
>=20
> libmemcached was built with SASL
>=20
>     "options": {
>         "DEBUG": "off",
>         "DTRACE": "off",
>         "MEMASLAP": "on",
>         "SASL": "on",
>         "FNV64": "on",
>         "HSIEH": "off",
>         "MURMUR": "on"
>     }
>=20
> After reading the docs on
> https://fossil.etoilebsd.net/poudriere/doc/trunk/doc/poudriere.8.wiki#x=
437573746f6d206275696c64206f7074696f6e73
>=20

That site is not updated anymore. The current documentation is
https://github.com/freebsd/poudriere/wiki/poudriere.8

> I expected poudriere to combine options from both directories together.=


No, it won't do that. Each options dir is a specific set. It will never
build _a set_ using _multiple sets_ configs and options. It will only
use files from _that 1 set_.

There is no sane way for Poudriere to do what you want. The 2 options
dirs could easily conflict with each other. I recommend against trying
to make this work and just making a new set.

> Which it didn't and after reading the docs again and again... the word
> "mounting" is what I overlooked on the first reading. So now I read it
> as "only the first found options directory is mounted".
>=20

Correct.

> Is it possible to use some kind of union mount / unionfs to overlay all=

> found directories according to CUSTOMISATION order?
>=20
> And in the meantime - is it possible to use multiple -f for "poudriere
> options" command?

Yes, but again only 1 set will be used. So you have to make a '-z
combined_set' and run options against that set.

> As it is not written in docs, I didn't try it and
> thought it is not possible and there is not need to use it if
> directories are combined.
> Because now I don't have a way to store options in
> 8_4_amd64-projectA-options directory by one "poudriere options" command=
=2E
>=20
> Or am I doing something wrong?
>=20
> Should I use symlinks from projectA-options to
> 8_4_amd64-projectA-options for each port directory to share options
> between these two build sets? Or copy them from common directory
> (projectA-options) to the other (8_4_amd64-projectA-options)?
> What is the best way to maintain this kind of configuration?
>=20
> Thank you in advance and thanks for poudriere - really nice tool for
> port builds!
>=20
> Miroslav Lachman


--=20
Regards,
Bryan Drewery


--smqldACHcuwjuiecx5DP9biQkjnobFoSo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBAgAGBQJVQAVGAAoJEDXXcbtuRpfP25IH/j0xvlGOQ3P0tPAWexI/F+p1
6RnLRPI+4zLYDAHw7DYw5EibkemZJST/J6gEcT7Gd85WZ5iX8urIfDH/6PMujtIg
hlpoyYWceBnH/rUUg27WBVf/jF2YrbrtJw6hdiQ5ETk0xCXLLv37l/0jXy9QQT84
eO53L3ITE4A4DIZ7ztzha0+oc9K9x8lUR+Ef1JTYO47eNqooLoJODm7zO3og0zzS
Y3E8MwA8kpi8LL7DVEqIVIkz9ylKN/ZY76eAwf86r73D3BlHnKHkJVHJjLrudG8U
gQAQD3LIOw1fALpmSmYo2JCdPKp4Wy8ngrXG88wHl4io+1OsItu1Xi4kkR06WUA=
=mqyu
-----END PGP SIGNATURE-----

--smqldACHcuwjuiecx5DP9biQkjnobFoSo--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55400546.6020407>