[PackageKit-commit] packagekit: Branch 'master' - 8 commits

Richard Hughes hughsient at kemper.freedesktop.org
Tue Apr 14 02:30:57 PDT 2009


 backends/aptcc/acqprogress.cpp                 |   41 ++++-----
 lib/packagekit-glib/pk-client.c                |   49 +++++++++++
 lib/packagekit-glib/pk-client.h                |    4 
 lib/packagekit-glib/pk-connection.c            |    4 
 lib/packagekit-glib/pk-enum.c                  |   46 ++++++++++
 lib/packagekit-glib/pk-enum.h                  |   17 +++
 lib/packagekit-glib/pk-task-list.c             |   16 ++-
 lib/packagekit-qt/src/transaction.cpp          |    1 
 lib/packagekit-qt/src/transaction.h            |   19 ++++
 lib/packagekit-qt/src/transactionprivate.cpp   |    5 +
 lib/packagekit-qt/src/transactionprivate.h     |    1 
 lib/packagekit-qt/src/transactionproxy.h       |    1 
 po/gu.po                                       |  107 ++++++++++++-------------
 po/mr.po                                       |   95 +++++++++++-----------
 po/or.po                                       |  104 ++++++++++++------------
 src/org.freedesktop.PackageKit.Transaction.xml |   47 ++++++++++
 src/pk-backend.c                               |   35 ++++++++
 src/pk-backend.h                               |    4 
 src/pk-transaction.c                           |   41 +++++++++
 19 files changed, 465 insertions(+), 172 deletions(-)

New commits:
commit 185d4a53b5e26a5e2097c1be1a4aa3dbbf33ff80
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Apr 14 10:06:07 2009 +0100

    bugfix: disconnect the handlers properly in PkTaskList to stop the critical warning in the test suite

diff --git a/lib/packagekit-glib/pk-task-list.c b/lib/packagekit-glib/pk-task-list.c
index 9574144..1f977fb 100644
--- a/lib/packagekit-glib/pk-task-list.c
+++ b/lib/packagekit-glib/pk-task-list.c
@@ -63,6 +63,8 @@ struct _PkTaskListPrivate
 	GPtrArray		*task_list;
 	PkControl		*control;
 	PkConnection		*connection;
