building packages and build tools

Everything related to Installing and maintaining software with pkg(pkgng).

building packages and build tools

Postby ASX » Thu Mar 16, 2017 9:42 am

I came across a recent post from Bryan Drewery, Poudriere author (or co-author, not sure):

https://lists.freebsd.org/pipermail/svn ... 45282.html

Poudriere and synth are using the same rebuild logic, therefore the same answer may appy to Synth too:

First of all, this is not true. Poudriere *does not* rebuild everything
every time. It only does that with the -c flag. Poudriere *by default*
will do an incremental build. It only rebuilds things if they have,
comparing to the previous package, a missing package, a new PORTVERSION,
a new PORTREVISION, new LIB or RUN dependencies, changed OPTIONS, a
changed PKGNAME, or lastly if a dependency rebuilds due to any of the
previous
.

This last piece, of always rebuilding if a dependency is rebuilt is
simply *wrong*. It is a crutch that was added to ensure that packages
were working because people often *forgot* to bump PORTREVISION properly.



Great, they (poudriere and synth) are building packages in excess to assure things will work as required.

Unfortunately a little later you can read:

4.
A reminder that not doing a PORTREVISION chase as-needed will make Pkg
users have broken packages until they force reinstall some of them,
unless it happens to be a shared library change which it will recognize.


What I understand is that even if packages are rebuilt for safety, pkg will ignore them unless of shared libs.
This is also confirmed below:

Add in the Pkg problem of not
reinstalling them and you get some random users having problems and
others not, while *both* have the updated dependencies because Pkg did
upgrade those, but those dependencies had *build time* differences that
broke packages.

I will translate that for you: the only wayto do a proper pkgs upgrade is to reinstall all packages all the times.

And to finish:
currently none
of the tools (portmaster/portupgrade/poudriere/pkg) do 100% of the right
thing
. I left out synth as I am not familiar with its behavior here,
but it too cannot be magical and know if a package *really* needs a
rebuild or not, and still Pkg may ignore that new one.


I can add that synth (from synth' author comments) use the same rebuild logic as poudriere and therefore the same problems exists when using synth instead of poudriere.

Not much reassuring, :!:
ASX
Developer
 
Posts: 456
Joined: Wed May 06, 2015 3:46 pm
Location: ITALY
Has thanked: 19 times
Been thanked: 21 times

building packages and build tools


Return to Installation and Maintenance of software with pkg(pkgng)

Who is online

Users browsing this forum: No registered users and 1 guest