Date: Sun, 18 Feb 2024 19:21:40 -0800 From: Mark Millard <marklmi@yahoo.com> To: Aryeh Friedman <aryehfriedman@gmail.com> Cc: Miroslav Lachman <000.fbsd@quip.cz>, FreeBSD Mailing List <freebsd-ports@freebsd.org> Subject: Re: FreeBSD ports community is broken [port building configuration notes] Message-ID: <64A10094-BC24-4A1D-AD7E-904C0BE7D886@yahoo.com> In-Reply-To: <CAGBxaXmw9BkQdTQQ%2BpE%2BuABuX%2BXXgJC3GqXzOEhehz7m9=TBhw@mail.gmail.com> References: <87B38D6C-1D83-4158-B03B-F4C8EA396DD1.ref@yahoo.com> <87B38D6C-1D83-4158-B03B-F4C8EA396DD1@yahoo.com> <f6e730bf-3d4e-4318-b49a-7100f38fc3ed@quip.cz> <A4AA312D-F160-402F-853B-E59800EB4FB0@yahoo.com> <CAGBxaXmw9BkQdTQQ%2BpE%2BuABuX%2BXXgJC3GqXzOEhehz7m9=TBhw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 18, 2024, at 17:23, Aryeh Friedman <aryehfriedman@gmail.com> = wrote: > On Sun, Feb 18, 2024 at 3:21=E2=80=AFPM Mark Millard = <marklmi@yahoo.com> wrote: >>=20 >> I fully agree that poudriere's systematic behavior >> rebuilds more than the likes of portmaster [but fails >> less often]. >>=20 >>=20 >> As stands there are tradeoffs between use of portmaster >> (and the like) vs. use of poudriere (/synth?). No one >> has produced an alternative that avoids the tradeoffs >> as far as I know. So one picks between the tradeoffs >> by the choice of which way to build. >=20 > The reason why no alternative has been produced yet is make it self is > broken at the theoretical level. Instead of doing a blond DFS it > should build the entire DAG and then topolocgically walk it. See > Recursive Make Considered Harmful by P. Miller -- > https://accu.org/journals/overload/14/71/miller_2004/ (republished). > While the DAG for the entire ports system (and for each port) is too > big the DAG of what ports to do in what order is not and can easily be > extracted from the ports make file. So there is really no excuse for > excessive building (just a question of converting it all to DAG -- > devel/cook does this and likely can be shoe horned into being a hybrid > of allowing each port to use make recursively but at the top levle > using a DAG). FYI: poudriere uses a prioritized topological sort of the package = dependencies made up front during the bulk build. There are files with the content during the bulk run: ${MASTER_DATADIR}/pkg_deps is used to produce a temporary: ${MASTER_DATADIR}/pkg_deps.ptsort which is, in turn, used to produce: ${MASTER_DATADIR}/pkg_deps.priority which is used, in turn, to set up the priority hash that is used. There are checks for having cycles (that would invalidate the DAG status). Side note: devel/cook disapepared upstream some time ago and expired in the ports tree and was removed at the end of 2023. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?64A10094-BC24-4A1D-AD7E-904C0BE7D886>