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."

