Re: FreeBSD ports community is broken [port building configuration notes]
- In reply to: Mark Millard : "Re: FreeBSD ports community is broken [port building configuration notes]"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 19 Feb 2024 04:24:58 UTC
On Sun, Feb 18, 2024 at 10:21 PM Mark Millard <marklmi@yahoo.com> wrote: > > On Feb 18, 2024, at 17:23, Aryeh Friedman <aryehfriedman@gmail.com> wrote: > > > On Sun, Feb 18, 2024 at 3:21 PM Mark Millard <marklmi@yahoo.com> wrote: > >> > >> I fully agree that poudriere's systematic behavior > >> rebuilds more than the likes of portmaster [but fails > >> less often]. > >> > >> > >> 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. > > > > 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. Planning to revive it when I get a little bit of time (found out was removed a few months ago and I use it) > > > === > Mark Millard > marklmi at yahoo.com >