Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 169033 - app-editors/emacs-cvs-22.0.94 collisions
Summary: app-editors/emacs-cvs-22.0.94 collisions
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Emacs project
URL:
Whiteboard: Emacs Overlay
Keywords: InOverlay
Depends on:
Blocks:
 
Reported: 2007-03-02 18:52 UTC by Marijn Schouten (RETIRED)
Modified: 2007-04-17 06:15 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marijn Schouten (RETIRED) gentoo-dev 2007-03-02 18:52:58 UTC
* 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 Jakub Moc (RETIRED) gentoo-dev 2007-03-02 18:59:41 UTC
Why did you CTRL+C the output before it displayed what installed those files?
Comment 2 Christian Faulhammer (RETIRED) gentoo-dev 2007-03-02 19:01:55 UTC
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 Marijn Schouten (RETIRED) gentoo-dev 2007-03-02 19:20:01 UTC
(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 Ulrich Müller gentoo-dev 2007-03-02 19:50:04 UTC
(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 Christian Faulhammer (RETIRED) gentoo-dev 2007-03-02 19:59:09 UTC
(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 Ulrich Müller gentoo-dev 2007-03-02 21:26:19 UTC
(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 Christian Faulhammer (RETIRED) gentoo-dev 2007-03-02 21:50:25 UTC
(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 Kevin F. Quinn (RETIRED) gentoo-dev 2007-03-02 23:40:23 UTC
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 Ulrich Müller gentoo-dev 2007-03-03 01:02:22 UTC
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 Christian Faulhammer (RETIRED) gentoo-dev 2007-03-07 05:19:03 UTC
(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 Christian Faulhammer (RETIRED) gentoo-dev 2007-03-19 18:50:20 UTC
This collision has been fixed in Emacs Overlay and will be tested
Comment 12 Ulrich Müller gentoo-dev 2007-04-17 06:15:11 UTC
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.