This past weekend, I upgraded about 80 packages and a kernel and later
discovered that my CD-ROM drive went missing and my lovingly crafted
gnome menus were trashed by Gnome 2.10 and no longer editable. Oh joy,
another portage upgrade surprise. Some rummaging around in the Gentoo
forums sent me in the right direction and the CD-ROM was handily fixed.
But the menus were more complicated and I reverted Gnome.

Not the first time this has happened. Friends, I won't bore you with
tales of my past singeing, as I sense your hand itching towards your
Flame On! button. Instead, I have a proposal for discussion.

What I'd like to see *before* I upgrade is a list of advisories about
what trouble I'm in for. By the time most people upgrade a package,
someone's been there before and felt the pain. The answers, or at least
the warnings, are in the Forums. Yet searching the forums before
upgrading each package is not practical. Similarly, the build logs are
99% stuff I don't care to read and 1% that I really do. How to find it?
Better yet, I'd like to see it *before* I build.

Currently that stuff comes from each ebuild's post-install procedure,
however I don't think that's the best place for it: it's not easy to
change or amend (gotta be the package maintainer), it's risky to change
(too easy to introduce a syntax error), and it isn't specific to
individual situations.

To be more concrete, I'm thinking of something like a database with
three entries per record: current package+version, target package
+version, and some advisory text. For example, a few useful entries
would be:
  current:  any
  target:   =gnome-base/gnome-menus-2.10.0
  advisory: Menu editing disabled until follow-up release.
            Work-around is to install Python 4 + smeg. See
            forum topic http://forums.gentoo.org/blah...
and:
  current:  <sys-fs/udev-60
  target:   >=sys-fs/udev-60
  advisory: Rules file changed syntax. Preserve old rules file
            and be prepared to rewrite.
and:
  current:  <kernel/vanilla-sources-2.6.11.11
  target:   =kernel/vanilla-sources-2.6.11.11
  advisory: ide-cd no longer loaded by default. Add to
            /etc/modules.autoload/kernel2.6

and when emerge figures out what it's going to build, the "--advise"
option (let's say) tells it to consult the database and issues a report.
Simple as that.

The database could be hosted on a Gentoo server, though it might be
better delivering it along with the "emerge sync" data and have the
build machine do all the work. Data could be stored in a single file, or
distributed throughout /usr/portage as ebuilds are.

Regardless of implementation, the main goals are:
1. Adding or modifying advisories is relatively easy. Doesn't require
programming skills.
2. Adding an advisory in no way risks an ebuild file. An ebuild is
executable code and no one has time to chase down syntax errors.
Advisories are separate.
3. You don't need to be the package maintainer to do it (though at this
point I'm not sure who would -- maybe a collaboration of forum
moderators and package maintainers?).

Comments?

Best Regards,
Craig.


-- 
gentoo-dev@gentoo.org mailing list

Reply via email to