- New upstream version, many bugfixes and performance fixes

- Remove upstreamed patches
This commit is contained in:
Richard Hughes 2009-05-05 15:29:22 +00:00
parent 5dcb7aff44
commit 65d0c207d3
9 changed files with 8 additions and 492 deletions

View File

@ -1 +1 @@
PackageKit-0.4.6.tar.gz
PackageKit-0.4.7.tar.gz

View File

@ -1,52 +0,0 @@
commit 79ace3ef67c14b435b2c0d8330aaa7a8774b482c
Author: Richard Hughes <richard@hughsie.com>
Date: Mon Apr 6 17:12:33 2009 +0100
bugfix: pk_package_ids_check is not valid when the packageids array is zero length
diff --git a/lib/packagekit-glib/pk-package-ids.c b/lib/packagekit-glib/pk-package-ids.c
index e4a39be..623fff5 100644
--- a/lib/packagekit-glib/pk-package-ids.c
+++ b/lib/packagekit-glib/pk-package-ids.c
@@ -114,7 +114,7 @@ pk_package_ids_check (gchar **package_ids)
{
guint i;
guint size;
- gboolean ret;
+ gboolean ret = FALSE;
const gchar *package_id;
g_return_val_if_fail (package_ids != NULL, FALSE);
@@ -125,9 +125,10 @@ pk_package_ids_check (gchar **package_ids)
package_id = package_ids[i];
ret = pk_package_id_check (package_id);
if (!ret)
- return FALSE;
+ goto out;
}
- return TRUE;
+out:
+ return ret;
}
/**
@@ -214,6 +215,7 @@ void
pk_package_ids_test (EggTest *test)
{
gboolean ret;
+ gchar *package_ids_blank[] = {};
gchar **package_ids;
guint size;
@@ -234,6 +236,11 @@ pk_package_ids_test (EggTest *test)
egg_test_assert (test, size == 2);
/************************************************************/
+ egg_test_title (test, "verify blank");
+ ret = pk_package_ids_check (package_ids_blank);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
egg_test_title (test, "verify");
ret = pk_package_ids_check (package_ids);
egg_test_assert (test, ret);

View File

@ -1,25 +0,0 @@
commit b55842c2243c41850b839f900fe333ff3dbef2ab
Author: Richard Hughes <richard@hughsie.com>
Date: Tue Apr 14 13:32:10 2009 +0100
bugfix: still use command not found for commands one character long
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 2df80e9..f6aba8e 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -545,11 +545,12 @@ main (int argc, char *argv[])
/* get policy config */
pk_cnf_get_config (&config);
- /* generate swizzles */
+ /* get length */
len = egg_strlen (argv[1], 1024);
- if (len < 2)
+ if (len < 1)
goto out;
+ /* generate swizzles */
array = pk_cnf_find_alternatives (argv[1], len);
/* TRANSLATORS: the prefix of all the output telling the user why it's not executing */

View File

