[packagekit] packagekit: Branch 'master' - 10 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Tue Jan 8 23:29:24 PST 2008
backends/apt/pk-sqlite-pkg-cache.cpp | 2 -
backends/box/pk-backend-box.c | 2 -
backends/conary/helpers/conaryBackend.py | 4 +--
backends/dummy/pk-backend-dummy.c | 41 ++++++++++++++++++++++++++-----
backends/ipkg/pk-backend-ipkg.c | 5 +--
backends/pisi/helpers/pisiBackend.py | 2 -
backends/smart/helpers/smartBackend.py | 2 -
backends/yum/helpers/yumBackend.py | 16 +++---------
backends/zypp/pk-backend-zypp.cpp | 3 --
docs/html/img/pk-prefs.png |binary
docs/spec/pk-introduction.xml | 9 ++++++
libpackagekit/pk-enum.c | 2 +
libpackagekit/pk-enum.h | 2 +
python/packagekit/backend.py | 5 +--
src/pk-backend.c | 8 +++---
src/pk-backend.h | 3 --
src/pk-engine.c | 9 ------
17 files changed, 70 insertions(+), 45 deletions(-)
New commits:
commit 3f71413eff5dda125444da3992bf2884e02baada
Author: James Bowes <jbowes at dangerouslyinc.com>
Date: Tue Jan 8 20:56:44 2008 -0500
Finish removing filelist from package description.
A while ago we created a seperate get-files call, and at that point
removed sending the file list over dbus during get-description. This
change finally removes the requirement for backends to look up the
(unused) file list during get-description.
diff --git a/backends/apt/pk-sqlite-pkg-cache.cpp b/backends/apt/pk-sqlite-pkg-cache.cpp
index d7c61df..249d87b 100644
--- a/backends/apt/pk-sqlite-pkg-cache.cpp
+++ b/backends/apt/pk-sqlite-pkg-cache.cpp
@@ -208,7 +208,7 @@ static gboolean sqlite_get_description_thread (PkBackend *backend, gpointer data
if (res!=SQLITE_OK)
pk_error("sqlite error during select prepare: %s", sqlite3_errmsg(db));
res = sqlite3_step(package);
- pk_backend_description(backend,dt->pi->name, "unknown", PK_GROUP_ENUM_OTHER,(const gchar*)sqlite3_column_text(package,0),"",0,"");
+ pk_backend_description(backend,dt->pi->name, "unknown", PK_GROUP_ENUM_OTHER,(const gchar*)sqlite3_column_text(package,0),"",0);
res = sqlite3_step(package);
if (res==SQLITE_ROW)
pk_error("multiple matches for that package!");
diff --git a/backends/box/pk-backend-box.c b/backends/box/pk-backend-box.c
index 504c835..e7905ad 100644
--- a/backends/box/pk-backend-box.c
+++ b/backends/box/pk-backend-box.c
@@ -368,7 +368,7 @@ backend_get_description_thread (PkBackend *backend, gpointer data)
}
ps = (PackageSearch*) list->data;
- pk_backend_description (backend, pi->name, "unknown", PK_GROUP_ENUM_OTHER, ps->description, "", 0, NULL);
+ pk_backend_description (backend, pi->name, "unknown", PK_GROUP_ENUM_OTHER, ps->description, "", 0);
pk_package_id_free (pi);
box_db_repos_package_list_free (list);
diff --git a/backends/conary/helpers/conaryBackend.py b/backends/conary/helpers/conaryBackend.py
index 42fa664..4efbb7c 100644
--- a/backends/conary/helpers/conaryBackend.py
+++ b/backends/conary/helpers/conaryBackend.py
@@ -338,8 +338,8 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
url = "http://www.foresightlinux.org/packages/" + name + ".html"
categories = self._get_metadata(id, 'categories') or "unknown"
- # Package size and file list go here, but I don't know how to find those for conary packages.
- self.description(shortDesc, id, categories, longDesc, url, 0, "")
+ # Package size goes here, but I don't know how to find that for conary packages.
+ self.description(shortDesc, id, categories, longDesc, url, 0)
else:
self.error(ERROR_INTERNAL_ERROR,'Package was not found')
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 39b3d84..1c62237 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -114,7 +114,7 @@ backend_get_description (PkBackend *backend, const gchar *package_id)
"understand tools, Scribus offers support for professional publishing "
"features, such as CMYK color, easy PDF creation, Encapsulated Postscript "
"import/export and creation of color separations.", "http://live.gnome.org/GnomePowerManager",
- 11214665, "/usr/share/man/man1;/usr/share/man/man1/gnome-power-manager.1.gz"
+ 11214665
);
pk_backend_finished (backend);
}
diff --git a/backends/ipkg/pk-backend-ipkg.c b/backends/ipkg/pk-backend-ipkg.c
index bf1ea4a..d7882ed 100644
--- a/backends/ipkg/pk-backend-ipkg.c
+++ b/backends/ipkg/pk-backend-ipkg.c
@@ -181,7 +181,7 @@ backend_get_description_thread (PkBackend *backend, gchar *package_id)
pkg = pkg_hash_fetch_by_name_version (&global_conf.pkg_hash, pi->name, pi->version);
pk_backend_description (backend, pi->name,
- "unknown", PK_GROUP_ENUM_OTHER, pkg->description, pkg->url, 0, NULL);
+ "unknown", PK_GROUP_ENUM_OTHER, pkg->description, pkg->url, 0);
g_free (package_id);
pk_backend_finished (backend);
diff --git a/backends/pisi/helpers/pisiBackend.py b/backends/pisi/helpers/pisiBackend.py
index 9ae9a32..0bd7dc5 100644
--- a/backends/pisi/helpers/pisiBackend.py
+++ b/backends/pisi/helpers/pisiBackend.py
@@ -181,7 +181,7 @@ class PackageKitPisiBackend(PackageKitBaseBackend):
group,
pkg.description,
pkg.packageURI,
- pkg.packageSize, "")
+ pkg.packageSize)
else:
self.error(ERROR_PACKAGE_NOT_FOUND, "Package was not found")
diff --git a/backends/smart/helpers/smartBackend.py b/backends/smart/helpers/smartBackend.py
index 120e57d..2a938d7 100644
--- a/backends/smart/helpers/smartBackend.py
+++ b/backends/smart/helpers/smartBackend.py
@@ -216,7 +216,7 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
pkgsize = "unknown"
self.description(packageid, "unknown", "unknown", description, url,
- pkgsize, ";".join(info.getPathList()))
+ pkgsize)
@needs_cache
def get_files(self, packageid):
diff --git a/backends/yum/helpers/yumBackend.py b/backends/yum/helpers/yumBackend.py
index c02dfe0..e7bebcb 100644
--- a/backends/yum/helpers/yumBackend.py
+++ b/backends/yum/helpers/yumBackend.py
@@ -227,7 +227,7 @@ class PackageKitYumBackend(PackageKitBaseBackend):
if lock:
self.doLock()
- def description(self,id,license,group,desc,url,bytes,file_list):
+ def description(self,id,license,group,desc,url,bytes):
'''
Send 'description' signal
@param id: The package ID name, e.g. openoffice-clipart;2.6.22;ppc64;fedora
@@ -236,11 +236,10 @@ class PackageKitYumBackend(PackageKitBaseBackend):
@param desc: The multi line package description
@param url: The upstream project homepage
@param bytes: The size of the package, in bytes
- @param file_list: List of the files in the package, separated by ';'
convert the description to UTF before sending
'''
desc = self._toUTF(desc)
- PackageKitBaseBackend.description(self,id,license,group,desc,url,bytes,file_list)
+ PackageKitBaseBackend.description(self,id,license,group,desc,url,bytes)
def package(self,id,status,summary):
'''
@@ -960,13 +959,8 @@ class PackageKitYumBackend(PackageKitBaseBackend):
desc = desc.replace('\n\n',';')
desc = desc.replace('\n',' ')
- files = pkg.returnFileEntries('dir')
- files.extend(pkg.returnFileEntries()) # regular files
-
- file_list = ";".join(files)
-
self.description(id, pkg.license, "unknown", desc, pkg.url,
- pkg.size, file_list)
+ pkg.size)
else:
self.error(ERROR_INTERNAL_ERROR,'Package was not found')
diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 3d7994d..d58522f 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -375,8 +375,7 @@ fprintf (stderr, "\n\n *** comparing versions '%s' == '%s'", pi->version, versio
PK_GROUP_ENUM_OTHER, // PkGroupEnum group
package->description ().c_str (), // const gchar *description
"TODO: add package URL here", // const gchar *url
- (gulong)package->size(), // gulong size
- "TODO: put package filelist here"); // const gchar *filelist
+ (gulong)package->size()); // gulong size
pk_package_id_free (pi);
g_free (d->package_id);
diff --git a/python/packagekit/backend.py b/python/packagekit/backend.py
index 1d2e2a0..c39f9be 100644
--- a/python/packagekit/backend.py
+++ b/python/packagekit/backend.py
@@ -116,7 +116,7 @@ class PackageKitBaseBackend:
'''
print >> sys.stderr,"metadata\t%s\t%s" % (typ,fname)
- def description(self,id,license,group,desc,url,bytes,file_list):
+ def description(self,id,license,group,desc,url,bytes):
'''
Send 'description' signal
@param id: The package ID name, e.g. openoffice-clipart;2.6.22;ppc64;fedora
@@ -125,9 +125,8 @@ class PackageKitBaseBackend:
@param desc: The multi line package description
@param url: The upstream project homepage
@param bytes: The size of the package, in bytes
- @param file_list: List of the files in the package, separated by ';'
'''
- print >> sys.stdout,"description\t%s\t%s\t%s\t%s\t%s\t%ld\t%s" % (id,license,group,desc,url,bytes,file_list)
+ print >> sys.stdout,"description\t%s\t%s\t%s\t%s\t%s\t%ld" % (id,license,group,desc,url,bytes)
def files(self, id, file_list):
'''
diff --git a/src/pk-backend.c b/src/pk-backend.c
index acc3227..eb54690 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -283,7 +283,7 @@ pk_backend_parse_common_output (PkBackend *backend, const gchar *line)
}
pk_backend_package (backend, info, sections[2], sections[3]);
} else if (pk_strequal (command, "description") == TRUE) {
- if (size != 8) {
+ if (size != 7) {
pk_warning ("invalid command '%s'", command);
ret = FALSE;
goto out;
@@ -299,7 +299,7 @@ pk_backend_parse_common_output (PkBackend *backend, const gchar *line)
}
pk_backend_description (backend, sections[1], sections[2],
group, sections[4], sections[5],
- package_size, sections[7]);
+ package_size);
} else if (pk_strequal (command, "files") == TRUE) {
if (size != 3) {
pk_warning ("invalid command '%s'", command);
@@ -939,7 +939,7 @@ gboolean
pk_backend_description (PkBackend *backend, const gchar *package_id,
const gchar *license, PkGroupEnum group,
const gchar *description, const gchar *url,
- gulong size, const gchar *filelist)
+ gulong size)
{
gchar *description_safe;
g_return_val_if_fail (backend != NULL, FALSE);
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 793d3ba..e45c383 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -71,8 +71,7 @@ gboolean pk_backend_description (PkBackend *backend,
PkGroupEnum group,
const gchar *description,
const gchar *url,
- gulong size,
- const gchar *filelist);
+ gulong size);
gboolean pk_backend_files (PkBackend *backend,
const gchar *package_id,
const gchar *filelist);
commit c4440e24c8ed5b3e83f5af271f284f7bc39fd01a
Author: James Bowes <jbowes at dangerouslyinc.com>
Date: Tue Jan 8 19:58:55 2008 -0500
Add some missing status updates in the dummy backend
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index b231bb1..39b3d84 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -89,6 +89,7 @@ static void
backend_get_depends (PkBackend *backend, const gchar *package_id, gboolean recursive)
{
g_return_if_fail (backend != NULL);
+ pk_backend_change_status (backend, PK_STATUS_ENUM_QUERY);
pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
"glib2;2.14.0;i386;fedora", "The GLib library");
pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
@@ -103,6 +104,7 @@ static void
backend_get_description (PkBackend *backend, const gchar *package_id)
{
g_return_if_fail (backend != NULL);
+ pk_backend_change_status (backend, PK_STATUS_ENUM_QUERY);
pk_backend_description (backend, "gnome-power-manager;2.6.19;i386;fedora", "GPL2", PK_GROUP_ENUM_PROGRAMMING,
"Scribus is an desktop open source page layout program with "
"the aim of producing commercial grade output in PDF and "
@@ -124,6 +126,7 @@ static void
backend_get_files (PkBackend *backend, const gchar *package_id)
{
g_return_if_fail (backend != NULL);
+ pk_backend_change_status (backend, PK_STATUS_ENUM_QUERY);
pk_backend_files (backend, "gnome-power-manager;2.6.19;i386;fedora",
"/usr/share/man/man1;/usr/share/man/man1/gnome-power-manager.1.gz");
pk_backend_finished (backend);
@@ -135,6 +138,7 @@ static void
backend_get_requires (PkBackend *backend, const gchar *package_id, gboolean recursive)
{
g_return_if_fail (backend != NULL);
+ pk_backend_change_status (backend, PK_STATUS_ENUM_QUERY);
pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
"glib2;2.14.0;i386;fedora", "The GLib library");
pk_backend_package (backend, PK_INFO_ENUM_INSTALLED,
commit fc8c6166ad07c7a808f2aa80e57e6fa8d5a2d865
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 22:52:59 2008 +0000
add its4 note in the ipkg backend about getenv
diff --git a/backends/ipkg/pk-backend-ipkg.c b/backends/ipkg/pk-backend-ipkg.c
index a95cbdd..bf1ea4a 100644
--- a/backends/ipkg/pk-backend-ipkg.c
+++ b/backends/ipkg/pk-backend-ipkg.c
@@ -315,8 +315,7 @@ backend_install_package_thread (PkBackend *backend, gchar *package_id)
if (pk_debug_enabled ())
ipkg_cb_message = ipkg_debug;
- /* libipkg requires PATH env variable to be present, otherwise it
- * segfaults */
+ /* ITS4: ignore, we've set this to something sane in backend_initalize */
if (!getenv ("PATH"))
setenv ("PATH", "", 1);
commit 60899986272196fd4de9e9ef7d20868f47598db3
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 21:44:54 2008 +0000
add two more enumerated info types
diff --git a/backends/yum/helpers/yumBackend.py b/backends/yum/helpers/yumBackend.py
index f4dc448..c02dfe0 100644
--- a/backends/yum/helpers/yumBackend.py
+++ b/backends/yum/helpers/yumBackend.py
@@ -1001,9 +1001,9 @@ class PackageKitYumBackend(PackageKitBaseBackend):
if ut == 'security':
return INFO_SECURITY
elif ut == 'bugfix':
- return INFO_NORMAL
+ return INFO_BUGFIX
elif ut == 'enhancement':
- return INFO_LOW
+ return INFO_ENHANCEMENT
else:
return INFO_UNKNOWN
diff --git a/libpackagekit/pk-enum.c b/libpackagekit/pk-enum.c
index ad30443..0f8756e 100644
--- a/libpackagekit/pk-enum.c
+++ b/libpackagekit/pk-enum.c
@@ -208,6 +208,8 @@ static PkEnumMatch enum_info[] = {
{PK_INFO_ENUM_NORMAL, "normal"},
{PK_INFO_ENUM_IMPORTANT, "important"},
{PK_INFO_ENUM_SECURITY, "security"},
+ {PK_INFO_ENUM_BUGFIX, "bugfix"},
+ {PK_INFO_ENUM_ENHANCEMENT, "enhancement"},
{PK_INFO_ENUM_BLOCKED, "blocked"},
{PK_INFO_ENUM_DOWNLOADING, "downloading"},
{PK_INFO_ENUM_UPDATING, "updating"},
diff --git a/libpackagekit/pk-enum.h b/libpackagekit/pk-enum.h
index 01821b4..e35813e 100644
--- a/libpackagekit/pk-enum.h
+++ b/libpackagekit/pk-enum.h
@@ -259,6 +259,8 @@ typedef enum {
PK_INFO_ENUM_NORMAL,
PK_INFO_ENUM_IMPORTANT,
PK_INFO_ENUM_SECURITY,
+ PK_INFO_ENUM_BUGFIX,
+ PK_INFO_ENUM_ENHANCEMENT,
PK_INFO_ENUM_BLOCKED,
PK_INFO_ENUM_DOWNLOADING,
PK_INFO_ENUM_UPDATING,
commit 6854865cbd1dcbbefbfd358465f0c5e2e2035609
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 21:25:47 2008 +0000
always add the package to the package cache and emit it even if we added it before. we need this for the new-style update viewer to get sane feedback - we'll need to update the backends to be more careful emitting packages
diff --git a/src/pk-engine.c b/src/pk-engine.c
index 16507d8..50b0525 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -273,7 +273,6 @@ pk_engine_package_cb (PkBackend *backend, PkInfoEnum info, const gchar *package_
PkTransactionItem *item;
PkRoleEnum role;
const gchar *info_text;
- gboolean ret;
g_return_if_fail (engine != NULL);
g_return_if_fail (PK_IS_ENGINE (engine));
@@ -284,13 +283,7 @@ pk_engine_package_cb (PkBackend *backend, PkInfoEnum info, const gchar *package_
return;
}
- /* check if already in the package list, to avoid having installed and available in the UI */
- ret = pk_package_list_contains (item->package_list, package_id);
- if (ret == TRUE) {
- return;
- }
-
- /* add to package cache */
+ /* add to package cache even if we already got a result */
pk_package_list_add (item->package_list, info, package_id, summary);
/* check the backend is doing the right thing */
commit ee1d83d2459f236d2deb1a1281458d38c484b6eb
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 21:14:34 2008 +0000
a bit of variety in the dummy backends
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 782768b..b231bb1 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -435,7 +435,7 @@ backend_update_system_timeout (gpointer data)
"The first update");
}
if (progress_percentage == 60) {
- pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+ pk_backend_package (backend, PK_INFO_ENUM_UPDATING,
"update2;2.19.1-4.fc8;i386;fedora",
"The second update");
}
commit 6c6875aec2ebaf13d457bf68785b00abdbfcd3ee
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 20:58:17 2008 +0000
use the text info enum when debugging
diff --git a/src/pk-backend.c b/src/pk-backend.c
index eea4173..acc3227 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -815,7 +815,7 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package, c
/* replace unsafe chars */
summary_safe = pk_strsafe (summary);
- pk_debug ("emit package %i, %s, %s", info, package, summary_safe);
+ pk_debug ("emit package %s, %s, %s", pk_info_enum_to_text (info), package, summary_safe);
g_signal_emit (backend, signals [PK_BACKEND_PACKAGE], 0, info, package, summary_safe);
g_free (summary_safe);
return TRUE;
commit 925f7df181f47b285c0a27e3440b3116763b41f1
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 20:57:21 2008 +0000
make the dummy backend a bit cleverer
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index fc44f90..782768b 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -177,10 +177,10 @@ backend_get_updates (PkBackend *backend)
g_rand_free (rand);
/* only find updates one in 5 times */
- if (number != 1) {
- pk_backend_finished (backend);
- return;
- }
+// if (number != 1) {
+// pk_backend_finished (backend);
+// return;
+// }
pk_backend_no_percentage_updates (backend);
pk_backend_package (backend, PK_INFO_ENUM_NORMAL,
@@ -418,7 +418,32 @@ backend_update_system_timeout (gpointer data)
pk_backend_finished (backend);
return FALSE;
}
- pk_backend_change_status (backend, PK_STATUS_ENUM_UPDATE);
+ if (progress_percentage == 0) {
+ pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
+ "update1;2.19.1-4.fc8;i386;fedora",
+ "The first update");
+ }
+ if (progress_percentage == 20) {
+ pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
+ "update2;2.19.1-4.fc8;i386;fedora",
+ "The second update");
+ }
+ if (progress_percentage == 40) {
+ pk_backend_change_status (backend, PK_STATUS_ENUM_UPDATE);
+ pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+ "update1;2.19.1-4.fc8;i386;fedora",
+ "The first update");
+ }
+ if (progress_percentage == 60) {
+ pk_backend_package (backend, PK_INFO_ENUM_INSTALLING,
+ "update2;2.19.1-4.fc8;i386;fedora",
+ "The second update");
+ }
+ if (progress_percentage == 80) {
+ pk_backend_package (backend, PK_INFO_ENUM_CLEANUP,
+ "update1;2.19.1-4.fc8;i386;fedora",
+ "The first update (old version)");
+ }
progress_percentage += 10;
pk_backend_change_percentage (backend, progress_percentage);
return TRUE;
commit 0b9d15d00d8d21330c55b6d2464b67f7d73d6b71
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 18:37:18 2008 +0000
update a screenshot
diff --git a/docs/html/img/pk-prefs.png b/docs/html/img/pk-prefs.png
index 1526a29..3b04918 100644
Binary files a/docs/html/img/pk-prefs.png and b/docs/html/img/pk-prefs.png differ
commit 10370faa738c83460db8f68c19bcd0d166c489ee
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jan 8 18:37:00 2008 +0000
add some description of methods
diff --git a/docs/spec/pk-introduction.xml b/docs/spec/pk-introduction.xml
index df37e23..eeb46e2 100644
--- a/docs/spec/pk-introduction.xml
+++ b/docs/spec/pk-introduction.xml
@@ -1191,6 +1191,11 @@
<sect2 id="api-update-system">
<title>Update System</title>
<para>
+ The installer should update all the updateable packages on the system,
+ including automatically installing any new packages that are needed for
+ dependancies.
+ </para>
+ <para>
There are no arguments.
</para>
<para>
@@ -1212,6 +1217,10 @@
<sect2 id="api-get-updates">
<title>Get Updates</title>
<para>
+ This function should return a list of packages that are installed and
+ are upgradable.
+ </para>
+ <para>
There are no arguments.
</para>
<para>
More information about the PackageKit
mailing list