+	guint			 control_changed_id;
+	guint			 connection_changed_id;
 };
 
 typedef enum {
@@ -460,15 +462,17 @@ pk_task_list_init (PkTaskList *tlist)
 
 	/* get the changing job list */
 	tlist->priv->control = pk_control_new ();
-	g_signal_connect (tlist->priv->control, "transaction-list-changed",
-			  G_CALLBACK (pk_task_list_transaction_list_changed_cb), tlist);
+	tlist->priv->control_changed_id =
+		g_signal_connect (tlist->priv->control, "transaction-list-changed",
+				  G_CALLBACK (pk_task_list_transaction_list_changed_cb), tlist);
 
 	/* we maintain a local copy */
 	tlist->priv->task_list = g_ptr_array_new ();
 
 	tlist->priv->connection = pk_connection_new ();
-	g_signal_connect (tlist->priv->connection, "connection-changed",
-			  G_CALLBACK (pk_task_list_connection_changed_cb), tlist);
+	tlist->priv->connection_changed_id =
+		g_signal_connect (tlist->priv->connection, "connection-changed",
+				  G_CALLBACK (pk_task_list_connection_changed_cb), tlist);
 
 	/* force a refresh so we have valid data*/
 	pk_task_list_refresh (tlist);
@@ -487,6 +491,10 @@ pk_task_list_finalize (GObject *object)
 	tlist = PK_TASK_LIST (object);
 	g_return_if_fail (tlist->priv != NULL);
 
+	/* unhook all signals */
+	g_signal_handler_disconnect (tlist->priv->control, tlist->priv->control_changed_id);
+	g_signal_handler_disconnect (tlist->priv->connection, tlist->priv->connection_changed_id);
+
 	/* remove all watches */
 	g_ptr_array_foreach (tlist->priv->task_list, (GFunc) pk_task_list_item_free, NULL);
 	g_ptr_array_free (tlist->priv->task_list, TRUE);
commit 0108802948c89a7302b4a04f27894f6e6eef1803
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Apr 14 10:05:12 2009 +0100

    bugfix: remove the NameOwnerChanged handler when we unref PkConnection to prevent a bug in client applications

diff --git a/lib/packagekit-glib/pk-connection.c b/lib/packagekit-glib/pk-connection.c
index f6759b4..9737d40 100644
--- a/lib/packagekit-glib/pk-connection.c
+++ b/lib/packagekit-glib/pk-connection.c
@@ -148,6 +148,10 @@ pk_connection_finalize (GObject *object)
 	connection = PK_CONNECTION (object);
 	g_return_if_fail (connection->priv != NULL);
 
+	/* disconnect signal handlers */
+	dbus_g_proxy_disconnect_signal (connection->priv->proxy, "NameOwnerChanged",
+				        G_CALLBACK (egg_dbus_connection_name_owner_changed_cb), connection);
+
 	g_object_unref (connection->priv->proxy);
 
 	G_OBJECT_CLASS (pk_connection_parent_class)->finalize (object);
commit c104cacb39a98b55e585d7cb1afceaa73852499e
Author: sandeeps <sandeeps at fedoraproject.org>
Date:   Tue Apr 14 06:09:09 2009 +0000

    Sending translation for Marathi

diff --git a/po/mr.po b/po/mr.po
index 4b03d0b..f44f989 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master.mr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-02 08:10+0000\n"
-"PO-Revision-Date: 2009-04-02 18:57+0530\n"
+"POT-Creation-Date: 2009-04-14 02:09+0000\n"
+"PO-Revision-Date: 2009-04-14 11:21+0530\n"
 "Last-Translator: Sandeep Shedmake <sandeep.shedmake at gmail.com>\n"
 "Language-Team: marathi\n"
 "MIME-Version: 1.0\n"
@@ -431,64 +431,69 @@ msgstr "त्रुटी:"
 msgid "Package description"
 msgstr "संकुल वर्णन"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1473
+msgid "Message:"
+msgstr "संदेश:"
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1501
 msgid "Package files"
 msgstr "संकुल फाइल"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1509
 msgid "No files"
 msgstr "फाइन नाही"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1532
 msgid "Repository signature required"
 msgstr "रेपॉजटरी स्वाक्षरी आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1542
 msgid "Do you accept this signature?"
 msgstr "तुम्ही ही स्वाक्षरी स्वीकारता?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1546
 msgid "The signature was not accepted."
 msgstr "स्वाक्षरी स्वीकारली गेली नाही."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1580
 msgid "End user license agreement required"
 msgstr "वापरकर्ता परवाना करार आवश्यक आहे"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1587
 msgid "Do you agree to this license?"
 msgstr "तुम्ही हा परवाना स्वीकारण्याची खात्री देता?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1591
 msgid "The license was refused."
 msgstr "परवाना फेटाळले गेले."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1620
 msgid "The daemon crashed mid-transaction!"
 msgstr "डिमन व्यवहारच्या मधोमध क्रॅश झाले!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1673
 msgid "PackageKit Console Interface"
 msgstr "PackageKit कन्सोल संवाद"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1675
 msgid "Subcommands:"
 msgstr "उपआदेश:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:125
 #: ../contrib/command-not-found/pk-command-not-found.c:518
 #: ../src/pk-main.c:199
@@ -496,147 +501,147 @@ msgid "Show extra debugging information"
 msgstr "अगाऊ डिबगींग माहिती दाखवा"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
 msgid "Show the program version and exit"
 msgstr "कार्यक्रम आवृत्ती दाखवा व बाहेर पडा"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1773
 msgid "Set the filter, e.g. installed"
 msgstr "चाळणी निश्चित करा, उ.दा. प्रतिष्ठापीत"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1776
 msgid "Exit without waiting for actions to complete"
 msgstr "कृती पूर्ण केल्याविना बाहेर पडा"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1803
 msgid "This tool could not connect to system DBUS."
 msgstr "हे साधन प्रणाली DBUS शी जुळवणी स्थापीत करण्यास अशक्य."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1894
 msgid "The filter specified was invalid"
 msgstr "निश्चित चाळणी अवैध नुरूप आढळली"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1912
 msgid "A search type is required, e.g. name"
 msgstr "शोध प्रकार आवश्यक, उ.दा. नाव"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
+#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
 msgid "A search term is required"
 msgstr "शोध संज्ञा आवश्यक"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1948
 msgid "Invalid search type"
 msgstr "अवैध शोध प्रकार"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1954
 msgid "A package name or filename to install is required"
 msgstr "प्रतिष्ठपन करीता संकुल नाव किंवा फाइलनाव आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1962
 msgid "A type, key_id and package_id are required"
 msgstr "प्रकार, key_id व package_id आवश्यक आहे"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1970
 msgid "A package name to remove is required"
 msgstr "काढूण टाकण्याजोगी संकुल नाव"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
+#: ../client/pk-console.c:1977
 msgid "A destination directory and then the package names to download are required"
 msgstr "लक्ष्य डिरेक्ट्री व त्यानंतर डाऊनलोड करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1983
 msgid "Directory not found"
 msgstr "डिरेक्ट्री आढळली नाही"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:1990
 msgid "A licence identifier (eula-id) is required"
 msgstr "परवाना ओळख (eula-id) आवश्यक आहे"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:1999
 msgid "A transaction identifier (tid) is required"
 msgstr "transaction identifier (tid) आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2015
 msgid "A package name to resolve is required"
 msgstr "निर्धारण करीता संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
 msgid "A repository name is required"
 msgstr "रेपॉजिटरी नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2039
 msgid "A repo name, parameter and value are required"
 msgstr "रेपो नाव, बाब व मूल्य आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2052
 msgid "An action, e.g. 'update-system' is required"
 msgstr "कृती, उ.दा. 'update-system' आवश्यक आहे"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2058
 msgid "A correct role is required"
 msgstr "वर्तमान भूमिका आवश्यक आहे"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2064
 msgid "Failed to get the time since this action was last completed"
 msgstr "शेवटच्यावेळी पूर्ण केलेली कृतीचे वेळ प्राप्त करण्यास अपयशी"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
+#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
+#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "संकुल नाव आवश्यक आहे"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2100
 msgid "A package provide string is required"
 msgstr "संकुल द्वारे पुरविलेली अक्षरमाळा आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2124
 msgid "A list file name to create is required"
 msgstr "बनविण्याकरीता यादी फाइल नाव आवश्यक आहे"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
 msgid "A list file to open is required"
 msgstr "उघडण्याकरीता यादी फाइल आवश्यक आहे"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2195
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "पर्याय '%s' समर्थीत नाही"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2208
 msgid "Incorrect privileges for this operation"
 msgstr "या क्रिया करीता अयोग्य परवानगी"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2211
 msgid "Command failed"
 msgstr "आदेश अपयशी"
 
commit 44b4ae984373c773733907b3a43604b2b6eb4692
Author: mgiri <mgiri at fedoraproject.org>
Date:   Tue Apr 14 05:53:07 2009 +0000

    Sending translation for Oriya

diff --git a/po/or.po b/po/or.po
index 9343b1a..c49375b 100644
--- a/po/or.po
+++ b/po/or.po
@@ -1,14 +1,14 @@
-# translation of packagekit.master.PackageKit.or.po to Oriya
+# translation of packagekit.master.or.po to Oriya
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
 # Manoj Kumar Giri <mgiri at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: packagekit.master.PackageKit.or\n"
+"Project-Id-Version: packagekit.master.or\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-01 08:09+0000\n"
-"PO-Revision-Date: 2009-04-01 19:24+0530\n"
+"POT-Creation-Date: 2009-04-14 02:09+0000\n"
+"PO-Revision-Date: 2009-04-14 11:22+0530\n"
 "Last-Translator: Manoj Kumar Giri <mgiri at redhat.com>\n"
 "Language-Team: Oriya <oriya-it at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
@@ -16,6 +16,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms:  nplurals=2; plural=(n!=1);\n\n"
+"\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:234
@@ -431,64 +432,69 @@ msgstr "ତ୍ରୁଟି:"
 msgid "Package description"
 msgstr "ପ୍ୟାକେଜ ବର୍ଣ୍ଣନା"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1473
+msgid "Message:"
+msgstr "ସନ୍ଦେଶ:"
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1501
 msgid "Package files"
 msgstr "ପ୍ୟାକେଜ ଫାଇଲଗୁଡ଼ିକ"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1509
 msgid "No files"
 msgstr "କୌଣସି ଫାଇଲ ନାହିଁ"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1532
 msgid "Repository signature required"
 msgstr "ସଂଗ୍ରହାଳୟ ହସ୍ତାକ୍ଷର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1542
 msgid "Do you accept this signature?"
 msgstr "ଆପଣ ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରିବେ କି?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1546
 msgid "The signature was not accepted."
 msgstr "ଏହି ହସ୍ତାକ୍ଷରକୁ ଗ୍ରହଣ କରାଯାଇନାହିଁ।"
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1580
 msgid "End user license agreement required"
 msgstr "ଚାଳକ ଅନୁମତି ପତ୍ର ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1587
 msgid "Do you agree to this license?"
 msgstr "ଆପଣ ଏହି ଅନୁମତି ପତ୍ର ସହିତ ସହମତ କି?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1591
 msgid "The license was refused."
 msgstr "ଅନୁମତି ପତ୍ରକୁ ବାରଣ କରାଯାଇଛି।"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1620
 msgid "The daemon crashed mid-transaction!"
 msgstr "ଡେମନ ମଧ୍ଯ-କାରବାରକୁ ନଷ୍ଟ କରିଛି!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1673
 msgid "PackageKit Console Interface"
 msgstr "PackageKit କୋନସୋଲ ଅନ୍ତରାପୃଷ୍ଠ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1675
 msgid "Subcommands:"
 msgstr "ଉପ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:125
 #: ../contrib/command-not-found/pk-command-not-found.c:518
 #: ../src/pk-main.c:199
@@ -496,147 +502,147 @@ msgid "Show extra debugging information"
 msgstr "ଅତିରିକ୍ତ ତ୍ରୁଟି ନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
 msgid "Show the program version and exit"
 msgstr "ପ୍ରଗ୍ରାମ ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1773
 msgid "Set the filter, e.g. installed"
 msgstr "ଛାଣକ ସେଟ କରନ୍ତୁ, ଯେପରିକି ସ୍ଥାପିତ"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1776
 msgid "Exit without waiting for actions to complete"
 msgstr "କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା ନକରି ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1803
 msgid "This tool could not connect to system DBUS."
 msgstr "ଏହି ଉପକରଣ ତନ୍ତ୍ର DBUS ସହିତ ସଂଯୁକ୍ତ ହୋଇପାରିଲା ନାହିଁ।"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1894
 msgid "The filter specified was invalid"
 msgstr "ଉଲ୍ଲିଖିତ ଛାଣକଟି ଅବୈଧ ଅଟେ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1912
 msgid "A search type is required, e.g. name"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ପ୍ରକାର ଆବଶ୍ୟକ, ଯେପରିକି ନାମ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
+#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
 msgid "A search term is required"
 msgstr "ଗୋଟିଏ ସନ୍ଧାନ ନିତି ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1948
 msgid "Invalid search type"
 msgstr "ଅବୈଧ ସନ୍ଧାନ ପ୍ରକାର"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1954
 msgid "A package name or filename to install is required"
 msgstr "ସ୍ଥାପନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ କିମ୍ବା ଫାଇଲନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1962
 msgid "A type, key_id and package_id are required"
 msgstr "ଗୋଟିଏ ପ୍ରକାର, key_id ଏବଂ package_id ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1970
 msgid "A package name to remove is required"
 msgstr "କାଢ଼ିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
+#: ../client/pk-console.c:1977
 msgid "A destination directory and then the package names to download are required"
 msgstr "ଆହରଣ କରିବା ପାଇଁ ଗୋଟିଏ ଲକ୍ଷ୍ଯସ୍ଥଳ ଡିରେକ୍ଟୋରୀ ଏବଂ ତାପରେ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1983
 msgid "Directory not found"
 msgstr "ଡିରେକ୍ଟୋରୀ ମିଳୁନାହିଁ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:1990
 msgid "A licence identifier (eula-id) is required"
 msgstr "ଗୋଟିଏ ଅନୁମତିପତ୍ର ପରିଚାୟକ (eula-id) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:1999
 msgid "A transaction identifier (tid) is required"
 msgstr "ଗୋଟିଏ କାରବାର ପରିଚାୟକ (tid) ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2015
 msgid "A package name to resolve is required"
 msgstr "ସମାଧାନ କରିବା ପାଇଁ ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
 msgid "A repository name is required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2039
 msgid "A repo name, parameter and value are required"
 msgstr "ଗୋଟିଏ ସଂଗ୍ରହାଳୟ, ପ୍ରାଚଳ ଏବଂ ମୂଲ୍ୟ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2052
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ଗୋଟିଏ କାର୍ଯ୍ୟ, ଉଦାହରଣ ସ୍ୱରୂପ 'update-system' ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2058
 msgid "A correct role is required"
 msgstr "ଗୋଟିଏ ସଠିକ ଭୂମିକା ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2064
 msgid "Failed to get the time since this action was last completed"
 msgstr "ଏହି କାର୍ଯ୍ୟଟି ଶେଷରେ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ହେତୁ ସମୟ ପାଇବାରେ ବିଫଳ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
+#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
+#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2100
 msgid "A package provide string is required"
 msgstr "ଗୋଟିଏ ପ୍ୟାକେଜ ପ୍ରଦତ୍ତ ବାକ୍ୟଖଣ୍ଡ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2124
 msgid "A list file name to create is required"
 msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ନାମ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
 msgid "A list file to open is required"
 msgstr "ଖୋଲିବା ପାଇଁ ଗୋଟିଏ ତାଲିକା ଫାଇଲ ଆବଶ୍ୟକ"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2195
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "ବିକଳ୍ପ '%s' ଟି ସମର୍ଥିତ ନୁହଁ"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2208
 msgid "Incorrect privileges for this operation"
 msgstr "ଏହି ପ୍ରୟୋଗ ପାଇଁ ଭୁଲ ଅଧିକାର"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2211
 msgid "Command failed"
 msgstr "ନିର୍ଦ୍ଦେଶ ବିଫଳ ହୋଇଛି"
 
@@ -930,9 +936,7 @@ msgstr "ସଫ୍ଟୱେର ଉତ୍ସ ପ୍ରାଚଳଗୁଡ଼ିକà
 msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
-msgstr ""
-"ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ "
-"ବୈଧିକରଣ ଆବଶ୍ୟକ"
+msgstr "ପ୍ୟାକେଜଗୁଡ଼ିକୁ ବିଶ୍ଵସ୍ତ ଭାବରେ ହସ୍ତାକ୍ଷର କରିବା ପାଇଁ ବ୍ୟବହୃତ କି କୁ ଗ୍ରହଣ କରିବା ପାଇଁ ବୈଧିକରଣ ଆବଶ୍ୟକ"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:6
 msgid "Authentication is required to install a signed package"
commit c7045c86398d67b115aaa7ba24713d1e5e62a3bf
Author: swkothar <swkothar at fedoraproject.org>
Date:   Tue Apr 14 05:50:46 2009 +0000

    Sending translation for Gujarati

diff --git a/po/gu.po b/po/gu.po
index 35b1972..11cf114 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -1,4 +1,4 @@
-# translation of gu.po to Gujarati
+# translation of packagekit.master.gu.po to Gujarati
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
@@ -6,10 +6,10 @@
 # Sweta Kothari <swkothar at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: gu\n"
+"Project-Id-Version: packagekit.master.gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-02 08:10+0000\n"
-"PO-Revision-Date: 2009-04-02 15:39+0530\n"
+"POT-Creation-Date: 2009-04-14 02:09+0000\n"
+"PO-Revision-Date: 2009-04-14 11:20+0530\n"
 "Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
 "Language-Team: Gujarati\n"
 "MIME-Version: 1.0\n"
@@ -434,64 +434,69 @@ msgstr "ભૂલ:"
 msgid "Package description"
 msgstr "પેકેજ વર્ણન"
 
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1473
+msgid "Message:"
+msgstr "સંદેશ:"
+
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1501
 msgid "Package files"
 msgstr "પેકેજ ફાઈલો"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1509
 msgid "No files"
 msgstr "કોઈ ફાઈલો નથી"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1522
+#: ../client/pk-console.c:1532
 msgid "Repository signature required"
 msgstr "રીપોઝીટરી સહી જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1542
 msgid "Do you accept this signature?"
 msgstr "શું તમે આ સહી સ્વીકારશો?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1536
+#: ../client/pk-console.c:1546
 msgid "The signature was not accepted."
 msgstr "સહી સ્વીકારાયેલ ન હતી."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1570
+#: ../client/pk-console.c:1580
 msgid "End user license agreement required"
 msgstr "અંતિમ વપરાશકર્તા લાઈસન્સ મંજૂરીપત્રક જરૂરી"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1587
 msgid "Do you agree to this license?"
 msgstr "શું તમે આ લાઈસન્સ સાથે મંજૂર છો?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1581
+#: ../client/pk-console.c:1591
 msgid "The license was refused."
 msgstr "લાઈસન્સ રદ થયું હતું."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1620
 msgid "The daemon crashed mid-transaction!"
 msgstr "ડિમન મધ્ય-પરિવહન દરમ્યાન ભાંગી પડ્યું!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1673
 msgid "PackageKit Console Interface"
 msgstr "PackageKit કન્સોલ ઈન્ટરફેસ"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1665
+#: ../client/pk-console.c:1675
 msgid "Subcommands:"
 msgstr "ઉપઆદેશો:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1767 ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:125
 #: ../contrib/command-not-found/pk-command-not-found.c:518
 #: ../src/pk-main.c:199
@@ -499,147 +504,147 @@ msgid "Show extra debugging information"
 msgstr "વધારાની ડિબગીંગ જાણકારી બતાવો"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1770 ../client/pk-monitor.c:127
 msgid "Show the program version and exit"
 msgstr "કાર્યક્રમ આવૃત્તિ બતાવો અને બહાર નીકળો"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1763
+#: ../client/pk-console.c:1773
 msgid "Set the filter, e.g. installed"
 msgstr "ગાળક સુયોજીત કરો, દા.ત. સ્થાપિત"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1766
+#: ../client/pk-console.c:1776
 msgid "Exit without waiting for actions to complete"
 msgstr "ક્રિયાઓ સમાપ્ત થવાની રાહ જોયા વિના બહાર નીકળો"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1793
+#: ../client/pk-console.c:1803
 msgid "This tool could not connect to system DBUS."
 msgstr "આ સાધન સિસ્ટમ DBUS સાથે જોડી શક્યા નહિં."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1880
+#: ../client/pk-console.c:1894
 msgid "The filter specified was invalid"
 msgstr "સ્પષ્ટ થયેલ ફિલ્ટર અયોગ્ય હતુ"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1898
+#: ../client/pk-console.c:1912
 msgid "A search type is required, e.g. name"
 msgstr "શોધ પ્રકારની જરૂરિયાત છે, દા.ત. નામ"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1918 ../client/pk-console.c:1926
+#: ../client/pk-console.c:1934 ../client/pk-console.c:1942
 msgid "A search term is required"
 msgstr "શોધ ટર્મ જરૂરી છે"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1934
+#: ../client/pk-console.c:1948
 msgid "Invalid search type"
 msgstr "અયોગ્ય શોધ પ્રકાર"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1940
+#: ../client/pk-console.c:1954
 msgid "A package name or filename to install is required"
 msgstr "સ્થાપન કરવા માટે પેકેજ નામ અથવા ફાઇલનામ જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1962
 msgid "A type, key_id and package_id are required"
 msgstr "પ્રકાર, key_id અને package_id જરૂરી છે"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1956
+#: ../client/pk-console.c:1970
 msgid "A package name to remove is required"
 msgstr "દૂર કરવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1963
+#: ../client/pk-console.c:1977
 msgid "A destination directory and then the package names to download are required"
 msgstr "અંતિમ મુકામ ડિરેક્ટરી અને પછી પેકેજ નામો ડાઉનલોડ કરવા માટે જરૂરી છે"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1969
+#: ../client/pk-console.c:1983
 msgid "Directory not found"
 msgstr "ડિરેક્ટરી મળી નહિં"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1976
+#: ../client/pk-console.c:1990
 msgid "A licence identifier (eula-id) is required"
 msgstr "લાઈસન્સ ઓળખનાર (eula-id) જરૂરી છે"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1985
+#: ../client/pk-console.c:1999
 msgid "A transaction identifier (tid) is required"
 msgstr "પરિવહન ઓળખનાર (tid) જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2015
 msgid "A package name to resolve is required"
 msgstr "સુધારવા માટે પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2023 ../client/pk-console.c:2031
 msgid "A repository name is required"
 msgstr "રીપોઝીટરી નામ જરૂરી છે"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2025
+#: ../client/pk-console.c:2039
 msgid "A repo name, parameter and value are required"
 msgstr "રીપો નામ, પરિમાણ અને કિંમતની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2038
+#: ../client/pk-console.c:2052
 msgid "An action, e.g. 'update-system' is required"
 msgstr "ક્રિયા, દા.ત. 'update-system જરૂરી છે"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2058
 msgid "A correct role is required"
 msgstr "સાચી ભૂમિકા જરૂરી છે"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2064
 msgid "Failed to get the time since this action was last completed"
 msgstr "આ ક્રિયા છેલ્લી સમાપ્ત થયેલ હતી ત્યાં સુધી સમયને મેળવવાનું નિષ્ફળ"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2073 ../client/pk-console.c:2084
+#: ../client/pk-console.c:2092 ../client/pk-console.c:2108
+#: ../client/pk-console.c:2116 ../client/pk-generate-pack.c:241
 msgid "A package name is required"
 msgstr "પેકેજ નામ જરૂરી છે"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2086
+#: ../client/pk-console.c:2100
 msgid "A package provide string is required"
 msgstr "પેકેજ શબ્દમાળાની પૂરી પાડે છે તેની જરૂર છે"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2110
+#: ../client/pk-console.c:2124
 msgid "A list file name to create is required"
 msgstr "બનાવવા માટે ફાઇલ નામ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2133 ../client/pk-console.c:2142
 msgid "A list file to open is required"
 msgstr "ખોલવા માટે ફાઇલ યાદી જરૂરી છે"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2181
+#: ../client/pk-console.c:2195
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "વિકલ્પ '%s' આધારભૂત નથી"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2208
 msgid "Incorrect privileges for this operation"
 msgstr "આ પ્રક્રિયા કરવા માટે અયોગ્ય વિશેષાધિકારો"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2197
+#: ../client/pk-console.c:2211
 msgid "Command failed"
 msgstr "આદેશ નિષ્ફળ"
 
@@ -934,8 +939,8 @@ msgid ""
 "Authentication is required to consider a key used for signing packages as "
 "trusted"
 msgstr ""
-"વિશ્ર્વસનીય તરીકે પેકેજોમાં હસ્તાક્ષર કરવા માટે વપરાયેલ કીને નક્કી કરવા માટે સત્તાધિકરણ"
-"જરૂરી છે"
+"વિશ્ર્વસનીય તરીકે પેકેજોમાં હસ્તાક્ષર કરવા માટે વપરાયેલ કીને નક્કી કરવા માટે "
+"સત્તાધિકરણજરૂરી છે"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:6
 msgid "Authentication is required to install a signed package"
@@ -961,9 +966,7 @@ msgstr "પરિવહન ને પાછુ લાવવા માટે સà
 msgid ""
 "Authentication is required to set the network proxy used for downloading "
 "packages"
-msgstr ""
-"પેકેજોને ડાઉનલોડ કરવા માટે વપરાયેલ નેટવર્ક પ્રોક્સીને સુયોજિત કરવા માટે સત્તાધિકરણ "
-"જરૂરી છે"
+msgstr "પેકેજોને ડાઉનલોડ કરવા માટે વપરાયેલ નેટવર્ક પ્રોક્સીને સુયોજિત કરવા માટે સત્તાધિકરણ જરૂરી છે"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to update packages"
commit 668c9e7892fbb7608b8730360bb25f395e43ea3f
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Apr 13 21:39:55 2009 -0300

    Aptcc: Added media change support.

diff --git a/backends/aptcc/acqprogress.cpp b/backends/aptcc/acqprogress.cpp
index d6018ff..bf6c308 100644
--- a/backends/aptcc/acqprogress.cpp
+++ b/backends/aptcc/acqprogress.cpp
@@ -297,27 +297,28 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 // AcqPackageKitStatus::MediaChange - Media need to be swapped		/*{{{*/
 // ---------------------------------------------------------------------
 /* Prompt for a media swap */
-bool AcqPackageKitStatus::MediaChange(string Media,string Drive)
+bool AcqPackageKitStatus::MediaChange(string Media, string Drive)
 {
-   if (Quiet <= 0)
-      cout << '\r' << BlankLine << '\r';
-   ioprintf(cout,"Media change: please insert the disc labeled\n"
-		   " '%s'\n"
-		   "in the drive '%s' and press enter\n",
-	    Media.c_str(),Drive.c_str());
-
-   char C = 0;
-   bool bStatus = true;
-   while (C != '\n' && C != '\r')
-   {
-      int len = read(STDIN_FILENO,&C,1);
-      if(C == 'c' || len <= 0)
-	 bStatus = false;
-   }
-
-   if(bStatus)
-      Update = true;
-   return bStatus;
+	pk_backend_media_change_required(m_backend,
+					 PK_MEDIA_TYPE_ENUM_UNKNOWN,
+					 Media.c_str(),
+					 Media.c_str());
+
+	char errorMsg[400];
+	sprintf(errorMsg,
+		"Media change: please insert the disc labeled\n"
+		" '%s'\n"
+		"in the drive '%s' and press enter\n",
+		Media.c_str(),
+		Drive.c_str());
+
+	pk_backend_error_code(m_backend,
+			      PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,
+			      errorMsg);
+
+	// Set this so we can fail the transaction
+	Update = true;
+	return false;
 }
 									/*}}}*/
 
commit f48f471be0ddc8095ff4349e3b6d52992f5aa6d2
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Apr 13 21:06:03 2009 -0300

    Added media change support to -qt lib

diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index 007396d..b01ae97 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -52,6 +52,7 @@ Transaction::Transaction(const QString& tid, Client* parent) : QObject(parent)
 	connect(d->p, SIGNAL(RepoDetail(const QString&, const QString&, bool)), this, SIGNAL(repoDetail(const QString&, const QString&, bool)));
 	connect(d->p, SIGNAL(RepoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)), d, SLOT(repoSignatureRequired(const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&, const QString&)));
 	connect(d->p, SIGNAL(EulaRequired(const QString&, const QString&, const QString&, const QString&)), d, SLOT(eulaRequired(const QString&, const QString&, const QString&, const QString&)));
