portmaster: print /usr/ports/UPDATING on update

Peter Pentchev roam at ringlet.net
Tue Dec 28 08:28:08 UTC 2010

On Tue, Dec 28, 2010 at 10:07:18AM +0300, Eygene Ryabinkin wrote:
> Mon, Dec 27, 2010 at 05:57:53PM -0800, Doug Barton wrote:
> > The Real AnswerTM is that we need a tool with striking similarities to
> > portaudit. The basic idea would be that UPDATING entries would be done
> > in xml, and then the user can either run portupdating (or whatever the
> > name ends up being, that's a really bad name but I suck at naming tools)
> > either by default for their whole system, or vs. a specific port. I
> > would strongly recommend that the behavior, command line options, etc.
> > be consistent with portaudit. Download it and check the man page if
> > there are any questions. :)
> There are two questions that arise with this approach:
>  - we should find a way to keep an old UPDATING file in place;
>    obviously, it can be easily created from the XML file, but
>    currently UPDATING is delivered via CVS and it will be good
>    to allow this behaviour even with the XML'ized version;
>    but keeping the plain-text UPDATING in CVS while UPDATING.xml
>    will be used is a bad idea -- UPDATING will be non-master
>    file, so its history will be redundant.  From the other hand,
>    we have no XML tools in the base tree, so UPDATING can't be
>    easily created from the XML version at the user machine;

Two quick thoughts here:

- I personally would prefer a human-readable file (and yes, I *can*
  read XML; that doesn't mean it's easy or I *want* to :)
  ...so how about a JSON representation?  Human-readable, human-editable,
  but still capable of being formalized and validated

- ...and as for an implementation, there is a mini-JSON library in
  NetBSD's netpgp implementation -
  src/crypto/external/bsd/netpgp/dist/src/libmj/ in NetBSD CVS

>  - currently, UPDATING has only port names, but not their versions;
>    one takes the entry timestamp and if he had not yet upgraded
>    the relevant port(s) after this timestamp, then the corresponding
>    entry is for him.  I see there two cases:
>    a) there is a specific port version at which some crucial change
>       that demands the UPDATING entry had happened; if the version
>       specification will be included in UPDATING, then we won't
>       even need the timestamp -- one should just take the currently
>       installed version and the version to be installed; the the
>       entry's version lies between those two, user will surely need
>       to read the UPDATING entry;
>    b) there is a infrastructural changes that affect all or some ports
>       that will be built after some date; again, the logics of choosing
>       the entry to be presented is the same as above, but one should use
>       timestamps, not ports versions.
> But having thinked about this a bit, now I am favoring another approach:
> one should not rely on the portmaster/portupgrade/OtherTool to present
> the UPDATING entries: the best place is the ports infrastructure itself
> (or pkg_install suite).  This way, any tool that will do upgrades will
> receive the UPDATING stuff for free.
> Currently I am trying to figure out if it will be sufficient to have the
> appropriate machinery in the pkg_delete tool: the old port version and
> timestamp are already there; the new timestamp is more-or-less the
> current date; the only needed piece is the new port version.  It can be
> provided via the environment variable by the portmaster-like tool; such
> variable will trigger the processing of the UPDATING file.  This is
> rather rough plan, feel free to correct/criticize it or show why it is
> not doable using such approach.
> > The other thing this entails is portmaster actually storing
> > information of its own completely aside from /var/db/{pkg|ports}. I'm
> > really sort of nauseous about that whole idea since it's a slippery
> > slope that I don't want to travel down. But I'm not seeing any other
> > way to accomplish the task of "make sure that the user knows that they
> > should read UPDATING" without doing something very much like this. Of
> > course, if someone else has a better idea, I'm all ears. :)
> > 
> > What I do _not_ want to do is write an "UPDATING text file parser"
> > myself. Not only do I think that's a bad idea generally, it's not a
> > project that I am at all interested in, and I don't see it as
> > something that should be part of portmaster to start with. I could be
> > talked into the UPDATING.xml project if someone were to come up with
> > funding for it, but (just being frank and honest) it's too big a
> > project for me to tackle on a volunteer basis atm.
> I had shown the simple shell script that will parse the UPDATING and
> present the entries for the given port if the fall into the "last N
> days" category.  If you had missed it -- ping me, I'll show it to you
> once again.


Peter Pentchev	roam at space.bg    roam at ringlet.net    roam at FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence claims to be an Epimenides paradox, but it is lying.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20101228/15fce1c6/attachment.pgp

More information about the freebsd-ports mailing list