Bug 169033 - app-editors/emacs-cvs-22.0.94 collisions
Bug#: 169033 Product:  Gentoo Linux Version: 2006.1 Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: emacs@gentoo.org Reported By: hkbst@gentoo.org
Component: Ebuilds
URL: 
Summary: app-editors/emacs-cvs-22.0.94 collisions
Keywords:  InOverlay
Status Whiteboard: Emacs Overlay
Opened: 2007-03-02 18:52 0000
Description:   Opened: 2007-03-02 18:52 0000
* This package is blocked because it wants to overwrite
* files belonging to other packages (see messages above).
* If you have no clue what this is all about report it
* as a bug for this package on http://bugs.gentoo.org

package app-editors/emacs-cvs-22.0.95 NOT merged


Searching all installed packages for file collisions...
Press Ctrl-C to Stop

 * app-editors/emacs-cvs-22.0.94:

     '/var/lib/games/emacs/snake-scores'
     '/var/lib/games/emacs/tetris-scores'
     '/usr/share/emacs/site-lisp/40aspell-gentoo.el'

------- Comment #1 From Jakub Moc (RETIRED) 2007-03-02 18:59:41 0000 -------
Why did you CTRL+C the output before it displayed what installed those files?

------- Comment #2 From Christian Faulhammer 2007-03-02 19:01:55 0000 -------
Nothing that can be done about it at the moment, as SLOTting needs to be
reconsidered.  This will be taken care of when Emacs 22 is released and hits
the tree as app-editors/emacs-22.*

------- Comment #3 From Marijn Schouten 2007-03-02 19:20:01 0000 -------
(In reply to comment #1)
> Why did you CTRL+C the output before it displayed what installed those files?

I didn't, app-editors/emacs-cvs-22.0.94 installed those files.

------- Comment #4 From Ulrich Müller 2007-03-02 19:50:04 0000 -------
(In reply to comment #2)
> Nothing that can be done about it at the moment, as SLOTting needs to be
> reconsidered.

In the case of 40aspell-gentoo.el the file is installed by versions 21 and 22,
so a different slotting will not help. But this file could probably be moved
over to app-text/aspell.

------- Comment #5 From Christian Faulhammer 2007-03-02 19:59:09 0000 -------
(In reply to comment #4)
> (In reply to comment #2)
> > Nothing that can be done about it at the moment, as SLOTting needs to be
> > reconsidered.
> In the case of 40aspell-gentoo.el the file is installed by versions 21 and 22,
> so a different slotting will not help. But this file could probably be moved
> over to app-text/aspell.

 No.  We discussed that in bug 158850 already, and app-dicts team is not
willing to take it as it Emacs functionality and not aspell.  Maybe a check
could be added, yet not sure about the nature of that.  Like if they are
indentical, don't install 40aspell.

------- Comment #6 From Ulrich Müller 2007-03-02 21:26:19 0000 -------
(In reply to comment #5)
>  No.  We discussed that in bug 158850 already, and app-dicts team is not
> willing to take it as it Emacs functionality and not aspell.

Lenghty discussion there. Why was the argument about "emerge -C aspell" (in bug
#158850 comment #5) not taken into account? The way it is implemented now
"emerge -C aspell" will break things, since the aspell site-file will not get
uninstalled (which it would if it was part of aspell).

> Maybe a check could be added, yet not sure about the nature of that.
> Like if they are indentical, don't install 40aspell.

Include ${SLOT} in the filename and let alternatives.eclass do the job?

Furthermore, elisp-site-regen should be added to pkg_postinst/postrm. Otherwise
the aspell file doesn't even get included in site-gentoo.el.

------- Comment #7 From Christian Faulhammer 2007-03-02 21:50:25 0000 -------
(In reply to comment #6)
> (In reply to comment #5)
> >  No.  We discussed that in bug 158850 already, and app-dicts team is not
> > willing to take it as it Emacs functionality and not aspell.
> Lenghty discussion there. Why was the argument about "emerge -C aspell" (in bug
> #158850 comment #5) not taken into account? The way it is implemented now
> "emerge -C aspell" will break things, since the aspell site-file will not get
> uninstalled (which it would if it was part of aspell).

 Right. That is a severe issue...did not think about that anyone would like to
unmerge aspell.

> > Maybe a check could be added, yet not sure about the nature of that.
> > Like if they are indentical, don't install 40aspell.
> Include ${SLOT} in the filename and let alternatives.eclass do the job?

 Maybe.  Will talk to app-dicts again.

app-dicts, adding you.  All would be best suited if you had a emacs USE flag
and install a site lisp file to activate aspell as default spell checker.  If
you need support how to do that, just ask (email at best) or even I can do it
if you give your ok. 

> Furthermore, elisp-site-regen should be added to pkg_postinst/postrm. Otherwise
> the aspell file doesn't even get included in site-gentoo.el.

 Argh.  Fixed.

------- Comment #8 From Kevin F. Quinn (RETIRED) 2007-03-02 23:40:23 0000 -------
I explained in bug #158850 comment #5 exactly why 'emerge -C aspell' is not a
problem.  Essentially 'emerge -N world' will either (1) re-install aspell or
(2) rebuild emacs without the site file (depending on the emacs USE
configuration).  Either way the system is restored to a working state.  I also
explained, I think quite clearly, exactly why the aspell ebuild is the wrong
place to do emacs system configuration.

You _cannot_ expect that unmerging package has no effect on whether the rest of
the system works.  In fact, it's pretty much guaranteed to break something if
the package being unmerged is a dependency of another package.  Think 'emerge
-C sys-libs/glibc', for an extreme example that highlights this clearly.

The simplest way to deal with the collision, assuming this file has to be
shared between slots and can't just be named differently for different slots,
is to install it in pkg_postinst() instead of src_install().  It does mean
however it won't be removed when emacs is uninstalled, but it would be a simple
and quick way to resolve the collision (note that removing it in pkg_postrm()
would break other installed emacs slots).

A more robust way to deal with this sort of thing, is to take the configuration
of emacs system defaults into a separate tool (e.g. an eselect module) and do
it outside of the emerge process.  Many other packages take this route.  This
means that if the site configuration files change, you just bump the eselect
module.  It also sorts out the slotting issue (assuming these files are shared
between slots and that's what is causing the collision).  Note you can call the
eselect module in your postinst phase, which avoids the need to duplicate code
in the eselect module and the ebuild.

------- Comment #9 From Ulrich Müller 2007-03-03 01:02:22 0000 -------
The ispell.el that comes with Emacs 22 deals with the problem; it looks if an
aspell executable is installed and initializes itself accordingly. So we are
taking only about an Emacs 21 issue here.

(Christian: Please read my e-mail message about this.)

------- Comment #10 From Christian Faulhammer 2007-03-07 05:19:03 0000 -------
(In reply to comment #4)
> (In reply to comment #2)
> > Nothing that can be done about it at the moment, as SLOTting needs to be
> > reconsidered.
> In the case of 40aspell-gentoo.el the file is installed by versions 21 and 22,
> so a different slotting will not help. But this file could probably be moved
> over to app-text/aspell.

 aspell support has been removed in 21 (was not working anyway) and 22 handles
that itself...even better.  The other file collisions will have to wait for the
release.

------- Comment #11 From Christian Faulhammer 2007-03-19 18:50:20 0000 -------
This collision has been fixed in Emacs Overlay and will be tested

------- Comment #12 From Ulrich Müller 2007-04-17 06:15:11 0000 -------
Everything should be fixed in 22.0.98, 22.0.9999-r10, and 23.0.0-r6.
Please reopen if this is not the case.