+	connect(d->p, SIGNAL(MediaChangeRequired(const QString&, const QString&, const QString&)), d, SLOT(mediaChangeRequired(const QString&, const QString&, const QString&)));
 	connect(d->p, SIGNAL(RequireRestart(const QString&, const QString&)), d, SLOT(requireRestart(const QString&, const QString&)));
 	connect(d->p, SIGNAL(StatusChanged(const QString&)), d, SLOT(statusChanged(const QString&)));
 	connect(d->p, SIGNAL(Transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)), d, SLOT(transaction(const QString&, const QString&, bool, const QString&, uint, const QString&, uint, const QString&)));
diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index fa97ea3..f039df1 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -236,9 +236,20 @@ public:
 		KeyRequired,
 		EulaRequired,
 		Killed, /* when we forced the cancel, but had to sigkill */
+		MediaChangeRequired,
 		UnknownExitStatus = -1
 	} ExitStatus;
 
+	/**
+	 * Describes what kind of media is required
+	 */
+	typedef enum {
+		Cd,
+		Dvd,
+		CdOrDvd,
+		UnknownMediaType = -1
+	} MediaType;
+
 public Q_SLOTS:
 	/**
 	 * Cancels the transaction
@@ -292,6 +303,14 @@ Q_SIGNALS:
 	void eulaRequired(PackageKit::Client::EulaInfo info);
 
 	/**
+	 * Emitted when a different media is required in order to fetch packages
+	 * which prevents the transaction from running
+	 * \note You will need to relaunch the transaction after changing the media
+	 * \sa Transaction::MediaType
+	 */
+	void mediaChangeRequired(PackageKit::Transaction::MediaType type, const QString& id, const QString& text);
+
+	/**
 	 * Sends the \p filenames contained in package \p p
 	 * \sa Client::getFiles
 	 */
