# Revision history [back]

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/gnome-packagekit.mo and many other .mo files for other locales contain this string:

%s requires an additional plugin to decode this file


Running:

rpm -qf /usr/share/locale/en_GB/LC_MESSAGES/gnome-packagekit.mo


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 + LANG=C + 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 - + STATUS=0 + '[' 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