@ -1,112 +0,0 @@
commit 826973135802ee453e014dc601168690b49af25d
Author: Richard Hughes <richard@hughsie.com>
Date: Wed Apr 1 12:25:02 2009 +0100
bugfix: correct the allow-cancel duplicate logic so we don't remember the state of the previous transaction
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 6bedd12..d55245d 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -74,6 +74,13 @@
*/
#define PK_BACKEND_FINISHED_TIMEOUT_GRACE 10 /* ms */
+/* a boolean with unset */
+typedef enum {
+ PK_BACKEND_TRISTATE_FALSE = FALSE,
+ PK_BACKEND_TRISTATE_TRUE = TRUE,
+ PK_BACKEND_TRISTATE_UNSET
+} PkBackendTristate;
+
struct _PkBackendPrivate
{
GModule *handle;
@@ -101,7 +108,7 @@ struct _PkBackendPrivate
PkBackendFileChanged file_changed_func;
gpointer file_changed_data;
gboolean during_initialize;
- gboolean allow_cancel;
+ PkBackendTristate allow_cancel;
gboolean finished;
guint last_percentage;
guint last_subpercentage;
@@ -1436,9 +1443,9 @@ pk_backend_set_allow_cancel (PkBackend *backend, gboolean allow_cancel)
}
/* same as last state? */
- if (backend->priv->allow_cancel == allow_cancel) {
+ if (backend->priv->allow_cancel == (PkBackendTristate) allow_cancel) {
egg_debug ("ignoring same allow-cancel state");
- return TRUE;
+ return FALSE;
}
/* can we do the action? */
@@ -1456,9 +1463,16 @@ pk_backend_set_allow_cancel (PkBackend *backend, gboolean allow_cancel)
gboolean
pk_backend_get_allow_cancel (PkBackend *backend)
{
+ gboolean allow_cancel = FALSE;
+
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
- return backend->priv->allow_cancel;
+
+ /* return FALSE if we never set state */
+ if (backend->priv->allow_cancel != PK_BACKEND_TRISTATE_UNSET)
+ allow_cancel = backend->priv->allow_cancel;
+
+ return allow_cancel;
}
/**
@@ -1952,11 +1966,11 @@ pk_backend_reset (PkBackend *backend)
backend->priv->set_error = FALSE;
backend->priv->set_signature = FALSE;
backend->priv->set_eula = FALSE;
- backend->priv->allow_cancel = FALSE;
backend->priv->finished = FALSE;
backend->priv->has_sent_package = FALSE;
backend->priv->thread = NULL;
backend->priv->last_package = NULL;
+ backend->priv->allow_cancel = PK_BACKEND_TRISTATE_UNSET;
backend->priv->status = PK_STATUS_ENUM_UNKNOWN;
backend->priv->exit = PK_EXIT_ENUM_UNKNOWN;
backend->priv->role = PK_ROLE_ENUM_UNKNOWN;
@@ -2327,6 +2341,35 @@ pk_backend_test (EggTest *test)
egg_test_loop_wait (test, PK_BACKEND_FINISHED_ERROR_TIMEOUT + 400);
egg_test_loop_check (test);
+ /************************************************************
+ **************** CANCEL TRISTATE ******************
+ ************************************************************/
+ egg_test_title (test, "get allow cancel after reset");
+ pk_backend_reset (backend);
+ ret = pk_backend_get_allow_cancel (backend);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "set allow cancel TRUE");
+ ret = pk_backend_set_allow_cancel (backend, TRUE);
+ egg_test_assert (test, ret);
+
+ /************************************************************/
+ egg_test_title (test, "set allow cancel TRUE (repeat)");
+ ret = pk_backend_set_allow_cancel (backend, TRUE);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "set allow cancel FALSE");
+ ret = pk_backend_set_allow_cancel (backend, FALSE);
+ egg_test_assert (test, ret);
+
+ /************************************************************/
+ egg_test_title (test, "set allow cancel FALSE (after reset)");
+ pk_backend_reset (backend);
+ ret = pk_backend_set_allow_cancel (backend, FALSE);
+ egg_test_assert (test, ret);
+
#ifdef PK_IS_DEVELOPER
egg_test_title (test, "check we enforce finished after error_code");
if (number_messages == 1)

View File

@ -1,74 +0,0 @@
commit 28151ea72bcdd826a2d3a3f9109a073e90962169
Author: Richard Hughes <richard@hughsie.com>
Date: Thu Apr 9 11:23:18 2009 +0100
bugfix: correct the logic for pk_client_set_synchronous so we can set this false without returning in the duplicate check
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index c293677..f4294e0 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -383,9 +383,10 @@ pk_client_set_synchronous (PkClient *client, gboolean synchronous, GError **erro
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
/* are we doing this without any need? */
- if (client->priv->synchronous) {
+ if ((client->priv->synchronous && synchronous) ||
+ (!client->priv->synchronous && !synchronous)) {
if (error != NULL)
- *error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "already set synchronous!");
+ *error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "already synchronous : %i!", synchronous);
return FALSE;
}
@@ -4732,13 +4733,33 @@ pk_client_test (EggTest *test)
g_free (file);
/************************************************************/
- egg_test_title (test, "get client, then unref");
+ egg_test_title (test, "get client");
client = pk_client_new ();
+ egg_test_assert (test, client != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "set non synchronous (fail)");
+ ret = pk_client_set_synchronous (client, FALSE, NULL);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "set synchronous (pass)");
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
+ egg_test_assert (test, ret);
+
+ /************************************************************/
+ egg_test_title (test, "set synchronous again (fail)");
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "set non synchronous (pass)");
+ ret = pk_client_set_synchronous (client, FALSE, NULL);
+ egg_test_assert (test, ret);
g_object_unref (client);
- egg_test_success (test, NULL);
/************************************************************/
- egg_test_title (test, "get client");
+ egg_test_title (test, "get new client");
client = pk_client_new ();
egg_test_assert (test, client != NULL);
@@ -4751,8 +4772,12 @@ pk_client_test (EggTest *test)
g_signal_connect (client, "finished",
G_CALLBACK (pk_client_test_finished_cb), test);
+ /************************************************************/
+ egg_test_title (test, "set synchronous after reset (pass)");
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
+ egg_test_assert (test, ret);
+
/* run the method */
- pk_client_set_synchronous (client, TRUE, NULL);
ret = pk_client_search_name (client, PK_FILTER_ENUM_NONE, "power", NULL);
/************************************************************/