diff --git a/lib/packagekit-qt/src/transactionprivate.cpp b/lib/packagekit-qt/src/transactionprivate.cpp
index 7da4085..9a248c2 100644
--- a/lib/packagekit-qt/src/transactionprivate.cpp
+++ b/lib/packagekit-qt/src/transactionprivate.cpp
@@ -67,6 +67,11 @@ void TransactionPrivate::eulaRequired(const QString& eulaId, const QString& pid,
 	t->eulaRequired(i);
 }
 
+void TransactionPrivate::mediaChangeRequired(const QString& mediaType, const QString& mediaId, const QString& mediaText)
+{
+	t->mediaChangeRequired((Transaction::MediaType)Util::enumFromString<Transaction>(mediaType, "MediaType"), mediaId, mediaText);
+}
+
 void TransactionPrivate::files(const QString& pid, const QString& filenames)
 {
 	t->files(new Package(pid), filenames.split(";"));
diff --git a/lib/packagekit-qt/src/transactionprivate.h b/lib/packagekit-qt/src/transactionprivate.h
index 1be0672..ba35d81 100644
--- a/lib/packagekit-qt/src/transactionprivate.h
+++ b/lib/packagekit-qt/src/transactionprivate.h
@@ -59,6 +59,7 @@ public slots:
 	void distroUpgrade(const QString& type, const QString& name, const QString& description);
 	void errorCode(const QString& error, const QString& details);
 	void eulaRequired(const QString& eulaId, const QString& pid, const QString& vendor, const QString& licenseAgreement);
+	void mediaChangeRequired(const QString& mediaType, const QString& mediaId, const QString& mediaText);
 	void files(const QString& pid, const QString& filenames);
 	void finished(const QString& exitCode, uint runtime);
 	void message(const QString& type, const QString& message);
diff --git a/lib/packagekit-qt/src/transactionproxy.h b/lib/packagekit-qt/src/transactionproxy.h
index 0444a0d..3ac00da 100644
--- a/lib/packagekit-qt/src/transactionproxy.h
+++ b/lib/packagekit-qt/src/transactionproxy.h
@@ -306,6 +306,7 @@ Q_SIGNALS: // SIGNALS
     void DistroUpgrade(const QString &type, const QString &name, const QString &summary);
     void ErrorCode(const QString &code, const QString &details);
     void EulaRequired(const QString &eula_id, const QString &package_id, const QString &vendor_name, const QString &license_agreement);
+    void MediaChangeRequired(const QString &media_type, const QString &media_id, const QString &media_text);
     void Files(const QString &package_id, const QString &file_list);
     void Finished(const QString &exit, uint runtime);
     void Message(const QString &type, const QString &details);
commit a3412d08c19191cb37b56f4f41afdbc6009f690f
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Mon Apr 13 20:40:40 2009 -0300

    Squashed commit of the following:
    
    commit a164eb3fb2e8444e15f238c9a63c208099028412
    Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
    Date:   Mon Apr 13 20:36:40 2009 -0300
    
        New signal, media-change-required finished (Pk and -glib).

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index f4294e0..785550a 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -132,6 +132,7 @@ typedef enum {
 	PK_CLIENT_ALLOW_CANCEL,
 	PK_CLIENT_CATEGORY,
 	PK_CLIENT_DESTROY,
+	PK_CLIENT_MEDIA_CHANGE_REQUIRED,
 	PK_CLIENT_LAST_SIGNAL
 } PkSignals;
 
@@ -867,6 +868,26 @@ pk_client_eula_required_cb (DBusGProxy *proxy, const gchar *eula_id, const gchar
 }
 
 /**
+ * pk_client_media_change_required_cb:
+ **/
+static void
+pk_client_media_change_required_cb (DBusGProxy *proxy,
+				    const gchar *media_type_text,
+				    const gchar *media_id,
+				    const gchar *media_text,
+				    PkClient *client)
+{
+	PkMediaTypeEnum media_type;
+	g_return_if_fail (PK_IS_CLIENT (client));
+
+	media_type = pk_media_type_enum_from_text (media_type_text);
+	egg_debug ("emit media-change-required %s, %s, %s",
+		  pk_error_enum_to_text (media_type), media_id, media_text);
+	g_signal_emit (client, signals [PK_CLIENT_MEDIA_CHANGE_REQUIRED], 0,
+		       media_type, media_id, media_text);
+}
+
+/**
  * pk_client_repo_detail_cb:
  **/
 static void
@@ -3947,6 +3968,8 @@ pk_client_set_tid (PkClient *client, const gchar *tid, GError **error)
 	dbus_g_proxy_add_signal (proxy, "Destroy", G_TYPE_INVALID);
 	dbus_g_proxy_add_signal (proxy, "Category", G_TYPE_STRING, G_TYPE_STRING,
 				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+	dbus_g_proxy_add_signal (proxy, "MediaChangeRequired",
+				 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
 
 	dbus_g_proxy_connect_signal (proxy, "Finished",
 				     G_CALLBACK (pk_client_finished_cb), client, NULL);
@@ -3984,6 +4007,8 @@ pk_client_set_tid (PkClient *client, const gchar *tid, GError **error)
 				     G_CALLBACK (pk_client_allow_cancel_cb), client, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Category",
 				     G_CALLBACK (pk_client_category_cb), client, NULL);
+	dbus_g_proxy_connect_signal (proxy, "MediaChangeRequired",
+				     G_CALLBACK (pk_client_media_change_required_cb), client, NULL);
 	dbus_g_proxy_connect_signal (proxy, "Destroy",
 				     G_CALLBACK (pk_client_destroy_cb), client, NULL);
 	client->priv->proxy = proxy;
@@ -4153,6 +4178,26 @@ pk_client_class_init (PkClientClass *klass)
 			      G_STRUCT_OFFSET (PkClientClass, eula_required),
 			      NULL, NULL, pk_marshal_VOID__STRING_STRING_STRING_STRING,
 			      G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+
+	/**
+	 * PkClient::media-change-required:
+	 * @client: the #PkClient instance that emitted the signal
+	 * @media_type: the #PkMediaTypeEnum of the error, e.g. PK_MEDIA_TYPE_ENUM_DVD
+	 * @media_id: the non-localised label of the media
+	 * @media_text: the non-localised text describing the media
+	 *
+	 * The ::media-change-required signal is emitted when the transaction needs a
+	 * different media to grab the packages.
+	 *
+	 * This can only happen once in a transaction.
+	 **/
+	signals [PK_CLIENT_MEDIA_CHANGE_REQUIRED] =
+		g_signal_new ("media-change-required",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (PkClientClass, media_change_required),
+			      NULL, NULL, pk_marshal_VOID__UINT_STRING_STRING,
+			      G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING);
+
 	/**
 	 * PkClient::repo-detail:
 	 * @client: the #PkClient instance that emitted the signal
@@ -4352,6 +4397,8 @@ pk_client_disconnect_proxy (PkClient *client)
 					G_CALLBACK (pk_client_allow_cancel_cb), client);
 	dbus_g_proxy_disconnect_signal (client->priv->proxy, "Destroy",
 					G_CALLBACK (pk_client_destroy_cb), client);
+	dbus_g_proxy_disconnect_signal (client->priv->proxy, "MediaChangeRequired",
+					G_CALLBACK (pk_client_media_change_required_cb), client);
 	g_object_unref (G_OBJECT (client->priv->proxy));
 	client->priv->proxy = NULL;
 	return TRUE;
@@ -4494,7 +4541,7 @@ pk_client_init (PkClient *client)
 	/* Use a main control object */
 	client->priv->control = pk_control_new ();
 
-	/* DistroUpgrade */
+	/* DistroUpgrade, MediaChangeRequired */
 	dbus_g_object_register_marshaller (pk_marshal_VOID__STRING_STRING_STRING,
 					   G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
 
diff --git a/lib/packagekit-glib/pk-client.h b/lib/packagekit-glib/pk-client.h
index b3ca9e4..447d2ab 100644
--- a/lib/packagekit-glib/pk-client.h
+++ b/lib/packagekit-glib/pk-client.h
@@ -148,6 +148,10 @@ struct _PkClientClass
 							 guint		 runtime);
 	void		(* category)			(PkClient	*client,
 							 PkCategoryObj	*obj);
+	void		(* media_change_required)	(PkClient	*client,
+							 PkMediaTypeEnum type,
+							 const gchar	*media_id,
+							 const gchar	*media_text);
 	/* Padding for future expansion */
 	void (*_pk_reserved1) (void);
 	void (*_pk_reserved2) (void);
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 0af1060..bb9ebf6 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -170,6 +170,7 @@ static const PkEnumMatch enum_error[] = {
 	{PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,	"no-distro-upgrade-data"},
 	{PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE,	"incompatible-architecture"},
 	{PK_ERROR_ENUM_NO_SPACE_ON_DEVICE,	"no-space-on-device"},
+	{PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,	"media_change_required"},
 	{0, NULL}
 };
 
@@ -463,6 +464,14 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{0, NULL}
 };
 
+static const PkEnumMatch enum_media_type[] = {
+	{PK_MEDIA_TYPE_ENUM_UNKNOWN,		"unknown"},	/* fall though value */
+	{PK_MEDIA_TYPE_ENUM_CD,			"cd"},
+	{PK_MEDIA_TYPE_ENUM_DVD,		"dvd"},
+	{PK_MEDIA_TYPE_ENUM_CD_OR_DVD,		"cd-or-dvd"},
+	{0, NULL}
+};
+
 /**
  * pk_enum_find_value:
  * @table: A #PkEnumMatch enum table of values
@@ -940,6 +949,32 @@ pk_license_enum_to_text (PkLicenseEnum license)
 	return pk_enum_find_string (enum_free_licenses, license);
 }
 
+/**
+ * pk_media_type_enum_from_text:
+ * @code: Text describing the enumerated type
+ *
+ * Converts a text enumerated type to its unsigned integer representation
+ *
+ * Return value: the enumerated constant value, e.g. PK_MEDIA_TYPE_ENUM_CD
+ **/
+PkMediaTypeEnum pk_media_type_enum_from_text (const gchar *media_type)
+{
+	return pk_enum_find_value (enum_media_type, media_type);
+}
+
+/**
+ * pk_media_type_enum_to_text:
+ * @code: The enumerated type value
+ *
+ * Converts a enumerated type to its text representation
+ *
+ * Return value: the enumerated constant value, e.g. "dvd"
+ **/
+const gchar* pk_media_type_enum_to_text (PkMediaTypeEnum media_type)
+{
+	return pk_enum_find_string (enum_media_type, media_type);
+}
+
 /***************************************************************************
  ***                          MAKE CHECK TESTS                           ***
  ***************************************************************************/
@@ -1109,6 +1144,17 @@ pk_enum_test (EggTest *test)
 	}
 	egg_test_success (test, NULL);
 
