Binary packages not rebuilding against updated libraries

Perry E. Metzger pmetzger at macports.org
Thu Apr 26 15:00:53 UTC 2018


On Thu, 26 Apr 2018 23:54:49 +1000 Joshua Root <jmr at macports.org>
wrote:
> > So rather than just guessing based on things like major version
> > of a library whether dependents need to be bumped, I would
> > suggest we add an "abiversion" keyword. Changing it in any way
> > would imply that ports depending on that port would be rebuilt.  
> 
> So this would have to be set manually for every library port? If
> looking at the library version information is "guessing", how would
> the correct value be determined?

Looking at the library version isn't guessing for a human but might
be guessing for a machine. If the version is something like 4.7.3
and it's using semantic versioning, it's probably reasonable to pay
attention. If it's not using semantic versioning, like if it's
something like 20170815 or some such because it's a weird "built off
a github rev" thing, it probably needs a way for a human to convey it.

My notion was that if and only if the maintainer wants to do it, they
set the "abiversion", they increment it when appropriate, and then
they don't have to rev bump downstream packages.

But this might or might not be a smart idea. This is why I'm trying
to think it through out loud on the list.

> > This would imply that there would be a need to be able to query
> > what "abiversion" is currently installed.  
> 
> And which version the dependents were built against.

Yah, that's true.

> And which version a downloaded binary archive was built against.
> Effectively, this would have to act like yet another version
> component for the purposes of determining whether an upgrade needs
> to happen.

Yah, those are also correct.

> > I think hashing out how this might work in a bit of detail will
> > reveal whether it is too much work to bother with or relatively
> > easy to do. (My guess is probably the former, but it would be
> > nice to figure out what is involved first.)  
> 
> The library version info is recorded in the binaries. Rev-upgrade
> works very well in most cases. I'm having a hard time understanding
> how this would help.

Well, right now we're manually bumping "revision" in dependent ports
when we upgrade a port that is depended on, right? This seems to
indicate that the current way isn't automatic. Or maybe I'm
misunderstanding?

Perry
-- 
Perry E. Metzger		pmetzger at macports.org


More information about the macports-dev mailing list