View File

@ -1,161 +0,0 @@
diff --git a/contrib/gstreamer-plugin/pk-gstreamer-install.c b/contrib/gstreamer-plugin/pk-gstreamer-install.c
index ba2f660..9c7a83f 100644
--- a/contrib/gstreamer-plugin/pk-gstreamer-install.c
+++ b/contrib/gstreamer-plugin/pk-gstreamer-install.c
@@ -274,18 +274,16 @@ main (int argc, char **argv)
{
DBusGConnection *connection;
DBusGProxy *proxy = NULL;
- GPtrArray *array = NULL;
- GValueArray *varray;
- GValue *value;
gboolean ret;
- GType array_type;
GOptionContext *context;
GError *error = NULL;
guint i;
+ guint len;
gchar **codecs = NULL;
gint xid = 0;
gint retval = GST_INSTALL_PLUGINS_ERROR;
const gchar *suffix;
+ gchar **resources = NULL;
const GOptionEntry options[] = {
{ "transient-for", '\0', 0, G_OPTION_ARG_INT, &xid, "The XID of the parent window", NULL },
@@ -326,7 +324,7 @@ main (int argc, char **argv)
proxy = dbus_g_proxy_new_for_name (connection,
"org.freedesktop.PackageKit",
"/org/freedesktop/PackageKit",
- "org.freedesktop.PackageKit");
+ "org.freedesktop.PackageKit.Modify");
if (proxy == NULL) {
g_print ("Cannot connect to PackageKit session service\n");
goto out;
@@ -335,9 +333,11 @@ main (int argc, char **argv)
/* use a ()(64bit) suffix for 64 bit */
suffix = pk_gst_get_arch_suffix ();
+ len = g_strv_length (codecs);
+ resources = g_new0 (gchar*, len+1);
+
/* process argv */
- array = g_ptr_array_new ();
- for (i = 0; codecs[i] != NULL; i++) {
+ for (i=0; i<len; i++) {
codec_info *info;
char *s;
char *type;
@@ -359,40 +359,21 @@ main (int argc, char **argv)
g_message ("PackageKit: non-structure: %s", type);
}
- /* create (ss) structure */
- varray = g_value_array_new (2);
- value = g_new0 (GValue, 1);
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, info->codec_name);
- g_value_array_append (varray, value);
- g_value_reset (value);
- g_value_set_string (value, type);
- g_value_array_append (varray, value);
- g_value_unset (value);
- g_free (value);
-
- /* add to array of (ss) */
- g_ptr_array_add (array, varray);
+ /* "encode" */
+ resources[i] = g_strdup_printf ("%s|%s", info->codec_name, type);
/* free codec structure */
pk_gst_codec_free (info);
}
- /* marshall a(ss) */
- array_type = dbus_g_type_get_collection ("GPtrArray",
- dbus_g_type_get_struct("GValueArray",
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_INVALID));
-
/* don't timeout, as dbus-glib sets the timeout ~25 seconds */
dbus_g_proxy_set_default_timeout (proxy, INT_MAX);
/* invoke the method */
- ret = dbus_g_proxy_call (proxy, "InstallGStreamerCodecs", &error,
+ ret = dbus_g_proxy_call (proxy, "InstallGStreamerResources", &error,
G_TYPE_UINT, xid,
- G_TYPE_UINT, 0,
- array_type, array,
+ G_TYPE_STRV, resources,
+ G_TYPE_STRING, "hide-finished",
G_TYPE_INVALID,
G_TYPE_INVALID);
if (!ret) {
@@ -411,10 +392,7 @@ main (int argc, char **argv)
retval = GST_INSTALL_PLUGINS_SUCCESS;
out:
- if (array != NULL) {
- g_ptr_array_foreach (array, (GFunc) g_value_array_free, NULL);
- g_ptr_array_free (array, TRUE);
- }
+ g_strfreev (resources);
if (proxy != NULL)
g_object_unref (proxy);
return retval;
diff --git a/contrib/gtk-module/README b/contrib/gtk-module/README
index 4cfb5fc..2e9200b 100644
--- a/contrib/gtk-module/README
+++ b/contrib/gtk-module/README
@@ -8,7 +8,7 @@ GTK_MODULES="$GTK_MODULES:/usr/lib/gtk-2.0/modules/pk-gtk-module.so" application
The module installs a custom default pangocairo font map during gtk_init().
Pango will then call back with any languages which need installing, and these
are queued up. In an idle callback these are emitted as an asyncronous D-BUS
-method to the session PackageKit InstallFonts() method.
+method to the session PackageKit InstallFontconfigResources() method.
If configured to do so, this will prompt the user to install new fonts.
@@ -16,5 +16,5 @@ Notes:
* At the moment the window XID is not detected correctly, which means focus
stealing prevention may not work properly. We're working on this.
- * gnome-packagekit 0.4.x is needed for the InstallFonts method.
+ * gnome-packagekit 2.17.2 is needed for the InstallFontconfigResources method.
diff --git a/contrib/gtk-module/pk-gtk-module.c b/contrib/gtk-module/pk-gtk-module.c
index 0c38bad..0997a4b 100644
--- a/contrib/gtk-module/pk-gtk-module.c
+++ b/contrib/gtk-module/pk-gtk-module.c
@@ -119,7 +119,7 @@ pk_install_fonts_idle_cb (gpointer data G_GNUC_UNUSED)
proxy = dbus_g_proxy_new_for_name (connection,
"org.freedesktop.PackageKit",
"/org/freedesktop/PackageKit",
- "org.freedesktop.PackageKit");
+ "org.freedesktop.PackageKit.Modify");
if (proxy == NULL) {
g_warning ("Could not connect to PackageKit session service\n");
goto out;
@@ -129,18 +129,18 @@ pk_install_fonts_idle_cb (gpointer data G_GNUC_UNUSED)
dbus_g_proxy_set_default_timeout (proxy, INT_MAX);
/* invoke the method */
- call = dbus_g_proxy_begin_call (proxy, "InstallFonts",
+ call = dbus_g_proxy_begin_call (proxy, "InstallFontconfigResources",
pk_install_fonts_dbus_notify_cb, NULL, NULL,
G_TYPE_UINT, xid,
- G_TYPE_UINT, 0,
G_TYPE_STRV, font_tags,
+ G_TYPE_STRING, "hide-finished",
G_TYPE_INVALID);
if (call == NULL) {
g_warning ("Could not send method");
goto out;
}
- g_debug ("InstallFonts method invoked");
+ g_debug ("InstallFontconfigResources method invoked");
out:
g_strfreev (font_tags);

View File

@ -1,25 +0,0 @@
commit 4dfcd53103ac572e27e67e85088b6dee48b2e171
Author: Richard Hughes <richard@hughsie.com>
Date: Thu Apr 2 11:20:55 2009 +0100
bugfix: yum cannot handle FakeRepository.repo, unlike a normal Repository, so just handle the local case specially. Fixes rh#486720
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index f13bd9d..aade7bd 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2641,8 +2641,13 @@ class PackageKitCallback(RPMBaseCallback):
# we don't know the summary text
self.base.package(package_id, status, "")
else:
+ # local file shouldn't put the path in the package_id
+ repo_id = _to_unicode(self.curpkg.repo.id)
+ if repo_id.find("/") != -1:
+ repo_id = 'local'
+
pkgver = _get_package_ver(self.curpkg)
- package_id = self.base.get_package_id(self.curpkg.name, pkgver, self.curpkg.arch, self.curpkg.repo)
+ package_id = self.base.get_package_id(self.curpkg.name, pkgver, self.curpkg.arch, repo_id)
self.base.package(package_id, status, self.curpkg.summary)
def event(self, package, action, te_current, te_total, ts_current, ts_total):

View File

@ -8,9 +8,9 @@
Summary: Package management service
Name: PackageKit
Version: 0.4.6
Version: 0.4.7
#Release: 0.3.%{?alphatag}git%{?dist}
Release: 3%{?dist}
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: http://www.packagekit.org
@ -24,24 +24,6 @@ Patch0: PackageKit-0.3.8-Fedora-Vendor.conf.patch
# Fedora specific: the yum backend doesn't do time estimation correctly
Patch1: PackageKit-0.4.4-Fedora-turn-off-time.conf.patch
# Already upstream: 4dfcd53103ac572e27e67e85088b6dee48b2e171
Patch2: PackageKit-0.4.6-fix-FakeRepository-for-unicode-paths.patch
# Already upstream: 826973135802ee453e014dc601168690b49af25d
Patch3: PackageKit-0.4.6-correct-allow-cancel-duplicate-logic.patch
# Already upstream: 79ace3ef67c14b435b2c0d8330aaa7a8774b482c
Patch4: PackageKit-0.4.6-check-package-ids-length.patch
# Already upstream: b55842c2243c41850b839f900fe333ff3dbef2ab
Patch5: PackageKit-0.4.6-command-not-found-length.patch
# Already upstream: 28151ea72bcdd826a2d3a3f9109a073e90962169
Patch6: PackageKit-0.4.6-correct-sync-logic.patch
# Already upstream: 31b85c79d516d0b97b87c2b205e9fea00c9190ed..426e6a8ba3be3408347af1d8f200956818e230cf
Patch7: PackageKit-0.4.6-dont-use-obsolete-interfaces.patch
Requires: dbus >= %{dbus_version}
Requires: dbus-glib >= %{dbus_glib_version}
Requires: PackageKit-glib = %{version}-%{release}
@ -143,9 +125,6 @@ GLib libraries for accessing PackageKit.
Summary: QT libraries for accessing PackageKit
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
# 2 short-lived rawhide pkgs
Obsoletes: packagekit-qt < 0.3.1
Obsoletes: qpackagekit < 0.3.1-2
%description qt
QT libraries for accessing PackageKit.
@ -178,9 +157,6 @@ Summary: QT Libraries and headers for PackageKit
Group: Development/Libraries
Requires: %{name}-qt = %{version}-%{release}
Requires: pkgconfig
# 2 short-lived rawhide pkgs
Obsoletes: packagekit-qt-devel < 0.3.1
Obsoletes: qpackagekit-devel < 0.3.1-2
%description qt-devel
QT headers and libraries for PackageKit.
@ -242,12 +218,6 @@ using PackageKit.
%setup -q
%patch0 -p1 -b .fedora
%patch1 -p1 -b .no-time
%patch2 -p1 -b .fake-repo-unicode
%patch3 -p1 -b .correct-allow-cancel
%patch4 -p1 -b .check-lengths
%patch5 -p1 -b .cmd-not-found-lengths
%patch6 -p1 -b .sync-logic
%patch7 -p1 -b .dont-use-obsolete
%build
%configure --enable-yum --enable-smart --with-default-backend=yum --disable-local --disable-ruck
@ -267,7 +237,6 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/mozilla/plugins/packagekit-plugin.la
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/modules/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/modules/*.la
chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/PackageKitDbusTest.py
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/PackageKit/groups.sqlite
# create a link that GStreamer will recognise
@ -291,12 +260,6 @@ rm -rf $RPM_BUILD_ROOT
%post
update-mime-database %{_datadir}/mime &> /dev/null || :
# the job count used to live in /var/run, but it's now in /var/lib with the
# other persistent bits
if [ -e %{_localstatedir}/run/PackageKit/job_count.dat ]; then
mv %{_localstatedir}/run/PackageKit/job_count.dat %{_localstatedir}/lib/PackageKit/job_count.dat
fi
%postun
update-mime-database %{_datadir}/mime &> /dev/null || :
@ -339,10 +302,8 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_libdir}/packagekit-backend/libpk_backend_dummy.so
%{_libdir}/packagekit-backend/libpk_backend_test_*.so
%ghost %verify(not md5 size mtime) %{_localstatedir}/lib/PackageKit/transactions.db
%ghost %verify(not md5 size mtime) %{_localstatedir}/lib/PackageKit/job_count.dat
%{_datadir}/dbus-1/system-services/*.service
%{_libdir}/pm-utils/sleep.d/95packagekit
%{_libexecdir}/*py*
%files docs
%defattr(-,root,root,-)
@ -442,6 +403,10 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%{_includedir}/PackageKit/backend/*.h
%changelog
* Tue May 05 2009 Richard Hughes <rhughes@redhat.com> - 0.4.7-1
- New upstream version, many bugfixes and performance fixes
- Remove upstreamed patches
* Tue Apr 14 2009 Richard Hughes <rhughes@redhat.com> - 0.4.6-3
- Backport 4 important patches from upstream.

View File

@ -1 +1 @@
66ef4281047ad51f499ec05420028f11 PackageKit-0.4.6.tar.gz
a209c31dd6d910216e8765f76f2d9085 PackageKit-0.4.7.tar.gz