+	/************************************************************/
+	egg_test_title (test, "check we convert all the media type bitfield");
+	for (i=0; i<=PK_MEDIA_TYPE_ENUM_UNKNOWN; i++) {
+		string = pk_media_type_enum_to_text (i);
+		if (string == NULL) {
+			egg_test_failed (test, "failed to get %i", i);
+			break;
+		}
+	}
+	egg_test_success (test, NULL);
+
 	egg_test_end (test);
 }
 #endif
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index d72e0f7..374b1a6 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -149,6 +149,7 @@ typedef enum {
 	PK_EXIT_ENUM_CANCELLED,
 	PK_EXIT_ENUM_KEY_REQUIRED,
 	PK_EXIT_ENUM_EULA_REQUIRED,
+        PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED,
 	PK_EXIT_ENUM_KILLED, /* when we forced the cancel, but had to SIGKILL */
 	PK_EXIT_ENUM_UNKNOWN
 } PkExitEnum;
@@ -285,6 +286,7 @@ typedef enum {
 	PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,
 	PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE,
 	PK_ERROR_ENUM_NO_SPACE_ON_DEVICE,
+	PK_ERROR_ENUM_MEDIA_CHANGE_REQUIRED,
 	PK_ERROR_ENUM_UNKNOWN
 } PkErrorCodeEnum;
 
