Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 175361
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Gentoo Sound Team <sound@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Martin von Gagern <Martin.vGagern@gmx.net>
Add CC:
CC:
URL:
Summary:
Status Whiteboard:
Keywords:

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

Bug 175361 depends on: Show dependency tree
Bug 175361 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-04-20 15:56 0000
As my latest Thunderbird still didn't play sound, which used to work some time
ago, I analyzed the problem and traced it to esd. I found out about
eselect-esd, tried to run it, and git this here:

# eselect esd set 1
!!! Error: Sorry, /usr/bin/esd confuses me
Killed
# qfile /usr/bin/esd
# ls -l /usr/bin/esd
-rwxr-xr-x 1 root root 47288 Aug  1  2006 /usr/bin/esd

So there was a real binary, not a symlink, that did not belong to any package.
Removing this binary and running eselect again solved the problem, now I have
sound again for new mails in Thunderbird.

Looking back at my esound-0.2.37-r1 merge log, I find this:
 * Symlinking /usr/share/doc/html/media-sound/esound to the HTML documentation
!!! Error: Can't set a new provider
/usr/portage/media-sound/esound/esound-0.2.37-r1.ebuild: line 84: 14464 Killed 
                eselect esd update --if-unset

The log from esound-0.2.37 looks almost the same, except for different numbers.
As there is a logfile for sox dated 90 seconds later, I'm pretty sure that
portage did not abort. Neither did I receive a message via elog, so I only read
those error messages now. My esound-0.2.36 merge log does not note any error.

There are two issues at hand, one about avoiding such missed error messages in
the future, which is a portage issue, and one about how to solve the problem
for esd. As I started this bug report here as a non-portage report, I'll file a
second one for the former and concentrate now on the latter, the esd issue.

My suggestion is to have eselect esd ruthlessly delete any non-symlink
/usr/bin/esd it finds. /usr/bin/ is under portage control; if some admin wants
his own binary installed, he could do so in /usr/local/bin. You could draw
parallels to how portage behaves, and honour FEATURE=collision-protect. Instead
of eselect being so ruthless, you could alternatively have the postinst
function delete the file first, unless it is a symlink. Would perhaps be more
automatic, but a revbump of esound only for this might be a bit much.

As to the source of the problem: could it be that portage first merged the
package, then ran pkg_postinst (which failed because the old esd was still
installed), and only then unmerged the old package? But this still does not
explain why the file was not removed along with the rest of the old package,
but got orphaned instead. I don't really understand this.

------- Comment #1 From Martin von Gagern 2007-04-20 15:58:56 0000 -------
(In reply to comment #0)
> There are two issues at hand, one about avoiding such missed error messages in
> the future, which is a portage issue

I've been a bit quick there. The red bold "!!! Error:" comes from eselect
itself, and the postinst function does not catch any errors. So there is no way
portage could know about this. Instead the ebuild should at least die on
eselect errors.

------- Comment #2 From Samuli Suominen 2007-07-29 18:08:02 0000 -------
(In reply to comment #1)
> portage could know about this. Instead the ebuild should at least die on
> eselect errors.

Done.

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