Poudriere - Compile ALL Ports

Chris portmaster at BSDforge.com
Thu May 7 20:00:12 UTC 2020


On Thu, 7 May 2020 20:39:41 +0200 Leander Schaefer info at NetOcean.de said

> Hello Chris,
> 
> Hello List,
> 
> I have checked out ports-mgmt/synth unfortunately it would be a massive 
> downgrade compared to poudriere. Does anyone have the right clue about 
> how the FreeBSD package managment team provides a complete repository 
> without having these conflicts? There must be a way to do this with 
> poudriere since I am most certainly sure they also use poudriere.
> 
> Also is there a way to tell poudriere to give a package a different / 
> individual name. E.g. I want to compile openldap one time with SASL and 
> another time without SASL and place them in the same repository. The 
> package naming could/should then be something like this:

OK I don't use poudriere, or any of the other "convenience" toys. They
introduce too many additional variables, which can easily lead to
unintended results.
With that in mind. I use jail(8). It provides a "clean room" with no
more than what a base system, and the ports(7) framework has to provide.
All the questions you've asked so far, are well covered in ports(7).
Conflicting "depends"? Run make all-depends-list some-port, followed by
make all-depends-list some-other-port. Then compare the results. Want
to make a package repo?
myjail.jail # mkdir -p /usr/port/packages/All
myjail.jail # mkdir -p /usr/port/packages/Latest
myjail.jail # cd /usr/ports/ports-mgmt/pkg
myjail.jail # make package install clean
myjail.jail # cd /usr/port/x11/xorg
myjail.jail # make package-recursive

My point is. There *shouldn't* be that much controversy building
ports that build, and install harmoniously. That's the way the
ports/pkg system was designed. The fact that you're running into
so much controversy, seems to indicate you have a "tainted"
environment -- built/installed several ports from source, followed
by installing some by way of pkg(8). Using that procedure is a
crap-shoot -- a gamble, that will ultimately lead to failure.
It's really hard to say what, and where things went wrong. It's
not my computer. But I would strongly suggest building a jail,
and using it to create a package-repo. You'll have a clean
environment to create packages that are guaranteed to work
together on your system. Take a good look at the ports(7) man
page for all the possibilities. The jail(8) man page also
deserves a good read. It's trivial to create a jail, and it's
not at all resource hungry -- I've got 7 jails running on a 3
core AMD box w/8G ram on it. It also runs www, and mail. While
that's not my build server. It does illustrate how light-weight
jails are/can be.

HTH

--Chris
> 
> - openldap-sasl
> 
> - openldap
> 
> Thanks
> 
> Am 05.05.20 um 23:06 schrieb Leander Schaefer:
> > Hello Chris,
> >
> >
> > thanks for your reply. Thanks for the hint about ports-mgmt/synth. I 
> > am definitly going to have a look into this! Well, my Podriere is 
> > using Jails by default. Is there any hack you applied for this issue 
> > to avoid?
> >
> >
> > Best regards,
> >
> > Leander
> >
> >
> > Am 05.05.20 um 22:46 schrieb Chris:
> >> On Tue, 5 May 2020 22:38:36 +0200 Leander Schaefer info at NetOcean.de said
> >>
> >>> Hello,
> >>>
> >>> I have been dealing with Poudriere for quite a while and one of the 
> >>> most issues I have is, that I have ports which won't compile along 
> >>> with another. Reason is mostly something like:
> >>>
> >>> pkg-static: ImageMagick7-7.0.10.6 conflicts with 
> >>> ImageMagick6-6.9.11.6,1 (installs files into the same place). 
> >>> Problematic file: /usr/local/bin/Magick++-config
> >>>
> >>> So in other words a newer version is going to place its binaries 
> >>> etc. into the same place as the previous version. I have read and 
> >>> used something like:
> >>>
> >>> # Build several PHP versions parallel on the same server:
> >>> # https://github.com/freebsd/poudriere/issues/602
> >>> PHP_ALT=php56 php70 php71 php72 php73
> >>> .for port in ${PHP_ALT}
> >>> .if ${.CURDIR:M*/ports*/*/${port}*}
> >>> DISABLE_CONFLICTS=YES
> >>> PREFIX=/usr/local/${port}
> >>> PHPBASE=/usr/local/${port}
> >>> LOCALBASE=/usr/local
> >>> CONFIGURE_ARGS+=--datadir=/usr/local/${port}/share
> >>> CONFIGURE_ARGS+=--bindir=/usr/local/${port}/bin
> >>> CONFIGURE_ARGS+=--with-config-file-scan-dir=/usr/local/${port}/etc/php
> >>> #CONFIGURE_ARGS+=--with-php-config=/usr/local/${port}/bin/php.conf
> >>> #CONFIGURE_ARGS+=--with-iconv=/usr/local
> >>> #CONFIGURE_ARGS+=--with-pcre-dir=/usr/local
> >>> .endif
> >>> .endfor
> >>>
> >>> But I was wondering: How is the FreeBSD Team dealing with this, when 
> >>> they compile their packages for the public repository? Because we 
> >>> only use one official repository and all packages are there ... some 
> >>> even with differet options enabled. So how to deal with this? How 
> >>> can I compile the entire ports tree without issues and build a 
> >>> repository of it and some packages even with different options? Lets 
> >>> say one OpenLDAP with SASL and another one with SASL? The only way I 
> >>> was able to do this was building it in separate repositories.
> >>>
> >>> Thanks
> >> I use Jails which helps weed out some of the conflicts. That is 
> >> different
> >> jails for different (port) options that *may* cause conflict. Also
> >> ports-mgmt/synth is pretty damn clever about sorting out conflicts.
> >> However, I have no direct knowledge on how the pkg build admins deal 
> >> with
> >> this. But just thought I'd share some alternate avenue(s) FWIW. :-)
> >>
> >>>
> >>> _______________________________________________
> >>> freebsd-ports at freebsd.org mailing list
> >>> https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> >>> To unsubscribe, send any mail to 
> >>> "freebsd-ports-unsubscribe at freebsd.org"
> >>
> >>
> >
> > Mit freundlichen Grüßen
> >
> > Leander Schäfer
> >
> >
> > _______________________________________________
> > freebsd-ports at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> > To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-ports at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"




More information about the freebsd-ports mailing list