Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I'm not familiar with the given error message, but I did some detective work to try to track this down. In the hope that it's useful to others, here's what I did.

First I used "find" and "grep" to try to locate error message within the packaged string files on my Fedora box:

find /usr/share/locale -exec grep "requires an additional plugin to decode this file" {} +

The results of the above showed that /usr/share/locale/en_GB/LC_MESSAGES/ and many other .mo files for other locales contain this string:

%s requires an additional plugin to decode this file


rpm -qf /usr/share/locale/en_GB/LC_MESSAGES/

shows that these files are part of the "gnome-packagekit" rpm (on my machine it's gnome-packagekit-3.4.2-1.fc17.x86_64), so presumably this is a format string that gnome-packagekit uses to build error messages. (note that it's not the exact string you saw, the "%s" is used at run-time to substitute another string fragment - in this case "/usr/libexec/gconfd-2"

Looking at "rpm -qi gnome-packagekit" on my box shows that the SourceRPM field is "gnome-packagekit-3.4.2-1.fc17.src.rpm", confirming that the "gnome-packagekit" RPM is built from a source rpm named "gnome-packagekit".

Grabbing the sources via:

[david@surprise dist-git-fedora]$ fedpkg clone gnome-packagekit
Cloning into 'gnome-packagekit'...
remote: Counting objects: 1228, done.
remote: Compressing objects: 100% (803/803), done.
remote: Total 1228 (delta 441), reused 971 (delta 333)
Receiving objects: 100% (1228/1228), 204.87 KiB, done.
Resolving deltas: 100% (441/441), done.

[david@surprise dist-git-fedora]$ cd gnome-packagekit/

[david@surprise gnome-packagekit]$ fedpkg prep
Downloading gnome-packagekit-3.6.0.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4185k  100 4185k    0     0  1516k      0  0:00:02  0:00:02 --:--:-- 1577k
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.C5u9jX
+ umask 022
+ cd /home/david/coding/dist-git-fedora/gnome-packagekit
+ export LANG
+ unset DISPLAY
+ cd /home/david/coding/dist-git-fedora/gnome-packagekit
+ rm -rf gnome-packagekit-3.6.0
+ /usr/bin/xz -dc /home/david/coding/dist-git-fedora/gnome-packagekit/gnome-packagekit-3.6.0.tar.xz
+ /usr/bin/tar -xf -
+ '[' 0 -ne 0 ']'
+ cd gnome-packagekit-3.6.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0

[david@surprise dist-git-fedora]$ cd gnome-packagekit-3.6.0/

Looking for the error message with grep within the source tree via:

[david@surprise gnome-packagekit-3.6.0]$ grep -nrH "requires an additional plugin to decode this file" *

shows numerous copies within the "po" subdirectory (in theory, translations for different languages, though clearly in this case it hasn't been translated), along with the place where it actually gets used:

src/gpk-dbus-task.c:1563:           title = g_strdup_printf (ngettext ("%s requires an additional plugin to decode this file",
src/gpk-dbus-task.c:1577:           title = g_strdup (ngettext ("A program requires an additional plugin to decode this file",

Running the source through "cat" to get lines numbers:

 [david@surprise gnome-packagekit-3.6.0]$ cat -n src/gpk-dbus-task.c | less

and using "/" in less to locate the lines of interest gives us the fragment of source code where the error message was emitted along with some context which I'm pasting here:

  1506  gpk_dbus_task_install_gstreamer_resources_confirm (GpkDbusTask *dtask, gchar **codec_names)
  1531          /* TRANSLATORS: we are listing the plugins in a box */
  1549          /* TRANSLATORS: ask for confirmation */
  1550          message = ngettext ("Do you want to search for this now?", "Do you want to search for these now?", len);
  1559          /* make title using application name */
  1560          if (dtask->priv->parent_title != NULL) {
  1561                  if (is_decoder && !is_encoder) {
  1562                          /* TRANSLATORS: a program wants to decode something (unknown) -- string is a program name, e.g. "Movie Player" */
  1563                          title = g_strdup_printf (ngettext ("%s requires an additional plugin to decode this file",
  1564                                                             "%s requires additional plugins to decode this file", len), dtask->priv->parent_title);

My guess looking at this is that a program sent a message to DBus saying that it wanted to use a particular GStreamer codec (to decode some kind of audio/visual content) but couldn't, and that gnome-packagekit picked up the message and displayed the dialog box seen by the user. In this case it was "/usr/libexec/gconfd-2" which wanted to use the codec, though why it wanted to do that would require more detective work...

Hope this is helpful