Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 177936
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: GNU Emacs Team <emacs@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Ulrich Müller <ulm@gentoo.org>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 177936 depends on: Show dependency tree
Bug 177936 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2007-05-10 15:16 0000
* checking 19 files for package collisions
existing file /usr/bin/gnuclient is not owned by this package
existing file /usr/bin/gnuattach is not owned by this package
existing file /usr/bin/gnudoit is not owned by this package
existing file /usr/share/man/man1/gnuserv.1.bz2 is not owned by this package
existing file /usr/share/man/man1/gnuclient.1.bz2 is not owned by this package
existing file /usr/share/man/man1/gnuattach.1.bz2 is not owned by this package
existing file /usr/share/man/man1/gnudoit.1.bz2 is not owned by this package
* 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-emacs/gnuserv-3.12.7 NOT merged

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

 * app-editors/xemacs-21.4.20-r3:

     '/usr/bin/gnuclient'
     '/usr/bin/gnuattach'
     '/usr/bin/gnudoit'
     '/usr/share/man/man1/gnuserv.1.bz2'
     '/usr/share/man/man1/gnuclient.1.bz2'
     '/usr/share/man/man1/gnuattach.1.bz2'
     '/usr/share/man/man1/gnudoit.1.bz2'

Since these are probably the same files (gnu{serv,client}* from XEmacs are also
version 3.12, all man pages are identical), it should not be a big problem.

Possible (IMHO bad) solutions:
- emacs.eselect could handle it, the XEmacs part being no problem.
  But I am very reluctant to add another special case for gnuserv.
- alternatives.eclass, but then XEmacs would have to use both emacs.eselect
  and alternatives.eclass. Ugly.

Any better ideas?

------- Comment #1 From Hans de Graaff 2007-05-13 15:26:05 0000 -------
It looks like the XEmacs versions have also seen independant development, so
even if the man pages are the same this probably doesn't apply to the binaries.
I have no idea if they are (meant to be) compatible.

I think it's funny that XEmacs with its modular approach has this stuff as part
of the main distribution, while GNU Emacs with its monolithic approach has this
as a separate package. :-)

If I understand the alternatives solution correctly, then the xemacs build
should install this stuff with an -xemacs postfix, and then deal with the
correct symlink through the alternatives stuff. It looks like this is designed
to work within a single package with slots. So does this mean that for Emacs
and XEmacs the last one wins?

At least it will fix the file-collisions...

------- Comment #2 From Hans de Graaff 2007-05-13 15:26:59 0000 -------
(In reply to comment #1)
> So does this mean that for Emacs
> and XEmacs the last one wins?

Ok, that's unclear: I meant to say "the last one that gets installed".

------- Comment #3 From Ulrich Müller 2007-05-13 21:21:56 0000 -------
(In reply to comment #1)
> It looks like the XEmacs versions have also seen independant development,
> so even if the man pages are the same this probably doesn't apply to the
> binaries. I have no idea if they are (meant to be) compatible.

Hm, the app-emacs/gnuserv binaries are the ones from XEmacs 21.5.17. I don't
know how this version relates to 21.4.20 (older or newer?) but the differences
for gnuserv appear to be tiny, and they should be compatible.

> I think it's funny that XEmacs with its modular approach has this stuff as
> part of the main distribution, while GNU Emacs with its monolithic approach
> has this as a separate package. :-)

GNU Emacs includes emacsclient which has similar functionality.

> If I understand the alternatives solution correctly, then the xemacs build
> should install this stuff with an -xemacs postfix, and then deal with the
> correct symlink through the alternatives stuff. It looks like this is designed
> to work within a single package with slots. So does this mean that for Emacs
> and XEmacs the last one wins?

(In reply to comment #2)
> Ok, that's unclear: I meant to say "the last one that gets installed".

Fortunately not. The order of the arguments of alternatives_makesym determines
which one is preferred.

However, alternatives.eclass doesn't support compression suffixes, so its use
is clumsy for man pages. Look at emacs-21.4-r8.ebuild, function
update-alternatives() for an example. The newer Emacs ebuilds don't use it
anymore.

I'm still not sure what would be the best path to follow here. We could also
split off the colliding files from app-emacs/gnuserv to a separate package
(with blocking dep on xemacs) and have || ( app-emacs/gnuserv-whatever
virtual/xemacs ) as dependency in gnuserv. But maybe the problem is not worth
the effort.

------- Comment #4 From Hans de Graaff 2007-05-17 11:17:33 0000 -------
(In reply to comment #3)

> Hm, the app-emacs/gnuserv binaries are the ones from XEmacs 21.5.17. I don't
> know how this version relates to 21.4.20 (older or newer?) but the differences
> for gnuserv appear to be tiny, and they should be compatible.

XEmacs 21.5 is the new branch on which all development happens. XEmacs 21.4.x
is in maintenance mode only. So 21.5 is newer than 21.4, irrespective of
release date.

> GNU Emacs includes emacsclient which has similar functionality.

Aha. So that begs the question why there is a separate package as well, since
emacsclient seems to do the same thing. Perhaps we don't need
app-emacs/gnuclient in the tree?

> I'm still not sure what would be the best path to follow here. We could also
> split off the colliding files from app-emacs/gnuserv to a separate package
> (with blocking dep on xemacs) and have || ( app-emacs/gnuserv-whatever
> virtual/xemacs ) as dependency in gnuserv. But maybe the problem is not worth
> the effort.

I'm afraid that this issue is not high priority for me, so I'm not going to
press a solution at this time. If you come up with something that you are happy
with then please feel free to suggest/implement it. :-) 

Otherwise I'm sure I'll revisit it when my other XEmacs problems are solved.

------- Comment #5 From Ulrich Müller 2007-05-17 12:26:20 0000 -------
(In reply to comment #4)
> I'm afraid that this issue is not high priority for me,

Look at the "Priority" and "Severity" fields. ;)

> so I'm not going to press a solution at this time. If you come up with
> something that you are happy with then please feel free to suggest/implement
> it. :-) 

I think we are going to seek a solution on the app-emacs/gnuserv side.

------- Comment #6 From Ulrich Müller 2007-05-25 21:49:33 0000 -------
(In reply to comment #3)
> We could also split off the colliding files from app-emacs/gnuserv
> to a separate package (with blocking dep on xemacs) and have
> || ( app-emacs/gnuserv-whatever virtual/xemacs ) as dependency in gnuserv.

Solution taken:
- Programs and man pages split off to new package app-emacs/gnuserv-programs,
  blocking app-editors/xemacs
- app-emacs/gnuserv installs only elisp files and rdepends on
  || ( ~app-emacs/gnuserv-programs-${PV} app-editors/xemacs )
- gnuserv.el patched so that it can find also the XEmacs gnuserv binary in
  /usr/lib/xemacs-*

Available for testing in the Emacs overlay.

------- Comment #7 From Ulrich Müller 2007-05-29 22:05:16 0000 -------
Committed to Portage tree.

See bug #180292 for the keywording.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug