Package: goobox
Version: 2.0.0-7
Severity: grave
I get the following symptoms: The Goobox window shows the message "Invalid
device", and the following warning is printed:
** (goobox:1802): WARNING **: Can't read /proc/scsi/sg/device_strs
It seems Goobox assumes my CD drive is a SCSI drive because of it's
device name /dev/sr0. (It's a plain laptop ATA drive.) Next it goes
looking for that /proc file, and then it gives up when it discovers that
file doesn't exist.
This might be caused by a recent-ish kernel change, I'm pretty sure my
cd was /dev/hda when I installed this system.
I just deleted all the code that looks at the device name, and Goobox
works again for me. Patch attached. I think this won't do much damage
for people who actually have SCSI drives, goobox just won't be able to
retrieve the drive's model name anymore. It will break the "copy cd"
feature on kernel 2.4.
(BTW, the code looks for some file in /proc/ide to get the model name of
ATA device, but that's another directory I don't have here. Another
kernel change?)
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=nl_BE.UTF-8, LC_CTYPE=nl_BE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages goobox depends on:
ii gconf2 2.26.2-3 GNOME configuration database syste
ii gnome-media 2.26.0-2 GNOME media utilities
ii gstreamer0.10-gnomevfs 0.10.24-2 GStreamer plugin for GnomeVFS
ii gstreamer0.10-plugins-base 0.10.24-2 GStreamer plugins from the "base"
ii libart-2.0-2 2.3.20-2 Library of functions for 2D graphi
ii libatk1.0-0 1.26.0-1 The ATK accessibility toolkit
ii libbonobo2-0 2.24.1-1 Bonobo CORBA interfaces library
ii libbonoboui2-0 2.24.1-1 The Bonobo UI library
ii libc6 2.9-26 GNU C Library: Shared libraries
ii libcairo2 1.8.8-2 The Cairo 2D vector graphics libra
ii libdbus-1-3 1.2.16-2 simple interprocess messaging syst
ii libdbus-glib-1-2 0.82-1 simple interprocess messaging syst
ii libfontconfig1 2.6.0-4 generic font configuration library
ii libfreetype6 2.3.9-5 FreeType 2 font engine, shared lib
ii libgcc1 1:4.4.1-4 GCC support library
ii libgconf2-4 2.26.2-3 GNOME configuration database syste
ii libglade2-0 1:2.6.4-1 library to load .glade files at ru
ii libglib2.0-0 2.20.5-1 The GLib library of C routines
ii libgnome2-0 2.26.0-1 The GNOME library - runtime files
ii libgnomecanvas2-0 2.26.0-1 A powerful object-oriented display
ii libgnomeui-0 2.24.1-1 The GNOME 2 libraries (User Interf
ii libgnomevfs2-0 1:2.24.1-4 GNOME Virtual File System (runtime
ii libgstreamer0.10-0 0.10.24-1 Core GStreamer libraries and eleme
ii libgtk2.0-0 2.16.6-1 The GTK+ graphical user interface
ii libice6 2:1.0.5-1 X11 Inter-Client Exchange library
ii libmusicbrainz4c2a 2.1.5-2 Second generation incarnation of t
ii libnotify1 [libnotify1-gtk 0.4.5-1 sends desktop notifications to a n
ii liborbit2 1:2.14.17-0.1 libraries for ORBit2 - a CORBA ORB
ii libpango1.0-0 1.24.5-1 Layout and rendering of internatio
ii libpopt0 1.14-4 lib for parsing cmdline parameters
ii libsm6 2:1.1.1-1 X11 Session Management library
ii libstdc++6 4.4.1-4 The GNU Standard C++ Library v3
ii libx11-6 2:1.2.2-1 X11 client-side library
ii libxml2 2.7.4.dfsg-2 GNOME XML library
Versions of packages goobox recommends:
ii dbus-x11 1.2.16-2 simple interprocess messaging syst
ii gstreamer0.10-plugins-good 0.10.16-1 GStreamer plugins from the "good"
ii yelp 2.26.0-3 Help browser for GNOME
goobox suggests no packages.
-- no debconf information
--- a/src/cd-drive.c
+++ b/src/cd-drive.c
@@ -870,7 +870,7 @@
if (!g_file_get_contents (filename, &line, NULL, NULL) ||
line == NULL) {
g_free (filename);
- return NULL;
+ return g_strdup (cdrom->device);
}
g_free (filename);
@@ -976,16 +976,6 @@
static char *
get_cd_device_file (const char *str)
{
- char *devname;
-
- if (str[0] == 's') {
- devname = g_strdup_printf ("/dev/scd%c", str[2]);
- if (g_file_test (devname, G_FILE_TEST_EXISTS)) {
- g_free (devname);
- return g_strdup_printf ("scd%c", str[2]);
- }
- g_free (devname);
- }
return g_strdup (str);
}
@@ -1042,17 +1032,7 @@
}
}
- /* we only have to check the first char, since only ide or scsi
- * devices are listed in /proc/sys/dev/cdrom/info. It will always
- * be 'h' or 's'
- */
n_scsi_units = 0;
- for (i = 0; i < n_cdroms; i++) {
- if (cdroms[i].device[0] == 's') {
- cdroms[i].protocol = CD_PROTOCOL_SCSI;
- n_scsi_units++;
- }
- }
if (n_scsi_units > 0) {
/* open /dev/sg0 to force loading of the sg module if not loaded yet */