[PackageKit-commit] packagekit: Branch 'PACKAGEKIT_0_6_X' - 39 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Wed Apr 11 07:19:55 PDT 2012
NEWS | 39 +++
RELEASE | 12 -
backends/alpm/Makefile.am | 2
backends/alpm/pk-backend-alpm.c | 134 +++++++++--
backends/alpm/pk-backend-alpm.h | 3
backends/alpm/pk-backend-config.c | 369 ++++++++++++++++++++++-----------
backends/alpm/pk-backend-config.h | 3
backends/alpm/pk-backend-databases.c | 127 ++++++++---
backends/alpm/pk-backend-databases.h | 10
backends/alpm/pk-backend-depends.c | 19 -
backends/alpm/pk-backend-error.c | 287 +++++++++++++------------
backends/alpm/pk-backend-error.h | 4
backends/alpm/pk-backend-groups.c | 2
backends/alpm/pk-backend-groups.h | 2
backends/alpm/pk-backend-install.c | 33 ++
backends/alpm/pk-backend-packages.c | 86 ++++---
backends/alpm/pk-backend-packages.h | 11
backends/alpm/pk-backend-remove.c | 44 +--
backends/alpm/pk-backend-search.c | 52 ++--
backends/alpm/pk-backend-sync.c | 123 ++++++-----
backends/alpm/pk-backend-transaction.c | 324 ++++++++++++++++------------
backends/alpm/pk-backend-transaction.h | 2
backends/alpm/pk-backend-update.c | 63 +++--
backends/entropy/entropyBackend.py | 18 +
backends/entropy/pk-backend-entropy.c | 260 ++++++++++-------------
backends/portage/pk-backend-portage.c | 222 ++++++++-----------
backends/portage/portageBackend.py | 75 ++++--
backends/yum/yumBackend.py | 25 --
backends/zif/pk-backend-zif.c | 16 +
client/Makefile.am | 1
configure.ac | 10
contrib/browser-plugin/pk-main.c | 5
contrib/command-not-found/Makefile.am | 1
contrib/debuginfo-install/Makefile.am | 1
contrib/gstreamer-plugin/Makefile.am | 1
contrib/pm-utils/95packagekit | 2
lib/packagekit-glib2/pk-desktop.c | 8
lib/packagekit-glib2/pk-results.c | 4
lib/packagekit-glib2/pk-self-test.c | 2
lib/python/packagekit/filter.py | 13 -
src/Makefile.am | 1
src/pk-transaction.c | 7
42 files changed, 1442 insertions(+), 981 deletions(-)
New commits:
commit 3e28f03a2816102ef2aa033006179b7782fb4d2e
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Apr 11 15:18:18 2012 +0100
Release version 0.6.22
diff --git a/NEWS b/NEWS
index 238367f..af0cfbc 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,42 @@
+Version 0.6.22
+~~~~~~~~~~~~~~
+Released: 2012-04-11
+
+Backends:
+ - alpm: Add GPGDir config option (Jonathan Conder)
+ - alpm: Add new error codes (Jonathan Conder)
+ - alpm: Allow forced install of untrusted packages (Jonathan Conder)
+ - alpm: Fix freedesktop.org bug #44713 (Jonathan Conder)
+ - alpm: Fix locale and proxy support (Jonathan Conder)
+ - alpm: Implement preliminary signature checking (Jonathan Conder)
+ - alpm: Make use of new package origin API (Jonathan Conder)
+ - alpm: Port configuration logic to new API (Jonathan Conder)
+ - alpm: Port enum constants to new API (Jonathan Conder)
+ - alpm: Port error messagess to new API (Jonathan Conder)
+ - alpm: Port function calls to new API (Jonathan Conder)
+ - alpm: Port public structs to new API (Jonathan Conder)
+ - alpm: Port type names to new API (Jonathan Conder)
+ - alpm: Remove ShowSize option, add VerbosePkgLists (Jonathan Conder)
+ - alpm: Report new informational updates to frontend (Jonathan Conder)
+ - alpm: Update error codes again (Jonathan Conder)
+ - entropy: Add support to ConfigurationUpdates (Fabio Erculiani)
+ - entropy: Drop PK_BACKEND_OPTIONS macro usage (Fabio Erculiani)
+ - portage: Drop PK_BACKEND_OPTIONS macro usage (Fabio Erculiani)
+ - portage: Port code to new Layman API and fix usage with newer Portage API (Fabio Erculiani)
+ - yum: Always set GPG checking members if present (Nils Philippsen)
+ - yum: Don't request authorization for trusted packages (Nils Philippsen)
+ - zif: Ensure the files are sorted by name before returning them to the daemon (Richard Hughes)
+ - zif: Fix segfault of the daemon when a program does Resolve("") (Richard Hughes)
+
+Bugfixes:
+ - browser-plugin: Make it compile with newest xulrunner (Matthias Klumpp)
+ - Do not allow an empty resolve call to be passed down to the backends (Richard Hughes)
+ - Drop --print-reply from dbus-send command used on suspend/resume (Adam Williamson)
+ - Fix builddir != srcdir issue (Ryan Lortie)
+ - Fix transfer annotation of pk_results_get_package_sack (Vincent Untz)
+ - Fix transfer annotations for GPtrArray returns (Martin Pitt)
+ - python: Speed up get_package_list (Tomáš Trnka)
+
Version 0.6.21
~~~~~~~~~~~~~~
Released: 2011-12-05
diff --git a/RELEASE b/RELEASE
index 06e7dfe..7b57379 100644
--- a/RELEASE
+++ b/RELEASE
@@ -7,7 +7,7 @@ git shortlog PACKAGEKIT_0_6_21.. | grep -i -v trivial | grep -v Merge > NEWS.new
--------------------------------------------------------------------------------
Version 0.6.22
~~~~~~~~~~~~~~
-Released: 2011-xx-xx
+Released: 2012-xx-xx
Notes:
commit 4f67891894b3571215c123c204db84a059b92789
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Apr 11 15:17:51 2012 +0100
trivial: fix 7f806e269cccffd442799b1f91c67e3b31fdddb7 compile failure
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 886cba6..55f6d15 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -4449,7 +4449,7 @@ pk_transaction_resolve (PkTransaction *transaction, const gchar *filter,
PK_TRANSACTION_ERROR_INPUT_INVALID,
"Too few items to process");
pk_transaction_release_tid (transaction);
- goto out;
+ return;
}
max_length = pk_conf_get_int (transaction->priv->conf, "MaximumItemsToResolve");
if (length > max_length) {
commit 8b3cf4a547cf43242a4009c24c7b67a2ad243fac
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Fri Apr 6 16:58:16 2012 +0200
entropy: add support to ConfigurationUpdates
diff --git a/backends/entropy/entropyBackend.py b/backends/entropy/entropyBackend.py
index d6ce0ed..8b3d359 100755
--- a/backends/entropy/entropyBackend.py
+++ b/backends/entropy/entropyBackend.py
@@ -896,11 +896,19 @@ class PackageKitEntropyBackend(PackageKitBaseBackend, PackageKitEntropyMixin):
self._log_message(__name__, "_generic_message:", decolorize(message))
def _config_files_message(self):
- scandata = self._entropy.PackageFileUpdates().scan(dcache = True,
- quiet = True)
- if scandata is None:
- return
- if len(scandata) > 0:
+ has_updates = False
+ if hasattr(self._entropy, "ConfigurationUpdates"):
+ updates = self._entropy.ConfigurationUpdates()
+ scandata = updates.get(quiet=True)
+ has_updates = len(scandata) > 0
+ else:
+ scandata = self._entropy.PackageFileUpdates().scan(
+ dcache = True, quiet = True)
+ if scandata is None:
+ return
+ has_updates = len(scandata) > 0
+
+ if has_updates:
message = "Some configuration files need updating."
message += ";You should use 'equo conf update' to update them"
message += ";If you can't do that, ask your system administrator."
commit ca620312b627a2831e6c3e9f60126233a0f137e8
Author: Tomáš Trnka <tomastrnka at gmx.com>
Date: Wed Apr 4 12:17:45 2012 +0100
python: Speed up get_package_list()
This patch replaces the quadratic monstrosity with an approximately linear
equivalent.
On my system (40297 installed+available packages) this gets the time spent in
get_package_list to 1.3 s from the initial ~600 s. In other words, pkcon
refresh now spends just about 20 s CPU time instead of 8 minutes.
Signed-off-by: Richard Hughes <richard at hughsie.com>
diff --git a/lib/python/packagekit/filter.py b/lib/python/packagekit/filter.py
index 0eedd15..d66f630 100644
--- a/lib/python/packagekit/filter.py
+++ b/lib/python/packagekit/filter.py
@@ -21,6 +21,7 @@
# imports
from enums import *
from package import PackagekitPackage
+import collections
class PackagekitFilter(object, PackagekitPackage):
@@ -83,17 +84,21 @@ class PackagekitFilter(object, PackagekitPackage):
if self._filter_base(pkg):
self.package_list.append((pkg, state))
+ # prepare lookup table of installed packages
+ installed_dict = collections.defaultdict(list)
+ for pkg, state in self.package_list:
+ if state is INFO_INSTALLED:
+ installed_dict[self._pkg_get_name(pkg)].append(pkg)
+
# check there are not available versions in the package list
# that are older than the installed version
package_list = self.package_list
self.package_list = []
for pkg, state in package_list:
- add = True;
+ add = True
if state is INFO_AVAILABLE:
- for pkg_tmp, state_tmp in self.package_list:
- if state_tmp is not INFO_INSTALLED:
- continue
+ for pkg_tmp in installed_dict[self._pkg_get_name(pkg)]:
rc = self._pkg_compare(pkg, pkg_tmp)
# don't add if the same as the installed package
commit 13ce6a5ea55066a7e06cce8180e05940fa16f697
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Dec 15 14:34:17 2011 +0000
trivial: fix up a tiny warning from valrind under make check
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 398b2a8..221cfa2 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -1379,7 +1379,7 @@ static void
pk_test_package_ids_func (void)
{
gboolean ret;
- gchar *package_ids_blank[] = {};
+ gchar *package_ids_blank[] = {NULL};
gchar **package_ids;
/* parse va_list */
commit b248d28e2d7929b8271e1ddea227eaabd56c2017
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Dec 15 14:42:48 2011 +0000
trivial: add a tiny theoretical memory leak in PkDesktop
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index 3d083e7..85e475a 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -83,8 +83,10 @@ pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_n
/* add the filename data to the array */
for (i=0; i<argc; i++) {
- if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL)
+ if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL) {
*package = g_strdup (argv[i]);
+ break;
+ }
}
return 0;
commit 811221e80ad153bdf9b40edfa69dfad355b608bf
Author: Ryan Lortie <desrt at desrt.ca>
Date: Wed Jan 11 16:17:17 2012 +0100
Fix builddir != srcdir issue
Because pk-version.h ends up in the build directory, we need to ensure
that we look there when searching for includes.
https://bugs.freedesktop.org/show_bug.cgi?id=44678
Signed-off-by: Richard Hughes <richard at hughsie.com>
diff --git a/client/Makefile.am b/client/Makefile.am
index a1bff21..6458065 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -45,6 +45,7 @@ INCLUDES = \
-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE \
-DPK_COMPILATION \
-DG_LOG_DOMAIN=\"PackageKit\" \
+ -I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
$(NULL)
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index 69930ff..bbd8b65 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -11,6 +11,7 @@ INCLUDES = \
-DPK_COMPILATION \
-DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
+ -I$(top_builddir)/lib \
-I$(top_srcdir)/lib
libexec_PROGRAMS = pk-command-not-found
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index d60a37e..f2778b2 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -24,6 +24,7 @@ INCLUDES = \
-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE \
-DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
+ -I$(top_builddir)/lib \
-I$(top_srcdir)/lib
bin_PROGRAMS = pk-debuginfo-install
diff --git a/contrib/gstreamer-plugin/Makefile.am b/contrib/gstreamer-plugin/Makefile.am
index 6b1b279..b62cac6 100644
--- a/contrib/gstreamer-plugin/Makefile.am
+++ b/contrib/gstreamer-plugin/Makefile.am
@@ -14,6 +14,7 @@ INCLUDES = \
-DVERSION="\"$(VERSION)\"" \
-DPK_DATA=\"$(pkgdatadir)\" \
-DPK_DB_DIR=\""$(PK_DB_DIR)"\" \
+ -I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
$(NULL)
diff --git a/src/Makefile.am b/src/Makefile.am
index 23c4728..493c833 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,6 +32,7 @@ INCLUDES = \
-DPK_COMPILATION \
-DPOLKIT_LOCAL_I_KNOW_API_IS_SUBJECT_TO_CHANGE \
-DG_LOG_DOMAIN=\"PackageKit\" \
+ -I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
$(NULL)
commit f230f39cf82f5ee5945f4f4bc6242383b165afb3
Author: Martin Pitt <martin.pitt at ubuntu.com>
Date: Thu Feb 16 15:17:03 2012 +0100
Fix transfer annotations for GPtrArray returns
We use g_ptr_array_new_with_free_func(), so the returned GPtrArrays own the
items and will free them. Thus transfer ownership needs to be "container", not
"full", otherwise we'll get crashes due to double-free'ing.
https://bugzilla.gnome.org/show_bug.cgi?id=670216
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index 51d88ba..3d083e7 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -99,7 +99,7 @@ pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_n
* Return all desktop files owned by a package, regardless if they are shown
* in the main menu or not.
*
- * Return value: (transfer full): string array of results, free with g_ptr_array_unref()
+ * Return value: (transfer container): string array of results, free with g_ptr_array_unref()
*
* Since: 0.5.3
**/
@@ -142,7 +142,7 @@ out:
* Return all desktop files owned by a package that would be shown in a menu,
* i.e are an application
*
- * Return value: (transfer full): string array of results, free with g_ptr_array_unref()
+ * Return value: (transfer container): string array of results, free with g_ptr_array_unref()
*
* Since: 0.5.3
**/
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index a16d066..bd80fb3 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -536,7 +536,7 @@ pk_results_get_error_code (PkResults *results)
*
* Gets the packages from the transaction.
*
- * Return value: (element-type PkPackage) (transfer full): A #GPtrArray array of #PkPackage's, free with g_ptr_array_unref().
+ * Return value: (element-type PkPackage) (transfer container): A #GPtrArray array of #PkPackage's, free with g_ptr_array_unref().
*
* Since: 0.5.2
**/
commit ae869b4d67b1dd3b2ddd41a51ee8ce85153f1959
Author: Vincent Untz <vuntz at gnome.org>
Date: Thu Feb 16 15:40:31 2012 +0100
Fix transfer annotation of pk_results_get_package_sack()
PkPackageSack is a normal GObject, not a container, so this should be "full".
Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 06a9f8b..a16d066 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -554,7 +554,7 @@ pk_results_get_package_array (PkResults *results)
*
* Gets a package sack from the transaction.
*
- * Return value: (transfer container): A #PkPackageSack of data, g_object_unref() to free.
+ * Return value: (transfer full): A #PkPackageSack of data, g_object_unref() to free.
*
* Since: 0.5.2
**/
commit 681ff8d44bbb595d25f58ae6c3697b75d4a85b4b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Feb 22 09:28:39 2012 +0000
zif: Ensure the files are sorted by name before returning them to the daemon
diff --git a/backends/zif/pk-backend-zif.c b/backends/zif/pk-backend-zif.c
index 84deeff..ff02f5f 100644
--- a/backends/zif/pk-backend-zif.c
+++ b/backends/zif/pk-backend-zif.c
@@ -2724,6 +2724,15 @@ out:
}
/**
+ * pk_backend_sort_string_cb:
+ **/
+static gint
+pk_backend_sort_string_cb (const gchar **a, const gchar **b)
+{
+ return g_strcmp0 (*a, *b);
+}
+
+/**
* pk_backend_get_files_thread:
*/
static gboolean
@@ -2833,6 +2842,9 @@ pk_backend_get_files_thread (PkBackend *backend)
goto out;
}
+ /* sort these by name and add to list */
+ g_ptr_array_sort (files,
+ (GCompareFunc) pk_backend_sort_string_cb);
files_str = g_string_new ("");
for (j=0; j<files->len; j++) {
file = g_ptr_array_index (files, j);
commit ff9e60de13fe56141d0211c717dfff6ffebb4dd1
Author: Adam Williamson <awilliam at redhat.com>
Date: Mon Feb 6 10:57:54 2012 -0800
Drop --print-reply from dbus-send command used on suspend/resume
The dbus-send command used to refresh PK's caches over a suspend/resume cycle
included the --print-reply parameter. This causes the command not to return
until the dbus call either succeeds or fails - in the failure case, a delay of
25 seconds (dbus' timeout) is possible. This blocks all later resume-time
scripts, including the one that brings the network back up. Removing the
parameter makes the PK call non-blocking, so the rest of the system resume can
proceed even if it doesn't work immediately, eliminating the possibility of the
network being down for 25 seconds at system resume.
Signed-off-by: Richard Hughes <richard at hughsie.com>
diff --git a/contrib/pm-utils/95packagekit b/contrib/pm-utils/95packagekit
index 407cd1a..73ed00c 100755
--- a/contrib/pm-utils/95packagekit
+++ b/contrib/pm-utils/95packagekit
@@ -11,7 +11,7 @@ case "$1" in
thaw|resume)
# get PackageKit to invalidate its caches and get new updates
dbus-send --system --dest=org.freedesktop.PackageKit \
- --type=method_call --print-reply \
+ --type=method_call \
/org/freedesktop/PackageKit \
org.freedesktop.PackageKit.StateHasChanged \
string:'resume'
commit e01ff03ee7bb368de9147eb09173f5c497d06e16
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Mar 22 11:05:08 2012 +0000
zif: Fix segfault of the daemon when a program does Resolve("")
diff --git a/backends/zif/pk-backend-zif.c b/backends/zif/pk-backend-zif.c
index c7aec99..84deeff 100644
--- a/backends/zif/pk-backend-zif.c
+++ b/backends/zif/pk-backend-zif.c
@@ -1192,7 +1192,7 @@ pk_backend_search_thread (PkBackend *backend)
/* if the search temp is prefixed with '@' then it is a
* category search, and we have to strip it */
- if (search[0][0] == '@') {
+ if (search[0] != NULL && search[0][0] == '@') {
search_entries = g_strv_length (search);
search_stripped = g_new0 (gchar *, search_entries + 1);
for (i=0; i < search_entries; i++)
@@ -1238,7 +1238,7 @@ pk_backend_search_thread (PkBackend *backend)
} else if (role == PK_ROLE_ENUM_SEARCH_FILE) {
array = zif_store_array_search_file (store_array, search, state_local, &error);
} else if (role == PK_ROLE_ENUM_RESOLVE) {
- if (search[0][0] == '@') {
+ if (search[0] != NULL && search[0][0] == '@') {
/* this is a group */
array = pk_backend_resolve_groups (store_array, search, state_local, &error);
} else {
commit 7f806e269cccffd442799b1f91c67e3b31fdddb7
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Mar 22 11:07:37 2012 +0000
Do not allow an empty resolve call to be passed down to the backends
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index cfa935e..886cba6 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -4444,6 +4444,13 @@ pk_transaction_resolve (PkTransaction *transaction, const gchar *filter,
/* check for length sanity */
length = g_strv_length (packages);
+ if (length == 0) {
+ error = g_error_new (PK_TRANSACTION_ERROR,
+ PK_TRANSACTION_ERROR_INPUT_INVALID,
+ "Too few items to process");
+ pk_transaction_release_tid (transaction);
+ goto out;
+ }
max_length = pk_conf_get_int (transaction->priv->conf, "MaximumItemsToResolve");
if (length > max_length) {
error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
commit c21386f1eed193516c53b06749b4117eedede9d7
Author: Nils Philippsen <nils at redhat.com>
Date: Thu Mar 29 12:02:31 2012 +0200
yum: always set GPG checking members if present
This fixes a regression introduced in commit
1055c52d723346006d8bbb7e0f2b324c9de9b82f which caused users to be asked
to authorize installing signed packages when they were unsigned, i.e.
untrusted (see rhbz#717566).
(cherry picked from commit e8174800c75240379f804ff4a3c6032d49a03a69)
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index beb027e..1cb7a8e 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1717,25 +1717,23 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def _set_only_trusted(self, only_trusted):
# if only_trusted is true, it means that we will only install/update
- # signed files
-
- # _override_sigchecks logic is reversed
- override_sigchecks = not only_trusted
+ # signed files and fail on unsigned ones
if hasattr(self.yumbase, "_override_sigchecks"):
- # yum >= 3.2.29:
+ # _override_sigchecks logic is reversed
+ override_sigchecks = not only_trusted
+
self.yumbase._override_sigchecks = override_sigchecks
for repo in self.yumbase.repos.listEnabled():
repo._override_sigchecks = override_sigchecks
- else:
- # yum < 3.2.29:
- for attrname in ("gpgcheck", "repo_gpgcheck", "localpkg_gpgcheck"):
+ for attrname in ("gpgcheck", "repo_gpgcheck", "localpkg_gpgcheck"):
+ if hasattr(self.yumbase.conf, attrname):
setattr(self.yumbase.conf, attrname, only_trusted)
- for attrname in ("gpgcheck", "repo_gpgcheck"):
- for repo in self.yumbase.repos.listEnabled():
+ for repo in self.yumbase.repos.listEnabled():
+ if hasattr(repo, attrname):
setattr(repo, attrname, only_trusted)
commit 93295b5615fef8d05a9b7249ac61d8018c671bd9
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Mon Mar 12 19:10:32 2012 +0100
portage: port code to new Layman API and fix usage with newer Portage API
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index aa8f8c4..38e0991 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -64,6 +64,7 @@ import _emerge.actions
import _emerge.stdout_spinner
import _emerge.create_depgraph_params
import _emerge.AtomArg
+from portage.exception import InvalidAtom
# layman imports
import layman.db
@@ -967,7 +968,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
for cpv in cpv_list:
# prevent showing input packages
if '=' + cpv not in cpv_input:
- self._package(cpv)
+ try:
+ self._package(cpv)
+ except InvalidAtom:
+ continue
def get_details(self, pkgs):
self.status(STATUS_INFO)
@@ -1043,7 +1047,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
for cp in self._get_all_cp(filters):
for cpv in self._get_all_cpv(cp, filters):
- self._package(cpv)
+ try:
+ self._package(cpv)
+ except InvalidAtom:
+ continue
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -1060,8 +1067,16 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
self.percentage(None)
# get installed and available dbs
- installed_layman_db = layman.db.DB(layman.config.Config())
- available_layman_db = layman.db.RemoteDB(layman.config.Config())
+ if hasattr(layman.config, "Config"):
+ installed_layman_db = layman.db.DB(layman.config.Config())
+ else:
+ installed_layman_db = layman.db.DB(layman.config.BareConfig())
+
+ if hasattr(layman.config, "Config"):
+ available_layman_db = layman.db.RemoteDB(layman.config.Config())
+ else:
+ available_layman_db = layman.db.RemoteDB(layman.config.BareConfig())
+
# 'gentoo' is a dummy repo
self.repo_detail('gentoo', 'Gentoo Portage tree', True)
@@ -1121,7 +1136,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
for cpv in cpv_list:
# prevent showing input packages
if '=' + cpv not in cpv_input:
- self._package(cpv)
+ try:
+ self._package(cpv)
+ except InvalidAtom:
+ continue
def get_update_detail(self, pkgs):
# TODO: a lot of informations are missing
@@ -1378,7 +1396,14 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
myopts = {'--quiet': True}
# get installed and available dbs
- installed_layman_db = layman.db.DB(layman.config.Config())
+ if hasattr(layman.config, "Config"):
+ layman_opts = {"quiet": True}
+ installed_layman_db = layman.db.DB(layman.config.Config())
+ else:
+ layman_opts = {}
+ conf = layman.config.BareConfig()
+ conf.set_option("quiet", True)
+ installed_layman_db = layman.db.DB(conf)
if force:
timestamp_path = os.path.join(
@@ -1389,7 +1414,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
try:
self._block_output()
for o in installed_layman_db.overlays.keys():
- installed_layman_db.sync(o, quiet=True)
+ installed_layman_db.sync(o, **layman_opts)
_emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
self.pvar.mtimedb, myopts, "")
except:
@@ -1640,7 +1665,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
self.percentage(100)
- def search_file(self, filters, key):
+ def search_file(self, filters, values):
# FILTERS:
# - ~installed is not accepted (error)
# - free: ok
@@ -1659,24 +1684,28 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
cpv_processed = 0.0
is_full_path = True
- if key[0] != "/":
- is_full_path = False
- key = re.escape(key)
- searchre = re.compile("/" + key + "$", re.IGNORECASE)
+ count = 0
+ values_len = len(values)
+ for key in values:
- # free filter
- cpv_list = self._filter_free(cpv_list, filters)
- nb_cpv = float(len(cpv_list))
+ if key[0] != "/":
+ is_full_path = False
+ key = re.escape(key)
+ searchre = re.compile("/" + key + "$", re.IGNORECASE)
- for cpv in cpv_list:
- for f in self._get_file_list(cpv):
- if (is_full_path and key == f) \
- or (not is_full_path and searchre.search(f)):
- self._package(cpv)
- break
+ # free filter
+ cpv_list = self._filter_free(cpv_list, filters)
+ nb_cpv = float(len(cpv_list))
+
+ for cpv in cpv_list:
+ for f in self._get_file_list(cpv):
+ if (is_full_path and key == f) \
+ or (not is_full_path and searchre.search(f)):
+ self._package(cpv)
+ break
- cpv_processed += 100.0
- self.percentage(int(cpv_processed/nb_cpv))
+ count += 1
+ self.percentage(float(count)/values_len)
self.percentage(100)
commit 0aa9f02cb5acf5e9dd225f80401181ad445cfe6f
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Tue Sep 6 12:55:00 2011 +0200
portage: drop PK_BACKEND_OPTIONS macro usage
diff --git a/backends/portage/pk-backend-portage.c b/backends/portage/pk-backend-portage.c
index 21109a8..ebe8764 100644
--- a/backends/portage/pk-backend-portage.c
+++ b/backends/portage/pk-backend-portage.c
@@ -26,11 +26,11 @@ static PkBackendSpawn *spawn = 0;
static const gchar* BACKEND_FILE = "portageBackend.py";
/**
- * backend_initialize:
+ * pk_backend_initialize:
* This should only be run once per backend load, i.e. not every transaction
*/
-static void
-backend_initialize (PkBackend *backend)
+void
+pk_backend_initialize (PkBackend *backend)
{
g_debug ("backend: initialize");
spawn = pk_backend_spawn_new ();
@@ -40,21 +40,21 @@ backend_initialize (PkBackend *backend)
}
/**
- * backend_destroy:
+ * pk_backend_destroy:
* This should only be run once per backend load, i.e. not every transaction
*/
-static void
-backend_destroy (PkBackend *backend)
+void
+pk_backend_destroy (PkBackend *backend)
{
g_debug ("backend: destroy");
g_object_unref (spawn);
}
/**
- * backend_get_groups:
+ * pk_backend_get_groups:
*/
-static PkBitfield
-backend_get_groups (PkBackend *backend)
+PkBitfield
+pk_backend_get_groups (PkBackend *backend)
{
return pk_bitfield_from_enums (
PK_GROUP_ENUM_ACCESSIBILITY,
@@ -96,10 +96,10 @@ backend_get_groups (PkBackend *backend)
}
/**
- * backend_get_filters:
+ * pk_backend_get_filters:
*/
-static PkBitfield
-backend_get_filters (PkBackend *backend)
+PkBitfield
+pk_backend_get_filters (PkBackend *backend)
{
return pk_bitfield_from_enums (
PK_FILTER_ENUM_INSTALLED,
@@ -117,10 +117,10 @@ backend_get_filters (PkBackend *backend)
}
/**
- * backend_get_roles:
+ * pk_backend_get_roles:
*/
-static PkBitfield
-backend_get_roles (PkBackend *backend)
+PkBitfield
+pk_backend_get_roles (PkBackend *backend)
{
PkBitfield roles;
roles = pk_bitfield_from_enums (
@@ -160,10 +160,10 @@ backend_get_roles (PkBackend *backend)
}
/**
- * backend_cancel:
+ * pk_backend_cancel:
*/
-static void
-backend_cancel (PkBackend *backend)
+void
+pk_backend_cancel (PkBackend *backend)
{
/* this feels bad... */
pk_backend_spawn_kill (spawn);
@@ -172,17 +172,17 @@ backend_cancel (PkBackend *backend)
/**
* pk_backend_get_categories:
*/
-static void
-backend_get_categories (PkBackend *backend)
+void
+pk_backend_get_categories (PkBackend *backend)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-categories", NULL);
}
/**
- * backend_get_depends:
+ * pk_backend_get_depends:
*/
-static void
-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
{
gchar *filters_text;
gchar *package_ids_temp;
@@ -195,10 +195,10 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
}
/**
- * backend_get_details:
+ * pk_backend_get_details:
*/
-static void
-backend_get_details (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_details (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -208,10 +208,10 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_files:
+ * pk_backend_get_files:
*/
-static void
-backend_get_files (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_files (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -221,10 +221,10 @@ backend_get_files (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_update_detail:
+ * pk_backend_get_update_detail:
*/
-static void
-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -234,10 +234,10 @@ backend_get_update_detail (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_updates:
+ * pk_backend_get_updates:
*/
-static void
-backend_get_updates (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_updates (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -247,10 +247,10 @@ backend_get_updates (PkBackend *backend, PkBitfield filters)
}
/**
- * backend_install_packages:
+ * pk_backend_install_packages:
*/
-static void
-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -268,10 +268,10 @@ backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **pac
}
/**
- * backend_refresh_cache:
+ * pk_backend_refresh_cache:
*/
-static void
-backend_refresh_cache (PkBackend *backend, gboolean force)
+void
+pk_backend_refresh_cache (PkBackend *backend, gboolean force)
{
/* check network state */
if (!pk_backend_is_online (backend)) {
@@ -284,10 +284,10 @@ backend_refresh_cache (PkBackend *backend, gboolean force)
}
/**
- * backend_remove_packages:
+ * pk_backend_remove_packages:
*/
-static void
-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+void
+pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
{
gchar *package_ids_temp;
@@ -299,8 +299,8 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/**
* pk_backend_repo_enable:
*/
-static void
-backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
+void
+pk_backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "repo-enable", rid, pk_backend_bool_to_string (enabled), NULL);
}
@@ -308,8 +308,8 @@ backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
/**
* pk_backend_resolve:
*/
-static void
-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+void
+pk_backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
{
gchar *filters_text;
gchar *package_ids_temp;
@@ -324,8 +324,8 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
/**
* pk_backend_search_details:
*/
-static void
-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -339,8 +339,8 @@ backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
/**
* backend_search_files:
*/
-static void
-backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -354,8 +354,8 @@ backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
/**
* pk_backend_search_groups:
*/
-static void
-backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -367,10 +367,10 @@ backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
}
/**
- * backend_search_names:
+ * pk_backend_search_names:
*/
-static void
-backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -382,10 +382,10 @@ backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
}
/**
- * backend_update_packages:
+ * pk_backend_update_packages:
*/
-static void
-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -396,10 +396,10 @@ backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **pack
}
/**
- * backend_get_packages:
+ * pk_backend_get_packages:
*/
-static void
-backend_get_packages (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_packages (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -411,8 +411,8 @@ backend_get_packages (PkBackend *backend, PkBitfield filters)
/**
* pk_backend_get_repo_list:
*/
-static void
-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_repo_list (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -422,10 +422,10 @@ backend_get_repo_list (PkBackend *backend, PkBitfield filters)
}
/**
- * backend_get_requires:
+ * pk_backend_get_requires:
*/
-static void
-backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
{
gchar *package_ids_temp;
gchar *filters_text;
@@ -438,19 +438,19 @@ backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_id
}
/**
- * backend_update_system:
+ * pk_backend_update_system:
*/
-static void
-backend_update_system (PkBackend *backend, gboolean only_trusted)
+void
+pk_backend_update_system (PkBackend *backend, gboolean only_trusted)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-system", pk_backend_bool_to_string (only_trusted), NULL);
}
/**
- * backend_simulate_remove_packages:
+ * pk_backend_simulate_remove_packages:
*/
-static void
-backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
+void
+pk_backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
{
gchar *package_ids_temp;
@@ -461,10 +461,10 @@ backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gbool
}
/**
- * backend_simulate_update_packages:
+ * pk_backend_simulate_update_packages:
*/
-static void
-backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -475,10 +475,10 @@ backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_simulate_install_packages:
+ * pk_backend_simulate_install_packages:
*/
-static void
-backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -488,50 +488,20 @@ backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
g_free (package_ids_temp);
}
-/* FIXME: port this away from PK_BACKEND_OPTIONS */
-PK_BACKEND_OPTIONS (
- "Portage", /* description */
- "Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>, Fabio Erculiani <lxnay at sabayon.org>", /* author */
- backend_initialize, /* initalize */
- backend_destroy, /* destroy */
- backend_get_groups, /* get_groups */
- backend_get_filters, /* get_filters */
- backend_get_roles, /* get_roles */
- NULL, /* get_mime_types */
- backend_cancel, /* cancel */
- NULL, /* download_packages */
- backend_get_categories, /* get_categories */
- backend_get_depends, /* get_depends */
- backend_get_details, /* get_details */
- NULL, /* get_distro_upgrades */
- backend_get_files, /* get_files */
- backend_get_packages, /* get_packages */
- backend_get_repo_list, /* get_repo_list */
- backend_get_requires, /* get_requires */
- backend_get_update_detail, /* get_update_detail */
- backend_get_updates, /* get_updates */
- NULL, /* install_files */
- backend_install_packages, /* install_packages */
- NULL, /* install_signature */
- backend_refresh_cache, /* refresh_cache */
- backend_remove_packages, /* remove_packages */
- backend_repo_enable, /* repo_enable */
- NULL, /* repo_set_data */
- backend_resolve, /* resolve */
- NULL, /* rollback */
- backend_search_details, /* search_details */
- backend_search_files, /* search_file */
- backend_search_groups, /* search_group */
- backend_search_names, /* search_name */
- backend_update_packages, /* update_packages */
- backend_update_system, /* update_system */
- NULL, /* what_provides */
- NULL, /* simulate_install_files */
- backend_simulate_install_packages, /* simulate_install_packages */
- backend_simulate_remove_packages, /* simulate_remove_packages */
- backend_simulate_update_packages, /* simulate_update_packages */
- NULL, /* upgrade_system */
- NULL, /* transaction_start */
- NULL /* transaction_stop */
-);
+/**
+ * pk_backend_get_description:
+ */
+gchar *
+pk_backend_get_description (PkBackend *backend)
+{
+ return g_strdup ("Portage");
+}
+/**
+ * pk_backend_get_author:
+ */
+gchar *
+pk_backend_get_author (PkBackend *backend)
+{
+ return g_strdup ("Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>, Fabio Erculiani <lxnay at sabayon.org>");
+}
commit f5aaac343c69eb12d293f2fef6d9be037b40d04a
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Tue Sep 6 12:57:15 2011 +0200
entropy: drop PK_BACKEND_OPTIONS macro usage
diff --git a/backends/entropy/pk-backend-entropy.c b/backends/entropy/pk-backend-entropy.c
index cee6c65..4d47a74 100644
--- a/backends/entropy/pk-backend-entropy.c
+++ b/backends/entropy/pk-backend-entropy.c
@@ -26,11 +26,11 @@ static PkBackendSpawn *spawn = 0;
static const gchar* BACKEND_FILE = "entropyBackend.py";
/**
- * backend_initialize:
+ * pk_backend_initialize:
* This should only be run once per backend load, i.e. not every transaction
*/
-static void
-backend_initialize (PkBackend *backend)
+void
+pk_backend_initialize (PkBackend *backend)
{
g_debug ("backend: initialize");
spawn = pk_backend_spawn_new ();
@@ -40,21 +40,21 @@ backend_initialize (PkBackend *backend)
}
/**
- * backend_destroy:
+ * pk_backend_destroy:
* This should only be run once per backend load, i.e. not every transaction
*/
-static void
-backend_destroy (PkBackend *backend)
+void
+pk_backend_destroy (PkBackend *backend)
{
g_debug ("backend: destroy");
g_object_unref (spawn);
}
/**
- * backend_get_groups:
+ * pk_backend_get_groups:
*/
-static PkBitfield
-backend_get_groups (PkBackend *backend)
+PkBitfield
+pk_backend_get_groups (PkBackend *backend)
{
return pk_bitfield_from_enums (
PK_GROUP_ENUM_ACCESSIBILITY,
@@ -96,10 +96,10 @@ backend_get_groups (PkBackend *backend)
}
/**
- * backend_get_filters:
+ * pk_backend_get_filters:
*/
-static PkBitfield
-backend_get_filters (PkBackend *backend)
+PkBitfield
+pk_backend_get_filters (PkBackend *backend)
{
return pk_bitfield_from_enums (
PK_FILTER_ENUM_INSTALLED,
@@ -117,10 +117,10 @@ backend_get_filters (PkBackend *backend)
}
/**
- * backend_get_roles:
+ * pk_backend_get_roles:
*/
-static PkBitfield
-backend_get_roles (PkBackend *backend)
+PkBitfield
+pk_backend_get_roles (PkBackend *backend)
{
PkBitfield roles;
roles = pk_bitfield_from_enums (
@@ -160,29 +160,29 @@ backend_get_roles (PkBackend *backend)
}
/**
- * backend_get_mime_types:
+ * pk_backend_get_mime_types:
*/
-static gchar *
-backend_get_mime_types (PkBackend *backend)
+gchar *
+pk_backend_get_mime_types (PkBackend *backend)
{
return g_strdup ("application/entropy-package;application/entropy-webinstall");
}
/**
- * backend_cancel:
+ * pk_backend_cancel:
*/
-static void
-backend_cancel (PkBackend *backend)
+void
+pk_backend_cancel (PkBackend *backend)
{
/* this feels bad... */
pk_backend_spawn_kill (spawn);
}
/**
- * backend_download_packages:
+ * pk_backend_download_packages:
*/
-static void
-backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
+void
+pk_backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
{
gchar *package_ids_temp;
@@ -193,10 +193,10 @@ backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar
}
/**
- * backend_what_provides:
+ * pk_backend_what_provides:
*/
-static void
-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, const gchar *search)
+void
+pk_backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **search)
{
gchar *filters_text;
const gchar *provides_text;
@@ -209,17 +209,17 @@ backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum pr
/**
* pk_backend_get_categories:
*/
-static void
-backend_get_categories (PkBackend *backend)
+void
+pk_backend_get_categories (PkBackend *backend)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-categories", NULL);
}
/**
- * backend_get_depends:
+ * pk_backend_get_depends:
*/
-static void
-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
{
gchar *filters_text;
gchar *package_ids_temp;
@@ -232,10 +232,10 @@ backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids
}
/**
- * backend_get_details:
+ * pk_backend_get_details:
*/
-static void
-backend_get_details (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_details (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -245,19 +245,19 @@ backend_get_details (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_distro_upgrades:
+ * pk_backend_get_distro_upgrades:
*/
-static void
-backend_get_distro_upgrades (PkBackend *backend)
+void
+pk_backend_get_distro_upgrades (PkBackend *backend)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-distro-upgrades", NULL);
}
/**
- * backend_get_files:
+ * pk_backend_get_files:
*/
-static void
-backend_get_files (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_files (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -267,10 +267,10 @@ backend_get_files (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_update_detail:
+ * pk_backend_get_update_detail:
*/
-static void
-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_get_update_detail (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -280,10 +280,10 @@ backend_get_update_detail (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_get_updates:
+ * pk_backend_get_updates:
*/
-static void
-backend_get_updates (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_updates (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -293,10 +293,10 @@ backend_get_updates (PkBackend *backend, PkBitfield filters)
}
/**
- * backend_install_packages:
+ * pk_backend_install_packages:
*/
-static void
-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -307,10 +307,10 @@ backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **pac
}
/**
- * backend_install_files:
+ * pk_backend_install_files:
*/
-static void
-backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
+void
+pk_backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
{
gchar *package_ids_temp;
@@ -321,10 +321,10 @@ backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_p
}
/**
- * backend_refresh_cache:
+ * pk_backend_refresh_cache:
*/
-static void
-backend_refresh_cache (PkBackend *backend, gboolean force)
+void
+pk_backend_refresh_cache (PkBackend *backend, gboolean force)
{
/* check network state */
if (!pk_backend_is_online (backend)) {
@@ -337,10 +337,10 @@ backend_refresh_cache (PkBackend *backend, gboolean force)
}
/**
- * backend_remove_packages:
+ * pk_backend_remove_packages:
*/
-static void
-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+void
+pk_backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
{
gchar *package_ids_temp;
@@ -352,8 +352,8 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/**
* pk_backend_repo_enable:
*/
-static void
-backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
+void
+pk_backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "repo-enable", rid, pk_backend_bool_to_string (enabled), NULL);
}
@@ -361,8 +361,8 @@ backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
/**
* pk_backend_resolve:
*/
-static void
-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+void
+pk_backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
{
gchar *filters_text;
gchar *package_ids_temp;
@@ -377,8 +377,8 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
/**
* pk_backend_search_details:
*/
-static void
-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -390,10 +390,10 @@ backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
}
/**
- * backend_search_files:
+ * pk_backend_search_files:
*/
-static void
-backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -407,8 +407,8 @@ backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
/**
* pk_backend_search_groups:
*/
-static void
-backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -420,10 +420,10 @@ backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
}
/**
- * backend_search_names:
+ * pk_backend_search_names:
*/
-static void
-backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
+void
+pk_backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
gchar *search;
@@ -435,10 +435,10 @@ backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
}
/**
- * backend_update_packages:
+ * pk_backend_update_packages:
*/
-static void
-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+void
+pk_backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -449,10 +449,10 @@ backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **pack
}
/**
- * backend_get_packages:
+ * pk_backend_get_packages:
*/
-static void
-backend_get_packages (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_packages (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -464,8 +464,8 @@ backend_get_packages (PkBackend *backend, PkBitfield filters)
/**
* pk_backend_get_repo_list:
*/
-static void
-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+void
+pk_backend_get_repo_list (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
@@ -475,10 +475,10 @@ backend_get_repo_list (PkBackend *backend, PkBitfield filters)
}
/**
- * backend_get_requires:
+ * pk_backend_get_requires:
*/
-static void
-backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+void
+pk_backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
{
gchar *package_ids_temp;
gchar *filters_text;
@@ -491,19 +491,19 @@ backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_id
}
/**
- * backend_update_system:
+ * pk_backend_update_system:
*/
-static void
-backend_update_system (PkBackend *backend, gboolean only_trusted)
+void
+pk_backend_update_system (PkBackend *backend, gboolean only_trusted)
{
pk_backend_spawn_helper (spawn, BACKEND_FILE, "update-system", pk_backend_bool_to_string (only_trusted), NULL);
}
/**
- * backend_simulate_remove_packages:
+ * pk_backend_simulate_remove_packages:
*/
-static void
-backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
+void
+pk_backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
{
gchar *package_ids_temp;
@@ -514,10 +514,10 @@ backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gbool
}
/**
- * backend_simulate_update_packages:
+ * pk_backend_simulate_update_packages:
*/
-static void
-backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -528,10 +528,10 @@ backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_simulate_install_packages:
+ * pk_backend_simulate_install_packages:
*/
-static void
-backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+void
+pk_backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
{
gchar *package_ids_temp;
@@ -542,10 +542,10 @@ backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
}
/**
- * backend_simulate_install_files:
+ * pk_backend_simulate_install_files:
*/
-static void
-backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
+void
+pk_backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
{
gchar *package_ids_temp;
@@ -555,50 +555,20 @@ backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
g_free (package_ids_temp);
}
-/* FIXME: port this away from PK_BACKEND_OPTIONS */
-PK_BACKEND_OPTIONS (
- "Entropy", /* description */
- "Fabio Erculiani (lxnay) <lxnay at sabayon.org>", /* author */
- backend_initialize, /* initalize */
- backend_destroy, /* destroy */
- backend_get_groups, /* get_groups */
- backend_get_filters, /* get_filters */
- backend_get_roles, /* get_roles */
- backend_get_mime_types, /* get_mime_types */
- backend_cancel, /* cancel */
- backend_download_packages, /* download_packages */
- backend_get_categories, /* get_categories */
- backend_get_depends, /* get_depends */
- backend_get_details, /* get_details */
- backend_get_distro_upgrades, /* get_distro_upgrades */
- backend_get_files, /* get_files */
- backend_get_packages, /* get_packages */
- backend_get_repo_list, /* get_repo_list */
- backend_get_requires, /* get_requires */
- backend_get_update_detail, /* get_update_detail */
- backend_get_updates, /* get_updates */
- backend_install_files, /* install_files */
- backend_install_packages, /* install_packages */
- NULL, /* install_signature */
- backend_refresh_cache, /* refresh_cache */
- backend_remove_packages, /* remove_packages */
- backend_repo_enable, /* repo_enable */
- NULL, /* repo_set_data */
- backend_resolve, /* resolve */
- NULL, /* rollback */
- backend_search_details, /* search_details */
- backend_search_files, /* search_file */
- backend_search_groups, /* search_group */
- backend_search_names, /* search_name */
- backend_update_packages, /* update_packages */
- backend_update_system, /* update_system */
- backend_what_provides, /* what_provides */
- backend_simulate_install_files, /* simulate_install_files */
- backend_simulate_install_packages, /* simulate_install_packages */
- backend_simulate_remove_packages, /* simulate_remove_packages */
- backend_simulate_update_packages, /* simulate_update_packages */
- NULL, /* upgrade_system */
- NULL, /* transaction_start */
- NULL /* transaction_stop */
-);
+/**
+ * pk_backend_get_description:
+ */
+gchar *
+pk_backend_get_description (PkBackend *backend)
+{
+ return g_strdup ("Entropy");
+}
+/**
+ * pk_backend_get_author:
+ */
+gchar *
+pk_backend_get_author (PkBackend *backend)
+{
+ return g_strdup ("Fabio Erculiani (lxnay) <lxnay at sabayon.org>");
+}
commit 39524b0b374f8c86066f0c7e79d8ea02fd31397e
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Mon Feb 6 14:09:11 2012 +1300
alpm: trivial: fix minor memory issues
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index d62b927..c8fd13b 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -752,6 +752,7 @@ pk_backend_config_initialize_alpm (PkBackendConfig *config, GError **error)
g_return_val_if_fail (config != NULL, FALSE);
if (config->root == NULL || *config->root == '\0') {
+ g_free (config->root);
config->root = g_strdup (PK_BACKEND_DEFAULT_ROOT);
} else if (!g_str_has_suffix (config->root, G_DIR_SEPARATOR_S)) {
dir = 0;
diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
index 2d057aa..c90cd7d 100644
--- a/backends/alpm/pk-backend-packages.c
+++ b/backends/alpm/pk-backend-packages.c
@@ -270,15 +270,17 @@ pk_backend_get_details_thread (PkBackend *self)
break;
}
- licenses = g_string_new ("");
i = alpm_pkg_get_licenses (pkg);
- for (; i != NULL; i = i->next) {
- /* assume OR although it may not be correct */
- g_string_append_printf (licenses, " or %s",
- (const gchar *) i->data);
- }
- if (licenses->len == 0) {
- g_string_append (licenses, " or Unknown");
+ if (i == NULL) {
+ licenses = g_string_new ("Unknown");
+ } else {
+ licenses = g_string_new ((const gchar *) i->data);
+ while ((i = i->next) != NULL) {
+ const gchar *license = (const gchar *) i->data;
+ /* assume OR although it may not be correct */
+ g_string_append_printf (licenses, " or %s",
+ license);
+ }
}
group = pk_group_enum_from_string (alpm_pkg_get_group (pkg));
@@ -291,7 +293,7 @@ pk_backend_get_details_thread (PkBackend *self)
size = alpm_pkg_download_size (pkg);
}
- pk_backend_details (self, *packages, licenses->str + 4, group,
+ pk_backend_details (self, *packages, licenses->str, group,
desc, url, size);
g_string_free (licenses, TRUE);
}
@@ -345,10 +347,11 @@ pk_backend_get_files_thread (PkBackend *self)
filelist = alpm_pkg_get_files (pkg);
for (i = 0; i < filelist->count; ++i) {
const gchar *file = filelist->files[i].name;
- g_string_append_printf (files, ";%s%s", root, file);
+ g_string_append_printf (files, "%s%s;", root, file);
}
- pk_backend_files (self, *packages, files->str + 1);
+ g_string_truncate (files, MAX (files->len, 1) - 1);
+ pk_backend_files (self, *packages, files->str);
g_string_free (files, TRUE);
}
commit 1a44d2e0b493b334d9720d0b0e4ff3963a7f9dc3
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sun Jan 22 15:54:42 2012 +1300
alpm: allow forced install of untrusted packages
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index ac530c7..a123297 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -132,7 +132,8 @@ disabled_repos_free (GHashTable *table)
}
static gboolean
-disabled_repos_configure (GHashTable *table, GError **error)
+disabled_repos_configure (GHashTable *table, gboolean only_trusted,
+ GError **error)
{
const alpm_list_t *i;
@@ -148,14 +149,19 @@ disabled_repos_configure (GHashTable *table, GError **error)
for (i = configured; i != NULL; i = i->next) {
PkBackendRepo *repo = (PkBackendRepo *) i->data;
+ alpm_siglevel_t level = repo->level;
alpm_db_t *db;
if (g_hash_table_lookup (table, repo->name) != NULL) {
/* repo is disabled */
continue;
+ } else if (!only_trusted) {
+ level &= ~ALPM_SIG_PACKAGE;
+ level &= ~ALPM_SIG_DATABASE;
+ level &= ~ALPM_SIG_USE_DEFAULT;
}
- db = alpm_db_register_sync (alpm, repo->name, repo->level);
+ db = alpm_db_register_sync (alpm, repo->name, level);
if (db == NULL) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
@@ -186,7 +192,7 @@ pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers,
value = g_hash_table_lookup (levels, i->data);
if (value != NULL) {
- repo->level = *(alpm_siglevel_t *)value;
+ repo->level = *(alpm_siglevel_t *) value;
} else {
repo->level = ALPM_SIG_USE_DEFAULT;
}
@@ -196,6 +202,22 @@ pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers,
}
gboolean
+pk_backend_disable_signatures (PkBackend *self, GError **error)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ return disabled_repos_configure (disabled, FALSE, error);
+}
+
+gboolean
+pk_backend_enable_signatures (PkBackend *self, GError **error)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ return disabled_repos_configure (disabled, TRUE, error);
+}
+
+gboolean
pk_backend_initialize_databases (PkBackend *self, GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
@@ -205,7 +227,7 @@ pk_backend_initialize_databases (PkBackend *self, GError **error)
return FALSE;
}
- if (!disabled_repos_configure (disabled, error)) {
+ if (!disabled_repos_configure (disabled, TRUE, error)) {
return FALSE;
}
@@ -312,7 +334,7 @@ pk_backend_repo_enable_thread (PkBackend *self)
if (g_hash_table_remove (disabled, repo)) {
/* reload configuration to preserve ordering */
- if (disabled_repos_configure (disabled, &error)) {
+ if (disabled_repos_configure (disabled, TRUE, &error)) {
pk_backend_repo_list_changed (self);
}
} else {
diff --git a/backends/alpm/pk-backend-databases.h b/backends/alpm/pk-backend-databases.h
index 2636cae..d9b9e78 100644
--- a/backends/alpm/pk-backend-databases.h
+++ b/backends/alpm/pk-backend-databases.h
@@ -28,6 +28,12 @@ void pk_backend_configure_repos (alpm_list_t *repos,
GHashTable *servers,
GHashTable *levels);
+gboolean pk_backend_disable_signatures (PkBackend *self,
+ GError **error);
+
+gboolean pk_backend_enable_signatures (PkBackend *self,
+ GError **error);
+
gboolean pk_backend_initialize_databases (PkBackend *self,
GError **error);
diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
index 5b5e2b2..d0cbca2 100644
--- a/backends/alpm/pk-backend-install.c
+++ b/backends/alpm/pk-backend-install.c
@@ -25,6 +25,7 @@
#include <pk-backend.h>
#include "pk-backend-alpm.h"
+#include "pk-backend-databases.h"
#include "pk-backend-error.h"
#include "pk-backend-install.h"
#include "pk-backend-transaction.h"
@@ -94,17 +95,32 @@ pk_backend_simulate_install_files_thread (PkBackend *self)
static gboolean
pk_backend_install_files_thread (PkBackend *self)
{
+ gboolean only_trusted;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ only_trusted = pk_backend_get_bool (self, "only_trusted");
+
+ if (!only_trusted && !pk_backend_disable_signatures (self, &error)) {
+ goto out;
+ }
+
if (pk_backend_transaction_initialize (self, 0, &error) &&
pk_backend_transaction_add_targets (self, &error) &&
pk_backend_transaction_simulate (self, &error)) {
pk_backend_transaction_commit (self, &error);
}
- return pk_backend_transaction_finish (self, error);
+out:
+ pk_backend_transaction_end (self, (error == NULL) ? &error : NULL);
+
+ if (!only_trusted) {
+ GError **e = (error == NULL) ? &error : NULL;
+ pk_backend_enable_signatures (self, e);
+ }
+
+ return pk_backend_finish (self, error);
}
void
diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
index c770159..d2f363b 100644
--- a/backends/alpm/pk-backend-sync.c
+++ b/backends/alpm/pk-backend-sync.c
@@ -26,6 +26,7 @@
#include <string.h>
#include "pk-backend-alpm.h"
+#include "pk-backend-databases.h"
#include "pk-backend-error.h"
#include "pk-backend-sync.h"
#include "pk-backend-transaction.h"
@@ -150,17 +151,31 @@ pk_backend_simulate_install_packages_thread (PkBackend *self)
static gboolean
pk_backend_install_packages_thread (PkBackend *self)
{
+ gboolean only_trusted;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ only_trusted = pk_backend_get_bool (self, "only_trusted");
+
+ if (!only_trusted && !pk_backend_disable_signatures (self, &error)) {
+ goto out;
+ }
+
if (pk_backend_transaction_initialize (self, 0, &error) &&
pk_backend_transaction_sync_targets (self, &error) &&
pk_backend_transaction_simulate (self, &error)) {
pk_backend_transaction_commit (self, &error);
}
- return pk_backend_transaction_finish (self, error);
+ pk_backend_transaction_end (self, (error == NULL) ? &error : NULL);
+out:
+ if (!only_trusted) {
+ GError **e = (error == NULL) ? &error : NULL;
+ pk_backend_enable_signatures (self, e);
+ }
+
+ return pk_backend_finish (self, error);
}
void
@@ -215,6 +230,7 @@ pk_backend_replaces_dependencies (PkBackend *self, alpm_pkg_t *pkg)
static gboolean
pk_backend_update_packages_thread (PkBackend *self)
{
+ gboolean only_trusted;
const alpm_list_t *i;
alpm_list_t *asdeps = NULL;
GError *error = NULL;
@@ -223,6 +239,12 @@ pk_backend_update_packages_thread (PkBackend *self)
g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
+ only_trusted = pk_backend_get_bool (self, "only_trusted");
+
+ if (!only_trusted && !pk_backend_disable_signatures (self, &error)) {
+ goto out;
+ }
+
if (!pk_backend_transaction_initialize (self, 0, &error) ||
!pk_backend_transaction_sync_targets (self, &error) ||
!pk_backend_transaction_simulate (self, &error)) {
@@ -256,10 +278,17 @@ pk_backend_update_packages_thread (PkBackend *self)
}
out:
+ pk_backend_transaction_end (self, (error == NULL) ? &error : NULL);
+
+ if (!only_trusted) {
+ GError **e = (error == NULL) ? &error : NULL;
+ pk_backend_enable_signatures (self, e);
+ }
+
alpm_list_free_inner (asdeps, g_free);
alpm_list_free (asdeps);
- return pk_backend_transaction_finish (self, error);
+ return pk_backend_finish (self, error);
}
void
commit 521ca65e075c831f91cf6f20c466d7b497394dfd
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sun Jan 22 14:44:14 2012 +1300
alpm: trivial: fix SigLevel option parsing
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index a51a984..d62b927 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -524,14 +524,14 @@ pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
}
/* this also allows e.g. NeverEver, so put prefixes last */
- if (g_str_has_prefix (list, "Never") == 0) {
+ if (g_str_has_prefix (list, "Never")) {
if (package) {
*level &= ~ALPM_SIG_PACKAGE;
}
if (database) {
*level &= ~ALPM_SIG_DATABASE;
}
- } else if (g_str_has_prefix (list, "Optional") == 0) {
+ } else if (g_str_has_prefix (list, "Optional")) {
if (package) {
*level |= ALPM_SIG_PACKAGE;
*level |= ALPM_SIG_PACKAGE_OPTIONAL;
@@ -540,7 +540,7 @@ pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
*level |= ALPM_SIG_DATABASE;
*level |= ALPM_SIG_DATABASE_OPTIONAL;
}
- } else if (g_str_has_prefix (list, "Required") == 0) {
+ } else if (g_str_has_prefix (list, "Required")) {
if (package) {
*level |= ALPM_SIG_PACKAGE;
*level &= ~ALPM_SIG_PACKAGE_OPTIONAL;
@@ -549,7 +549,7 @@ pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
*level |= ALPM_SIG_DATABASE;
*level &= ~ALPM_SIG_DATABASE_OPTIONAL;
}
- } else if (g_str_has_prefix (list, "TrustedOnly") == 0) {
+ } else if (g_str_has_prefix (list, "TrustedOnly")) {
if (package) {
*level &= ~ALPM_SIG_PACKAGE_MARGINAL_OK;
*level &= ~ALPM_SIG_PACKAGE_UNKNOWN_OK;
@@ -558,7 +558,7 @@ pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
*level &= ~ALPM_SIG_DATABASE_MARGINAL_OK;
*level &= ~ALPM_SIG_DATABASE_UNKNOWN_OK;
}
- } else if (g_str_has_prefix (list, "TrustAll") == 0) {
+ } else if (g_str_has_prefix (list, "TrustAll")) {
if (package) {
*level |= ALPM_SIG_PACKAGE_MARGINAL_OK;
*level |= ALPM_SIG_PACKAGE_UNKNOWN_OK;
commit aad0230ebb2e721afa7fb1a7b2c284a3db365eb9
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Tue Jan 17 12:17:25 2012 +1300
alpm: fix locale and proxy support
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 417714c..5c6b629 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -22,8 +22,10 @@
*/
#include <config.h>
+#include <locale.h>
#include <glib/gstdio.h>
#include <sys/utsname.h>
+#include <pk-backend-spawn.h>
#include "pk-backend-alpm.h"
#include "pk-backend-config.h"
@@ -196,23 +198,83 @@ pk_backend_logcb (alpm_loglevel_t level, const gchar *format, va_list args)
g_free (output);
}
-static gboolean
-pk_backend_initialize_alpm (PkBackend *self, GError **error)
+static void
+pk_backend_configure_environment (PkBackend *self)
{
struct utsname un;
- gchar *user_agent;
+ gchar *value;
- g_return_val_if_fail (self != NULL, FALSE);
+ g_return_if_fail (self != NULL);
/* PATH might have been nuked by D-Bus */
g_setenv ("PATH", PK_BACKEND_DEFAULT_PATH, FALSE);
uname (&un);
- user_agent = g_strdup_printf ("%s/%s (%s %s) libalpm/%s",
- PACKAGE_TARNAME, PACKAGE_VERSION,
- un.sysname, un.machine, alpm_version ());
- g_setenv ("HTTP_USER_AGENT", user_agent, FALSE);
- g_free (user_agent);
+ value = g_strdup_printf ("%s/%s (%s %s) libalpm/%s", PACKAGE_TARNAME,
+ PACKAGE_VERSION, un.sysname, un.machine,
+ alpm_version ());
+ g_setenv ("HTTP_USER_AGENT", value, FALSE);
+ g_free (value);
+
+ value = pk_backend_get_locale (self);
+ if (value != NULL) {
+ setlocale (LC_ALL, value);
+ g_free (value);
+ }
+
+ value = pk_backend_get_proxy_http (self);
+ if (value != NULL) {
+ gchar *uri = pk_backend_spawn_convert_uri (value);
+ g_setenv ("http_proxy", uri, TRUE);
+ g_free (uri);
+ g_free (value);
+ }
+
+ value = pk_backend_get_proxy_https (self);
+ if (value != NULL) {
+ gchar *uri = pk_backend_spawn_convert_uri (value);
+ g_setenv ("https_proxy", uri, TRUE);
+ g_free (uri);
+ g_free (value);
+ }
+
+ value = pk_backend_get_proxy_ftp (self);
+ if (value != NULL) {
+ gchar *uri = pk_backend_spawn_convert_uri (value);
+ g_setenv ("ftp_proxy", uri, TRUE);
+ g_free (uri);
+ g_free (value);
+ }
+
+ value = pk_backend_get_proxy_socks (self);
+ if (value != NULL) {
+ gchar *uri = pk_backend_spawn_convert_uri (value);
+ g_setenv ("socks_proxy", uri, TRUE);
+ g_free (uri);
+ g_free (value);
+ }
+
+ value = pk_backend_get_no_proxy (self);
+ if (value != NULL) {
+ g_setenv ("no_proxy", value, TRUE);
+ g_free (value);
+ }
+
+ value = pk_backend_get_pac (self);
+ if (value != NULL) {
+ gchar *uri = pk_backend_spawn_convert_uri (value);
+ g_setenv ("pac", uri, TRUE);
+ g_free (uri);
+ g_free (value);
+ }
+}
+
+static gboolean
+pk_backend_initialize_alpm (PkBackend *self, GError **error)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ pk_backend_configure_environment (self);
alpm = pk_backend_configure (PK_BACKEND_CONFIG_FILE, error);
if (alpm == NULL) {
@@ -380,3 +442,11 @@ pk_backend_finish (PkBackend *self, GError *error)
pk_backend_thread_finished (self);
return (error == NULL);
}
+
+void
+pk_backend_transaction_start (PkBackend *self)
+{
+ g_return_if_fail (self != NULL);
+
+ pk_backend_configure_environment (self);
+}
commit 2b7f3483336613a8ce83344ebe2ce487c327c48b
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Tue Jan 17 12:02:52 2012 +1300
alpm: fix freedesktop.org bug #44713
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index f812766..76402f0 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -284,8 +284,8 @@ pk_backend_install_ignorepkg (PkBackend *self, alpm_pkg_t *pkg, gint *result)
}
static void
-pk_backend_select_provider (PkBackend *self, alpm_depend_t *depend,
- const alpm_list_t *providers)
+pk_backend_select_provider (PkBackend *self, const alpm_list_t *providers,
+ alpm_depend_t *depend)
{
gchar *output;
commit c80c749d87b15a6dc79cf780466bb54f1129954f
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Tue Nov 1 00:47:12 2011 +1300
alpm: trivial: fix compile warning
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 8ecc7dd..417714c 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -238,7 +238,7 @@ pk_backend_destroy_alpm (PkBackend *self)
g_return_if_fail (self != NULL);
if (alpm != NULL) {
- if (alpm_trans_get_flags (alpm) != -1) {
+ if (alpm_trans_get_flags (alpm) < 0) {
alpm_trans_release (alpm);
}
alpm_release (alpm);
commit 165b9aca5e4b218bacffdf1a272e234861df3909
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sun Oct 30 02:42:34 2011 +1300
alpm: remove ShowSize option, add VerbosePkgLists
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index acaa022..a51a984 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -33,8 +33,8 @@
typedef struct
{
- gboolean checkspace, ilovecandy, showsize, totaldl, usedelta,
- usesyslog;
+ gboolean checkspace, ilovecandy, totaldl, usedelta, usesyslog,
+ verbosepkglists;
gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root,
*xfercmd;
@@ -131,14 +131,6 @@ pk_backend_config_set_ilovecandy (PkBackendConfig *config)
}
static void
-pk_backend_config_set_showsize (PkBackendConfig *config)
-{
- g_return_if_fail (config != NULL);
-
- config->showsize = TRUE;
-}
-
-static void
pk_backend_config_set_totaldl (PkBackendConfig *config)
{
g_return_if_fail (config != NULL);
@@ -162,6 +154,14 @@ pk_backend_config_set_usesyslog (PkBackendConfig *config)
config->usesyslog = TRUE;
}
+static void
+pk_backend_config_set_verbosepkglists (PkBackendConfig *config)
+{
+ g_return_if_fail (config != NULL);
+
+ config->verbosepkglists = TRUE;
+}
+
typedef struct
{
const gchar *name;
@@ -172,10 +172,10 @@ typedef struct
static const PkBackendConfigBoolean pk_backend_config_boolean_options[] = {
{ "CheckSpace", pk_backend_config_set_checkspace },
{ "ILoveCandy", pk_backend_config_set_ilovecandy },
- { "ShowSize", pk_backend_config_set_showsize },
{ "TotalDownload", pk_backend_config_set_totaldl },
{ "UseDelta", pk_backend_config_set_usedelta },
{ "UseSyslog", pk_backend_config_set_usesyslog },
+ { "VerbosePkgLists", pk_backend_config_set_verbosepkglists },
{ NULL, NULL }
};
commit 2fdc1586cb54e7b776bcf5bac9721e8be57a0afb
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 20:02:58 2011 +1300
alpm: implement preliminary signature checking
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index db494cf..acaa022 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -44,6 +44,7 @@ typedef struct
alpm_list_t *repos;
GHashTable *servers;
+ GHashTable *levels;
GRegex *xrepo, *xarch;
} PkBackendConfig;
@@ -51,10 +52,20 @@ static PkBackendConfig *
pk_backend_config_new (void)
{
PkBackendConfig *config = g_new0 (PkBackendConfig, 1);
+ alpm_siglevel_t *level = g_new0 (alpm_siglevel_t, 1);
+
config->servers = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, NULL);
+ config->levels = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+ g_free);
+
+ *level |= ALPM_SIG_PACKAGE | ALPM_SIG_PACKAGE_OPTIONAL;
+ *level |= ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
+ g_hash_table_insert (config->levels, g_strdup ("options"), level);
+
config->xrepo = g_regex_new ("\\$repo", 0, 0, NULL);
config->xarch = g_regex_new ("\\$arch", 0, 0, NULL);
+
return config;
}
@@ -97,6 +108,8 @@ pk_backend_config_free (PkBackendConfig *config)
g_hash_table_foreach_remove (config->servers,
pk_backend_config_servers_free, NULL);
g_hash_table_unref (config->servers);
+ g_hash_table_unref (config->levels);
+
g_regex_unref (config->xrepo);
g_regex_unref (config->xarch);
}
@@ -483,6 +496,95 @@ pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
}
static gboolean
+pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
+ const gchar *list, GError **error)
+{
+ alpm_siglevel_t *level;
+
+ g_return_val_if_fail (config != NULL, FALSE);
+ g_return_val_if_fail (section != NULL, FALSE);
+ g_return_val_if_fail (list != NULL, FALSE);
+
+ level = g_hash_table_lookup (config->levels, section);
+ if (level == NULL) {
+ level = g_hash_table_lookup (config->levels, "options");
+ level = g_memdup (level, sizeof (alpm_siglevel_t));
+ g_hash_table_insert (config->levels, g_strdup (section), level);
+ }
+
+ while (TRUE) {
+ gboolean package = TRUE, database = TRUE;
+
+ if (g_str_has_prefix (list, "Package")) {
+ database = FALSE;
+ list += 7;
+ } else if (g_str_has_prefix (list, "Database")) {
+ package = FALSE;
+ list += 8;
+ }
+
+ /* this also allows e.g. NeverEver, so put prefixes last */
+ if (g_str_has_prefix (list, "Never") == 0) {
+ if (package) {
+ *level &= ~ALPM_SIG_PACKAGE;
+ }
+ if (database) {
+ *level &= ~ALPM_SIG_DATABASE;
+ }
+ } else if (g_str_has_prefix (list, "Optional") == 0) {
+ if (package) {
+ *level |= ALPM_SIG_PACKAGE;
+ *level |= ALPM_SIG_PACKAGE_OPTIONAL;
+ }
+ if (database) {
+ *level |= ALPM_SIG_DATABASE;
+ *level |= ALPM_SIG_DATABASE_OPTIONAL;
+ }
+ } else if (g_str_has_prefix (list, "Required") == 0) {
+ if (package) {
+ *level |= ALPM_SIG_PACKAGE;
+ *level &= ~ALPM_SIG_PACKAGE_OPTIONAL;
+ }
+ if (database) {
+ *level |= ALPM_SIG_DATABASE;
+ *level &= ~ALPM_SIG_DATABASE_OPTIONAL;
+ }
+ } else if (g_str_has_prefix (list, "TrustedOnly") == 0) {
+ if (package) {
+ *level &= ~ALPM_SIG_PACKAGE_MARGINAL_OK;
+ *level &= ~ALPM_SIG_PACKAGE_UNKNOWN_OK;
+ }
+ if (database) {
+ *level &= ~ALPM_SIG_DATABASE_MARGINAL_OK;
+ *level &= ~ALPM_SIG_DATABASE_UNKNOWN_OK;
+ }
+ } else if (g_str_has_prefix (list, "TrustAll") == 0) {
+ if (package) {
+ *level |= ALPM_SIG_PACKAGE_MARGINAL_OK;
+ *level |= ALPM_SIG_PACKAGE_UNKNOWN_OK;
+ }
+ if (database) {
+ *level |= ALPM_SIG_DATABASE_MARGINAL_OK;
+ *level |= ALPM_SIG_DATABASE_UNKNOWN_OK;
+ }
+ } else {
+ g_set_error (error, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
+ "invalid SigLevel value: %s", list);
+ return FALSE;
+ }
+
+ list = strchr (list, ' ');
+ if (list == NULL) {
+ break;
+ } else {
+ ++list;
+ }
+ }
+
+ return TRUE;
+}
+
+static gboolean
pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
gchar *section, GError **error)
{
@@ -610,6 +712,15 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
continue;
}
}
+
+ if (g_strcmp0 (key, "SigLevel") == 0 && str != NULL) {
+ if (!pk_backend_config_set_siglevel (config, section,
+ str, &e)) {
+ break;
+ } else {
+ continue;
+ }
+ }
/* report errors from above */
g_set_error (&e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
@@ -709,6 +820,7 @@ static alpm_handle_t *
pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
{
alpm_handle_t *handle;
+ alpm_siglevel_t *level;
g_return_val_if_fail (config != NULL, FALSE);
@@ -722,6 +834,9 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
alpm_option_set_usesyslog (handle, config->usesyslog);
alpm_option_set_arch (handle, config->arch);
+ level = g_hash_table_lookup (config->levels, "options");
+ alpm_option_set_default_siglevel (handle, *level);
+
/* backend takes ownership */
g_free (xfercmd);
xfercmd = config->xfercmd;
@@ -759,7 +874,8 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
alpm_option_set_noupgrades (handle, config->noupgrades);
config->noupgrades = NULL;
- pk_backend_configure_repos (config->repos, config->servers);
+ pk_backend_configure_repos (config->repos, config->servers,
+ config->levels);
return handle;
}
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index 27b5816..ac530c7 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -30,6 +30,7 @@ typedef struct
{
gchar *name;
alpm_list_t *servers;
+ alpm_siglevel_t level;
} PkBackendRepo;
static GHashTable *disabled = NULL;
@@ -154,7 +155,7 @@ disabled_repos_configure (GHashTable *table, GError **error)
continue;
}
- db = alpm_db_register_sync (alpm, repo->name);
+ db = alpm_db_register_sync (alpm, repo->name, repo->level);
if (db == NULL) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
@@ -169,7 +170,8 @@ disabled_repos_configure (GHashTable *table, GError **error)
}
void
-pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers)
+pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers,
+ GHashTable *levels)
{
alpm_list_t *i;
@@ -182,6 +184,13 @@ pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers)
repo->name = g_strdup ((const gchar *) i->data);
repo->servers = alpm_list_strdup ((alpm_list_t *) value);
+ value = g_hash_table_lookup (levels, i->data);
+ if (value != NULL) {
+ repo->level = *(alpm_siglevel_t *)value;
+ } else {
+ repo->level = ALPM_SIG_USE_DEFAULT;
+ }
+
configured = alpm_list_add (configured, repo);
}
}
diff --git a/backends/alpm/pk-backend-databases.h b/backends/alpm/pk-backend-databases.h
index ea825f2..2636cae 100644
--- a/backends/alpm/pk-backend-databases.h
+++ b/backends/alpm/pk-backend-databases.h
@@ -25,7 +25,8 @@
#include <pk-backend.h>
void pk_backend_configure_repos (alpm_list_t *repos,
- GHashTable *servers);
+ GHashTable *servers,
+ GHashTable *levels);
gboolean pk_backend_initialize_databases (PkBackend *self,
GError **error);
diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
index 9d098b5..5b5e2b2 100644
--- a/backends/alpm/pk-backend-install.c
+++ b/backends/alpm/pk-backend-install.c
@@ -33,11 +33,14 @@ static gint
alpm_add_file (const gchar *filename)
{
alpm_pkg_t *pkg;
+ alpm_siglevel_t level;
g_return_val_if_fail (filename != NULL, -1);
g_return_val_if_fail (alpm != NULL, -1);
- if (alpm_pkg_load (alpm, filename, 1, &pkg) < 0) {
+ level = alpm_option_get_default_siglevel (alpm);
+
+ if (alpm_pkg_load (alpm, filename, 1, level, &pkg) < 0) {
return -1;
}
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index d3a68f3..f812766 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -323,6 +323,8 @@ pk_backend_transaction_conv_cb (alpm_question_t question, gpointer data1,
break;
case ALPM_QUESTION_REMOVE_PKGS:
+ /* TODO: handle keys better */
+ case ALPM_QUESTION_IMPORT_KEY:
g_debug ("unsafe question %d", question);
*result = 0;
break;
commit f7b6be13af14a5ae802b12c50954c9a757cd9048
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 15:59:15 2011 +1300
alpm: report new informational updates to frontend
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index 3ededda..d3a68f3 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -213,7 +213,8 @@ pk_backend_transaction_progress_cb (alpm_progress_t type, const gchar *target,
/* TODO: revert when fixed upstream */
if (type == ALPM_PROGRESS_CONFLICTS_START ||
type == ALPM_PROGRESS_DISKSPACE_START ||
- type == ALPM_PROGRESS_INTEGRITY_START) {
+ type == ALPM_PROGRESS_INTEGRITY_START ||
+ type == ALPM_PROGRESS_LOAD_START) {
if (current < targets) {
overall = percent + current++ * 100;
}
@@ -236,6 +237,7 @@ pk_backend_transaction_progress_cb (alpm_progress_t type, const gchar *target,
case ALPM_PROGRESS_CONFLICTS_START:
case ALPM_PROGRESS_DISKSPACE_START:
case ALPM_PROGRESS_INTEGRITY_START:
+ case ALPM_PROGRESS_LOAD_START:
if (percent == recent) {
break;
}
@@ -533,6 +535,14 @@ pk_backend_transaction_upgrade_done (PkBackend *self, alpm_pkg_t *pkg,
}
static void
+pk_backend_transaction_setup (PkBackend *self)
+{
+ g_return_if_fail (self != NULL);
+
+ pk_backend_set_status (self, PK_STATUS_ENUM_SETUP);
+}
+
+static void
pk_backend_transaction_event_cb (alpm_event_t event, gpointer data,
gpointer old)
{
@@ -579,6 +589,10 @@ pk_backend_transaction_event_cb (alpm_event_t event, gpointer data,
old);
break;
+ case ALPM_EVENT_LOAD_START:
+ pk_backend_transaction_setup (backend);
+ break;
+
case ALPM_EVENT_SCRIPTLET_INFO:
pk_backend_output (backend, data);
break;
commit 5bbeb16d5d30b4c4bc79a7589cfb30b7d2c9c4ad
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 15:45:54 2011 +1300
alpm: update error codes again
diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
index 2f34232..57c4b4b 100644
--- a/backends/alpm/pk-backend-error.c
+++ b/backends/alpm/pk-backend-error.c
@@ -88,13 +88,19 @@ pk_backend_error (PkBackend *self, GError *error)
code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
break;
+ case ALPM_ERR_DB_INVALID:
case ALPM_ERR_DB_VERSION:
case ALPM_ERR_DB_REMOVE:
case ALPM_ERR_SERVER_BAD_URL:
- case ALPM_ERR_SIG_MISSINGDIR:
code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
break;
+ case ALPM_ERR_DB_INVALID_SIG:
+ case ALPM_ERR_PKG_INVALID_SIG:
+ case ALPM_ERR_SIG_INVALID:
+ code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
+ break;
+
case ALPM_ERR_DB_WRITE:
code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
break;
@@ -127,6 +133,10 @@ pk_backend_error (PkBackend *self, GError *error)
code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
break;
+ case ALPM_ERR_PKG_INVALID_CHECKSUM:
+ code = PK_ERROR_ENUM_PACKAGE_CORRUPT;
+ break;
+
case ALPM_ERR_PKG_CANT_REMOVE:
code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
break;
@@ -135,11 +145,7 @@ pk_backend_error (PkBackend *self, GError *error)
code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
break;
- case ALPM_ERR_SIG_INVALID:
- code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
- break;
-
- case ALPM_ERR_SIG_UNKNOWN:
+ case ALPM_ERR_SIG_MISSING:
code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
break;
commit d59a5047895a9764c10ea82368871ab87a99ea44
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 15:35:24 2011 +1300
alpm: make use of new package origin API
diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
index e543231..2d057aa 100644
--- a/backends/alpm/pk-backend-packages.c
+++ b/backends/alpm/pk-backend-packages.c
@@ -30,10 +30,8 @@ gchar *
alpm_pkg_build_id (alpm_pkg_t *pkg)
{
const gchar *name, *version, *arch, *repo;
- alpm_db_t *db;
g_return_val_if_fail (pkg != NULL, NULL);
- g_return_val_if_fail (localdb != NULL, NULL);
name = alpm_pkg_get_name (pkg);
version = alpm_pkg_get_version (pkg);
@@ -43,12 +41,11 @@ alpm_pkg_build_id (alpm_pkg_t *pkg)
arch = "any";
}
- db = alpm_pkg_get_db (pkg);
- /* TODO: check */
- if (db == NULL || db == localdb) {
- repo = "installed";
+ /* TODO: check correctness */
+ if (alpm_pkg_get_origin (pkg) == PKG_FROM_SYNCDB) {
+ repo = alpm_db_get_name (alpm_pkg_get_db (pkg));
} else {
- repo = alpm_db_get_name (db);
+ repo = "installed";
}
return pk_package_id_build (name, version, arch, repo);
@@ -143,7 +140,7 @@ pk_backend_resolve_package (PkBackend *self, const gchar *package,
PK_FILTER_ENUM_NOT_INSTALLED);
skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
- if (alpm_pkg_get_db (pkg) == localdb) {
+ if (alpm_pkg_get_origin (pkg) == PKG_FROM_LOCALDB) {
if (!skip_local) {
pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLED);
}
@@ -288,7 +285,7 @@ pk_backend_get_details_thread (PkBackend *self)
desc = alpm_pkg_get_desc (pkg);
url = alpm_pkg_get_url (pkg);
- if (alpm_pkg_get_db (pkg) == localdb) {
+ if (alpm_pkg_get_origin (pkg) == PKG_FROM_LOCALDB) {
size = alpm_pkg_get_isize (pkg);
} else {
size = alpm_pkg_download_size (pkg);
commit 868dc55e6e745751b0a6eecfd5ed4cb8110d3f20
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 02:59:28 2011 +1300
alpm: port public structs to new API
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index 761f597..3ededda 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -68,9 +68,9 @@ alpm_pkg_has_basename (alpm_pkg_t *pkg, const gchar *basename)
}
for (i = alpm_pkg_get_deltas (pkg); i != NULL; i = i->next) {
- const gchar *patch = alpm_delta_get_filename (i->data);
+ alpm_delta_t *delta = (alpm_delta_t *) i->data;
- if (g_strcmp0 (patch, basename) == 0) {
+ if (g_strcmp0 (delta->delta, basename) == 0) {
return TRUE;
}
}
@@ -282,19 +282,19 @@ pk_backend_install_ignorepkg (PkBackend *self, alpm_pkg_t *pkg, gint *result)
}
static void
-pk_backend_select_provider (PkBackend *self, alpm_depend_t *dep,
+pk_backend_select_provider (PkBackend *self, alpm_depend_t *depend,
const alpm_list_t *providers)
{
gchar *output;
g_return_if_fail (self != NULL);
- g_return_if_fail (dep != NULL);
+ g_return_if_fail (depend != NULL);
g_return_if_fail (providers != NULL);
output = g_strdup_printf ("provider package was selected "
"(%s provides %s)\n",
alpm_pkg_get_name (providers->data),
- alpm_dep_get_name (dep));
+ depend->name);
pk_backend_output (self, output);
g_free (output);
}
@@ -659,10 +659,11 @@ alpm_miss_build_list (const alpm_list_t *i)
}
for (; i != NULL; i = i->next) {
- alpm_depend_t *dep = alpm_miss_get_dep (i->data);
- gchar *depend = alpm_dep_compute_string (dep);
+ alpm_depmissing_t *miss = (alpm_depmissing_t *) i->data;
+ gchar *depend = alpm_dep_compute_string (miss->depend);
+
g_string_append_printf (list, "%s <- %s, ", depend,
- alpm_miss_get_target (i->data));
+ miss->target);
free (depend);
}
@@ -671,25 +672,21 @@ alpm_miss_build_list (const alpm_list_t *i)
}
static void
-alpm_dep_free (gpointer dep)
+alpm_depend_free (alpm_depend_t *depend)
{
- /* TODO: remove when implemented in libalpm */
- free ((gpointer) alpm_dep_get_name (dep));
- free ((gpointer) alpm_dep_get_version (dep));
- free (dep);
+ free (depend->name);
+ free (depend->version);
+ free (depend);
}
static void
-alpm_miss_free (gpointer miss)
+alpm_depmissing_free (gpointer miss)
{
- /* TODO: remove when implemented in libalpm */
- const gchar *temp = alpm_miss_get_causingpkg (miss);
- if (temp != NULL) {
- free ((gpointer) temp);
- }
+ alpm_depmissing_t *self = (alpm_depmissing_t *) miss;
- free ((gpointer) alpm_miss_get_target (miss));
- alpm_dep_free (alpm_miss_get_dep (miss));
+ free (self->target);
+ alpm_depend_free (self->depend);
+ free (self->causingpkg);
free (miss);
}
@@ -705,17 +702,20 @@ alpm_conflict_build_list (const alpm_list_t *i)
}
for (; i != NULL; i = i->next) {
- const gchar *first = alpm_conflict_get_package1 (i->data);
- const gchar *second = alpm_conflict_get_package2 (i->data);
- const gchar *reason = alpm_conflict_get_reason (i->data);
-
- if (g_strcmp0 (first, reason) == 0 ||
- g_strcmp0 (second, reason) == 0) {
- g_string_append_printf (list, "%s <-> %s, ", first,
- second);
+ alpm_conflict_t *conflict = (alpm_conflict_t *) i->data;
+ alpm_depend_t *depend = conflict->reason;
+
+ if (g_strcmp0 (conflict->package1, depend->name) == 0 ||
+ g_strcmp0 (conflict->package2, depend->name) == 0) {
+ g_string_append_printf (list, "%s <-> %s, ",
+ conflict->package1,
+ conflict->package2);
} else {
- g_string_append_printf (list, "%s <-> %s (%s), ", first,
- second, reason);
+ gchar *reason = alpm_dep_compute_string (depend);
+ g_string_append_printf (list, "%s <-> %s (%s), ",
+ conflict->package1,
+ conflict->package2, reason);
+ g_free (reason);
}
}
@@ -726,10 +726,10 @@ alpm_conflict_build_list (const alpm_list_t *i)
static void
alpm_conflict_free (gpointer conflict)
{
- /* TODO: remove when implemented in libalpm */
- free ((gpointer) alpm_conflict_get_package1 (conflict));
- free ((gpointer) alpm_conflict_get_package2 (conflict));
- free ((gpointer) alpm_conflict_get_reason (conflict));
+ alpm_conflict_t *self = (alpm_conflict_t *) conflict;
+
+ free (self->package1);
+ free (self->package2);
free (conflict);
}
@@ -745,15 +745,17 @@ alpm_fileconflict_build_list (const alpm_list_t *i)
}
for (; i != NULL; i = i->next) {
- const gchar *target = alpm_fileconflict_get_target (i->data);
- const gchar *file = alpm_fileconflict_get_file (i->data);
- const gchar *ctarget = alpm_fileconflict_get_ctarget (i->data);
- if (*ctarget != '\0') {
+ alpm_fileconflict_t *conflict = (alpm_fileconflict_t *) i->data;
+
+ if (*conflict->ctarget != '\0') {
g_string_append_printf (list, "%s <-> %s (%s), ",
- target, ctarget, file);
+ conflict->target,
+ conflict->ctarget,
+ conflict->file);
} else {
- g_string_append_printf (list, "%s (%s), ", target,
- file);
+ g_string_append_printf (list, "%s (%s), ",
+ conflict->target,
+ conflict->file);
}
}
@@ -764,14 +766,11 @@ alpm_fileconflict_build_list (const alpm_list_t *i)
static void
alpm_fileconflict_free (gpointer conflict)
{
- /* TODO: remove when implemented in libalpm */
- const gchar *temp = alpm_fileconflict_get_ctarget (conflict);
- if (*temp != '\0') {
- free ((gpointer) temp);
- }
+ alpm_fileconflict_t *self = (alpm_fileconflict_t *) conflict;
- free ((gpointer) alpm_fileconflict_get_target (conflict));
- free ((gpointer) alpm_fileconflict_get_file (conflict));
+ free (self->target);
+ free (self->file);
+ free (self->ctarget);
free (conflict);
}
@@ -796,7 +795,7 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
case ALPM_ERR_UNSATISFIED_DEPS:
prefix = alpm_miss_build_list (data);
- alpm_list_free_inner (data, alpm_miss_free);
+ alpm_list_free_inner (data, alpm_depmissing_free);
alpm_list_free (data);
break;
commit a92d37896a2a10aa9bdfa411ebaafd8266c9cb1a
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Sat Oct 29 02:21:41 2011 +1300
alpm: port type names to new API
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 1e6d732..8ecc7dd 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -37,7 +37,7 @@ GCancellable *cancellable = NULL;
static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
alpm_handle_t *alpm = NULL;
-pmdb_t *localdb = NULL;
+alpm_db_t *localdb = NULL;
gchar *xfercmd = NULL;
alpm_list_t *holdpkgs = NULL;
@@ -164,7 +164,7 @@ out:
}
static void
-pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
+pk_backend_logcb (alpm_loglevel_t level, const gchar *format, va_list args)
{
gchar *output;
diff --git a/backends/alpm/pk-backend-alpm.h b/backends/alpm/pk-backend-alpm.h
index 7cdd8ce..ecd6d0f 100644
--- a/backends/alpm/pk-backend-alpm.h
+++ b/backends/alpm/pk-backend-alpm.h
@@ -29,7 +29,7 @@ extern PkBackend *backend;
extern GCancellable *cancellable;
extern alpm_handle_t *alpm;
-extern pmdb_t *localdb;
+extern alpm_db_t *localdb;
extern gchar *xfercmd;
extern alpm_list_t *holdpkgs;
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index 76d6f49..27b5816 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -147,7 +147,7 @@ disabled_repos_configure (GHashTable *table, GError **error)
for (i = configured; i != NULL; i = i->next) {
PkBackendRepo *repo = (PkBackendRepo *) i->data;
- pmdb_t *db;
+ alpm_db_t *db;
if (g_hash_table_lookup (table, repo->name) != NULL) {
/* repo is disabled */
@@ -252,7 +252,7 @@ pk_backend_get_repo_list_thread (PkBackend *self)
/* emit enabled repos */
for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
- pmdb_t *db = (pmdb_t *) i->data;
+ alpm_db_t *db = (alpm_db_t *) i->data;
const gchar *repo = alpm_db_get_name (db);
if (pk_backend_cancelled (self)) {
@@ -338,7 +338,7 @@ pk_backend_repo_disable_thread (PkBackend *self)
g_return_val_if_fail (repo != NULL, FALSE);
for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
- pmdb_t *db = (pmdb_t *) i->data;
+ alpm_db_t *db = (alpm_db_t *) i->data;
const gchar *name = alpm_db_get_name (db);
if (g_strcmp0 (repo, name) == 0) {
diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
index 2585fc6..7c7b45a 100644
--- a/backends/alpm/pk-backend-depends.c
+++ b/backends/alpm/pk-backend-depends.c
@@ -29,7 +29,7 @@
#include "pk-backend-error.h"
#include "pk-backend-packages.h"
-static pmpkg_t *
+static alpm_pkg_t *
alpm_list_find_pkg (const alpm_list_t *pkgs, const gchar *name)
{
g_return_val_if_fail (name != NULL, NULL);
@@ -50,7 +50,7 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
PkBitfield filters;
gboolean recursive, skip_local, skip_remote;
- pmpkg_t *provider;
+ alpm_pkg_t *provider;
alpm_list_t *pkgcache, *syncdbs;
g_return_val_if_fail (self != NULL, pkgs);
@@ -109,7 +109,7 @@ static alpm_list_t *
pk_backend_find_requirer (PkBackend *self, alpm_list_t *pkgs, const gchar *name,
GError **error)
{
- pmpkg_t *requirer;
+ alpm_pkg_t *requirer;
g_return_val_if_fail (self != NULL, pkgs);
g_return_val_if_fail (name != NULL, pkgs);
@@ -151,7 +151,7 @@ pk_backend_get_depends_thread (PkBackend *self)
/* construct an initial package list */
for (; *packages != NULL; ++packages) {
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
if (pk_backend_cancelled (self)) {
break;
@@ -207,7 +207,7 @@ pk_backend_get_requires_thread (PkBackend *self)
/* construct an initial package list */
for (; *packages != NULL; ++packages) {
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
if (pk_backend_cancelled (self)) {
break;
diff --git a/backends/alpm/pk-backend-groups.c b/backends/alpm/pk-backend-groups.c
index 59e304d..6056c54 100644
--- a/backends/alpm/pk-backend-groups.c
+++ b/backends/alpm/pk-backend-groups.c
@@ -125,7 +125,7 @@ pk_backend_destroy_groups (PkBackend *self)
}
const gchar *
-alpm_pkg_get_group (pmpkg_t *pkg)
+alpm_pkg_get_group (alpm_pkg_t *pkg)
{
const alpm_list_t *i;
diff --git a/backends/alpm/pk-backend-groups.h b/backends/alpm/pk-backend-groups.h
index 28dcf65..d736e37 100644
--- a/backends/alpm/pk-backend-groups.h
+++ b/backends/alpm/pk-backend-groups.h
@@ -29,4 +29,4 @@ gboolean pk_backend_initialize_groups (PkBackend *self,
void pk_backend_destroy_groups (PkBackend *self);
-const gchar *alpm_pkg_get_group (pmpkg_t *pkg);
+const gchar *alpm_pkg_get_group (alpm_pkg_t *pkg);
diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
index d500eaf..9d098b5 100644
--- a/backends/alpm/pk-backend-install.c
+++ b/backends/alpm/pk-backend-install.c
@@ -32,7 +32,7 @@
static gint
alpm_add_file (const gchar *filename)
{
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
g_return_val_if_fail (filename != NULL, -1);
g_return_val_if_fail (alpm != NULL, -1);
diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
index 74fe5f6..e543231 100644
--- a/backends/alpm/pk-backend-packages.c
+++ b/backends/alpm/pk-backend-packages.c
@@ -27,10 +27,10 @@
#include "pk-backend-packages.h"
gchar *
-alpm_pkg_build_id (pmpkg_t *pkg)
+alpm_pkg_build_id (alpm_pkg_t *pkg)
{
const gchar *name, *version, *arch, *repo;
- pmdb_t *db;
+ alpm_db_t *db;
g_return_val_if_fail (pkg != NULL, NULL);
g_return_val_if_fail (localdb != NULL, NULL);
@@ -55,7 +55,7 @@ alpm_pkg_build_id (pmpkg_t *pkg)
}
void
-pk_backend_pkg (PkBackend *self, pmpkg_t *pkg, PkInfoEnum info)
+pk_backend_pkg (PkBackend *self, alpm_pkg_t *pkg, PkInfoEnum info)
{
gchar *package;
@@ -67,13 +67,13 @@ pk_backend_pkg (PkBackend *self, pmpkg_t *pkg, PkInfoEnum info)
g_free (package);
}
-pmpkg_t *
+alpm_pkg_t *
pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
{
gchar **package;
const gchar *repo_id;
- pmdb_t *db = NULL;
- pmpkg_t *pkg;
+ alpm_db_t *db = NULL;
+ alpm_pkg_t *pkg;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (package_id != NULL, NULL);
@@ -124,7 +124,7 @@ static gboolean
pk_backend_resolve_package (PkBackend *self, const gchar *package,
GError **error)
{
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
PkBitfield filters;
gboolean skip_local, skip_remote;
@@ -159,7 +159,7 @@ pk_backend_resolve_package (PkBackend *self, const gchar *package,
static gboolean
pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
{
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
int code;
PkBitfield filters;
@@ -256,7 +256,7 @@ pk_backend_get_details_thread (PkBackend *self)
g_return_val_if_fail (packages != NULL, FALSE);
for (; *packages != NULL; ++packages) {
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
const alpm_list_t *i;
GString *licenses;
@@ -326,7 +326,7 @@ pk_backend_get_files_thread (PkBackend *self)
g_return_val_if_fail (packages != NULL, FALSE);
for (; *packages != NULL; ++packages) {
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
const gchar *root;
GString *files;
diff --git a/backends/alpm/pk-backend-packages.h b/backends/alpm/pk-backend-packages.h
index 4b2d7f8..2d54684 100644
--- a/backends/alpm/pk-backend-packages.h
+++ b/backends/alpm/pk-backend-packages.h
@@ -24,10 +24,11 @@
#include <alpm.h>
#include <pk-backend.h>
-gchar *alpm_pkg_build_id (pmpkg_t *pkg);
+gchar *alpm_pkg_build_id (alpm_pkg_t *pkg);
-void pk_backend_pkg (PkBackend *self, pmpkg_t *pkg,
- PkInfoEnum info);
+void pk_backend_pkg (PkBackend *self, alpm_pkg_t *pkg,
+ PkInfoEnum info);
-pmpkg_t *pk_backend_find_pkg (PkBackend *self, const gchar *package_id,
- GError **error);
+alpm_pkg_t *pk_backend_find_pkg (PkBackend *self,
+ const gchar *package_id,
+ GError **error);
diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
index 6414c4d..1993061 100644
--- a/backends/alpm/pk-backend-remove.c
+++ b/backends/alpm/pk-backend-remove.c
@@ -46,7 +46,7 @@ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
gchar **package = pk_package_id_split (*packages);
gchar *name = package[PK_PACKAGE_ID_NAME];
- pmpkg_t *pkg = alpm_db_get_pkg (localdb, name);
+ alpm_pkg_t *pkg = alpm_db_get_pkg (localdb, name);
if (pkg == NULL || alpm_remove_pkg (alpm, pkg) < 0) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error (error, ALPM_ERROR, errno, "%s: %s", name,
@@ -89,7 +89,7 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
static gboolean
pk_backend_simulate_remove_packages_thread (PkBackend *self)
{
- pmtransflag_t flags = ALPM_TRANS_FLAG_CASCADE;
+ alpm_transflag_t flags = ALPM_TRANS_FLAG_CASCADE;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
@@ -111,7 +111,7 @@ pk_backend_simulate_remove_packages_thread (PkBackend *self)
static gboolean
pk_backend_remove_packages_thread (PkBackend *self)
{
- pmtransflag_t flags = 0;
+ alpm_transflag_t flags = 0;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
diff --git a/backends/alpm/pk-backend-search.c b/backends/alpm/pk-backend-search.c
index bcfa992..c4e80ae 100644
--- a/backends/alpm/pk-backend-search.c
+++ b/backends/alpm/pk-backend-search.c
@@ -75,7 +75,7 @@ pk_backend_pattern_chroot (const gchar *needle, GError **error)
}
static gboolean
-pk_backend_match_all (pmpkg_t *pkg, gpointer pattern)
+pk_backend_match_all (alpm_pkg_t *pkg, gpointer pattern)
{
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (pattern != NULL, FALSE);
@@ -85,10 +85,10 @@ pk_backend_match_all (pmpkg_t *pkg, gpointer pattern)
}
static gboolean
-pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
+pk_backend_match_details (alpm_pkg_t *pkg, GRegex *regex)
{
const gchar *desc;
- pmdb_t *db;
+ alpm_db_t *db;
const alpm_list_t *i;
g_return_val_if_fail (pkg != NULL, FALSE);
@@ -124,7 +124,7 @@ pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
}
static gboolean
-pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
+pk_backend_match_file (alpm_pkg_t *pkg, const gchar *needle)
{
alpm_filelist_t *files;
gsize i;
@@ -165,7 +165,7 @@ pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
}
static gboolean
-pk_backend_match_group (pmpkg_t *pkg, const gchar *needle)
+pk_backend_match_group (alpm_pkg_t *pkg, const gchar *needle)
{
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (needle != NULL, FALSE);
@@ -175,7 +175,7 @@ pk_backend_match_group (pmpkg_t *pkg, const gchar *needle)
}
static gboolean
-pk_backend_match_name (pmpkg_t *pkg, GRegex *regex)
+pk_backend_match_name (alpm_pkg_t *pkg, GRegex *regex)
{
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (regex != NULL, FALSE);
@@ -185,7 +185,7 @@ pk_backend_match_name (pmpkg_t *pkg, GRegex *regex)
}
static gboolean
-pk_backend_match_provides (pmpkg_t *pkg, gpointer pattern)
+pk_backend_match_provides (alpm_pkg_t *pkg, gpointer pattern)
{
/* TODO: implement GStreamer codecs, Pango fonts, etc. */
const alpm_list_t *i;
@@ -222,7 +222,7 @@ typedef enum {
} SearchType;
typedef gpointer (*PatternFunc) (const gchar *needle, GError **error);
-typedef gboolean (*MatchFunc) (pmpkg_t *pkg, gpointer pattern);
+typedef gboolean (*MatchFunc) (alpm_pkg_t *pkg, gpointer pattern);
static PatternFunc pattern_funcs[] = {
pk_backend_pattern_needle,
@@ -252,9 +252,9 @@ static MatchFunc match_funcs[] = {
};
static gboolean
-alpm_pkg_is_local (pmpkg_t *pkg)
+alpm_pkg_is_local (alpm_pkg_t *pkg)
{
- pmpkg_t *local;
+ alpm_pkg_t *local;
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
@@ -281,7 +281,7 @@ alpm_pkg_is_local (pmpkg_t *pkg)
}
static void
-pk_backend_search_db (PkBackend *self, pmdb_t *db, MatchFunc match,
+pk_backend_search_db (PkBackend *self, alpm_db_t *db, MatchFunc match,
const alpm_list_t *patterns)
{
const alpm_list_t *i, *j;
diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
index b6fc2c4..c770159 100644
--- a/backends/alpm/pk-backend-sync.c
+++ b/backends/alpm/pk-backend-sync.c
@@ -48,7 +48,7 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
gchar *name = package[PK_PACKAGE_ID_NAME];
const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
for (; i != NULL; i = i->next) {
if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
@@ -84,7 +84,7 @@ pk_backend_download_packages_thread (PkBackend *self)
{
alpm_list_t *cachedirs;
const gchar *directory;
- pmtransflag_t flags = 0;
+ alpm_transflag_t flags = 0;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
@@ -185,7 +185,7 @@ pk_backend_install_packages (PkBackend *self, gboolean only_trusted,
}
static gboolean
-pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
+pk_backend_replaces_dependencies (PkBackend *self, alpm_pkg_t *pkg)
{
const alpm_list_t *i, *replaces;
@@ -195,7 +195,7 @@ pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
replaces = alpm_pkg_get_replaces (pkg);
for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
- pmpkg_t *rpkg = (pmpkg_t *) i->data;
+ alpm_pkg_t *rpkg = (alpm_pkg_t *) i->data;
const gchar *rname = alpm_pkg_get_name (rpkg);
if (pk_backend_cancelled (self)) {
@@ -231,7 +231,7 @@ pk_backend_update_packages_thread (PkBackend *self)
/* change the install reason of packages that replace dependencies */
for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
- pmpkg_t *pkg = (pmpkg_t *) i->data;
+ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
const gchar *name = alpm_pkg_get_name (pkg);
if (pk_backend_cancelled (self)) {
@@ -251,7 +251,7 @@ pk_backend_update_packages_thread (PkBackend *self)
for (i = asdeps; i != NULL; i = i->next) {
const gchar *name = (const gchar *) i->data;
- pmpkg_t *pkg = alpm_db_get_pkg (localdb, name);
+ alpm_pkg_t *pkg = alpm_db_get_pkg (localdb, name);
alpm_db_set_pkgreason (alpm, pkg, ALPM_PKG_REASON_DEPEND);
}
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index 15c706e..761f597 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -29,10 +29,10 @@
static off_t dcomplete = 0;
static off_t dtotal = 0;
-static pmpkg_t *dpkg = NULL;
+static alpm_pkg_t *dpkg = NULL;
static GString *dfiles = NULL;
-static pmpkg_t *tpkg = NULL;
+static alpm_pkg_t *tpkg = NULL;
static GString *toutput = NULL;
static gchar *
@@ -51,7 +51,7 @@ pk_backend_resolve_path (PkBackend *self, const gchar *basename)
}
static gboolean
-alpm_pkg_has_basename (pmpkg_t *pkg, const gchar *basename)
+alpm_pkg_has_basename (alpm_pkg_t *pkg, const gchar *basename)
{
const alpm_list_t *i;
@@ -130,7 +130,7 @@ pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
/* figure out what the next package is */
for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
- pmpkg_t *pkg = (pmpkg_t *) i->data;
+ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
if (alpm_pkg_has_basename (pkg, basename)) {
dpkg = pkg;
@@ -204,7 +204,7 @@ pk_backend_transaction_dlcb (const gchar *basename, off_t complete, off_t total)
}
static void
-pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
+pk_backend_transaction_progress_cb (alpm_progress_t type, const gchar *target,
gint percent, gsize targets, gsize current)
{
static gint recent = 101;
@@ -255,7 +255,7 @@ pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
}
static void
-pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
+pk_backend_install_ignorepkg (PkBackend *self, alpm_pkg_t *pkg, gint *result)
{
gchar *output;
@@ -282,7 +282,7 @@ pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
}
static void
-pk_backend_select_provider (PkBackend *self, pmdepend_t *dep,
+pk_backend_select_provider (PkBackend *self, alpm_depend_t *dep,
const alpm_list_t *providers)
{
gchar *output;
@@ -300,7 +300,7 @@ pk_backend_select_provider (PkBackend *self, pmdepend_t *dep,
}
static void
-pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
+pk_backend_transaction_conv_cb (alpm_question_t question, gpointer data1,
gpointer data2, gpointer data3, gint *result)
{
g_return_if_fail (result != NULL);
@@ -351,7 +351,7 @@ pk_backend_output_end (PkBackend *self)
}
static void
-pk_backend_output_start (PkBackend *self, pmpkg_t *pkg)
+pk_backend_output_start (PkBackend *self, alpm_pkg_t *pkg)
{
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
@@ -400,7 +400,7 @@ pk_backend_transaction_test_commit (PkBackend *self)
}
static void
-pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
+pk_backend_transaction_add_start (PkBackend *self, alpm_pkg_t *pkg)
{
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
@@ -411,7 +411,7 @@ pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
}
static void
-pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
+pk_backend_transaction_add_done (PkBackend *self, alpm_pkg_t *pkg)
{
const gchar *name, *version;
const alpm_list_t *i, *optdepends;
@@ -441,7 +441,7 @@ pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
}
static void
-pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
+pk_backend_transaction_remove_start (PkBackend *self, alpm_pkg_t *pkg)
{
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
@@ -452,7 +452,7 @@ pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
}
static void
-pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
+pk_backend_transaction_remove_done (PkBackend *self, alpm_pkg_t *pkg)
{
const gchar *name, *version;
@@ -469,8 +469,8 @@ pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
}
static void
-pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
- pmpkg_t *old)
+pk_backend_transaction_upgrade_start (PkBackend *self, alpm_pkg_t *pkg,
+ alpm_pkg_t *old)
{
PkRoleEnum role;
PkStatusEnum state;
@@ -495,8 +495,8 @@ pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
}
static void
-pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
- pmpkg_t *old)
+pk_backend_transaction_upgrade_done (PkBackend *self, alpm_pkg_t *pkg,
+ alpm_pkg_t *old)
{
const gchar *name, *pre, *post;
const alpm_list_t *i;
@@ -533,7 +533,7 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
}
static void
-pk_backend_transaction_event_cb (pmtransevt_t event, gpointer data,
+pk_backend_transaction_event_cb (alpm_event_t event, gpointer data,
gpointer old)
{
g_return_if_fail (backend != NULL);
@@ -599,7 +599,7 @@ transaction_cancelled_cb (GCancellable *object, gpointer data)
}
gboolean
-pk_backend_transaction_initialize (PkBackend *self, pmtransflag_t flags,
+pk_backend_transaction_initialize (PkBackend *self, alpm_transflag_t flags,
GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
@@ -659,7 +659,7 @@ alpm_miss_build_list (const alpm_list_t *i)
}
for (; i != NULL; i = i->next) {
- pmdepend_t *dep = alpm_miss_get_dep (i->data);
+ alpm_depend_t *dep = alpm_miss_get_dep (i->data);
gchar *depend = alpm_dep_compute_string (dep);
g_string_append_printf (list, "%s <- %s, ", depend,
alpm_miss_get_target (i->data));
diff --git a/backends/alpm/pk-backend-transaction.h b/backends/alpm/pk-backend-transaction.h
index 6bb1d69..e3733d6 100644
--- a/backends/alpm/pk-backend-transaction.h
+++ b/backends/alpm/pk-backend-transaction.h
@@ -25,7 +25,7 @@
#include <pk-backend.h>
gboolean pk_backend_transaction_initialize (PkBackend *self,
- pmtransflag_t flags,
+ alpm_transflag_t flags,
GError **error);
gboolean pk_backend_transaction_simulate (PkBackend *self,
diff --git a/backends/alpm/pk-backend-update.c b/backends/alpm/pk-backend-update.c
index 96aca29..37ade1e 100644
--- a/backends/alpm/pk-backend-update.c
+++ b/backends/alpm/pk-backend-update.c
@@ -34,7 +34,7 @@
#include "pk-backend-update.h"
static gchar *
-alpm_pkg_build_replaces (pmpkg_t *pkg)
+alpm_pkg_build_replaces (alpm_pkg_t *pkg)
{
const alpm_list_t *i;
GString *string = NULL;
@@ -44,7 +44,7 @@ alpm_pkg_build_replaces (pmpkg_t *pkg)
/* make a list of the packages that package replaces */
for (i = alpm_pkg_get_replaces (pkg); i != NULL; i = i->next) {
- pmpkg_t *replaces = alpm_db_get_pkg (localdb, i->data);
+ alpm_pkg_t *replaces = alpm_db_get_pkg (localdb, i->data);
if (replaces != NULL) {
gchar *package = alpm_pkg_build_id (replaces);
@@ -65,7 +65,7 @@ alpm_pkg_build_replaces (pmpkg_t *pkg)
}
static gchar *
-alpm_pkg_build_urls (pmpkg_t *pkg)
+alpm_pkg_build_urls (alpm_pkg_t *pkg)
{
GString *string = g_string_new ("");
#ifdef ALPM_PACKAGE_URL
@@ -97,7 +97,7 @@ alpm_pkg_build_urls (pmpkg_t *pkg)
}
static gboolean
-alpm_pkg_same_pkgver (pmpkg_t *a, pmpkg_t *b)
+alpm_pkg_same_pkgver (alpm_pkg_t *a, alpm_pkg_t *b)
{
const gchar *version_a, *version_b, *last_a, *last_b;
gsize length_a, length_b;
@@ -145,8 +145,8 @@ pk_backend_get_update_detail_thread (PkBackend *self)
/* collect details about updates */
for (; *packages != NULL; ++packages) {
- pmpkg_t *pkg, *old;
- pmdb_t *db;
+ alpm_pkg_t *pkg, *old;
+ alpm_db_t *db;
gchar *upgrades, *replaces, *urls;
const gchar *reason;
@@ -294,7 +294,7 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
}
static gboolean
-alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
+alpm_pkg_is_ignorepkg (alpm_pkg_t *pkg)
{
const alpm_list_t *ignorepkgs, *ignoregroups, *i;
@@ -317,7 +317,7 @@ alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
}
static gboolean
-alpm_pkg_is_syncfirst (pmpkg_t *pkg)
+alpm_pkg_is_syncfirst (alpm_pkg_t *pkg)
{
g_return_val_if_fail (pkg != NULL, FALSE);
@@ -329,7 +329,7 @@ alpm_pkg_is_syncfirst (pmpkg_t *pkg)
}
static gboolean
-alpm_pkg_replaces (pmpkg_t *pkg, const gchar *name)
+alpm_pkg_replaces (alpm_pkg_t *pkg, const gchar *name)
{
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (name != NULL, FALSE);
@@ -338,8 +338,8 @@ alpm_pkg_replaces (pmpkg_t *pkg, const gchar *name)
}
-static pmpkg_t *
-alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
+static alpm_pkg_t *
+alpm_pkg_find_update (alpm_pkg_t *pkg, const alpm_list_t *dbs)
{
const gchar *name;
const alpm_list_t *i;
@@ -349,7 +349,7 @@ alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
name = alpm_pkg_get_name (pkg);
for (; dbs != NULL; dbs = dbs->next) {
- pmpkg_t *update = alpm_db_get_pkg (dbs->data, name);
+ alpm_pkg_t *update = alpm_db_get_pkg (dbs->data, name);
if (update != NULL) {
if (alpm_pkg_vercmp (alpm_pkg_get_version (update),
@@ -400,7 +400,7 @@ pk_backend_get_updates_thread (PkBackend *self)
/* find outdated and replacement packages */
syncdbs = alpm_option_get_syncdbs (alpm);
for (i = alpm_db_get_pkgcache (localdb); i != NULL; i = i->next) {
- pmpkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
+ alpm_pkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
if (pk_backend_cancelled (self)) {
break;
commit 0e859015f9a5d37ca91692b29a47c30e256adf2c
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 23:20:16 2011 +1300
alpm: port function calls to new API
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index a41dbd9..db494cf 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -39,7 +39,7 @@ typedef struct
gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root,
*xfercmd;
- alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
+ alpm_list_t *cachedirs, *holdpkgs, *ignoregroups, *ignorepkgs,
*noextracts, *noupgrades, *syncfirsts;
alpm_list_t *repos;
@@ -87,7 +87,7 @@ pk_backend_config_free (PkBackendConfig *config)
FREELIST (config->cachedirs);
FREELIST (config->holdpkgs);
- FREELIST (config->ignoregrps);
+ FREELIST (config->ignoregroups);
FREELIST (config->ignorepkgs);
FREELIST (config->noextracts);
FREELIST (config->noupgrades);
@@ -332,12 +332,12 @@ pk_backend_config_add_holdpkg (PkBackendConfig *config, gchar *package)
}
static void
-pk_backend_config_add_ignoregrp (PkBackendConfig *config, gchar *group)
+pk_backend_config_add_ignoregroup (PkBackendConfig *config, gchar *group)
{
g_return_if_fail (config != NULL);
g_return_if_fail (group != NULL);
- config->ignoregrps = alpm_list_add (config->ignoregrps, group);
+ config->ignoregroups = alpm_list_add (config->ignoregroups, group);
}
static void
@@ -385,7 +385,7 @@ typedef struct
/* keep this in alphabetical order */
static const PkBackendConfigList pk_backend_config_list_options[] = {
{ "HoldPkg", pk_backend_config_add_holdpkg },
- { "IgnoreGroup", pk_backend_config_add_ignoregrp },
+ { "IgnoreGroup", pk_backend_config_add_ignoregroup },
{ "IgnorePkg", pk_backend_config_add_ignorepkg },
{ "NoExtract", pk_backend_config_add_noextract },
{ "NoUpgrade", pk_backend_config_add_noupgrade },
@@ -744,8 +744,8 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
config->syncfirsts = NULL;
/* alpm takes ownership */
- alpm_option_set_ignoregrps (handle, config->ignoregrps);
- config->ignoregrps = NULL;
+ alpm_option_set_ignoregroups (handle, config->ignoregroups);
+ config->ignoregroups = NULL;
/* alpm takes ownership */
alpm_option_set_ignorepkgs (handle, config->ignorepkgs);
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index 17377d4..76d6f49 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -247,10 +247,11 @@ pk_backend_get_repo_list_thread (PkBackend *self)
gpointer key, value;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (disabled != NULL, FALSE);
/* emit enabled repos */
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
pmdb_t *db = (pmdb_t *) i->data;
const gchar *repo = alpm_db_get_name (db);
@@ -329,13 +330,14 @@ pk_backend_repo_disable_thread (PkBackend *self)
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (disabled != NULL, FALSE);
repo = pk_backend_get_string (self, "repo_id");
g_return_val_if_fail (repo != NULL, FALSE);
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
pmdb_t *db = (pmdb_t *) i->data;
const gchar *name = alpm_db_get_name (db);
diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
index 177febe..2585fc6 100644
--- a/backends/alpm/pk-backend-depends.c
+++ b/backends/alpm/pk-backend-depends.c
@@ -55,6 +55,7 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
g_return_val_if_fail (self != NULL, pkgs);
g_return_val_if_fail (depend != NULL, pkgs);
+ g_return_val_if_fail (alpm != NULL, pkgs);
g_return_val_if_fail (localdb != NULL, pkgs);
recursive = pk_backend_get_bool (self, "recursive");
@@ -84,8 +85,8 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
}
/* look for remote dependencies */
- syncdbs = alpm_option_get_syncdbs ();
- provider = alpm_find_dbs_satisfier (syncdbs, depend);
+ syncdbs = alpm_option_get_syncdbs (alpm);
+ provider = alpm_find_dbs_satisfier (alpm, syncdbs, depend);
if (provider != NULL) {
if (!skip_remote) {
diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
index 36bbd6e..d500eaf 100644
--- a/backends/alpm/pk-backend-install.c
+++ b/backends/alpm/pk-backend-install.c
@@ -35,12 +35,13 @@ alpm_add_file (const gchar *filename)
pmpkg_t *pkg;
g_return_val_if_fail (filename != NULL, -1);
+ g_return_val_if_fail (alpm != NULL, -1);
- if (alpm_pkg_load (filename, 1, &pkg) < 0) {
+ if (alpm_pkg_load (alpm, filename, 1, &pkg) < 0) {
return -1;
}
- if (alpm_add_pkg (pkg) < 0) {
+ if (alpm_add_pkg (alpm, pkg) < 0) {
alpm_pkg_free (pkg);
return -1;
}
diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
index 1cc20df..74fe5f6 100644
--- a/backends/alpm/pk-backend-packages.c
+++ b/backends/alpm/pk-backend-packages.c
@@ -77,6 +77,7 @@ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (package_id != NULL, NULL);
+ g_return_val_if_fail (alpm != NULL, NULL);
g_return_val_if_fail (localdb != NULL, NULL);
package = pk_package_id_split (package_id);
@@ -86,8 +87,8 @@ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
if (g_strcmp0 (repo_id, "installed") == 0) {
db = localdb;
} else {
- const alpm_list_t *i;
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
+ for (; i != NULL; i = i->next) {
const gchar *repo = alpm_db_get_name (i->data);
if (g_strcmp0 (repo, repo_id) == 0) {
@@ -166,6 +167,7 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (name != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
filters = pk_backend_get_uint (self, "filters");
@@ -180,8 +182,8 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
return TRUE;
}
} else if (!skip_remote) {
- const alpm_list_t *i;
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
+ for (; i != NULL; i = i->next) {
pkg = alpm_db_get_pkg (i->data, name);
if (pkg != NULL) {
pk_backend_pkg (self, pkg,
@@ -317,6 +319,7 @@ pk_backend_get_files_thread (PkBackend *self)
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
packages = pk_backend_get_strv (self, "package_ids");
@@ -324,10 +327,11 @@ pk_backend_get_files_thread (PkBackend *self)
for (; *packages != NULL; ++packages) {
pmpkg_t *pkg;
- const alpm_list_t *i;
+ const gchar *root;
GString *files;
- const gchar *root;
+ alpm_filelist_t *filelist;
+ gsize i;
if (pk_backend_cancelled (self)) {
break;
@@ -338,11 +342,13 @@ pk_backend_get_files_thread (PkBackend *self)
break;
}
+ root = alpm_option_get_root (alpm);
files = g_string_new ("");
- root = alpm_option_get_root ();
- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
- g_string_append_printf (files, ";%s%s", root,
- (const gchar *) i->data);
+
+ filelist = alpm_pkg_get_files (pkg);
+ for (i = 0; i < filelist->count; ++i) {
+ const gchar *file = filelist->files[i].name;
+ g_string_append_printf (files, ";%s%s", root, file);
}
pk_backend_files (self, *packages, files->str + 1);
diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
index f760978..6414c4d 100644
--- a/backends/alpm/pk-backend-remove.c
+++ b/backends/alpm/pk-backend-remove.c
@@ -35,6 +35,7 @@ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
gchar **packages;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
packages = pk_backend_get_strv (self, "package_ids");
@@ -46,7 +47,7 @@ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
gchar *name = package[PK_PACKAGE_ID_NAME];
pmpkg_t *pkg = alpm_db_get_pkg (localdb, name);
- if (pkg == NULL || alpm_remove_pkg (pkg) < 0) {
+ if (pkg == NULL || alpm_remove_pkg (alpm, pkg) < 0) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error (error, ALPM_ERROR, errno, "%s: %s", name,
alpm_strerror (errno));
@@ -65,11 +66,14 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
{
const alpm_list_t *i;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
+
if (!pk_backend_transaction_simulate (self, error)) {
return FALSE;
}
- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
const gchar *name = alpm_pkg_get_name (i->data);
if (alpm_list_find_str (holdpkgs, name)) {
g_set_error (error, ALPM_ERROR, ALPM_ERR_PKG_HELD,
diff --git a/backends/alpm/pk-backend-search.c b/backends/alpm/pk-backend-search.c
index 592472d..bcfa992 100644
--- a/backends/alpm/pk-backend-search.c
+++ b/backends/alpm/pk-backend-search.c
@@ -55,9 +55,10 @@ static gpointer
pk_backend_pattern_chroot (const gchar *needle, GError **error)
{
g_return_val_if_fail (needle != NULL, NULL);
+ g_return_val_if_fail (alpm != NULL, NULL);
if (G_IS_DIR_SEPARATOR (*needle)) {
- const gchar *file = needle, *root = alpm_option_get_root ();
+ const gchar *file = needle, *root = alpm_option_get_root (alpm);
/* adjust needle to the correct prefix */
for (; *file == *root; ++file, ++root) {
@@ -125,30 +126,36 @@ pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
static gboolean
pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
{
- const alpm_list_t *i;
+ alpm_filelist_t *files;
+ gsize i;
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (needle != NULL, FALSE);
+ files = alpm_pkg_get_files (pkg);
+
/* match any file the package contains */
if (G_IS_DIR_SEPARATOR (*needle)) {
- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
+ for (i = 0; i < files->count; ++i) {
+ const gchar *file = files->files[i].name;
/* match the full path of file */
- if (g_strcmp0 (i->data, needle + 1) == 0) {
+ if (g_strcmp0 (file, needle + 1) == 0) {
return TRUE;
}
}
} else {
- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
- const gchar *file = strrchr (i->data, G_DIR_SEPARATOR);
- if (file == NULL) {
- file = i->data;
+ for (i = 0; i < files->count; ++i) {
+ const gchar *file = files->files[i].name;
+ const gchar *name = strrchr (file, G_DIR_SEPARATOR);
+
+ if (name == NULL) {
+ name = file;
} else {
- ++file;
+ ++name;
}
/* match the basename of file */
- if (g_strcmp0 (file, needle) == 0) {
+ if (g_strcmp0 (name, needle) == 0) {
return TRUE;
}
}
@@ -326,6 +333,7 @@ pk_backend_search_thread (PkBackend *self)
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
needles = pk_backend_get_strv (self, "search");
@@ -366,7 +374,7 @@ pk_backend_search_thread (PkBackend *self)
goto out;
}
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
if (pk_backend_cancelled (self)) {
break;
}
diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
index ace7f0d..b6fc2c4 100644
--- a/backends/alpm/pk-backend-sync.c
+++ b/backends/alpm/pk-backend-sync.c
@@ -36,6 +36,7 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
gchar **packages;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
packages = pk_backend_get_strv (self, "package_ids");
@@ -46,10 +47,10 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
gchar *repo = package[PK_PACKAGE_ID_DATA];
gchar *name = package[PK_PACKAGE_ID_NAME];
- const alpm_list_t *i;
+ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
pmpkg_t *pkg;
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ for (; i != NULL; i = i->next) {
if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
break;
}
@@ -64,7 +65,7 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
}
pkg = alpm_db_get_pkg (i->data, name);
- if (pkg == NULL || alpm_add_pkg (pkg) < 0) {
+ if (pkg == NULL || alpm_add_pkg (alpm, pkg) < 0) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
repo, name, alpm_strerror (errno));
@@ -87,14 +88,18 @@ pk_backend_download_packages_thread (PkBackend *self)
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
directory = pk_backend_get_string (self, "directory");
if (directory != NULL) {
/* download files to a PackageKit directory */
gchar *cachedir = strdup (directory);
- cachedirs = alpm_list_strdup (alpm_option_get_cachedirs ());
- alpm_option_set_cachedirs (alpm_list_add (NULL, cachedir));
+ const alpm_list_t *old = alpm_option_get_cachedirs (alpm);
+ alpm_list_t *new = alpm_list_add (NULL, cachedir);
+
+ cachedirs = alpm_list_strdup (old);
+ alpm_option_set_cachedirs (alpm, new);
}
flags |= ALPM_TRANS_FLAG_NODEPS;
@@ -108,7 +113,7 @@ pk_backend_download_packages_thread (PkBackend *self)
}
if (directory != NULL) {
- alpm_option_set_cachedirs (cachedirs);
+ alpm_option_set_cachedirs (alpm, cachedirs);
}
return pk_backend_transaction_finish (self, error);
@@ -186,9 +191,10 @@ pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
replaces = alpm_pkg_get_replaces (pkg);
- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
pmpkg_t *rpkg = (pmpkg_t *) i->data;
const gchar *rname = alpm_pkg_get_name (rpkg);
@@ -214,6 +220,7 @@ pk_backend_update_packages_thread (PkBackend *self)
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
if (!pk_backend_transaction_initialize (self, 0, &error) ||
@@ -223,7 +230,7 @@ pk_backend_update_packages_thread (PkBackend *self)
}
/* change the install reason of packages that replace dependencies */
- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
pmpkg_t *pkg = (pmpkg_t *) i->data;
const gchar *name = alpm_pkg_get_name (pkg);
@@ -244,7 +251,8 @@ pk_backend_update_packages_thread (PkBackend *self)
for (i = asdeps; i != NULL; i = i->next) {
const gchar *name = (const gchar *) i->data;
- alpm_db_set_pkgreason (localdb, name, ALPM_PKG_REASON_DEPEND);
+ pmpkg_t *pkg = alpm_db_get_pkg (localdb, name);
+ alpm_db_set_pkgreason (alpm, pkg, ALPM_PKG_REASON_DEPEND);
}
out:
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index 0609bf1..15c706e 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -57,12 +57,13 @@ alpm_pkg_has_basename (pmpkg_t *pkg, const gchar *basename)
g_return_val_if_fail (pkg != NULL, FALSE);
g_return_val_if_fail (basename != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
if (g_strcmp0 (alpm_pkg_get_filename (pkg), basename) == 0) {
return TRUE;
}
- if (alpm_option_get_usedelta () == 0) {
+ if (alpm_option_get_usedelta (alpm) == 0) {
return FALSE;
}
@@ -109,6 +110,7 @@ pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
g_return_if_fail (self != NULL);
g_return_if_fail (basename != NULL);
+ g_return_if_fail (alpm != NULL);
/* continue or finish downloading the current package */
if (dpkg != NULL) {
@@ -127,7 +129,7 @@ pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
}
/* figure out what the next package is */
- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
pmpkg_t *pkg = (pmpkg_t *) i->data;
if (alpm_pkg_has_basename (pkg, basename)) {
@@ -416,11 +418,12 @@ pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
+ g_return_if_fail (alpm != NULL);
name = alpm_pkg_get_name (pkg);
version = alpm_pkg_get_version (pkg);
- alpm_logaction ("installed %s (%s)\n", name, version);
+ alpm_logaction (alpm, "installed %s (%s)\n", name, version);
pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
optdepends = alpm_pkg_get_optdepends (pkg);
@@ -455,11 +458,12 @@ pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
+ g_return_if_fail (alpm != NULL);
name = alpm_pkg_get_name (pkg);
version = alpm_pkg_get_version (pkg);
- alpm_logaction ("removed %s (%s)\n", name, version);
+ alpm_logaction (alpm, "removed %s (%s)\n", name, version);
pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
pk_backend_output_end (self);
}
@@ -501,12 +505,13 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
g_return_if_fail (self != NULL);
g_return_if_fail (pkg != NULL);
g_return_if_fail (old != NULL);
+ g_return_if_fail (alpm != NULL);
name = alpm_pkg_get_name (pkg);
pre = alpm_pkg_get_version (old);
post = alpm_pkg_get_version (pkg);
- alpm_logaction ("upgraded %s (%s -> %s)\n", name, pre, post);
+ alpm_logaction (alpm, "upgraded %s (%s -> %s)\n", name, pre, post);
pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
optdepends = alpm_list_diff (alpm_pkg_get_optdepends (pkg),
@@ -588,8 +593,9 @@ static void
transaction_cancelled_cb (GCancellable *object, gpointer data)
{
g_return_if_fail (data != NULL);
+ g_return_if_fail (alpm != NULL);
- alpm_trans_interrupt ();
+ alpm_trans_interrupt (alpm);
}
gboolean
@@ -597,19 +603,22 @@ pk_backend_transaction_initialize (PkBackend *self, pmtransflag_t flags,
GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (cancellable != NULL, FALSE);
- if (alpm_trans_init (flags, pk_backend_transaction_event_cb,
- pk_backend_transaction_conv_cb,
- pk_backend_transaction_progress_cb) < 0) {
+ if (alpm_trans_init (alpm, flags) < 0) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error_literal (error, ALPM_ERROR, errno,
alpm_strerror (errno));
return FALSE;
}
- alpm_option_set_dlcb (pk_backend_transaction_dlcb);
- alpm_option_set_totaldlcb (pk_backend_transaction_totaldlcb);
+ alpm_option_set_eventcb (alpm, pk_backend_transaction_event_cb);
+ alpm_option_set_questioncb (alpm, pk_backend_transaction_conv_cb);
+ alpm_option_set_progresscb (alpm, pk_backend_transaction_progress_cb);
+
+ alpm_option_set_dlcb (alpm, pk_backend_transaction_dlcb);
+ alpm_option_set_totaldlcb (alpm, pk_backend_transaction_totaldlcb);
g_cancellable_connect (cancellable,
G_CALLBACK (transaction_cancelled_cb),
@@ -772,7 +781,10 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
alpm_list_t *data = NULL;
gchar *prefix;
- if (alpm_trans_prepare (&data) >= 0) {
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ if (alpm_trans_prepare (alpm, &data) >= 0) {
return TRUE;
}
@@ -830,10 +842,11 @@ pk_backend_transaction_packages (PkBackend *self)
PkInfoEnum info;
g_return_if_fail (self != NULL);
+ g_return_if_fail (alpm != NULL);
g_return_if_fail (localdb != NULL);
/* emit packages that would have been installed */
- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
if (pk_backend_cancelled (self)) {
break;
} else {
@@ -860,7 +873,7 @@ pk_backend_transaction_packages (PkBackend *self)
}
/* emit packages that would have been removed */
- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
+ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
if (pk_backend_cancelled (self)) {
break;
} else {
@@ -894,6 +907,9 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
alpm_list_t *data = NULL;
gchar *prefix;
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
+
if (pk_backend_cancelled (self)) {
return TRUE;
}
@@ -901,7 +917,7 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
pk_backend_set_allow_cancel (self, FALSE);
pk_backend_set_status (self, PK_STATUS_ENUM_RUNNING);
- if (alpm_trans_commit (&data) >= 0) {
+ if (alpm_trans_commit (alpm, &data) >= 0) {
return TRUE;
}
@@ -945,9 +961,14 @@ gboolean
pk_backend_transaction_end (PkBackend *self, GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ alpm_option_set_eventcb (alpm, NULL);
+ alpm_option_set_questioncb (alpm, NULL);
+ alpm_option_set_progresscb (alpm, NULL);
- alpm_option_set_dlcb (NULL);
- alpm_option_set_totaldlcb (NULL);
+ alpm_option_set_dlcb (alpm, NULL);
+ alpm_option_set_totaldlcb (alpm, NULL);
if (dpkg != NULL) {
pk_backend_transaction_download_end (self);
@@ -956,7 +977,7 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
pk_backend_output_end (self);
}
- if (alpm_trans_release () < 0) {
+ if (alpm_trans_release (alpm) < 0) {
enum _alpm_errno_t errno = alpm_errno (alpm);
g_set_error_literal (error, ALPM_ERROR, errno,
alpm_strerror (errno));
diff --git a/backends/alpm/pk-backend-update.c b/backends/alpm/pk-backend-update.c
index ef3d9d7..96aca29 100644
--- a/backends/alpm/pk-backend-update.c
+++ b/backends/alpm/pk-backend-update.c
@@ -245,18 +245,19 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
const alpm_list_t *i;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
if (!pk_backend_transaction_initialize (self, 0, error)) {
return FALSE;
}
- alpm_logaction ("synchronizing package lists\n");
+ alpm_logaction (alpm, "synchronizing package lists\n");
- dlcb = alpm_option_get_dlcb ();
- totaldlcb = alpm_option_get_totaldlcb ();
+ dlcb = alpm_option_get_dlcb (alpm);
+ totaldlcb = alpm_option_get_totaldlcb (alpm);
/* set total size to minus the number of databases */
- i = alpm_option_get_syncdbs ();
+ i = alpm_option_get_syncdbs (alpm);
totaldlcb (-alpm_list_count (i));
for (; i != NULL; i = i->next) {
@@ -295,18 +296,19 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
static gboolean
alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
{
- const alpm_list_t *ignorepkgs, *ignoregrps, *i;
+ const alpm_list_t *ignorepkgs, *ignoregroups, *i;
g_return_val_if_fail (pkg != NULL, TRUE);
+ g_return_val_if_fail (alpm != NULL, TRUE);
- ignorepkgs = alpm_option_get_ignorepkgs ();
+ ignorepkgs = alpm_option_get_ignorepkgs (alpm);
if (alpm_list_find_str (ignorepkgs, alpm_pkg_get_name (pkg)) != NULL) {
return TRUE;
}
- ignoregrps = alpm_option_get_ignoregrps ();
+ ignoregroups = alpm_option_get_ignoregroups (alpm);
for (i = alpm_pkg_get_groups (pkg); i != NULL; i = i->next) {
- if (alpm_list_find_str (ignoregrps, i->data) != NULL) {
+ if (alpm_list_find_str (ignoregroups, i->data) != NULL) {
return TRUE;
}
}
@@ -326,6 +328,16 @@ alpm_pkg_is_syncfirst (pmpkg_t *pkg)
return FALSE;
}
+static gboolean
+alpm_pkg_replaces (pmpkg_t *pkg, const gchar *name)
+{
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (name != NULL, FALSE);
+
+ return alpm_list_find_str (alpm_pkg_get_replaces (pkg), name) != NULL;
+}
+
+
static pmpkg_t *
alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
{
@@ -350,8 +362,7 @@ alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
i = alpm_db_get_pkgcache (dbs->data);
for (; i != NULL; i = i->next) {
- if (alpm_list_find_str (alpm_pkg_get_replaces (i->data),
- name) != NULL) {
+ if (alpm_pkg_replaces (i->data, name)) {
return i->data;
}
}
@@ -368,6 +379,7 @@ pk_backend_get_updates_thread (PkBackend *self)
const alpm_list_t *i, *syncdbs;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
g_return_val_if_fail (localdb != NULL, FALSE);
time (&one_hour_ago);
@@ -386,7 +398,7 @@ pk_backend_get_updates_thread (PkBackend *self)
}
/* find outdated and replacement packages */
- syncdbs = alpm_option_get_syncdbs ();
+ syncdbs = alpm_option_get_syncdbs (alpm);
for (i = alpm_db_get_pkgcache (localdb); i != NULL; i = i->next) {
pmpkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
commit 074de85e467170ae56570ecd5bd2d388dc85a149
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 22:44:37 2011 +1300
alpm: port enum constants to new API
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 2637d79..1e6d732 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -178,12 +178,12 @@ pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
/* report important output to PackageKit */
switch (level) {
- case PM_LOG_DEBUG:
- case PM_LOG_FUNCTION:
+ case ALPM_LOG_DEBUG:
+ case ALPM_LOG_FUNCTION:
g_debug ("%s", output);
break;
- case PM_LOG_WARNING:
+ case ALPM_LOG_WARNING:
g_warning ("%s", output);
pk_backend_output (backend, output);
break;
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index bcc64bc..a41dbd9 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -471,7 +471,7 @@ pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
return FALSE;
}
} else if (strstr (url, "$arch") != NULL) {
- g_set_error (e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
+ g_set_error (e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
"url contained $arch, which is not set");
}
@@ -535,7 +535,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
if (*str == '\0') {
g_set_error (&e, ALPM_ERROR,
- PM_ERR_CONFIG_INVALID,
+ ALPM_ERR_CONFIG_INVALID,
"empty section name");
break;
}
@@ -552,7 +552,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
/* parse a directive */
if (section == NULL) {
- g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
+ g_set_error (&e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
"directive must belong to a section");
break;
}
@@ -612,7 +612,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
}
/* report errors from above */
- g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
+ g_set_error (&e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
"unrecognised directive '%s'", key);
break;
}
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index ef31e53..17377d4 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -306,7 +306,7 @@ pk_backend_repo_enable_thread (PkBackend *self)
pk_backend_repo_list_changed (self);
}
} else {
- int code = PM_ERR_DB_NOT_NULL;
+ int code = ALPM_ERR_DB_NOT_NULL;
g_set_error (&error, ALPM_ERROR, code, "[%s]: %s",
repo, alpm_strerror (code));
}
@@ -354,7 +354,7 @@ pk_backend_repo_disable_thread (PkBackend *self)
}
if (i == NULL) {
- int code = PM_ERR_DB_NULL;
+ int code = ALPM_ERR_DB_NULL;
g_set_error (&error, ALPM_ERROR, code, "[%s]: %s", repo,
alpm_strerror (code));
}
diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
index 8bb8567..177febe 100644
--- a/backends/alpm/pk-backend-depends.c
+++ b/backends/alpm/pk-backend-depends.c
@@ -96,7 +96,7 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
pkgs = alpm_list_add (pkgs, provider);
}
} else {
- int code = PM_ERR_UNSATISFIED_DEPS;
+ int code = ALPM_ERR_UNSATISFIED_DEPS;
g_set_error (error, ALPM_ERROR, code, "%s: %s", depend,
alpm_strerror (code));
}
@@ -127,7 +127,7 @@ pk_backend_find_requirer (PkBackend *self, alpm_list_t *pkgs, const gchar *name,
pkgs = alpm_list_add (pkgs, requirer);
}
} else {
- int code = PM_ERR_PKG_NOT_FOUND;
+ int code = ALPM_ERR_PKG_NOT_FOUND;
g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
alpm_strerror (code));
}
diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
index ac8fd17..2f34232 100644
--- a/backends/alpm/pk-backend-error.c
+++ b/backends/alpm/pk-backend-error.c
@@ -39,145 +39,145 @@ pk_backend_error (PkBackend *self, GError *error)
}
switch (error->code) {
- case PM_ERR_MEMORY:
- case PM_ERR_SYSTEM:
+ case ALPM_ERR_MEMORY:
+ case ALPM_ERR_SYSTEM:
code = PK_ERROR_ENUM_OOM;
break;
- case PM_ERR_BADPERMS:
+ case ALPM_ERR_BADPERMS:
code = PK_ERROR_ENUM_NOT_AUTHORIZED;
break;
- case PM_ERR_NOT_A_FILE:
- case PM_ERR_NOT_A_DIR:
+ case ALPM_ERR_NOT_A_FILE:
+ case ALPM_ERR_NOT_A_DIR:
code = PK_ERROR_ENUM_FILE_NOT_FOUND;
break;
- case PM_ERR_WRONG_ARGS:
- case PM_ERR_HANDLE_NULL:
- case PM_ERR_DB_NULL:
- case PM_ERR_TRANS_NULL:
- case PM_ERR_TRANS_NOT_INITIALIZED:
- case PM_ERR_TRANS_NOT_PREPARED:
- case PM_ERR_TRANS_NOT_LOCKED:
- case PM_ERR_INVALID_REGEX:
+ case ALPM_ERR_WRONG_ARGS:
+ case ALPM_ERR_HANDLE_NULL:
+ case ALPM_ERR_DB_NULL:
+ case ALPM_ERR_TRANS_NULL:
+ case ALPM_ERR_TRANS_NOT_INITIALIZED:
+ case ALPM_ERR_TRANS_NOT_PREPARED:
+ case ALPM_ERR_TRANS_NOT_LOCKED:
+ case ALPM_ERR_INVALID_REGEX:
code = PK_ERROR_ENUM_INTERNAL_ERROR;
break;
- case PM_ERR_DISK_SPACE:
+ case ALPM_ERR_DISK_SPACE:
code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
break;
- case PM_ERR_HANDLE_NOT_NULL:
- case PM_ERR_DB_NOT_NULL:
- case PM_ERR_TRANS_NOT_NULL:
+ case ALPM_ERR_HANDLE_NOT_NULL:
+ case ALPM_ERR_DB_NOT_NULL:
+ case ALPM_ERR_TRANS_NOT_NULL:
code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
break;
- case PM_ERR_HANDLE_LOCK:
+ case ALPM_ERR_HANDLE_LOCK:
code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
break;
- case PM_ERR_DB_OPEN:
- case PM_ERR_DB_NOT_FOUND:
- case PM_ERR_PKG_REPO_NOT_FOUND:
+ case ALPM_ERR_DB_OPEN:
+ case ALPM_ERR_DB_NOT_FOUND:
+ case ALPM_ERR_PKG_REPO_NOT_FOUND:
code = PK_ERROR_ENUM_REPO_NOT_FOUND;
break;
- case PM_ERR_DB_CREATE:
+ case ALPM_ERR_DB_CREATE:
code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
break;
- case PM_ERR_DB_VERSION:
- case PM_ERR_DB_REMOVE:
- case PM_ERR_SERVER_BAD_URL:
- case PM_ERR_SIG_MISSINGDIR:
+ case ALPM_ERR_DB_VERSION:
+ case ALPM_ERR_DB_REMOVE:
+ case ALPM_ERR_SERVER_BAD_URL:
+ case ALPM_ERR_SIG_MISSINGDIR:
code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
break;
- case PM_ERR_DB_WRITE:
+ case ALPM_ERR_DB_WRITE:
code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
break;
- case PM_ERR_SERVER_NONE:
+ case ALPM_ERR_SERVER_NONE:
code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
break;
- case PM_ERR_TRANS_DUP_TARGET:
- case PM_ERR_TRANS_ABORT:
+ case ALPM_ERR_TRANS_DUP_TARGET:
+ case ALPM_ERR_TRANS_ABORT:
code = PK_ERROR_ENUM_TRANSACTION_ERROR;
break;
- case PM_ERR_TRANS_TYPE:
+ case ALPM_ERR_TRANS_TYPE:
code = PK_ERROR_ENUM_CANNOT_CANCEL;
break;
- case PM_ERR_PKG_NOT_FOUND:
+ case ALPM_ERR_PKG_NOT_FOUND:
code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
break;
- case PM_ERR_PKG_IGNORED:
+ case ALPM_ERR_PKG_IGNORED:
code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
break;
- case PM_ERR_PKG_INVALID:
- case PM_ERR_PKG_OPEN:
- case PM_ERR_PKG_INVALID_NAME:
- case PM_ERR_DLT_INVALID:
+ case ALPM_ERR_PKG_INVALID:
+ case ALPM_ERR_PKG_OPEN:
+ case ALPM_ERR_PKG_INVALID_NAME:
+ case ALPM_ERR_DLT_INVALID:
code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
break;
- case PM_ERR_PKG_CANT_REMOVE:
+ case ALPM_ERR_PKG_CANT_REMOVE:
code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
break;
- case PM_ERR_PKG_INVALID_ARCH:
+ case ALPM_ERR_PKG_INVALID_ARCH:
code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
break;
- case PM_ERR_SIG_INVALID:
+ case ALPM_ERR_SIG_INVALID:
code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
break;
- case PM_ERR_SIG_UNKNOWN:
+ case ALPM_ERR_SIG_UNKNOWN:
code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
break;
- case PM_ERR_DLT_PATCHFAILED:
+ case ALPM_ERR_DLT_PATCHFAILED:
code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
break;
- case PM_ERR_UNSATISFIED_DEPS:
+ case ALPM_ERR_UNSATISFIED_DEPS:
code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
break;
- case PM_ERR_CONFLICTING_DEPS:
+ case ALPM_ERR_CONFLICTING_DEPS:
code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
break;
- case PM_ERR_FILE_CONFLICTS:
+ case ALPM_ERR_FILE_CONFLICTS:
code = PK_ERROR_ENUM_FILE_CONFLICTS;
break;
- case PM_ERR_RETRIEVE:
- case PM_ERR_LIBCURL:
- case PM_ERR_EXTERNAL_DOWNLOAD:
+ case ALPM_ERR_RETRIEVE:
+ case ALPM_ERR_LIBCURL:
+ case ALPM_ERR_EXTERNAL_DOWNLOAD:
code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
break;
- case PM_ERR_LIBARCHIVE:
+ case ALPM_ERR_LIBARCHIVE:
code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
break;
- case PM_ERR_GPGME:
+ case ALPM_ERR_GPGME:
code = PK_ERROR_ENUM_GPG_FAILURE;
break;
- case PM_ERR_CONFIG_INVALID:
+ case ALPM_ERR_CONFIG_INVALID:
code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
break;
- case PM_ERR_PKG_HELD:
+ case ALPM_ERR_PKG_HELD:
code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
break;
}
diff --git a/backends/alpm/pk-backend-error.h b/backends/alpm/pk-backend-error.h
index 83fe4a5..0a029e4 100644
--- a/backends/alpm/pk-backend-error.h
+++ b/backends/alpm/pk-backend-error.h
@@ -26,8 +26,8 @@
#define ALPM_ERROR (alpm_error_quark ())
enum {
- PM_ERR_CONFIG_INVALID = 0x10000,
- PM_ERR_PKG_HELD
+ ALPM_ERR_CONFIG_INVALID = 0x10000,
+ ALPM_ERR_PKG_HELD
};
void pk_backend_error (PkBackend *self, GError *error);
diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
index e9a7c94..1cc20df 100644
--- a/backends/alpm/pk-backend-packages.c
+++ b/backends/alpm/pk-backend-packages.c
@@ -111,7 +111,7 @@ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
}
if (pkg == NULL) {
- int code = PM_ERR_PKG_NOT_FOUND;
+ int code = ALPM_ERR_PKG_NOT_FOUND;
g_set_error (error, ALPM_ERROR, code, "%s: %s", package_id,
alpm_strerror (code));
}
@@ -191,7 +191,7 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
}
}
- code = PM_ERR_PKG_NOT_FOUND;
+ code = ALPM_ERR_PKG_NOT_FOUND;
g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
alpm_strerror (code));
return FALSE;
diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
index 0a6c06a..f760978 100644
--- a/backends/alpm/pk-backend-remove.c
+++ b/backends/alpm/pk-backend-remove.c
@@ -72,7 +72,7 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
const gchar *name = alpm_pkg_get_name (i->data);
if (alpm_list_find_str (holdpkgs, name)) {
- g_set_error (error, ALPM_ERROR, PM_ERR_PKG_HELD,
+ g_set_error (error, ALPM_ERROR, ALPM_ERR_PKG_HELD,
"%s: %s", name,
"could not remove HoldPkg");
return FALSE;
@@ -85,14 +85,14 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
static gboolean
pk_backend_simulate_remove_packages_thread (PkBackend *self)
{
- pmtransflag_t flags = PM_TRANS_FLAG_CASCADE;
+ pmtransflag_t flags = ALPM_TRANS_FLAG_CASCADE;
GError *error = NULL;
g_return_val_if_fail (self != NULL, FALSE);
/* remove unneeded packages that were required by those to be removed */
if (pk_backend_get_bool (self, "autoremove")) {
- flags |= PM_TRANS_FLAG_RECURSE;
+ flags |= ALPM_TRANS_FLAG_RECURSE;
}
if (pk_backend_transaction_initialize (self, flags, &error) &&
@@ -114,11 +114,11 @@ pk_backend_remove_packages_thread (PkBackend *self)
/* remove packages that depend on those to be removed */
if (pk_backend_get_bool (self, "allow_deps")) {
- flags |= PM_TRANS_FLAG_CASCADE;
+ flags |= ALPM_TRANS_FLAG_CASCADE;
}
/* remove unneeded packages that were required by those to be removed */
if (pk_backend_get_bool (self, "autoremove")) {
- flags |= PM_TRANS_FLAG_RECURSE;
+ flags |= ALPM_TRANS_FLAG_RECURSE;
}
if (pk_backend_transaction_initialize (self, flags, &error) &&
diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
index 40b4018..ace7f0d 100644
--- a/backends/alpm/pk-backend-sync.c
+++ b/backends/alpm/pk-backend-sync.c
@@ -56,7 +56,7 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
}
if (i == NULL) {
- enum _alpm_errno_t errno = PM_ERR_DB_NOT_FOUND;
+ enum _alpm_errno_t errno = ALPM_ERR_DB_NOT_FOUND;
g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
repo, name, alpm_strerror (errno));
g_strfreev (package);
@@ -97,9 +97,9 @@ pk_backend_download_packages_thread (PkBackend *self)
alpm_option_set_cachedirs (alpm_list_add (NULL, cachedir));
}
- flags |= PM_TRANS_FLAG_NODEPS;
- flags |= PM_TRANS_FLAG_NOCONFLICTS;
- flags |= PM_TRANS_FLAG_DOWNLOADONLY;
+ flags |= ALPM_TRANS_FLAG_NODEPS;
+ flags |= ALPM_TRANS_FLAG_NOCONFLICTS;
+ flags |= ALPM_TRANS_FLAG_DOWNLOADONLY;
if (pk_backend_transaction_initialize (self, flags, &error) &&
pk_backend_transaction_sync_targets (self, &error) &&
@@ -198,7 +198,7 @@ pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
continue;
}
- if (alpm_pkg_get_reason (rpkg) == PM_PKG_REASON_EXPLICIT) {
+ if (alpm_pkg_get_reason (rpkg) == ALPM_PKG_REASON_EXPLICIT) {
return FALSE;
}
}
@@ -244,7 +244,7 @@ pk_backend_update_packages_thread (PkBackend *self)
for (i = asdeps; i != NULL; i = i->next) {
const gchar *name = (const gchar *) i->data;
- alpm_db_set_pkgreason (localdb, name, PM_PKG_REASON_DEPEND);
+ alpm_db_set_pkgreason (localdb, name, ALPM_PKG_REASON_DEPEND);
}
out:
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index ef65c15..0609bf1 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -209,9 +209,9 @@ pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
gsize overall = percent + (current - 1) * 100;
/* TODO: revert when fixed upstream */
- if (type == PM_TRANS_PROGRESS_CONFLICTS_START ||
- type == PM_TRANS_PROGRESS_DISKSPACE_START ||
- type == PM_TRANS_PROGRESS_INTEGRITY_START) {
+ if (type == ALPM_PROGRESS_CONFLICTS_START ||
+ type == ALPM_PROGRESS_DISKSPACE_START ||
+ type == ALPM_PROGRESS_INTEGRITY_START) {
if (current < targets) {
overall = percent + current++ * 100;
}
@@ -228,12 +228,12 @@ pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
/* update transaction progress */
switch (type) {
- case PM_TRANS_PROGRESS_ADD_START:
- case PM_TRANS_PROGRESS_UPGRADE_START:
- case PM_TRANS_PROGRESS_REMOVE_START:
- case PM_TRANS_PROGRESS_CONFLICTS_START:
- case PM_TRANS_PROGRESS_DISKSPACE_START:
- case PM_TRANS_PROGRESS_INTEGRITY_START:
+ case ALPM_PROGRESS_ADD_START:
+ case ALPM_PROGRESS_UPGRADE_START:
+ case ALPM_PROGRESS_REMOVE_START:
+ case ALPM_PROGRESS_CONFLICTS_START:
+ case ALPM_PROGRESS_DISKSPACE_START:
+ case ALPM_PROGRESS_INTEGRITY_START:
if (percent == recent) {
break;
}
@@ -305,25 +305,25 @@ pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
g_return_if_fail (backend != NULL);
switch (question) {
- case PM_TRANS_CONV_INSTALL_IGNOREPKG:
+ case ALPM_QUESTION_INSTALL_IGNOREPKG:
pk_backend_install_ignorepkg (backend, data1, result);
break;
- case PM_TRANS_CONV_REPLACE_PKG:
- case PM_TRANS_CONV_CONFLICT_PKG:
- case PM_TRANS_CONV_CORRUPTED_PKG:
- case PM_TRANS_CONV_LOCAL_NEWER:
+ case ALPM_QUESTION_REPLACE_PKG:
+ case ALPM_QUESTION_CONFLICT_PKG:
+ case ALPM_QUESTION_CORRUPTED_PKG:
+ case ALPM_QUESTION_LOCAL_NEWER:
/* these actions are mostly harmless */
g_debug ("safe question %d", question);
*result = 1;
break;
- case PM_TRANS_CONV_REMOVE_PKGS:
+ case ALPM_QUESTION_REMOVE_PKGS:
g_debug ("unsafe question %d", question);
*result = 0;
break;
- case PM_TRANS_CONV_SELECT_PROVIDER:
+ case ALPM_QUESTION_SELECT_PROVIDER:
pk_backend_select_provider (backend, data1, data2);
*result = 0;
break;
@@ -535,46 +535,46 @@ pk_backend_transaction_event_cb (pmtransevt_t event, gpointer data,
/* figure out the backend status and package info */
switch (event) {
- case PM_TRANS_EVT_CHECKDEPS_START:
- case PM_TRANS_EVT_RESOLVEDEPS_START:
+ case ALPM_EVENT_CHECKDEPS_START:
+ case ALPM_EVENT_RESOLVEDEPS_START:
pk_backend_transaction_dep_resolve (backend);
break;
- case PM_TRANS_EVT_FILECONFLICTS_START:
- case PM_TRANS_EVT_INTERCONFLICTS_START:
- case PM_TRANS_EVT_INTEGRITY_START:
- case PM_TRANS_EVT_DELTA_INTEGRITY_START:
- case PM_TRANS_EVT_DISKSPACE_START:
+ case ALPM_EVENT_FILECONFLICTS_START:
+ case ALPM_EVENT_INTERCONFLICTS_START:
+ case ALPM_EVENT_INTEGRITY_START:
+ case ALPM_EVENT_DELTA_INTEGRITY_START:
+ case ALPM_EVENT_DISKSPACE_START:
pk_backend_transaction_test_commit (backend);
break;
- case PM_TRANS_EVT_ADD_START:
+ case ALPM_EVENT_ADD_START:
pk_backend_transaction_add_start (backend, data);
break;
- case PM_TRANS_EVT_ADD_DONE:
+ case ALPM_EVENT_ADD_DONE:
pk_backend_transaction_add_done (backend, data);
break;
- case PM_TRANS_EVT_REMOVE_START:
+ case ALPM_EVENT_REMOVE_START:
pk_backend_transaction_remove_start (backend, data);
break;
- case PM_TRANS_EVT_REMOVE_DONE:
+ case ALPM_EVENT_REMOVE_DONE:
pk_backend_transaction_remove_done (backend, data);
break;
- case PM_TRANS_EVT_UPGRADE_START:
+ case ALPM_EVENT_UPGRADE_START:
pk_backend_transaction_upgrade_start (backend, data,
old);
break;
- case PM_TRANS_EVT_UPGRADE_DONE:
+ case ALPM_EVENT_UPGRADE_DONE:
pk_backend_transaction_upgrade_done (backend, data,
old);
break;
- case PM_TRANS_EVT_SCRIPTLET_INFO:
+ case ALPM_EVENT_SCRIPTLET_INFO:
pk_backend_output (backend, data);
break;
@@ -777,24 +777,24 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
}
switch (alpm_errno (alpm)) {
- case PM_ERR_PKG_INVALID_ARCH:
+ case ALPM_ERR_PKG_INVALID_ARCH:
prefix = alpm_pkg_build_list (data);
alpm_list_free (data);
break;
- case PM_ERR_UNSATISFIED_DEPS:
+ case ALPM_ERR_UNSATISFIED_DEPS:
prefix = alpm_miss_build_list (data);
alpm_list_free_inner (data, alpm_miss_free);
alpm_list_free (data);
break;
- case PM_ERR_CONFLICTING_DEPS:
+ case ALPM_ERR_CONFLICTING_DEPS:
prefix = alpm_conflict_build_list (data);
alpm_list_free_inner (data, alpm_conflict_free);
alpm_list_free (data);
break;
- case PM_ERR_FILE_CONFLICTS:
+ case ALPM_ERR_FILE_CONFLICTS:
prefix = alpm_fileconflict_build_list (data);
alpm_list_free_inner (data, alpm_fileconflict_free);
alpm_list_free (data);
@@ -906,14 +906,14 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
}
switch (alpm_errno (alpm)) {
- case PM_ERR_FILE_CONFLICTS:
+ case ALPM_ERR_FILE_CONFLICTS:
prefix = alpm_fileconflict_build_list (data);
alpm_list_free_inner (data, alpm_fileconflict_free);
alpm_list_free (data);
break;
- case PM_ERR_PKG_INVALID:
- case PM_ERR_DLT_INVALID:
+ case ALPM_ERR_PKG_INVALID:
+ case ALPM_ERR_DLT_INVALID:
prefix = alpm_string_build_list (data);
alpm_list_free (data);
break;
commit 972ceed5c01349abbeb3a5a5aefdda2a5181bd8f
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 22:38:18 2011 +1300
alpm: port error messagess to new API
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index 827199d..2637d79 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -224,8 +224,9 @@ pk_backend_initialize_alpm (PkBackend *self, GError **error)
localdb = alpm_option_get_localdb (alpm);
if (localdb == NULL) {
- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s", "local",
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s", "local",
+ alpm_strerror (errno));
}
return TRUE;
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index b483fbc..ef31e53 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -341,9 +341,10 @@ pk_backend_repo_disable_thread (PkBackend *self)
if (g_strcmp0 (repo, name) == 0) {
if (alpm_db_unregister (db) < 0) {
- g_set_error (&error, ALPM_ERROR, pm_errno,
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (&error, ALPM_ERROR, errno,
"[%s]: %s", repo,
- alpm_strerrorlast ());
+ alpm_strerror (errno));
} else {
g_hash_table_insert (disabled, g_strdup (repo),
GINT_TO_POINTER (1));
diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
index 65a6c11..36bbd6e 100644
--- a/backends/alpm/pk-backend-install.c
+++ b/backends/alpm/pk-backend-install.c
@@ -61,8 +61,9 @@ pk_backend_transaction_add_targets (PkBackend *self, GError **error)
for (; *paths != NULL; ++paths) {
if (alpm_add_file (*paths) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
- *paths, alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "%s: %s",
+ *paths, alpm_strerror (errno));
return FALSE;
}
}
diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
index 03329b1..0a6c06a 100644
--- a/backends/alpm/pk-backend-remove.c
+++ b/backends/alpm/pk-backend-remove.c
@@ -29,29 +29,13 @@
#include "pk-backend-remove.h"
#include "pk-backend-transaction.h"
-static gint
-alpm_remove_local (const gchar *name)
-{
- pmpkg_t *pkg;
-
- g_return_val_if_fail (name != NULL, -1);
- g_return_val_if_fail (localdb != NULL, -1);
-
- pkg = alpm_db_get_pkg (localdb, name);
- if (pkg == NULL) {
- pm_errno = PM_ERR_PKG_NOT_FOUND;
- return -1;
- }
-
- return alpm_remove_pkg (pkg);
-}
-
static gboolean
pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
{
gchar **packages;
g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
packages = pk_backend_get_strv (self, "package_ids");
@@ -61,9 +45,11 @@ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
gchar **package = pk_package_id_split (*packages);
gchar *name = package[PK_PACKAGE_ID_NAME];
- if (alpm_remove_local (name) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
- name, alpm_strerrorlast ());
+ pmpkg_t *pkg = alpm_db_get_pkg (localdb, name);
+ if (pkg == NULL || alpm_remove_pkg (pkg) < 0) {
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "%s: %s", name,
+ alpm_strerror (errno));
g_strfreev (package);
return FALSE;
}
diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
index 9e1e02b..40b4018 100644
--- a/backends/alpm/pk-backend-sync.c
+++ b/backends/alpm/pk-backend-sync.c
@@ -30,35 +30,6 @@
#include "pk-backend-sync.h"
#include "pk-backend-transaction.h"
-static gint
-alpm_add_dbtarget (const gchar *repo, const gchar *name)
-{
- const alpm_list_t *i;
- pmpkg_t *pkg;
-
- g_return_val_if_fail (repo != NULL, -1);
- g_return_val_if_fail (name != NULL, -1);
-
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
- if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
- break;
- }
- }
-
- if (i == NULL) {
- pm_errno = PM_ERR_DB_NOT_FOUND;
- return -1;
- }
-
- pkg = alpm_db_get_pkg (i->data, name);
- if (pkg == NULL) {
- pm_errno = PM_ERR_PKG_NOT_FOUND;
- return -1;
- }
-
- return alpm_add_pkg (pkg);
-}
-
static gboolean
pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
{
@@ -75,9 +46,28 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
gchar *repo = package[PK_PACKAGE_ID_DATA];
gchar *name = package[PK_PACKAGE_ID_NAME];
- if (alpm_add_dbtarget (repo, name) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "%s/%s: %s",
- repo, name, alpm_strerrorlast ());
+ const alpm_list_t *i;
+ pmpkg_t *pkg;
+
+ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+ if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
+ break;
+ }
+ }
+
+ if (i == NULL) {
+ enum _alpm_errno_t errno = PM_ERR_DB_NOT_FOUND;
+ g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
+ repo, name, alpm_strerror (errno));
+ g_strfreev (package);
+ return FALSE;
+ }
+
+ pkg = alpm_db_get_pkg (i->data, name);
+ if (pkg == NULL || alpm_add_pkg (pkg) < 0) {
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
+ repo, name, alpm_strerror (errno));
g_strfreev (package);
return FALSE;
}
diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
index fdb840e..ef65c15 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
@@ -602,8 +602,9 @@ pk_backend_transaction_initialize (PkBackend *self, pmtransflag_t flags,
if (alpm_trans_init (flags, pk_backend_transaction_event_cb,
pk_backend_transaction_conv_cb,
pk_backend_transaction_progress_cb) < 0) {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
return FALSE;
}
@@ -775,7 +776,7 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
return TRUE;
}
- switch (pm_errno) {
+ switch (alpm_errno (alpm)) {
case PM_ERR_PKG_INVALID_ARCH:
prefix = alpm_pkg_build_list (data);
alpm_list_free (data);
@@ -802,18 +803,21 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
default:
prefix = NULL;
if (data != NULL) {
- g_warning ("unhandled error %d", pm_errno);
+ g_warning ("unhandled error %d",
+ alpm_errno (alpm));
}
break;
}
if (prefix != NULL) {
- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "%s: %s", prefix,
+ alpm_strerror (errno));
g_free (prefix);
} else {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
}
return FALSE;
@@ -901,7 +905,7 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
return TRUE;
}
- switch (pm_errno) {
+ switch (alpm_errno (alpm)) {
case PM_ERR_FILE_CONFLICTS:
prefix = alpm_fileconflict_build_list (data);
alpm_list_free_inner (data, alpm_fileconflict_free);
@@ -917,18 +921,21 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
default:
prefix = NULL;
if (data != NULL) {
- g_warning ("unhandled error %d", pm_errno);
+ g_warning ("unhandled error %d",
+ alpm_errno (alpm));
}
break;
}
if (prefix != NULL) {
- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "%s: %s", prefix,
+ alpm_strerror (errno));
g_free (prefix);
} else {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
}
return FALSE;
@@ -950,8 +957,9 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
}
if (alpm_trans_release () < 0) {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
return FALSE;
}
diff --git a/backends/alpm/pk-backend-update.c b/backends/alpm/pk-backend-update.c
index a281953..ef3d9d7 100644
--- a/backends/alpm/pk-backend-update.c
+++ b/backends/alpm/pk-backend-update.c
@@ -274,9 +274,10 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
/* fake the download when already up to date */
dlcb ("", 1, 1);
} else if (result < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
alpm_db_get_name (i->data),
- alpm_strerrorlast ());
+ alpm_strerror (errno));
break;
}
}
commit f6a73d2bb4fba0707ce7034d96763221f0f46700
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 22:11:22 2011 +1300
alpm: port configuration logic to new API
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index c3591b9..827199d 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -26,6 +26,7 @@
#include <sys/utsname.h>
#include "pk-backend-alpm.h"
+#include "pk-backend-config.h"
#include "pk-backend-databases.h"
#include "pk-backend-error.h"
#include "pk-backend-groups.h"
@@ -35,6 +36,7 @@ PkBackend *backend = NULL;
GCancellable *cancellable = NULL;
static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+alpm_handle_t *alpm = NULL;
pmdb_t *localdb = NULL;
gchar *xfercmd = NULL;
@@ -212,27 +214,20 @@ pk_backend_initialize_alpm (PkBackend *self, GError **error)
g_setenv ("HTTP_USER_AGENT", user_agent, FALSE);
g_free (user_agent);
- g_debug ("initializing");
- if (alpm_initialize () < 0) {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
+ alpm = pk_backend_configure (PK_BACKEND_CONFIG_FILE, error);
+ if (alpm == NULL) {
return FALSE;
}
backend = self;
- localdb = alpm_option_get_localdb ();
+ alpm_option_set_logcb (alpm, pk_backend_logcb);
+
+ localdb = alpm_option_get_localdb (alpm);
if (localdb == NULL) {
g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s", "local",
alpm_strerrorlast ());
}
- /* set some sane defaults */
- alpm_option_set_logcb (pk_backend_logcb);
- alpm_option_set_root (PK_BACKEND_DEFAULT_ROOT);
- alpm_option_set_dbpath (PK_BACKEND_DEFAULT_DBPATH);
- alpm_option_set_signaturedir (PK_BACKEND_DEFAULT_GPGDIR);
- alpm_option_set_logfile (PK_BACKEND_DEFAULT_LOGFILE);
-
return TRUE;
}
@@ -241,17 +236,20 @@ pk_backend_destroy_alpm (PkBackend *self)
{
g_return_if_fail (self != NULL);
- if (backend != NULL) {
- if (alpm_trans_get_flags () != -1) {
- alpm_trans_release ();
+ if (alpm != NULL) {
+ if (alpm_trans_get_flags (alpm) != -1) {
+ alpm_trans_release (alpm);
}
- alpm_release ();
+ alpm_release (alpm);
+
+ alpm = NULL;
backend = NULL;
}
FREELIST (syncfirsts);
FREELIST (holdpkgs);
g_free (xfercmd);
+ xfercmd = NULL;
}
void
diff --git a/backends/alpm/pk-backend-alpm.h b/backends/alpm/pk-backend-alpm.h
index 23a2724..7cdd8ce 100644
--- a/backends/alpm/pk-backend-alpm.h
+++ b/backends/alpm/pk-backend-alpm.h
@@ -28,6 +28,7 @@
extern PkBackend *backend;
extern GCancellable *cancellable;
+extern alpm_handle_t *alpm;
extern pmdb_t *localdb;
extern gchar *xfercmd;
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index a7d9efd..bcc64bc 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -28,19 +28,23 @@
#include "pk-backend-alpm.h"
#include "pk-backend-config.h"
+#include "pk-backend-databases.h"
#include "pk-backend-error.h"
-typedef struct {
- gboolean checkspace, ilovecandy, showsize, totaldl, usedelta, usesyslog;
+typedef struct
+{
+ gboolean checkspace, ilovecandy, showsize, totaldl, usedelta,
+ usesyslog;
- gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root, *xfercmd;
+ gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root,
+ *xfercmd;
- alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
- *noextracts, *noupgrades, *syncfirsts;
+ alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
+ *noextracts, *noupgrades, *syncfirsts;
- alpm_list_t *repos;
- GHashTable *servers;
- GRegex *xrepo, *xarch;
+ alpm_list_t *repos;
+ GHashTable *servers;
+ GRegex *xrepo, *xarch;
} PkBackendConfig;
static PkBackendConfig *
@@ -145,9 +149,10 @@ pk_backend_config_set_usesyslog (PkBackendConfig *config)
config->usesyslog = TRUE;
}
-typedef struct {
- const gchar *name;
- void (*func) (PkBackendConfig *config);
+typedef struct
+{
+ const gchar *name;
+ void (*func) (PkBackendConfig *config);
} PkBackendConfigBoolean;
/* keep this in alphabetical order */
@@ -275,9 +280,10 @@ pk_backend_config_set_xfercmd (PkBackendConfig *config, const gchar *command)
config->xfercmd = g_strdup (command);
}
-typedef struct {
- const gchar *name;
- void (*func) (PkBackendConfig *config, const gchar *s);
+typedef struct
+{
+ const gchar *name;
+ void (*func) (PkBackendConfig *config, const gchar *s);
} PkBackendConfigString;
/* keep this in alphabetical order */
@@ -370,9 +376,10 @@ pk_backend_config_add_syncfirst (PkBackendConfig *config, gchar *package)
config->syncfirsts = alpm_list_add (config->syncfirsts, package);
}
-typedef struct {
- const gchar *name;
- void (*func) (PkBackendConfig *config, gchar *value);
+typedef struct
+{
+ const gchar *name;
+ void (*func) (PkBackendConfig *config, gchar *value);
} PkBackendConfigList;
/* keep this in alphabetical order */
@@ -624,119 +631,96 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
}
}
-static gboolean
-pk_backend_config_configure_paths (PkBackendConfig *config, GError **error)
+static alpm_handle_t *
+pk_backend_config_initialize_alpm (PkBackendConfig *config, GError **error)
{
+ alpm_handle_t *handle;
+ enum _alpm_errno_t errno;
+ gsize dir = 1;
+
g_return_val_if_fail (config != NULL, FALSE);
- if (config->root == NULL) {
+ if (config->root == NULL || *config->root == '\0') {
config->root = g_strdup (PK_BACKEND_DEFAULT_ROOT);
- }
-
- if (alpm_option_set_root (config->root) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "RootDir: %s",
- alpm_strerrorlast ());
- return FALSE;
+ } else if (!g_str_has_suffix (config->root, G_DIR_SEPARATOR_S)) {
+ dir = 0;
}
if (config->dbpath == NULL) {
- config->dbpath = g_strconcat (alpm_option_get_root (),
- PK_BACKEND_DEFAULT_DBPATH + 1,
+ config->dbpath = g_strconcat (config->root,
+ PK_BACKEND_DEFAULT_DBPATH + dir,
NULL);
}
- if (alpm_option_set_dbpath (config->dbpath) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "DBPath: %s",
- alpm_strerrorlast ());
- return FALSE;
+ g_debug ("initializing alpm");
+ handle = alpm_initialize (config->root, config->dbpath, &errno);
+ if (handle == NULL) {
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
+ return handle;
}
if (config->gpgdir == NULL) {
- config->gpgdir = g_strconcat (alpm_option_get_root (),
- PK_BACKEND_DEFAULT_GPGDIR + 1,
+ config->gpgdir = g_strconcat (config->root,
+ PK_BACKEND_DEFAULT_GPGDIR + dir,
NULL);
}
- if (alpm_option_set_signaturedir (config->gpgdir) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "GPGDir: %s",
- alpm_strerrorlast ());
- return FALSE;
+ if (alpm_option_set_gpgdir (handle, config->gpgdir) < 0) {
+ errno = alpm_errno (handle);
+ g_set_error (error, ALPM_ERROR, errno, "GPGDir: %s",
+ alpm_strerror (errno));
+ return handle;
}
if (config->logfile == NULL) {
- config->logfile = g_strconcat (alpm_option_get_root (),
- PK_BACKEND_DEFAULT_LOGFILE + 1,
+ config->logfile = g_strconcat (config->root,
+ PK_BACKEND_DEFAULT_LOGFILE + dir,
NULL);
}
- alpm_option_set_logfile (config->logfile);
+ if (alpm_option_set_logfile (handle, config->logfile) < 0) {
+ errno = alpm_errno (handle);
+ g_set_error (error, ALPM_ERROR, errno, "LogFile: %s",
+ alpm_strerror (errno));
+ return handle;
+ }
if (config->cachedirs == NULL) {
- gchar *path = g_strconcat (alpm_option_get_root (),
- PK_BACKEND_DEFAULT_CACHEDIR + 1,
+ gchar *path = g_strconcat (config->root,
+ PK_BACKEND_DEFAULT_CACHEDIR + dir,
NULL);
config->cachedirs = alpm_list_add (NULL, path);
}
/* alpm takes ownership */
- alpm_option_set_cachedirs (config->cachedirs);
- config->cachedirs = NULL;
-
- return TRUE;
-}
-
-static gboolean
-pk_backend_config_configure_repos (PkBackendConfig *config, GError **error)
-{
- const alpm_list_t *i;
-
- g_return_val_if_fail (config != NULL, FALSE);
-
- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
- if (alpm_db_unregister (i->data) < 0) {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
- return FALSE;
- }
- }
-
- for (i = config->repos; i != NULL; i = i->next) {
- const gchar *key;
- gpointer value;
- pmdb_t *db;
- alpm_list_t *j;
-
- key = (const gchar *) i->data;
- value = g_hash_table_lookup (config->servers, key);
-
- db = alpm_db_register_sync (key);
- if (db == NULL) {
- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
- key, alpm_strerrorlast ());
- return FALSE;
- }
-
- for (j = (alpm_list_t *) value; j != NULL; j = j->next) {
- alpm_db_setserver (db, (const gchar *) j->data);
- }
+ if (alpm_option_set_cachedirs (handle, config->cachedirs) < 0) {
+ errno = alpm_errno (handle);
+ g_set_error (error, ALPM_ERROR, errno, "CacheDir: %s",
+ alpm_strerror (errno));
+ return handle;
}
+ config->cachedirs = NULL;
- return TRUE;
+ return handle;
}
-static gboolean
+static alpm_handle_t *
pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
{
+ alpm_handle_t *handle;
+
g_return_val_if_fail (config != NULL, FALSE);
- if (!pk_backend_config_configure_paths (config, error)) {
- return FALSE;
+ handle = pk_backend_config_initialize_alpm (config, error);
+ if (handle == NULL) {
+ return NULL;
}
- alpm_option_set_checkspace (config->checkspace);
- alpm_option_set_usedelta (config->usedelta);
- alpm_option_set_usesyslog (config->usesyslog);
- alpm_option_set_arch (config->arch);
+ alpm_option_set_checkspace (handle, config->checkspace);
+ alpm_option_set_usedelta (handle, config->usedelta);
+ alpm_option_set_usesyslog (handle, config->usesyslog);
+ alpm_option_set_arch (handle, config->arch);
/* backend takes ownership */
g_free (xfercmd);
@@ -744,9 +728,9 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
config->xfercmd = NULL;
if (xfercmd != NULL) {
- alpm_option_set_fetchcb (pk_backend_fetchcb);
+ alpm_option_set_fetchcb (handle, pk_backend_fetchcb);
} else {
- alpm_option_set_fetchcb (NULL);
+ alpm_option_set_fetchcb (handle, NULL);
}
/* backend takes ownership */
@@ -760,41 +744,52 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
config->syncfirsts = NULL;
/* alpm takes ownership */
- alpm_option_set_ignoregrps (config->ignoregrps);
+ alpm_option_set_ignoregrps (handle, config->ignoregrps);
config->ignoregrps = NULL;
/* alpm takes ownership */
- alpm_option_set_ignorepkgs (config->ignorepkgs);
+ alpm_option_set_ignorepkgs (handle, config->ignorepkgs);
config->ignorepkgs = NULL;
/* alpm takes ownership */
- alpm_option_set_noextracts (config->noextracts);
+ alpm_option_set_noextracts (handle, config->noextracts);
config->noextracts = NULL;
/* alpm takes ownership */
- alpm_option_set_noupgrades (config->noupgrades);
+ alpm_option_set_noupgrades (handle, config->noupgrades);
config->noupgrades = NULL;
- if (!pk_backend_config_configure_repos (config, error)) {
- return FALSE;
- }
+ pk_backend_configure_repos (config->repos, config->servers);
- return TRUE;
+ return handle;
}
-gboolean
+alpm_handle_t *
pk_backend_configure (const gchar *filename, GError **error)
{
PkBackendConfig *config;
- gboolean result;
+ alpm_handle_t *handle;
+ GError *e = NULL;
g_return_val_if_fail (filename != NULL, FALSE);
+ g_debug ("reading config from %s", filename);
config = pk_backend_config_new ();
- result = pk_backend_config_parse (config, filename, NULL, error) &&
- pk_backend_config_configure_alpm (config, error);
+ if (pk_backend_config_parse (config, filename, NULL, &e)) {
+ handle = pk_backend_config_configure_alpm (config, &e);
+ } else {
+ handle = NULL;
+ }
pk_backend_config_free (config);
- return result;
+ if (e != NULL) {
+ g_propagate_error (error, e);
+ if (handle != NULL) {
+ alpm_release (handle);
+ }
+ return NULL;
+ } else {
+ return handle;
+ }
}
diff --git a/backends/alpm/pk-backend-config.h b/backends/alpm/pk-backend-config.h
index cb8b8dc..412f59c 100644
--- a/backends/alpm/pk-backend-config.h
+++ b/backends/alpm/pk-backend-config.h
@@ -21,6 +21,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#include <alpm.h>
#include <glib.h>
-gboolean pk_backend_configure (const gchar *filename, GError **error);
+alpm_handle_t *pk_backend_configure (const gchar *filename, GError **error);
diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
index f6ab06e..b483fbc 100644
--- a/backends/alpm/pk-backend-databases.c
+++ b/backends/alpm/pk-backend-databases.c
@@ -26,7 +26,14 @@
#include "pk-backend-databases.h"
#include "pk-backend-error.h"
+typedef struct
+{
+ gchar *name;
+ alpm_list_t *servers;
+} PkBackendRepo;
+
static GHashTable *disabled = NULL;
+static alpm_list_t *configured = NULL;
static GHashTable *
disabled_repos_new (GError **error)
@@ -113,8 +120,8 @@ disabled_repos_free (GHashTable *table)
/* write all disabled repos line by line */
while (g_hash_table_iter_next (&iter, (gpointer *) &line, NULL) &&
- g_data_output_stream_put_string (output, line, NULL, NULL) &&
- g_data_output_stream_put_byte (output, '\n', NULL, NULL));
+ g_data_output_stream_put_string (output, line, NULL, NULL) &&
+ g_data_output_stream_put_byte (output, '\n', NULL, NULL));
g_object_unref (output);
g_object_unref (os);
@@ -128,37 +135,57 @@ disabled_repos_configure (GHashTable *table, GError **error)
{
const alpm_list_t *i;
- g_debug ("reading config from %s", PK_BACKEND_CONFIG_FILE);
+ g_return_val_if_fail (table != NULL, FALSE);
+ g_return_val_if_fail (alpm != NULL, FALSE);
- /* read configuration from pacman.conf file */
- if (!pk_backend_configure (PK_BACKEND_CONFIG_FILE, error)) {
+ if (alpm_db_unregister_all (alpm) < 0) {
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error_literal (error, ALPM_ERROR, errno,
+ alpm_strerror (errno));
return FALSE;
}
- /* disable disabled repos */
- for (i = alpm_option_get_syncdbs (); i != NULL;) {
- pmdb_t *db = (pmdb_t *) i->data;
- const gchar *repo = alpm_db_get_name (db);
+ for (i = configured; i != NULL; i = i->next) {
+ PkBackendRepo *repo = (PkBackendRepo *) i->data;
+ pmdb_t *db;
- if (g_hash_table_lookup (table, repo) == NULL) {
- /* repo is not disabled */
- i = i->next;
+ if (g_hash_table_lookup (table, repo->name) != NULL) {
+ /* repo is disabled */
continue;
}
- if (alpm_db_unregister (db) < 0) {
- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
- repo, alpm_strerrorlast ());
+ db = alpm_db_register_sync (alpm, repo->name);
+ if (db == NULL) {
+ enum _alpm_errno_t errno = alpm_errno (alpm);
+ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
+ repo->name, alpm_strerror (errno));
return FALSE;
}
- /* start again because the list gets invalidated */
- i = alpm_option_get_syncdbs ();
+ alpm_db_set_servers (db, alpm_list_strdup (repo->servers));
}
return TRUE;
}
+void
+pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers)
+{
+ alpm_list_t *i;
+
+ g_return_if_fail (servers != NULL);
+
+ for (i = repos; i != NULL; i = i->next) {
+ PkBackendRepo *repo = g_new (PkBackendRepo, 1);
+ gpointer value = g_hash_table_lookup (servers, i->data);
+
+ repo->name = g_strdup ((const gchar *) i->data);
+ repo->servers = alpm_list_strdup ((alpm_list_t *) value);
+
+ configured = alpm_list_add (configured, repo);
+ }
+}
+
gboolean
pk_backend_initialize_databases (PkBackend *self, GError **error)
{
@@ -179,11 +206,21 @@ pk_backend_initialize_databases (PkBackend *self, GError **error)
void
pk_backend_destroy_databases (PkBackend *self)
{
+ alpm_list_t *i;
+
g_return_if_fail (self != NULL);
if (disabled != NULL) {
disabled_repos_free (disabled);
}
+
+ for (i = configured; i != NULL; i = i->next) {
+ PkBackendRepo *repo = (PkBackendRepo *) i->data;
+ g_free (repo->name);
+ FREELIST (repo->servers);
+ g_free (repo);
+ }
+ alpm_list_free (configured);
}
static gboolean
diff --git a/backends/alpm/pk-backend-databases.h b/backends/alpm/pk-backend-databases.h
index f9eb2f9..ea825f2 100644
--- a/backends/alpm/pk-backend-databases.h
+++ b/backends/alpm/pk-backend-databases.h
@@ -24,6 +24,9 @@
#include <alpm.h>
#include <pk-backend.h>
+void pk_backend_configure_repos (alpm_list_t *repos,
+ GHashTable *servers);
+
gboolean pk_backend_initialize_databases (PkBackend *self,
GError **error);
commit fcfe0fb1e51187df0f770601a2318af0303654f2
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 19:51:31 2011 +1300
alpm: add GPGDir config option
diff --git a/backends/alpm/Makefile.am b/backends/alpm/Makefile.am
index 5a5468a..d8c3dfc 100644
--- a/backends/alpm/Makefile.am
+++ b/backends/alpm/Makefile.am
@@ -5,6 +5,7 @@ PK_BACKEND_REPO_FILE = $(confdir)/repos.list
PK_BACKEND_DEFAULT_PATH = "/bin:/usr/bin:/sbin:/usr/sbin"
PK_BACKEND_DEFAULT_ROOT = "/"
PK_BACKEND_DEFAULT_DBPATH = $(localstatedir)/lib/pacman/
+PK_BACKEND_DEFAULT_GPGDIR = $(sysconfdir)/pacman.d/gnupg/
PK_BACKEND_DEFAULT_CACHEDIR = $(localstatedir)/cache/pacman/pkg/
PK_BACKEND_DEFAULT_LOGFILE = $(localstatedir)/log/pacman.log
@@ -17,6 +18,7 @@ DEFS = -DPK_BACKEND_CONFIG_FILE=\"$(PK_BACKEND_CONFIG_FILE)\" \
-DPK_BACKEND_DEFAULT_PATH=\"$(PK_BACKEND_DEFAULT_PATH)\" \
-DPK_BACKEND_DEFAULT_ROOT=\"$(PK_BACKEND_DEFAULT_ROOT)\" \
-DPK_BACKEND_DEFAULT_DBPATH=\"$(PK_BACKEND_DEFAULT_DBPATH)\" \
+ -DPK_BACKEND_DEFAULT_GPGDIR=\"$(PK_BACKEND_DEFAULT_GPGDIR)\" \
-DPK_BACKEND_DEFAULT_CACHEDIR=\"$(PK_BACKEND_DEFAULT_CACHEDIR)\" \
-DPK_BACKEND_DEFAULT_LOGFILE=\"$(PK_BACKEND_DEFAULT_LOGFILE)\" \
-DALPM_CACHE_PATH=\"$(ALPM_CACHE_PATH)\" \
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index ba993f0..c3591b9 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -230,6 +230,7 @@ pk_backend_initialize_alpm (PkBackend *self, GError **error)
alpm_option_set_logcb (pk_backend_logcb);
alpm_option_set_root (PK_BACKEND_DEFAULT_ROOT);
alpm_option_set_dbpath (PK_BACKEND_DEFAULT_DBPATH);
+ alpm_option_set_signaturedir (PK_BACKEND_DEFAULT_GPGDIR);
alpm_option_set_logfile (PK_BACKEND_DEFAULT_LOGFILE);
return TRUE;
diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
index 21a4c54..a7d9efd 100644
--- a/backends/alpm/pk-backend-config.c
+++ b/backends/alpm/pk-backend-config.c
@@ -33,7 +33,7 @@
typedef struct {
gboolean checkspace, ilovecandy, showsize, totaldl, usedelta, usesyslog;
- gchar *arch, *cleanmethod, *dbpath, *logfile, *root, *xfercmd;
+ gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root, *xfercmd;
alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
*noextracts, *noupgrades, *syncfirsts;
@@ -76,6 +76,7 @@ pk_backend_config_free (PkBackendConfig *config)
g_free (config->arch);
g_free (config->cleanmethod);
g_free (config->dbpath);
+ g_free (config->gpgdir);
g_free (config->logfile);
g_free (config->root);
g_free (config->xfercmd);
@@ -234,6 +235,17 @@ pk_backend_config_set_dbpath (PkBackendConfig *config, const gchar *path)
}
static void
+pk_backend_config_set_gpgdir (PkBackendConfig *config, const gchar *path)
+{
+ g_return_if_fail (config != NULL);
+ g_return_if_fail (path != NULL);
+
+ g_free (config->gpgdir);
+ config->gpgdir = g_strdup (path);
+}
+
+
+static void
pk_backend_config_set_logfile (PkBackendConfig *config, const gchar *filename)
{
g_return_if_fail (config != NULL);
@@ -274,6 +286,7 @@ static const PkBackendConfigString pk_backend_config_string_options[] = {
{ "CacheDir", pk_backend_config_add_cachedir },
{ "CleanMethod", pk_backend_config_set_cleanmethod },
{ "DBPath", pk_backend_config_set_dbpath },
+ { "GPGDir", pk_backend_config_set_gpgdir },
{ "LogFile", pk_backend_config_set_logfile },
{ "RootDir", pk_backend_config_set_root },
{ "XferCommand", pk_backend_config_set_xfercmd },
@@ -638,6 +651,18 @@ pk_backend_config_configure_paths (PkBackendConfig *config, GError **error)
return FALSE;
}
+ if (config->gpgdir == NULL) {
+ config->gpgdir = g_strconcat (alpm_option_get_root (),
+ PK_BACKEND_DEFAULT_GPGDIR + 1,
+ NULL);
+ }
+
+ if (alpm_option_set_signaturedir (config->gpgdir) < 0) {
+ g_set_error (error, ALPM_ERROR, pm_errno, "GPGDir: %s",
+ alpm_strerrorlast ());
+ return FALSE;
+ }
+
if (config->logfile == NULL) {
config->logfile = g_strconcat (alpm_option_get_root (),
PK_BACKEND_DEFAULT_LOGFILE + 1,
commit f2db7e1a74beb3738257ccac2f80b4a62f84fd4a
Author: Jonathan Conder <jonno.conder at gmail.com>
Date: Wed Oct 26 19:47:32 2011 +1300
alpm: add new error codes
diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
index 255f1fb..ac8fd17 100644
--- a/backends/alpm/pk-backend-error.c
+++ b/backends/alpm/pk-backend-error.c
@@ -33,140 +33,153 @@ pk_backend_error (PkBackend *self, GError *error)
g_return_if_fail (self != NULL);
g_return_if_fail (error != NULL);
- if (error->domain == ALPM_ERROR) {
- switch (error->code) {
- case PM_ERR_MEMORY:
- case PM_ERR_SYSTEM:
- code = PK_ERROR_ENUM_OOM;
- break;
-
- case PM_ERR_BADPERMS:
- code = PK_ERROR_ENUM_NOT_AUTHORIZED;
- break;
-
- case PM_ERR_NOT_A_FILE:
- case PM_ERR_NOT_A_DIR:
- code = PK_ERROR_ENUM_FILE_NOT_FOUND;
- break;
-
- case PM_ERR_WRONG_ARGS:
- case PM_ERR_HANDLE_NULL:
- case PM_ERR_DB_NULL:
- case PM_ERR_TRANS_NULL:
- case PM_ERR_TRANS_NOT_INITIALIZED:
- case PM_ERR_TRANS_NOT_PREPARED:
- case PM_ERR_TRANS_NOT_LOCKED:
- case PM_ERR_INVALID_REGEX:
- code = PK_ERROR_ENUM_INTERNAL_ERROR;
- break;
-
- case PM_ERR_DISK_SPACE:
- code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
- break;
-
- case PM_ERR_HANDLE_NOT_NULL:
- case PM_ERR_DB_NOT_NULL:
- case PM_ERR_TRANS_NOT_NULL:
- code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
- break;
-
- case PM_ERR_HANDLE_LOCK:
- code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
- break;
-
- case PM_ERR_DB_OPEN:
- case PM_ERR_DB_NOT_FOUND:
- case PM_ERR_PKG_REPO_NOT_FOUND:
- code = PK_ERROR_ENUM_REPO_NOT_FOUND;
- break;
-
- case PM_ERR_DB_CREATE:
- code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
- break;
-
- case PM_ERR_DB_VERSION:
- case PM_ERR_DB_REMOVE:
- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
- break;
-
- case PM_ERR_DB_WRITE:
- code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
- break;
-
- case PM_ERR_SERVER_BAD_URL:
- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
- break;
-
- case PM_ERR_SERVER_NONE:
- code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
- break;
-
- case PM_ERR_TRANS_DUP_TARGET:
- case PM_ERR_TRANS_ABORT:
- code = PK_ERROR_ENUM_TRANSACTION_ERROR;
- break;
-
- case PM_ERR_TRANS_TYPE:
- code = PK_ERROR_ENUM_CANNOT_CANCEL;
- break;
-
- case PM_ERR_PKG_NOT_FOUND:
- code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
- break;
-
- case PM_ERR_PKG_IGNORED:
- code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
- break;
-
- case PM_ERR_PKG_INVALID:
- case PM_ERR_PKG_OPEN:
- case PM_ERR_PKG_INVALID_NAME:
- case PM_ERR_DLT_INVALID:
- code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
- break;
-
- case PM_ERR_PKG_CANT_REMOVE:
- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
- break;
-
- case PM_ERR_PKG_INVALID_ARCH:
- code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
- break;
-
- case PM_ERR_DLT_PATCHFAILED:
- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
- break;
-
- case PM_ERR_UNSATISFIED_DEPS:
- code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
- break;
-
- case PM_ERR_CONFLICTING_DEPS:
- code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
- break;
-
- case PM_ERR_FILE_CONFLICTS:
- code = PK_ERROR_ENUM_FILE_CONFLICTS;
- break;
-
- case PM_ERR_RETRIEVE:
- case PM_ERR_LIBFETCH:
- case PM_ERR_EXTERNAL_DOWNLOAD:
- code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
- break;
-
- case PM_ERR_LIBARCHIVE:
- code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
- break;
-
- case PM_ERR_CONFIG_INVALID:
- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
- break;
-
- case PM_ERR_PKG_HELD:
- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
- break;
- }
+ if (error->domain != ALPM_ERROR) {
+ pk_backend_error_code (self, code, "%s", error->message);
+ return;
+ }
+
+ switch (error->code) {
+ case PM_ERR_MEMORY:
+ case PM_ERR_SYSTEM:
+ code = PK_ERROR_ENUM_OOM;
+ break;
+
+ case PM_ERR_BADPERMS:
+ code = PK_ERROR_ENUM_NOT_AUTHORIZED;
+ break;
+
+ case PM_ERR_NOT_A_FILE:
+ case PM_ERR_NOT_A_DIR:
+ code = PK_ERROR_ENUM_FILE_NOT_FOUND;
+ break;
+
+ case PM_ERR_WRONG_ARGS:
+ case PM_ERR_HANDLE_NULL:
+ case PM_ERR_DB_NULL:
+ case PM_ERR_TRANS_NULL:
+ case PM_ERR_TRANS_NOT_INITIALIZED:
+ case PM_ERR_TRANS_NOT_PREPARED:
+ case PM_ERR_TRANS_NOT_LOCKED:
+ case PM_ERR_INVALID_REGEX:
+ code = PK_ERROR_ENUM_INTERNAL_ERROR;
+ break;
+
+ case PM_ERR_DISK_SPACE:
+ code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
+ break;
+
+ case PM_ERR_HANDLE_NOT_NULL:
+ case PM_ERR_DB_NOT_NULL:
+ case PM_ERR_TRANS_NOT_NULL:
+ code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
+ break;
+
+ case PM_ERR_HANDLE_LOCK:
+ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
+ break;
+
+ case PM_ERR_DB_OPEN:
+ case PM_ERR_DB_NOT_FOUND:
+ case PM_ERR_PKG_REPO_NOT_FOUND:
+ code = PK_ERROR_ENUM_REPO_NOT_FOUND;
+ break;
+
+ case PM_ERR_DB_CREATE:
+ code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
+ break;
+
+ case PM_ERR_DB_VERSION:
+ case PM_ERR_DB_REMOVE:
+ case PM_ERR_SERVER_BAD_URL:
+ case PM_ERR_SIG_MISSINGDIR:
+ code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
+ break;
+
+ case PM_ERR_DB_WRITE:
+ code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
+ break;
+
+ case PM_ERR_SERVER_NONE:
+ code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
+ break;
+
+ case PM_ERR_TRANS_DUP_TARGET:
+ case PM_ERR_TRANS_ABORT:
+ code = PK_ERROR_ENUM_TRANSACTION_ERROR;
+ break;
+
+ case PM_ERR_TRANS_TYPE:
+ code = PK_ERROR_ENUM_CANNOT_CANCEL;
+ break;
+
+ case PM_ERR_PKG_NOT_FOUND:
+ code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
+ break;
+
+ case PM_ERR_PKG_IGNORED:
+ code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
+ break;
+
+ case PM_ERR_PKG_INVALID:
+ case PM_ERR_PKG_OPEN:
+ case PM_ERR_PKG_INVALID_NAME:
+ case PM_ERR_DLT_INVALID:
+ code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
+ break;
+
+ case PM_ERR_PKG_CANT_REMOVE:
+ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
+ break;
+
+ case PM_ERR_PKG_INVALID_ARCH:
+ code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
+ break;
+
+ case PM_ERR_SIG_INVALID:
+ code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
+ break;
+
+ case PM_ERR_SIG_UNKNOWN:
+ code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
+ break;
+
+ case PM_ERR_DLT_PATCHFAILED:
+ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
+ break;
+
+ case PM_ERR_UNSATISFIED_DEPS:
+ code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
+ break;
+
+ case PM_ERR_CONFLICTING_DEPS:
+ code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
+ break;
+
+ case PM_ERR_FILE_CONFLICTS:
+ code = PK_ERROR_ENUM_FILE_CONFLICTS;
+ break;
+
+ case PM_ERR_RETRIEVE:
+ case PM_ERR_LIBCURL:
+ case PM_ERR_EXTERNAL_DOWNLOAD:
+ code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
+ break;
+
+ case PM_ERR_LIBARCHIVE:
+ code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
+ break;
+
+ case PM_ERR_GPGME:
+ code = PK_ERROR_ENUM_GPG_FAILURE;
+ break;
+
+ case PM_ERR_CONFIG_INVALID:
+ code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
+ break;
+
+ case PM_ERR_PKG_HELD:
+ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
+ break;
}
pk_backend_error_code (self, code, "%s", error->message);
commit 7dbee21a7adbc25856b53532d0fe55f272f580bb
Author: Nils Philippsen <nils at redhat.com>
Date: Mon Jan 9 15:51:17 2012 +0100
yum: don't request authorization for trusted packages (#771746)
Misunderstood PackageKitYumBackend._is_package_repo_signed() semantics,
revert to the implementation from before I fixed it till it broke.
(cherry picked from commit d99c430775a6de3e7e98819f5b5c0c6017d6edde)
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index fd73f87..beb027e 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1706,12 +1706,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
signed = False
try:
repo = self.yumbase.repos.getRepo(pkg.repoid)
- if hasattr(repo, "_override_sigchecks"):
- # yum >= 3.2.29
- signed = not repo._override_sigchecks
- else:
- # yum < 3.2.29
- signed = repo.gpgcheck
+ signed = repo.gpgcheck
except yum.Errors.RepoError, e:
raise PkError(ERROR_REPO_NOT_AVAILABLE, _to_unicode(e))
except exceptions.IOError, e:
commit 65baf370dab99f7f13efbc4fee51e88b53084cdc
Author: Matthias Klumpp <matthias at tenstral.net>
Date: Fri Nov 18 14:23:14 2011 +0100
browser-plugin: Make it compile with newest xulrunner
Attention! This will make builds with older xulrunner
versions impossible. I will implement a workaround for
this later, if it is less invasive or if someone needs it.
But all distributions shipping PK 0.7.x should also ship
a new Firefox/Xulrunner version, as the old ones are unsupported.
Conflicts:
configure.ac
contrib/browser-plugin/pk-main.c
diff --git a/configure.ac b/configure.ac
index eadd86a..73e5154 100644
--- a/configure.ac
+++ b/configure.ac
@@ -355,9 +355,9 @@ AC_ARG_ENABLE(browser_plugin, AS_HELP_STRING([--enable-browser-plugin],[Build br
enable_browser_plugin=$enableval,enable_browser_plugin=yes)
if test x$enable_browser_plugin = xyes; then
PKG_CHECK_MODULES(PK_BROWSER_PLUGIN, \
- mozilla-plugin \
+ mozilla-plugin >= 8.0 \
gio-unix-2.0 \
- nspr \
+ nspr >= 4.8 \
cairo \
pango \
gtk+-2.0 >= 2.14.0 \
@@ -661,7 +661,7 @@ if test x$enable_apt = xyes; then
PY_CHECK_MOD([apt_pkg],,,AC_MSG_ERROR([Apt backend needs python-apt]))
PY_CHECK_MOD([UpdateManager.Core.MetaRelease],,
AC_DEFINE(HAVE_PYTHON_META_RELEASE, 1,
- "Meta release is available"),
+ "Meta release is available"),
AC_MSG_WARN([Distro upgrade notification not supported]))
PY_CHECK_MOD([softwareproperties.SoftwareProperties],,
AC_DEFINE(HAVE_PYTHON_SOFTWARE_PROPERTIES, 1,
@@ -697,7 +697,7 @@ if test x$enable_aptcc = xyes; then
AC_MSG_RESULT([yes]),
AC_MSG_FAILURE([need libapt-pkg 0.7 or later]))
- AC_MSG_CHECKING([whether apt supports ddtp])
+ AC_MSG_CHECKING([whether apt supports ddtp])
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[#include <apt-pkg/pkgcache.h>]],
[[pkgCache::DescIterator d;]]),
diff --git a/contrib/browser-plugin/pk-main.c b/contrib/browser-plugin/pk-main.c
index 7d35f51..0cf7891 100644
--- a/contrib/browser-plugin/pk-main.c
+++ b/contrib/browser-plugin/pk-main.c
@@ -546,9 +546,8 @@ NP_Shutdown ()
const char *
NP_GetMIMEDescription (void)
{
- pk_debug ("NP_GetMIMEDescription");
-
- return (gchar*) "application/x-packagekit-plugin:bsc:PackageKit Plugin";
+ g_debug ("NP_GetMIMEDescription");
+ return (const gchar*) "application/x-packagekit-plugin:bsc:PackageKit Plugin";
}
/**
commit 091bcaa525dc20a5e0545037a859f28e28354d60
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Dec 5 10:53:36 2011 +0000
trivial: post release version bump
diff --git a/RELEASE b/RELEASE
index 0bd29b1..06e7dfe 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,10 +2,10 @@ PackageKit Release Notes
1. Write NEWS entries for PackageKit in the same format as usual.
-git shortlog PACKAGEKIT_0_6_20.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog PACKAGEKIT_0_6_21.. | grep -i -v trivial | grep -v Merge > NEWS.new
--------------------------------------------------------------------------------
-Version 0.6.21
+Version 0.6.22
~~~~~~~~~~~~~~
Released: 2011-xx-xx
@@ -26,8 +26,8 @@ Bugfixes:
4. Commit changes in PackageKit git:
-git commit -a -m "Release version 0.6.20"
-git tag -s -f -m "Release 0.6.20" PACKAGEKIT_0_6_20
+git commit -a -m "Release version 0.6.22"
+git tag -s -f -m "Release 0.6.22" PACKAGEKIT_0_6_22
<gpg password>
git push --tags
git push
@@ -52,7 +52,7 @@ git push
10. Send an email to packagekit at lists.freedesktop.org
=================================================
-PackageKit 0.6.21 released!
+PackageKit 0.6.22 released!
Tarballs available here: http://www.packagekit.org/releases/
diff --git a/configure.ac b/configure.ac
index 6eb4bdd..eadd86a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.63)
m4_define([pk_major_version], [0])
m4_define([pk_minor_version], [6])
-m4_define([pk_micro_version], [21])
+m4_define([pk_micro_version], [22])
m4_define([pk_version],
[pk_major_version.pk_minor_version.pk_micro_version])
More information about the PackageKit-commit
mailing list