On Wed, Nov 04, 2020 at 01:12:23PM -0500, Jeremy O'Brien wrote:
> On Wed, Nov 4, 2020, at 11:37, Chris Bennett wrote:
<SNIP>
> > Easy answer. System libraries that these packages were built with have
> > changed. Package is the same except for being rebuilt with newer
> > libraries.
> >
>
> This demonstrates that I don't understand the mechanism by which these upgrade decisions are made then. How can pkg_add determine that a given package was built against newer libraries if there is nothing in the package header (+CONTENTS) indicating such? I assumed this would manifest itself in the package signature in some way, since pkg_add is clearly making an upgrade decision here. Or there is of course the possibility that there *is* some information there that I'm overlooking.
>
> > Are you upgrading to a newer stable/release?
> > Same answer.
> >
> > Are you getting this problem running pkg_add -u multiple times on the
> > same system without changing to a newer version or snapshot?
> >
> > Then something is wrong. (Assumimg you are actually running the actual
> > pkg_add -u)
> > Check to make sure that you do not have any packages that have been
> > since dropped. gettext caused me problems a good while back
> >
> > Please supply a little more info. That helps people to decide whether
> > they want to answer or not. Most likely you don't have any problem.
> > Have you read all of the relevant man pages? pkg_*
> >
>
> Multiple times. My problem is that the documentation appears to be written for a user of OpenBSD, not necessarily someone trying to fully grok the inner workings of exactly how the pkg_* tools work. I've tried reading the perl directly, but I haven't found anything that seemed like a smoking gun. I guess what I want to know is, what *exactly* is pkg_add doing/comparing to determine that an upgrade is needed?
It seems you haven't read enough.
You might want to start with some of the fine documentation on the
internals that espie@ has written, signatures are mentioned right in the
intro, with a pointer to OpenBSD::Signature.
http://man.openbsd.org/OpenBSD::Intro
Of course, that doesn't explain how signatures work and the
implementation is slightly more complex.
https://github.com/openbsd/src/blob/master/usr.sbin/pkg_add/OpenBSD/Signature.pm
Not entirely sure why it wants to update from the information I saw in
this thread, but you could likely instrument the signature comparison to
find out.
l8rZ,
--
andrew - http://afresh1.com
Computer analyst to programmer:
"You start coding. I'll go find out what they want."
No comments:
Post a Comment