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