On Sat, 16 Aug 2008 22:39:41 +0300
Petteri Räty <[EMAIL PROTECTED]> wrote:

> As per glep 42 (http://www.gentoo.org/proj/en/glep/glep-0042.html)
> here is the required email for a new news item. This news item is
> important because otherwise users will be missing updates to the
> system set if they continue updating their system with the usual
> emerge --update 
> --deep world. Unless objections come out the new news item will be 
> committed at the same time as rc8 (rc8 will have an update man
> portage page describing world_sets).
> 
> Title: World file handling changes in Portage-2.2
> Author: Petteri Räty <[EMAIL PROTECTED]>
> Author: Zac Medico <[EMAIL PROTECTED]>
> Content-Type: text/plain
> Posted: 2008-XX-XX
> Revision: 1
> News-Item-Format: 1.0
> Display-If-Installed: >sys-apps/portage-2.2_rc8
> 
> As of Portage 2.2 the world set does not include the system
> set any more. If you want emerge --update --deep @world to
> update the system set too, you need to add @system to the new
> world_sets file in /var/lib/portage/. For more information on
> world_sets see man portage.

Sorry for not replying earlier, I was without mail access for the last
few weeks.

First, regarding the news item, I'd suggest that instead of telling
users to modify world_sets manually to use `emerge --noreplace @system`.
Also there have been more changes that might not be as obvious and only
affect people with "unusual" usage patterns, namely `emerge @world`
without using --update or --noreplace will rebuild packages contained
in @world (same is true for all other sets).

Second for the suggestions on how to handle the transition:
- treating 'world' and '@world' differently is a no go from my POV. One
of the main reasons to implement them as sets was to remove special
case code in emerge, so I'm quite opposed to adding new special cases
instead. And I'm quite sure that such a separation would cause
confusion, and some isues regarding (end-user) documentation.
- adding a new @worldfile set to get the new behavior, and use @world
for the old. That one is quite interesting, and should actually
be rather simple to implement: rename the existing @world to
@worldfile, create a new StaticFileSet @world that just contains
@worldfile and @system (stored in /usr/share/portage), change most
references in emerge from @world to @worldfile (for technical reasons,
the WorldSet class is somewhat special), and add world-candidate=False
to the default sets.conf
- issuing a warning if 'world' is the only argument would also be a
special case, but by far not as invasive as the first suggestion. I've
actually considered to mark 'world' and 'system' without the set prefix
as deprecated but thought it would be too invasive/annoying at this
time.
- another idea that hasn't been mentioned yet is that we could simply
inject @system into world_sets in the portage ebuild when we detect a
2.1->2.2 upgrade (the ebuild already does a few other migrations that
way). That would be the least-invasive way to keep the old behavior,
but only works for poeple who haven't upgraded to 2.2 yet (not sure if
that's a pro or contra)

Though honestly I don't think this issue is as big as some other
people make it. People might miss some updates. The same would happen
if we remove packages from @system, or people switch profiles (so
@system changes).

Marius

Reply via email to