Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 May 2020 10:04:36 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        "info@netocean.de " <info@NetOcean.de>, FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: Poudriere - Compile ALL Ports
Message-ID:  <625BBD86-9740-41D0-8199-CF1B3ACB5320@yahoo.com>
References:  <625BBD86-9740-41D0-8199-CF1B3ACB5320.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Leander Schaefer info at NetOcean.de wrote on
Tue May 5 20:38:49 UTC 2020 :

> I have been dealing with Poudriere for quite a while and one of the =
most=20
> issues I have is, that I have ports which won't compile along with=20
> another. Reason is mostly something like:
>=20
> pkg-static: ImageMagick7-7.0.10.6 conflicts with =
ImageMagick6-6.9.11.6,1=20
> (installs files into the same place). Problematic file:=20
> /usr/local/bin/Magick++-config
>=20
> So in other words a newer version is going to place its binaries etc.=20=

> into the same place as the previous version. I have read and used=20
> something like:
>=20
> # Build several PHP versions parallel on the same server:
> #=20
> https://github.com/freebsd/poudriere/issues/602
>=20
> PHP_ALT=3Dphp56 php70 php71 php72 php73
> .for port in ${PHP_ALT}
> .if ${.CURDIR:M*/ports*/*/${port}*}
> DISABLE_CONFLICTS=3DYES
> PREFIX=3D/usr/local/${port}
> PHPBASE=3D/usr/local/${port}
> LOCALBASE=3D/usr/local
> CONFIGURE_ARGS+=3D--datadir=3D/usr/local/${port}/share
> CONFIGURE_ARGS+=3D--bindir=3D/usr/local/${port}/bin
> CONFIGURE_ARGS+=3D--with-config-file-scan-dir=3D/usr/local/${port}/etc/p=
hp
> #CONFIGURE_ARGS+=3D--with-php-config=3D/usr/local/${port}/bin/php.conf
> #CONFIGURE_ARGS+=3D--with-iconv=3D/usr/local
> #CONFIGURE_ARGS+=3D--with-pcre-dir=3D/usr/local
> .endif
> .endfor
>=20
> But I was wondering: How is the FreeBSD Team dealing with this, when=20=

> they compile their packages for the public repository? Because we only=20=

> use one official repository and all packages are there ... some even=20=

> with differet options enabled. So how to deal with this? How can I=20
> compile the entire ports tree without issues and build a repository of=20=

> it and some packages even with different options? Lets say one =
OpenLDAP=20
> with SASL and another one with SASL? The only way I was able to do =
this=20
> was building it in separate repositories.

The following is based on a guess about what might be
going on.

In my context, for example, I have:

# poudriere jail -l
JAILNAME              VERSION      ARCH          METHOD TIMESTAMP        =
   PATH
FBSDFSSDjail          13.0-CURRENT amd64         null   2018-11-09 =
08:58:53 /usr/obj/DESTDIRs/clang-amd64-installworld-poud

I do not chroot into /usr/obj/DESTDIRs/clang-amd64-installworld-poud and
install any ports there. Why? Because the installed port could conflict
with whatever port(s) poudriere bulk might want to install temporarily.
My /usr/obj/DESTDIRs/clang-amd64-installworld-poud/ is only for =
poudriere's
use.

Having installed ports in =
/usr/obj/DESTDIRs/clang-amd64-installworld-poud
would also lead to poudriere using the installed port over instead
installing ports that it is building. This can lead t using the wrong
version of such an installed port.

Also, I have:

# ls -laT /usr/obj/DESTDIRs/clang-amd64-installworld-poud/usr/local/
total 8
drwxr-xr-x   2 root  wheel  512 Mar 29 23:31:30 2020 .
drwxr-xr-x  14 root  wheel  512 Apr 29 11:57:28 2020 ..

I do not make that a mount point for making /usr/local
visible for chrooting into clang-amd64-installworld-poud.
This is for the same reason as above: poudriere activity
there could end up conflicting with any pre-existing
content that as made visible in
/usr/obj/DESTDIRs/clang-amd64-installworld-poud/usr/local/ .

I do sometimes create other directory trees for use with
chroot (but not as the PATH for a poudiere jail). In
these I freely install ports.

These notes apply to more than just "bulk -a" builds:
smaller subsets built can have the same problems with
having pre-existing material in an equivalent of my
/usr/obj/DESTDIRs/clang-amd64-installworld-poud/usr/local/
area.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?625BBD86-9740-41D0-8199-CF1B3ACB5320>