On Sat, 12 Apr 2014 13:44:30 -0400
Tanstaafl <tansta...@libertytrek.org> wrote:

> Last - I merely asked if this was *feasible*.

It was unclear to me whether this is in the context of it being
feasible for (other) users, or whether this is in the context of making
it work in Portage; I've not replied earlier because I thought it was
in the first context, but I can shed some details on implementation.

For the releases to the Portage tree; this would have to be deduced
from the release lines ChangeLog, as there is no other file that yields
details on changes that happened to the package.

For a demonstration of those release lines:

    $ grep '^*' /usr/portage/sys-kernel/gentoo-sources/ChangeLog | tac
    ...
    *gentoo-sources-3.13.9 (04 Apr 2014)
    *gentoo-sources-3.4.86 (03 Apr 2014)
    *gentoo-sources-3.10.36 (04 Apr 2014)
    *gentoo-sources-3.12.16 (04 Apr 2014)

Stabilizations would be harder, as they require to parse the log
messages in the ChangeLog; it is not standardized to be parsed out.

Portage does have functionality to obtain the ChangeLogs
entries between two versions; the -l parameter (--changelog) does that,
so, the information is not far away. The implementation might need some
specific Portage and Python knowledge though; so, I'd suggest a feature
request for one of the Portage developers to look into this. It might
work to try to grep those ChangeLog release lines from that output.

We can however proceed and try to see if we can do this external.

If you have app-portage/eix, a list of updates is easy to obtain:

    $ eix -Iuc
    ...
    [U] media-libs/freetype (2.5.0.1(2)@04/11/2014 ->
    (~)2.5.3-r1(2)): A high-quality and portable font engine
    [U] media-plugins/gst-plugins-faac (0.10.23(0.10)@01/31/2013 ->
    0.10.23(0.10)^t 1.2.3(1.0)^t): plugin for gstreamer
    [U] media-plugins/gst-plugins-soup (0.10.31(0.10)@12/04/2012 ->
    0.10.31(0.10)^t 1.2.3(1.0)^t): GStreamer plugin for HTTP client 
    source
    ...

We can use this information to write a fast (~1s) bash shell script:

    https://gist.github.com/TomWij/a813e9bf0314007bf0da

That can produce a list of upgrades and when the ebuilds were released:

    $ bash ./when-released.sh
    ...
    *freetype-2.5.3-r1 (16 Mar 2014)
    *gst-plugins-faac-1.2.3 (01 Mar 2014)
    *gst-plugins-soup-1.2.3 (16 Feb 2014)
    ...

One issue I see though is that it gives back versions of slots in which
you have nothing installed; it requires much more logic, unless eix
can somehow do this I suppose that logic would be interaction with
Portage. And if we go down that road, we might just as well ask for it
to be implemented; unless someone knowledgeable can help us further.

Although besides that problem, it otherwise does work quite well here;
if not, feel free to inform and we can try to further improve matching.

(PS: Yes, it's quite hackish, no shebang, no POSIX compliance; it is
meant as an PoC example, further improvements can be done later)

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : tom...@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

Reply via email to