@@ -536,6 +538,18 @@ typedef enum {
 	PK_LICENSE_ENUM_UNKNOWN
 } PkLicenseEnum;
 
+/**
+ * PkMediaTypeEnum:
+ *
+ * The media type
+ **/
+typedef enum {
+	PK_MEDIA_TYPE_ENUM_CD,
+	PK_MEDIA_TYPE_ENUM_DVD,
+	PK_MEDIA_TYPE_ENUM_CD_OR_DVD,
+	PK_MEDIA_TYPE_ENUM_UNKNOWN
+} PkMediaTypeEnum;
+
 /* general */
 guint		 pk_enum_find_value			(const PkEnumMatch *table,
 							 const gchar	*string)
@@ -589,6 +603,9 @@ const gchar	*pk_license_enum_to_text		(PkLicenseEnum	 license);
 PkDistroUpgradeEnum pk_distro_upgrade_enum_from_text	(const gchar	*upgrade);
 const gchar	*pk_distro_upgrade_enum_to_text		(PkDistroUpgradeEnum upgrade);
 
+PkMediaTypeEnum  pk_media_type_enum_from_text		(const gchar	*media_type);
+const gchar	*pk_media_type_enum_to_text		(PkMediaTypeEnum media_type);
+
 G_END_DECLS
 
 #endif /* __PK_ENUM_H */
diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index 8ce2d15..ca75d42 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -1891,6 +1891,53 @@
     </signal>
 
     <!--*****************************************************************************************-->
+    <signal name="MediaChangeRequired">
+      <doc:doc>
+        <doc:description>
+          <doc:para>
+            This signal is emitted when a transaction needsneeds a different media
+            to grab the packages.
+          </doc:para>
+          <doc:para>
+            Some backends support Media changing, which will fail the transaction each time it needs
+            a new media.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+      <arg type="s" name="media_type" direction="out">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              Enumerated type, e.g. <doc:tt>dvd</doc:tt>.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+      <arg type="s" name="media_id" direction="out">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              The <doc:tt>media_id</doc:tt> which identifies the Media - this is provided
+              so that if DeviceKit or another program is able to identify the right media
+              before continuing, note however that it's not the DeviceKit oblication to
+              check the media when the transaction is re-scheduled this is the backend task.
+              An example <doc:tt>media_id</doc:tt>'s is <doc:tt>Debian testing amd64 Bin-1</doc:tt>.
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+      <arg type="s" name="media_text" direction="out">
+        <doc:doc>
+          <doc:summary>
+            <doc:para>
+              Might be used for the disk label too, something like <doc:tt>Fedora Disk 1</doc:tt>
+            </doc:para>
+          </doc:summary>
+        </doc:doc>
+      </arg>
+    </signal>
+
+    <!--*****************************************************************************************-->
     <signal name="RequireRestart">
       <doc:doc>
         <doc:description>
diff --git a/src/pk-backend.c b/src/pk-backend.c
index d55245d..d16c3a8 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -139,6 +139,7 @@ enum {
 	PK_BACKEND_ALLOW_CANCEL,
 	PK_BACKEND_REPO_DETAIL,
 	PK_BACKEND_CATEGORY,
+	PK_BACKEND_MEDIA_CHANGE_REQUIRED,
 	PK_BACKEND_LAST_SIGNAL
 };
 
