Bug#473412: rhythmbox: mime type of podcasts is wrongly guessed, then podcast is ignored by totem-pl-parser

Jeremy Lal kapouer at melix.org
Sun Mar 30 14:30:26 UTC 2008


Package: rhythmbox
Version: 0.11.5-1
Severity: normal

since 0.11 i can't download some podcasts anymore.
i found it was podcasts with that kind of url :
http://somethi.ng/podcast.php3
I checked and the server correctly sets the mime type in http headers, (application/rss+xml)
but rhythmbox uses totem-pl-parser, which guesses the mime type from file extension.
Forcing totem-pl-parser (with option force) to check content before deciding if wrong data or not
corrects the problem. I think it's right to do that because rhythmbox asks user if she wants to force
adding a podcast with an extension different than rss, xml... just before the line modified by my patch.

See Attached patch.


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages rhythmbox depends on:
ii  dbus                   1.1.20-1          simple interprocess messaging syst
ii  gconf2                 2.22.0-1          GNOME configuration database syste
ii  gnome-icon-theme       2.22.0-1          GNOME Desktop icon theme
ii  gstreamer0.10-alsa [gs 0.10.18-3         GStreamer plugin for ALSA
ii  gstreamer0.10-esd [gst 0.10.7-3          GStreamer plugin for ESD
ii  gstreamer0.10-gnomevfs 0.10.18-3         GStreamer plugin for GnomeVFS
ii  gstreamer0.10-plugins- 0.10.18-3         GStreamer plugins from the "base" 
ii  gstreamer0.10-plugins- 0.10.7-3          GStreamer plugins from the "good" 
ii  gstreamer0.10-pulseaud 0.9.7-2           GStreamer plugin for PulseAudio
ii  gstreamer0.10-x        0.10.18-3         GStreamer plugins for X11 and Pang
ii  libart-2.0-2           2.3.20-1          Library of functions for 2D graphi
ii  libatk1.0-0            1.22.0-1          The ATK accessibility toolkit
ii  libavahi-client3       0.6.22-2          Avahi client library
ii  libavahi-common3       0.6.22-2          Avahi common library
ii  libavahi-glib1         0.6.22-2          Avahi glib integration library
ii  libbonobo2-0           2.22.0-1          Bonobo CORBA interfaces library
ii  libbonoboui2-0         2.22.0-1          The Bonobo UI library
ii  libc6                  2.7-10            GNU C Library: Shared libraries
ii  libcairo2              1.4.14-1          The Cairo 2D vector graphics libra
ii  libdbus-1-3            1.1.20-1          simple interprocess messaging syst
ii  libdbus-glib-1-2       0.74-1            simple interprocess messaging syst
ii  libexpat1              1.95.8-4          XML parsing C library - runtime li
ii  libffi5                3.0.4-2           Foreign Function Interface library
ii  libfontconfig1         2.5.0-2           generic font configuration library
ii  libfreetype6           2.3.5-1+b1        FreeType 2 font engine, shared lib
ii  libgconf2-4            2.22.0-1          GNOME configuration database syste
ii  libglade2-0            1:2.6.2-1         library to load .glade files at ru
ii  libglib2.0-0           2.16.1-2          The GLib library of C routines
ii  libgnome-keyring0      2.22.0-2          GNOME keyring services library
ii  libgnome-media0        2.22.0-1          runtime libraries for the GNOME me
ii  libgnome2-0            2.20.1.1-1        The GNOME 2 library - runtime file
ii  libgnomecanvas2-0      2.20.1.1-1        A powerful object-oriented display
ii  libgnomeui-0           2.20.1.1-1        The GNOME 2 libraries (User Interf
ii  libgnomevfs2-0         1:2.22.0-2        GNOME Virtual File System (runtime
ii  libgpod3               0.6.0-3           a library to read and write songs 
ii  libgstreamer-plugins-b 0.10.18-3         GStreamer libraries from the "base
ii  libgstreamer0.10-0     0.10.18-4         Core GStreamer libraries and eleme
ii  libgtk2.0-0            2.12.9-2          The GTK+ graphical user interface 
ii  libhal1                0.5.11~rc2-1      Hardware Abstraction Layer - share
ii  libice6                2:1.0.4-1         X11 Inter-Client Exchange library
ii  liblircclient0         0.8.2-2           infra-red remote control support -
ii  libmtp7                0.2.6.1-2         Media Transfer Protocol (MTP) libr
ii  libmusicbrainz4c2a     2.1.5-2           Second generation incarnation of t
ii  libnautilus-burn4      2.20.0-1          Nautilus Burn Library - runtime ve
ii  libnotify1 [libnotify1 0.4.4-3           sends desktop notifications to a n
ii  libnspr4-0d            4.7.0-2           NetScape Portable Runtime Library
ii  liborbit2              1:2.14.12-0.1     libraries for ORBit2 - a CORBA ORB
ii  libpango1.0-0          1.20.0-1          Layout and rendering of internatio
ii  libpng12-0             1.2.15~beta5-3    PNG library - runtime
ii  libpopt0               1.10-3            lib for parsing cmdline parameters
ii  libsexy2               0.1.11-2          collection of additional GTK+ widg
ii  libsm6                 2:1.0.3-1+b1      X11 Session Management library
ii  libsoup2.4-1           2.4.0-1           an HTTP library implementation in 
ii  libtotem-plparser10    2.22.1-1          Totem Playlist Parser library - ru
ii  libusb-0.1-4           2:0.1.12-9        userspace USB programming library
ii  libx11-6               2:1.0.3-7         X11 client-side library
ii  libxcursor1            1:1.1.9-1         X cursor management library
ii  libxext6               2:1.0.4-1         X11 miscellaneous extension librar
ii  libxfixes3             1:4.0.3-2         X11 miscellaneous 'fixes' extensio
ii  libxi6                 2:1.1.3-1         X11 Input extension library
ii  libxinerama1           2:1.0.3-1         X11 Xinerama extension library
ii  libxml2                2.6.31.dfsg-2     GNOME XML library
ii  libxrandr2             2:1.2.2-1         X11 RandR extension library
ii  libxrender1            1:0.9.4-1         X Rendering Extension client libra
ii  python                 2.4.4-6           An interactive high-level object-o
ii  python-gnome2          2.20.1-2          Python bindings for the GNOME desk
ii  python-gtk2            2.12.1-1          Python bindings for the GTK+ widge
ii  python-support         0.7.7             automated rebuilding support for P
ii  python2.4              2.4.5-1           An interactive high-level object-o
ii  zlib1g                 1:1.2.3.3.dfsg-11 compression library - runtime

Versions of packages rhythmbox recommends:
ii  avahi-daemon                0.6.22-2     Avahi mDNS/DNS-SD daemon
ii  gnome-app-install           0.5.2.5-1    GNOME Application Installer
ii  gnome-control-center        1:2.22.0-2   utilities to configure the GNOME d
pn  gnome-volume-manager        <none>       (no description available)
ii  gstreamer0.10-plugins-ugly  0.10.7-3     GStreamer plugins from the "ugly" 
ii  hal                         0.5.11~rc2-1 Hardware Abstraction Layer
ii  libgnomevfs2-extra          1:2.22.0-2   GNOME Virtual File System (extra m
ii  notification-daemon         0.3.7-1+b1   a daemon that displays passive pop
ii  scrollkeeper                0.3.14-16    A free electronic cataloging syste
ii  sound-juicer                2.22.0-1     GNOME 2 CD Ripper
ii  yelp                        2.22.0-1     Help browser for GNOME 2

-- no debconf information
-------------- next part --------------
*** rb-podcast-parse.c	2008-03-30 16:21:53.000000000 +0200
--- rb-podcast-parse.c.new	2008-03-30 16:21:27.000000000 +0200
*************** rb_podcast_parse_load_feed (RBPodcastCha
*** 193,199 ****
  	}
  
  	plparser = totem_pl_parser_new ();
! 	g_object_set (plparser, "recurse", FALSE, NULL);
  	g_signal_connect (G_OBJECT (plparser), "entry-parsed", G_CALLBACK (entry_parsed), data);
  	g_signal_connect (G_OBJECT (plparser), "playlist-started", G_CALLBACK (playlist_started), data);
  	g_signal_connect (G_OBJECT (plparser), "playlist-ended", G_CALLBACK (playlist_ended), data);
--- 193,199 ----
  	}
  
  	plparser = totem_pl_parser_new ();
! 	g_object_set (plparser, "recurse", FALSE, "force", TRUE, NULL);
  	g_signal_connect (G_OBJECT (plparser), "entry-parsed", G_CALLBACK (entry_parsed), data);
  	g_signal_connect (G_OBJECT (plparser), "playlist-started", G_CALLBACK (playlist_started), data);
  	g_signal_connect (G_OBJECT (plparser), "playlist-ended", G_CALLBACK (playlist_ended), data);


More information about the pkg-gnome-maintainers mailing list