Your message dated Mon, 06 Dec 2010 13:40:05 +0000
with message-id <[email protected]>
and subject line Bug#605353: Removed package(s) from unstable
has caused the Debian Bug report #515050,
regarding gnome-splashscreen-manager does not start if splashscreen files are
not recognized images
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
515050: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515050
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: gnome-splashscreen-manager
Version: 0.2-12
When I invoke `gnome-splashscreen-manager' it fails with an error Unrecognised
image file format (Gdk::PixbufError)
This is the complete output:
$ gnome-splashscreen-manager
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:192:in
`last_write': Unrecognised image file format (Gdk::PixbufError)
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:192:in
`download_pixbuf'
from /usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
from /usr/lib/ruby/1.8/open-uri.rb:32:in `open'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:191:in
`download_pixbuf'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:199:in
`create_thumbnail'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:271:in
`get_splash_screens'
from /usr/lib/ruby/1.8/rexml/element.rb:934:in `each'
from /usr/lib/ruby/1.8/rexml/xpath.rb:53:in `each'
from /usr/lib/ruby/1.8/rexml/element.rb:934:in `each'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/splash_screens.rb:221:in
`get_splash_screens'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/ui/main_window.rb:261:in
`reload_splash_screens'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/ui/main_window.rb:458:in
`initialize'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/gnome_splashscreen_manager.rb:62:in
`new'
from
/usr/lib/ruby/1.8/gnome-splashscreen-manager/gnome_splashscreen_manager.rb:62:in
`main'
from /usr/bin/gnome-splashscreen-manager:25
The image file of the downloaded splashscreen is corrupted but I think that it
is wrong to break the whole program.
It would be right to automatically remove the corrupted entries and continues
it's lifecycle.
The problem is on the download_pixbuf method of the splash_screen.rb script.
The loader throws a Gdk::PixbufError if the file is not a correct image file
(from a corrupted download maybe) and this exception is unhandled. This method
is used by the create_thumbnail method to read the image and create the
thumbnail for the program's main window.
So because the MainWindow.rb constructor at start reads the
#{Home_dir}/#{Gnome_dir}/splash-screens.xml and creates the thumbnails
of the image files, it goes down..
You can reproduce it very easy, just add a <splash_screen> entry at
#{Home_dir}/#{Gnome_dir}/splash-screens.xml file and touch the file you
entered for filename in the entry. The file is not a correct image file
and the whole thing will fail.
I think that the solution is pretty simple but I 'm a java developer at
most and not at all familiar with ruby (so maybe there is a more
sophisticated way to handle this situation), what I did to fix it is:
1) changed the splash_screens.rb script at line 190 to add an exception
handler and return nil on error:
old code snippet:
loader = Gdk::PixbufLoader.new
open(url) { |f|
loader.last_write(f.read)
}
new code snippet:
begin
loader = Gdk::PixbufLoader.new
open(url) { |f|
loader.last_write(f.read)
}
rescue
puts "Error in image file format: "+url
return nil
end
2) edit the splash_screens.rb again into method create_thumbnail (line
205 with the new code snippet) and added between pixbuf =
download_pixbuf(url) and pixbuf.scale(130, 90,
Gdk::Pixbuf::INTERP_BILINEAR) this code snippet:
if (pixbuf == nil)
return nil
end
That's it. Now the reload_splash_screens method that runs at start of the
program will load the thumbnails and every nil thumbnail will be deleted from
your #{Home_dir}/#{Gnome_dir}/splash-screens.xml file with a notification
message at standard output to delete the image file manually from your
filesystem.
I am using Debian GNU/Linux 5, kernel 2.6.26-1-amd64, gnome 2.22.3
--- End Message ---
--- Begin Message ---
Version: 0.2-12+rm
Dear submitter,
as the package gnome-art has just been removed from the Debian archive
unstable we hereby close the assiciated bug reports. We are sorry
that we couldn't deal with your issue properly.
For details on the removal, please see http://bugs.debian.org/605353
This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].
Debian distribution maintenance software
pp.
Alexander Reichle-Schmehl (the ftpmaster behind the curtain)
--- End Message ---