@@ -1292,6 +1293,35 @@ pk_backend_eula_required (PkBackend *backend, const gchar *eula_id, const gchar
 }
 
 /**
+ * pk_backend_media_change_required:
+ **/
+gboolean
+pk_backend_media_change_required (PkBackend *backend,
+				  PkMediaTypeEnum media_type,
+				  const gchar *media_id,
+				  const gchar *media_text)
+{
+	g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
+	g_return_val_if_fail (media_id != NULL, FALSE);
+	g_return_val_if_fail (media_text != NULL, FALSE);
+	g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
+
+	/* have we already set an error? */
+	if (backend->priv->set_error) {
+		egg_warning ("already set error, cannot process: media change required");
+		return FALSE;
+	}
+
+	egg_debug ("emit media-change-required %s, %s, %s",
+		  pk_media_type_enum_to_text (media_type), media_id, media_text);
+
+	g_signal_emit (backend, signals [PK_BACKEND_MEDIA_CHANGE_REQUIRED], 0,
+		       media_type, media_id, media_text);
+
+	return TRUE;
+}
+
+/**
  * pk_backend_repo_detail:
  **/
 gboolean
@@ -1912,6 +1942,11 @@ pk_backend_class_init (PkBackendClass *klass)
 			      0, NULL, NULL, pk_marshal_VOID__STRING_STRING_STRING_STRING,
 			      G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
 			      G_TYPE_STRING, G_TYPE_STRING);
+	signals [PK_BACKEND_MEDIA_CHANGE_REQUIRED] =
+		g_signal_new ("media-change-required",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      0, NULL, NULL, pk_marshal_VOID__UINT_STRING_STRING,
+			      G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING);
 	signals [PK_BACKEND_FINISHED] =
 		g_signal_new ("finished",
 			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 9e84220..103a575 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -141,6 +141,10 @@ gboolean         pk_backend_eula_required		(PkBackend      *backend,
 							 const gchar    *package_id,
 							 const gchar    *vendor_name,
 							 const gchar    *license_agreement);
+gboolean         pk_backend_media_change_required	(PkBackend      *backend,
+							 PkMediaTypeEnum media_type,
+							 const gchar    *media_id,
+							 const gchar    *media_text);
 gboolean         pk_backend_category			(PkBackend      *backend,
 							 const gchar	*parent_id,
 							 const gchar	*cat_id,
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index ab26050..912fe04 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -84,6 +84,7 @@ struct PkTransactionPrivate
 	gboolean		 allow_cancel;
 	gboolean		 emit_eula_required;
 	gboolean		 emit_signature_required;
+	gboolean		 emit_media_change_required;
 	gchar			*locale;
 	guint			 uid;
 	EggDbusMonitor		*monitor;
@@ -139,6 +140,7 @@ struct PkTransactionPrivate
 	guint			 signal_repo_detail;
 	guint			 signal_repo_signature_required;
 	guint			 signal_eula_required;
+	guint			 signal_media_change_required;
 	guint			 signal_require_restart;
 	guint			 signal_status_changed;
 	guint			 signal_update_detail;
@@ -159,6 +161,7 @@ enum {
 	PK_TRANSACTION_REPO_DETAIL,
 	PK_TRANSACTION_REPO_SIGNATURE_REQUIRED,
 	PK_TRANSACTION_EULA_REQUIRED,
+	PK_TRANSACTION_MEDIA_CHANGE_REQUIRED,
 	PK_TRANSACTION_REQUIRE_RESTART,
 	PK_TRANSACTION_STATUS_CHANGED,
 	PK_TRANSACTION_TRANSACTION,
@@ -553,6 +556,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_repo_detail);
 	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_repo_signature_required);
 	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_eula_required);
+	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_media_change_required);
 	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_update_detail);
 	g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_category);
 
@@ -652,6 +656,8 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
 		exit_enum = PK_EXIT_ENUM_KEY_REQUIRED;
 	else if (transaction->priv->emit_eula_required)
 		exit_enum = PK_EXIT_ENUM_EULA_REQUIRED;
+	else if (transaction->priv->emit_media_change_required)
+		exit_enum = PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED;
 
 	/* invalidate some caches if we succeeded */
 	if (exit_enum == PK_EXIT_ENUM_SUCCESS)
@@ -884,6 +890,32 @@ pk_transaction_eula_required_cb (PkBackend *backend, const gchar *eula_id, const
 }
 
 /**
+ * pk_transaction_media_change_required_cb:
+ **/
+static void
+pk_transaction_media_change_required_cb (PkBackend *backend,
+					 PkMediaTypeEnum media_type,
+					 const gchar *media_id,
+					 const gchar *media_text,
+					 PkTransaction *transaction)
+{
+	const gchar *media_type_text;
+
+	g_return_if_fail (PK_IS_TRANSACTION (transaction));
+	g_return_if_fail (transaction->priv->tid != NULL);
+
+	media_type_text = pk_media_type_enum_to_text (media_type);
+
+	egg_debug ("emitting media-change-required %s, %s, %s",
+		media_type_text, media_id, media_text);
+	g_signal_emit (transaction, signals [PK_TRANSACTION_MEDIA_CHANGE_REQUIRED], 0,
+		    media_type, media_id, media_text);
+
+	/* we should mark this transaction so that we finish with a special code */
+	transaction->priv->emit_media_change_required = TRUE;
+}
+
+/**
  * pk_transaction_require_restart_cb:
  **/
 static void
@@ -1036,6 +1068,9 @@ pk_transaction_set_running (PkTransaction *transaction)
 	transaction->priv->signal_eula_required =
 		g_signal_connect (transaction->priv->backend, "eula-required",
 				  G_CALLBACK (pk_transaction_eula_required_cb), transaction);
+	transaction->priv->signal_media_change_required =
+		g_signal_connect (transaction->priv->backend, "media-change-required",
+				  G_CALLBACK (pk_transaction_media_change_required_cb), transaction);
 	transaction->priv->signal_require_restart =
 		g_signal_connect (transaction->priv->backend, "require-restart",
 				  G_CALLBACK (pk_transaction_require_restart_cb), transaction);
@@ -3831,6 +3866,11 @@ pk_transaction_class_init (PkTransactionClass *klass)
 			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
 			      0, NULL, NULL, pk_marshal_VOID__STRING_STRING_STRING_STRING,
 			      G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	signals [PK_TRANSACTION_MEDIA_CHANGE_REQUIRED] =
+		g_signal_new ("media-change-required",
+			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
+			      0, NULL, NULL, pk_marshal_VOID__UINT_STRING_STRING,
+			      G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING);
 	signals [PK_TRANSACTION_REQUIRE_RESTART] =
 		g_signal_new ("require-restart",
 			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
@@ -3877,6 +3917,7 @@ pk_transaction_init (PkTransaction *transaction)
 	transaction->priv->allow_cancel = TRUE;
 	transaction->priv->emit_eula_required = FALSE;
 	transaction->priv->emit_signature_required = FALSE;
+	transaction->priv->emit_media_change_required = FALSE;
 	transaction->priv->cached_enabled = FALSE;
 	transaction->priv->cached_key_id = NULL;
 	transaction->priv->cached_package_id = NULL;


More information about the PackageKit-commit mailing list