summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/augeas/PKGBUILD7
-rw-r--r--community/balsa/PKGBUILD55
-rw-r--r--community/balsa/balsa.install7
-rw-r--r--community/balsa/gmime26.patch1372
-rw-r--r--community/expac/PKGBUILD6
-rw-r--r--community/ipset/PKGBUILD11
-rw-r--r--community/libzdb/PKGBUILD21
-rw-r--r--community/lilypond/PKGBUILD4
-rw-r--r--community/packagekit/PKGBUILD16
-rw-r--r--community/packagekit/alpm.patch3040
-rw-r--r--community/pinot/PKGBUILD4
-rw-r--r--community/pkgtools/PKGBUILD2
-rw-r--r--community/tellico/PKGBUILD11
-rw-r--r--community/tellico/tellico.install2
-rw-r--r--community/twinkle/PKGBUILD11
-rw-r--r--community/vdrift/PKGBUILD7
-rw-r--r--community/vdrift/vdrift.install11
-rw-r--r--core/dirmngr/PKGBUILD21
-rw-r--r--core/dirmngr/dirmngr.install20
-rw-r--r--core/gnupg/PKGBUILD36
-rw-r--r--core/gnupg/gnupg.install21
-rw-r--r--core/gnupg2/PKGBUILD30
-rw-r--r--core/gnupg2/gnupg2-2.0.16-security.patch11
-rw-r--r--core/gnupg2/gnupg2.install20
-rw-r--r--core/gpgme/PKGBUILD36
-rw-r--r--core/gpgme/gpgme.install18
-rw-r--r--core/inetutils/PKGBUILD9
-rw-r--r--core/libarchive/PKGBUILD19
-rw-r--r--core/libarchive/sparse-file.patch13
-rw-r--r--core/libassuan/PKGBUILD31
-rw-r--r--core/libassuan/libassuan.install20
-rw-r--r--core/libksba/PKGBUILD23
-rw-r--r--core/libksba/libksba.install20
-rw-r--r--core/pinentry/PKGBUILD37
-rw-r--r--core/pinentry/gtk2-pinentry-segfault.patch11
-rw-r--r--core/pinentry/pinentry.install20
-rw-r--r--core/pth/PKGBUILD43
-rw-r--r--extra/at-spi2-atk/PKGBUILD14
-rw-r--r--extra/at-spi2-core/PKGBUILD14
-rw-r--r--extra/claws-mail-extra-plugins/PKGBUILD6
-rw-r--r--extra/cmake/PKGBUILD4
-rw-r--r--extra/ethtool/PKGBUILD6
-rw-r--r--extra/fontforge/PKGBUILD5
-rw-r--r--extra/gmime/PKGBUILD13
-rw-r--r--extra/gnucash/PKGBUILD14
-rw-r--r--extra/grilo-plugins/PKGBUILD4
-rw-r--r--extra/gvfs/PKGBUILD4
-rw-r--r--extra/hydrogen/PKGBUILD14
-rw-r--r--extra/hydrogen/install.patch12
-rw-r--r--extra/kdeutils/PKGBUILD4
-rw-r--r--extra/mail-notification/PKGBUILD19
-rw-r--r--extra/mail-notification/mail-notification-5.4-gmime.patch63
-rw-r--r--extra/mail-notification/mail-notification-5.4-libx11.patch13
-rw-r--r--extra/pyalpm/PKGBUILD6
-rw-r--r--extra/qemu/PKGBUILD18
-rw-r--r--extra/ristretto/PKGBUILD6
-rw-r--r--extra/sdl_image/PKGBUILD29
-rw-r--r--extra/sdl_mixer/PKGBUILD37
-rw-r--r--extra/sdl_net/PKGBUILD24
-rw-r--r--extra/sdl_ttf/PKGBUILD23
-rw-r--r--extra/spamassassin/PKGBUILD68
-rw-r--r--extra/spamassassin/spamd10
-rw-r--r--extra/totem-plparser/PKGBUILD16
-rw-r--r--extra/vim/PKGBUILD4
-rw-r--r--extra/xfce4-netload-plugin/PKGBUILD23
-rw-r--r--extra/xmms/PKGBUILD10
-rw-r--r--testing/kmod/PKGBUILD18
67 files changed, 5257 insertions, 290 deletions
diff --git a/community/augeas/PKGBUILD b/community/augeas/PKGBUILD
index cf3764b29..6cc5ed1d3 100644
--- a/community/augeas/PKGBUILD
+++ b/community/augeas/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 60191 2011-12-07 04:43:36Z ebelanger $
+# $Id: PKGBUILD 62121 2012-01-16 09:07:06Z spupykin $
# Contributor: Thomas S Hatch <thatch45@gmail.com>
# Contributor: Jon Nordby <jononor@gmail.com>
pkgname=augeas
pkgver=0.10.0
-pkgrel=1
+pkgrel=2
pkgdesc="A configuration editing tool that parses config files and transforms them into a tree"
arch=('i686' 'x86_64')
url="http://augeas.net"
license=('LGPL')
-depends=('libxml2')
+depends=('libxml2' 'gcc-libs')
options=('!libtool')
source=(http://augeas.net/download/$pkgname-$pkgver.tar.gz{,.sig})
md5sums=('fe1834e90a066c3208ac0214622c7352'
@@ -17,6 +17,7 @@ md5sums=('fe1834e90a066c3208ac0214622c7352'
build() {
cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|Requires:.*|Requires: libxml-2.0|' augeas.pc.in
./configure --prefix=/usr
make
}
diff --git a/community/balsa/PKGBUILD b/community/balsa/PKGBUILD
index c0d0468f3..8777c8f40 100644
--- a/community/balsa/PKGBUILD
+++ b/community/balsa/PKGBUILD
@@ -1,44 +1,47 @@
-# $Id: PKGBUILD 51383 2011-07-08 03:41:33Z bfanella $
+# $Id: PKGBUILD 62139 2012-01-16 19:52:55Z dreisner $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Maintainer: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Roman Kyrylych <roman@archlinux.org>
pkgname=balsa
-pkgver=2.4.10
+pkgver=2.4.11
pkgrel=1
pkgdesc="An e-mail client for GNOME"
arch=('i686' 'x86_64')
license=('GPL')
url='http://pawsa.fedorapeople.org/balsa/'
-depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme')
-makedepends=('perlxml' 'gnome-doc-utils' 'intltool' 'namcap')
+depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme' 'desktop-file-utils')
+makedepends=('perlxml' 'gnome-doc-utils' 'intltool')
install=balsa.install
-source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fa2b7cb9d248912ac2e3dcc08cd6aa5b')
+source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ gmime26.patch)
+md5sums=('915c622b6385aa4f83d5eee8f31ee8e8'
+ '108d33f533558a371189441edce7d7e6')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --with-ssl \
- --with-gpgme=gpgme-config \
- --with-gss \
- --with-ldap \
- --with-gtksourceview \
- --with-gtkspell \
- --with-rubrica \
- --with-sqlite \
- --without-nm \
- --without-gnome \
- --with-html-widget=webkit
-
- make
+ patch -Np1 -i "${srcdir}/gmime26.patch"
+ autoreconf -fi
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-ssl \
+ --with-gpgme=gpgme-config \
+ --with-gss \
+ --with-ldap \
+ --with-gtksourceview \
+ --with-gtkspell \
+ --with-rubrica \
+ --with-sqlite \
+ --without-nm \
+ --without-gnome \
+ --with-html-widget=webkit
+ make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
}
diff --git a/community/balsa/balsa.install b/community/balsa/balsa.install
index cb9a7a5c3..1f167b5e9 100644
--- a/community/balsa/balsa.install
+++ b/community/balsa/balsa.install
@@ -1,11 +1,12 @@
post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
}
post_upgrade() {
- post_install $1
+ post_install $1
}
post_remove() {
- post_install $1
+ post_install $1
}
diff --git a/community/balsa/gmime26.patch b/community/balsa/gmime26.patch
new file mode 100644
index 000000000..fe4e6a9fa
--- /dev/null
+++ b/community/balsa/gmime26.patch
@@ -0,0 +1,1372 @@
+From 393d0077495cb750ee47bab6ec44a60906a95179 Mon Sep 17 00:00:00 2001
+From: Peter Bloomfield <PeterBloomfield@bellsouth.net>
+Date: Mon, 28 Nov 2011 03:00:55 +0000
+Subject: Build with GMime 2.6.0
+
+ * configure.in: check for GMime >= 2.5.7
+ * libbalsa/gmime-application-pkcs7.c
+ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
+ (g_mime_application_pkcs7_encrypt),
+ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
+ * libbalsa/gmime-application-pkcs7.h: ditto.
+ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
+ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
+ (g_mime_gpgme_digest_id): ditto.
+ * libbalsa/gmime-gpgme-context.h: ditto.
+ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
+ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
+ ditto.
+ * libbalsa/gmime-part-rfc2440.h: ditto.
+ * libbalsa/rfc3156.c (password_request_func),
+ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
+ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
+---
+diff --git a/ChangeLog b/ChangeLog
+index bd95e68..d5c62f5 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,25 @@
++2011-11-27 Peter Bloomfield
++
++ Build with GMime 2.6.0
++
++ * configure.in: check for GMime >= 2.5.7
++ * libbalsa/gmime-application-pkcs7.c
++ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
++ (g_mime_application_pkcs7_encrypt),
++ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
++ * libbalsa/gmime-application-pkcs7.h: ditto.
++ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
++ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
++ (g_mime_gpgme_digest_id): ditto.
++ * libbalsa/gmime-gpgme-context.h: ditto.
++ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
++ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
++ ditto.
++ * libbalsa/gmime-part-rfc2440.h: ditto.
++ * libbalsa/rfc3156.c (password_request_func),
++ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
++ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
++
+ 2011-11-22 Pawel Salek
+
+ * NEWS, configure.in: release balsa-2.4.11
+diff --git a/configure.in b/configure.in
+index 4a8320e..64d99f3 100644
+--- a/configure.in
++++ b/configure.in
+@@ -307,7 +307,12 @@ fi
+ case "$with_gmime" in
+ 2.4) ;;
+ 2.6) AC_DEFINE([HAVE_GMIME_2_6], [1],
+- [Defined to build with GMime version 2.5 or 2.6]) ;;
++ [Defined to build with GMime version 2.5 or 2.6])
++ if $PKG_CONFIG --atleast-version=2.5.7 gmime-2.6; then
++ AC_DEFINE([HAVE_GMIME_2_5_7], [1],
++ [Defined when GMime version is at least 2.5.7])
++ fi
++ ;;
+ *) AC_MSG_ERROR([unknown GMime version $with_gmime]) ;;
+ esac
+
+diff --git a/libbalsa/gmime-application-pkcs7.c b/libbalsa/gmime-application-pkcs7.c
+index 12f4f8f..63b8087 100644
+--- a/libbalsa/gmime-application-pkcs7.c
++++ b/libbalsa/gmime-application-pkcs7.c
+@@ -96,8 +96,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter, *from_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->sign_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* Prepare all the parts for signing... */
+@@ -127,7 +133,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ sig_data_stream = g_mime_stream_mem_new ();
+
+ /* get the signed content */
+- if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_sign
++ (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream,
++ sig_data_stream, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (filtered_stream);
+ g_object_unref (sig_data_stream);
+ g_object_unref (stream);
+@@ -168,9 +181,15 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ * decrypting it again. In this case, validity is undefined.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** list,
++ GMimeCryptoContext * ctx, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -181,8 +200,14 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -208,9 +233,16 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
++#ifndef HAVE_GMIME_2_5_7
+ *validity = g_mime_cipher_context_verify(ctx, GMIME_CIPHER_HASH_DEFAULT,
+ ciphertext, filtered_stream, err);
+- if (!*validity) {
++ if (!*validity)
++#else /* HAVE_GMIME_2_5_7 */
++ *list = g_mime_crypto_context_verify(ctx, GMIME_CIPHER_ALGO_DEFAULT,
++ ciphertext, filtered_stream, err);
++ if (!*list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+@@ -248,7 +280,12 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ */
+ int
+ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx, GPtrArray *recipients,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx,
++ GPtrArray *recipients,
++#endif /* HAVE_GMIME_2_5_7 */
+ GError **err)
+ {
+ GMimeDataWrapper *wrapper;
+@@ -257,8 +294,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->encrypt_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* get the cleartext */
+@@ -279,7 +322,15 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+
+ /* encrypt the content stream */
+ ciphertext = g_mime_stream_mem_new ();
+- if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_encrypt
++ (ctx, FALSE, NULL,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, ciphertext, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (ciphertext);
+ g_object_unref (stream);
+ return -1;
+@@ -313,8 +364,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ * err with more information about the reason.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ GError **err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_decrypt (GMimePart *pkcs7,
++ GMimeCryptoContext *ctx,
++ GError **err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -325,8 +382,14 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -353,7 +416,13 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
+- if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_decrypt
++ (ctx, ciphertext, filtered_stream, err) == NULL)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+diff --git a/libbalsa/gmime-application-pkcs7.h b/libbalsa/gmime-application-pkcs7.h
+index 03fa401..6678ff5 100644
+--- a/libbalsa/gmime-application-pkcs7.h
++++ b/libbalsa/gmime-application-pkcs7.h
+@@ -28,7 +28,11 @@ extern "C" {
+ #endif /* __cplusplus */
+
+ #include <gmime/gmime-part.h>
++#ifndef HAVE_GMIME_2_5_7
+ #include <gmime/gmime-cipher-context.h>
++#else /* HAVE_GMIME_2_5_7 */
++#include <gmime/gmime-crypto-context.h>
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #undef HAS_APPLICATION_PKCS7_MIME_SIGNED_SUPPORT
+
+@@ -39,21 +43,40 @@ extern "C" {
+ * Balsa always encodes S/MIME signed stuff as multipart/signed. */
+ int g_mime_application_pkcs7_sign(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ const char *userid, GError ** err);
+ #endif
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** validity,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ int g_mime_application_pkcs7_encrypt(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ GPtrArray * recipients, GError ** err);
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/gmime-gpgme-context.c b/libbalsa/gmime-gpgme-context.c
+index 24b140b..0c56f94 100644
+--- a/libbalsa/gmime-gpgme-context.c
++++ b/libbalsa/gmime-gpgme-context.c
+@@ -27,6 +27,9 @@
+ #include <unistd.h>
+ #include <glib.h>
+ #include <gmime/gmime.h>
++#ifdef HAVE_GMIME_2_5_7
++#include <gmime/gmime-certificate.h>
++#endif /* HAVE_GMIME_2_5_7 */
+ #include <gpgme.h>
+ #include <time.h>
+ #include <glib/gi18n.h>
+@@ -44,6 +47,7 @@ static gboolean g_mime_gpgme_context_check_protocol(GMimeGpgmeContextClass
+ protocol,
+ GError ** error);
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash g_mime_gpgme_hash_id(GMimeCipherContext * ctx,
+ const char *hash);
+
+@@ -70,6 +74,46 @@ static GMimeSignatureValidity *g_mime_gpgme_decrypt(GMimeCipherContext *
+ GMimeStream * istream,
+ GMimeStream * ostream,
+ GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo g_mime_gpgme_digest_id(GMimeCryptoContext * ctx,
++ const char *hash);
++
++static const char *g_mime_gpgme_digest_name(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash);
++
++static const char
++ *g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context);
++
++static int g_mime_gpgme_sign(GMimeCryptoContext * ctx,
++ const char * userid,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++
++static GMimeSignatureList *g_mime_gpgme_verify(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * sigstream,
++ GError ** err);
++
++static int g_mime_gpgme_encrypt(GMimeCryptoContext * ctx,
++ gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream,
++ GMimeStream * ostream, GError ** err);
++
++static GMimeDecryptResult *g_mime_gpgme_decrypt(GMimeCryptoContext * ctx,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ /* internal passphrase callback */
+@@ -102,7 +146,11 @@ static void g_set_error_from_gpgme(GError ** error, gpgme_error_t gpgme_err,
+ const gchar * message);
+
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherContextClass *parent_class = NULL;
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeCryptoContextClass *parent_class = NULL;
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ GType
+@@ -124,8 +172,13 @@ g_mime_gpgme_context_get_type(void)
+ };
+
+ type =
++#ifndef HAVE_GMIME_2_5_7
+ g_type_register_static(GMIME_TYPE_CIPHER_CONTEXT,
+ "GMimeGpgmeContext", &info, 0);
++#else /* HAVE_GMIME_2_5_7 */
++ g_type_register_static(GMIME_TYPE_CRYPTO_CONTEXT,
++ "GMimeGpgmeContext", &info, 0);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ return type;
+@@ -136,19 +189,39 @@ static void
+ g_mime_gpgme_context_class_init(GMimeGpgmeContextClass * klass)
+ {
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass *cipher_class =
+ GMIME_CIPHER_CONTEXT_CLASS(klass);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass *crypto_class =
++ GMIME_CRYPTO_CONTEXT_CLASS(klass);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ parent_class = g_type_class_ref(G_TYPE_OBJECT);
+
+ object_class->finalize = g_mime_gpgme_context_finalize;
+
++#ifndef HAVE_GMIME_2_5_7
+ cipher_class->hash_id = g_mime_gpgme_hash_id;
+ cipher_class->hash_name = g_mime_gpgme_hash_name;
+ cipher_class->sign = g_mime_gpgme_sign;
+ cipher_class->verify = g_mime_gpgme_verify;
+ cipher_class->encrypt = g_mime_gpgme_encrypt;
+ cipher_class->decrypt = g_mime_gpgme_decrypt;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto_class->digest_id = g_mime_gpgme_digest_id;
++ crypto_class->digest_name = g_mime_gpgme_digest_name;
++ crypto_class->get_signature_protocol =
++ g_mime_gpgme_get_signature_protocol;
++ crypto_class->get_encryption_protocol =
++ g_mime_gpgme_get_encryption_protocol;
++ crypto_class->get_key_exchange_protocol =
++ g_mime_gpgme_get_key_exchange_protocol;
++ crypto_class->sign = g_mime_gpgme_sign;
++ crypto_class->verify = g_mime_gpgme_verify;
++ crypto_class->encrypt = g_mime_gpgme_encrypt;
++ crypto_class->decrypt = g_mime_gpgme_decrypt;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP) ==
+ GPG_ERR_NO_ERROR)
+@@ -190,7 +263,11 @@ g_mime_gpgme_context_finalize(GObject * object)
+ }
+
+ #if !defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ g_object_unref(GMIME_CIPHER_CONTEXT(ctx)->session);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(GMIME_CRYPTO_CONTEXT(ctx)->session);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif /* HAVE_GMIME_2_6 */
+
+ G_OBJECT_CLASS(parent_class)->finalize(object);
+@@ -200,15 +277,26 @@ g_mime_gpgme_context_finalize(GObject * object)
+ /*
+ * Convert a hash algorithm name to a number
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash
+ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo
++g_mime_gpgme_digest_id(GMimeCryptoContext * ctx, const char *hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ if (hash == NULL)
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (hash == NULL)
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (!g_ascii_strcasecmp(hash, "pgp-"))
+ hash += 4;
+
++#ifndef HAVE_GMIME_2_5_7
+ if (!g_ascii_strcasecmp(hash, "md2"))
+ return GMIME_CIPHER_HASH_MD2;
+ else if (!g_ascii_strcasecmp(hash, "md5"))
+@@ -223,6 +311,22 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ return GMIME_CIPHER_HASH_HAVAL5160;
+
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (!g_ascii_strcasecmp(hash, "md2"))
++ return GMIME_DIGEST_ALGO_MD2;
++ else if (!g_ascii_strcasecmp(hash, "md5"))
++ return GMIME_DIGEST_ALGO_MD5;
++ else if (!g_ascii_strcasecmp(hash, "sha1"))
++ return GMIME_DIGEST_ALGO_SHA1;
++ else if (!g_ascii_strcasecmp(hash, "ripemd160"))
++ return GMIME_DIGEST_ALGO_RIPEMD160;
++ else if (!g_ascii_strcasecmp(hash, "tiger192"))
++ return GMIME_DIGEST_ALGO_TIGER192;
++ else if (!g_ascii_strcasecmp(hash, "haval-5-160"))
++ return GMIME_DIGEST_ALGO_HAVAL5160;
++
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -230,7 +334,11 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ * Convert a hash algorithm number to a string
+ */
+ static const char *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_digest_name(GMimeCryptoContext * context, GMimeDigestAlgo hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
+ char *p;
+@@ -239,6 +347,7 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ g_return_val_if_fail(ctx->gpgme_ctx, NULL);
+
+ /* note: this is only a subset of the hash algorithms gpg(me) supports */
++#ifndef HAVE_GMIME_2_5_7
+ switch (hash) {
+ case GMIME_CIPHER_HASH_MD2:
+ p = "pgp-md2";
+@@ -258,6 +367,27 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ case GMIME_CIPHER_HASH_HAVAL5160:
+ p = "pgp-haval-5-160";
+ break;
++#else /* HAVE_GMIME_2_5_7 */
++ switch (hash) {
++ case GMIME_DIGEST_ALGO_MD2:
++ p = "pgp-md2";
++ break;
++ case GMIME_DIGEST_ALGO_MD5:
++ p = "pgp-md5";
++ break;
++ case GMIME_DIGEST_ALGO_SHA1:
++ p = "pgp-sha1";
++ break;
++ case GMIME_DIGEST_ALGO_RIPEMD160:
++ p = "pgp-ripemd160";
++ break;
++ case GMIME_DIGEST_ALGO_TIGER192:
++ p = "pgp-tiger192";
++ break;
++ case GMIME_DIGEST_ALGO_HAVAL5160:
++ p = "pgp-haval-5-160";
++ break;
++#endif /* HAVE_GMIME_2_5_7 */
+ default:
+ if (!(p = ctx->micalg))
+ return p;
+@@ -270,6 +400,29 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ return p;
+ }
+
++#ifdef HAVE_GMIME_2_5_7
++static const char *
++g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->sign_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->encrypt_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->key_protocol;
++}
++
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /*
+ * Wrapper to convert the passphrase returned from the gmime session to gpgme.
+@@ -279,7 +432,11 @@ g_mime_session_passphrase(void *HOOK, const char *UID_HINT,
+ const char *PASSPHRASE_INFO, int PREV_WAS_BAD,
+ int FD)
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx = GMIME_CIPHER_CONTEXT(HOOK);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx = GMIME_CRYPTO_CONTEXT(HOOK);
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ GMimeStream *stream;
+ gboolean rc;
+@@ -366,9 +523,15 @@ cb_data_release(void *handle)
+ * arg, but set the value in the context.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ GMimeCipherHash hash, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_sign(GMimeCryptoContext * context, const char *userid,
++ GMimeDigestAlgo hash, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_sig_mode_t sig_mode;
+@@ -460,6 +623,7 @@ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * In standard mode, verify that sigstream contains a detached signature for
+ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
+@@ -471,13 +635,33 @@ static GMimeSignatureValidity *
+ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ GMimeStream * istream, GMimeStream * sigstream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * In standard mode, verify that sigstream contains a detached signature for
++ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
++ * istream contains clearsigned data, and sigstream will be filled with the
++ * verified plaintext. The routine returns a GMimeSignatureList object.
++ * More information is saved in the context's signature object.
++ * On error error is set accordingly.
++ */
++static GMimeSignatureList *
++g_mime_gpgme_verify(GMimeCryptoContext * context, GMimeDigestAlgo hash,
++ GMimeStream * istream, GMimeStream * sigstream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+ gpgme_protocol_t protocol;
+ gpgme_error_t err;
+ gpgme_data_t msg, sig;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++
++#endif /* HAVE_GMIME_2_5_7 */
+ struct gpgme_data_cbs cbs = {
+ (gpgme_data_read_cb_t) g_mime_gpgme_stream_rd, /* read method */
+ (gpgme_data_write_cb_t) g_mime_gpgme_stream_wr, /* write method */
+@@ -521,6 +705,7 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ ctx->sig_state =
+ g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -536,12 +721,44 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ }
+ } else
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* release gmgme data buffers */
+ gpgme_data_release(msg);
+ gpgme_data_release(sig);
+
++#ifndef HAVE_GMIME_2_5_7
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -549,10 +766,19 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ * Encrypt istream to ostream for recipients. If sign is set, sign by userid.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ const char *userid, GPtrArray * recipients,
+ GMimeStream * istream, GMimeStream * ostream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_encrypt(GMimeCryptoContext * context, gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream, GMimeStream * ostream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -653,9 +879,15 @@ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ * Decrypt istream to ostream. In RFC 2440 mode, also try to check an included
+ * signature (if any).
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeSignatureValidity *
+ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDecryptResult *
++g_mime_gpgme_decrypt(GMimeCryptoContext * context, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -668,7 +900,13 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ NULL, /* seek method */
+ cb_data_release /* release method */
+ };
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some paranoia checks */
+ g_return_val_if_fail(ctx, NULL);
+@@ -716,6 +954,7 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ /* try to get information about the signature (if any) */
+ ctx->sig_state = g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -733,14 +972,57 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
+
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++ result = g_mime_decrypt_result_new();
++ g_mime_decrypt_result_set_signatures(result, list);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++
++ return result;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * Create a new gpgme cipher context with protocol. If anything fails, return
+ * NULL and set error.
+ */
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * Create a new gpgme crypto context with protocol. If anything fails, return
++ * NULL and set error.
++ */
++#endif /* HAVE_GMIME_2_5_7 */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ g_mime_gpgme_context_new(GMimePasswordRequestFunc request_passwd,
+ gpgme_protocol_t protocol, GError ** error)
+@@ -749,7 +1031,11 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol, GError ** error)
+ #endif /* HAVE_GMIME_2_6 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ GMimeGpgmeContext *ctx;
+ gpgme_error_t err;
+ gpgme_ctx_t gpgme_ctx;
+@@ -766,14 +1052,22 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ return NULL;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ /* create the cipher context */
++#else /* HAVE_GMIME_2_5_7 */
++ /* create the crypto context */
++#endif /* HAVE_GMIME_2_5_7 */
+ ctx = g_object_new(GMIME_TYPE_GPGME_CONTEXT, NULL, NULL);
+ if (!ctx) {
+ gpgme_release(gpgme_ctx);
+ return NULL;
+ } else
+ ctx->gpgme_ctx = gpgme_ctx;
++#ifndef HAVE_GMIME_2_5_7
+ cipher = (GMimeCipherContext *) ctx;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto = (GMimeCryptoContext *) ctx;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* check if the requested protocol is available */
+ if (!g_mime_gpgme_context_check_protocol
+@@ -785,23 +1079,47 @@ g_mime_gpgme_context_new(GMimeSession * session,
+
+ /* setup according to requested protocol */
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ cipher->request_passwd = request_passwd;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->request_passwd = request_passwd;
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
++#ifndef HAVE_GMIME_2_5_7
+ cipher->session = session;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->session = session;
++#endif /* HAVE_GMIME_2_5_7 */
+ g_object_ref(session);
+ #endif /* HAVE_GMIME_2_6 */
+ gpgme_set_protocol(gpgme_ctx, protocol);
+ if (protocol == GPGME_PROTOCOL_OpenPGP) {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pgp-signature";
+ cipher->encrypt_protocol = "application/pgp-encrypted";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pgp-signature";
++ ctx->encrypt_protocol = "application/pgp-encrypted";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ } else {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pkcs7-signature";
+ cipher->encrypt_protocol = "application/pkcs7-mime";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pkcs7-signature";
++ ctx->encrypt_protocol = "application/pkcs7-mime";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ return cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ return crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+diff --git a/libbalsa/gmime-gpgme-context.h b/libbalsa/gmime-gpgme-context.h
+index 585d927..19c5fae 100644
+--- a/libbalsa/gmime-gpgme-context.h
++++ b/libbalsa/gmime-gpgme-context.h
+@@ -63,7 +63,11 @@ typedef gboolean(*GMimeGpgmeKeyTrustCB) (const gchar * name,
+ GMimeGpgmeContext * ctx);
+
+ struct _GMimeGpgmeContext {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext parent_object;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext parent_object;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gpgme_ctx_t gpgme_ctx; /* gpgme context */
+ gboolean singlepart_mode; /* set context to single-part mode (RFC 2440, 2633) */
+@@ -73,11 +77,21 @@ struct _GMimeGpgmeContext {
+ GMimeGpgmeKeySelectCB key_select_cb; /* key selection callback */
+ GMimeGpgmeKeyTrustCB key_trust_cb; /* low trust key cb */
+ gpgme_passphrase_cb_t passphrase_cb; /* passphrase callback */
++#ifdef HAVE_GMIME_2_5_7
++
++ const gchar *sign_protocol;
++ const gchar *encrypt_protocol;
++ const gchar *key_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ };
+
+
+ struct _GMimeGpgmeContextClass {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass parent_class;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass parent_class;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gboolean has_proto_openpgp;
+ gboolean has_proto_cms;
+@@ -86,10 +100,17 @@ struct _GMimeGpgmeContextClass {
+
+ GType g_mime_gpgme_context_get_type(void);
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
+ request_passwd,
+ gpgme_protocol_t protocol,
+ GError ** error);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
++ request_passwd,
++ gpgme_protocol_t protocol,
++ GError ** error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol,
+diff --git a/libbalsa/gmime-part-rfc2440.c b/libbalsa/gmime-part-rfc2440.c
+index 795d2e1..e79c4cb 100644
+--- a/libbalsa/gmime-part-rfc2440.c
++++ b/libbalsa/gmime-part-rfc2440.c
+@@ -112,8 +112,13 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+
+ g_return_val_if_fail(GMIME_IS_PART(part), -1);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail(recipients != NULL || sign_userid != NULL, -1);
+
+ /* get the raw content */
+@@ -131,14 +136,27 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ ctx->singlepart_mode = TRUE;
+ if (recipients == NULL)
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_sign(GMIME_CIPHER_CONTEXT(ctx), sign_userid,
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_sign(GMIME_CRYPTO_CONTEXT(ctx), sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ else
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_encrypt(GMIME_CIPHER_CONTEXT(ctx),
+ sign_userid != NULL, sign_userid,
+ recipients, stream, cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_encrypt(GMIME_CRYPTO_CONTEXT(ctx),
++ sign_userid != NULL, sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ if (result == -1) {
+ g_object_unref(cipherstream);
+ return -1;
+@@ -202,18 +220,31 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ * set on err to provide more information. Upon success, the content
+ * of part is replaced by the verified output of the crypto engine.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(GMIME_PART(part));
+@@ -227,13 +258,25 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+
+ /* verify the signature */
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ valid =
+ g_mime_cipher_context_verify(GMIME_CIPHER_CONTEXT(ctx),
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ list =
++ g_mime_crypto_context_verify(GMIME_CRYPTO_CONTEXT(ctx),
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* upon success, replace the signed content by the checked one */
+- if (valid) {
++#ifndef HAVE_GMIME_2_5_7
++ if (valid)
++#else /* HAVE_GMIME_2_5_7 */
++ if (list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ GMimeDataWrapper *wrapper = g_mime_data_wrapper_new();
+
+ g_mime_data_wrapper_set_stream(wrapper, plainstream);
+@@ -242,7 +285,11 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ }
+ g_object_unref(plainstream);
+
++#ifndef HAVE_GMIME_2_5_7
+ return valid;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -255,19 +302,32 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ * verified and the result is placed in ctx by the underlying gpgme
+ * context.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeDecryptResult *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *result;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++#endif /* HAVE_GMIME_2_5_7 */
+ gchar *headbuf = g_malloc0(1024);
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->encrypt_protocol !=
+ NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(part);
+@@ -284,8 +344,13 @@ g_mime_part_rfc2440_decrypt(GMimePart * part,
+
+ /* decrypt and (if possible) verify the input */
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_decrypt(GMIME_CIPHER_CONTEXT(ctx), stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_decrypt(GMIME_CRYPTO_CONTEXT(ctx), stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (result != NULL) {
+ GMimeStream *filter_stream;
+diff --git a/libbalsa/gmime-part-rfc2440.h b/libbalsa/gmime-part-rfc2440.h
+index 48be5a4..cc1901a 100644
+--- a/libbalsa/gmime-part-rfc2440.h
++++ b/libbalsa/gmime-part-rfc2440.h
+@@ -53,12 +53,21 @@ int g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ GPtrArray * recipients,
+ const char *sign_userid,
+ GError ** err);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx,
+ GError ** err);
+ GMimeSignatureValidity *g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext *
+ ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *g_mime_part_rfc2440_verify(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++GMimeDecryptResult *g_mime_part_rfc2440_decrypt(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/rfc3156.c b/libbalsa/rfc3156.c
+index a56e12c..df4a2e1 100644
+--- a/libbalsa/rfc3156.c
++++ b/libbalsa/rfc3156.c
+@@ -268,9 +268,15 @@ libbalsa_message_body_protection(LibBalsaMessageBody * body)
+
+ #if defined(HAVE_GMIME_2_6)
+ static gboolean
++#ifndef HAVE_GMIME_2_5_7
+ password_request_func(GMimeCipherContext * ctx, const char *user_id,
+ const char *prompt_ctx, gboolean reprompt,
+ GMimeStream * response, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++password_request_func(GMimeCryptoContext * ctx, const char *user_id,
++ const char *prompt_ctx, gboolean reprompt,
++ GMimeStream * response, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ gint fd;
+ gchar *name_used;
+@@ -366,9 +372,16 @@ libbalsa_sign_mime_object(GMimeObject ** content, const gchar * rfc822_for,
+ return FALSE;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ if (g_mime_multipart_signed_sign
+ (mps, *content, GMIME_CIPHER_CONTEXT(ctx), rfc822_for,
+- GMIME_CIPHER_HASH_DEFAULT, error) != 0) {
++ GMIME_CIPHER_HASH_DEFAULT, error) != 0)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_multipart_signed_sign
++ (mps, *content, GMIME_CRYPTO_CONTEXT(ctx), rfc822_for,
++ GMIME_DIGEST_ALGO_DEFAULT, error) != 0)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(mps);
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+@@ -458,10 +471,18 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+
+ encrypted_obj = GMIME_OBJECT(mpe);
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_encrypt(mpe, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ FALSE, NULL,
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_encrypt(mpe, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ FALSE, NULL,
++ GMIME_DIGEST_ALGO_DEFAULT,
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #ifdef HAVE_SMIME
+ else {
+@@ -471,9 +492,15 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+ encrypted_obj = GMIME_OBJECT(pkcs7);
+ ctx->singlepart_mode = TRUE;
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_encrypt(pkcs7, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_application_pkcs7_encrypt(pkcs7, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #endif
+
+@@ -565,8 +592,14 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ #if !defined(HAVE_GMIME_2_6)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+- GMimeCipherContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
++ GMimeCipherContext *g_mime_ctx;
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *g_mime_ctx;
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
++ GMimeGpgmeContext *ctx;
+ GError *error = NULL;
+
+ /* paranoia checks */
+@@ -592,12 +625,12 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ /* try to create GMimeGpgMEContext */
+ #if !defined(HAVE_GMIME_2_6)
+ session = g_object_new(g_mime_session_get_type(), NULL, NULL);
+- ctx = g_mime_gpgme_context_new(session, protocol, &error);
++ g_mime_ctx = g_mime_gpgme_context_new(session, protocol, &error);
+ #else /* HAVE_GMIME_2_6 */
+- ctx =
++ g_mime_ctx =
+ g_mime_gpgme_context_new(password_request_func, protocol, &error);
+ #endif /* HAVE_GMIME_2_6 */
+- if (ctx == NULL) {
++ if (g_mime_ctx == NULL) {
+ if (error) {
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR, "%s: %s",
+ _("creating a gpgme context failed"),
+@@ -613,6 +646,7 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ body->parts->next->sig_info->status = GPGME_SIG_STAT_ERROR;
+ return FALSE;
+ }
++ ctx = GMIME_GPGME_CONTEXT(g_mime_ctx);
+
+ /* S/MIME uses the protocol application/pkcs7-signature, but some ancient
+ mailers, not yet knowing RFC 2633, use application/x-pkcs7-signature,
+@@ -622,14 +656,19 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ g_mime_object_get_content_type_parameter(GMIME_OBJECT (body->mime_part),
+ "protocol");
+ if (!g_ascii_strcasecmp(cms_protocol, "application/x-pkcs7-signature"))
++#ifndef HAVE_GMIME_2_5_7
++ g_mime_ctx->sign_protocol = cms_protocol;
++#else /* HAVE_GMIME_2_5_7 */
+ ctx->sign_protocol = cms_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ /* verify the signature */
+
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ valid = g_mime_multipart_signed_verify(GMIME_MULTIPART_SIGNED
+- (body->mime_part), ctx, &error);
++ (body->mime_part), g_mime_ctx,
++ &error);
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+ if (valid == NULL) {
+@@ -642,12 +681,16 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR,
+ _("signature verification failed"));
+ }
+- if (GMIME_GPGME_CONTEXT(ctx)->sig_state) {
+- body->parts->next->sig_info = GMIME_GPGME_CONTEXT(ctx)->sig_state;
++ if (ctx->sig_state) {
++ body->parts->next->sig_info = ctx->sig_state;
+ g_object_ref(G_OBJECT(body->parts->next->sig_info));
+ }
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
+- g_object_unref(ctx);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
++ g_object_unref(g_mime_ctx);
+ #if !defined(HAVE_GMIME_2_6)
+ g_object_unref(session);
+ #endif /* HAVE_GMIME_2_6 */
+@@ -747,14 +790,26 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ if (protocol == GPGME_PROTOCOL_OpenPGP)
+ mime_obj =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ NULL,
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #ifdef HAVE_SMIME
+ else if (smime_signed) {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ mime_obj =
+ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
+ &valid,
+@@ -766,6 +821,19 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ mime_obj =
++ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
++ &valid,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++ g_object_unref(valid);
++ } else
++ mime_obj =
++ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+@@ -906,7 +974,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+ GMimeGpgmeContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+ GError *error = NULL;
+ gpgme_error_t retval;
+
+@@ -978,7 +1050,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ }
+
+ /* clean up */
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
+ retval = ctx->sig_state->status;
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+--
+cgit v0.9.0.2
diff --git a/community/expac/PKGBUILD b/community/expac/PKGBUILD
index f34b2938a..c9c3d4467 100644
--- a/community/expac/PKGBUILD
+++ b/community/expac/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 51880 2011-07-17 19:50:14Z dreisner $
+# $Id: PKGBUILD 62143 2012-01-16 19:53:09Z dreisner $
# Maintainer: Dave Reisner <d@falconindy.com>
pkgname=expac
-pkgver=0.05
+pkgver=0.07
pkgrel=1
pkgdesc="pacman database extraction utility"
arch=('i686' 'x86_64')
@@ -11,7 +11,7 @@ license=('GPL')
depends=('pacman')
makedepends=('perl')
source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('366d741b21d1029c63a5e977d3fc08db')
+md5sums=('1bc637b733051827982db12db84643f2')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/ipset/PKGBUILD b/community/ipset/PKGBUILD
index 09eb63959..ac95e6229 100644
--- a/community/ipset/PKGBUILD
+++ b/community/ipset/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 59646 2011-11-29 01:17:13Z seblu $
-# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# $Id: PKGBUILD 62118 2012-01-16 09:00:54Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgname=ipset
-pkgver=6.10
+pkgver=6.11
pkgrel=1
pkgdesc='Administration tool for IP sets'
arch=('i686' 'x86_64')
@@ -11,12 +11,11 @@ license=('GPL2')
depends=('libmnl')
makedepends=('linux-headers')
source=("http://ipset.netfilter.org/$pkgname-$pkgver.tar.bz2")
-md5sums=('2dc677ab126269d09db5cd908c045591')
+md5sums=('bfcc92e30a0fcf10ae6e7c4affa03c84')
build() {
cd $pkgname-$pkgver
- ./autogen.sh
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --with-kmod=no
make
}
diff --git a/community/libzdb/PKGBUILD b/community/libzdb/PKGBUILD
new file mode 100644
index 000000000..ef3dc2aac
--- /dev/null
+++ b/community/libzdb/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 62125 2012-01-16 09:28:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libzdb
+pkgver=2.10
+pkgrel=1
+pkgdesc="Zild Database Library"
+arch=(i686 x86_64)
+url="http://www.tildeslash.com/libzdb/"
+license=('GPL')
+depends=('postgresql-libs' 'sqlite3' 'libmysqlclient')
+options=(!libtool)
+source=(http://www.tildeslash.com/libzdb/dist/libzdb-$pkgver.tar.gz)
+md5sums=('fdc04b4b7f33cdcdfc6b559ba9965825')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
index 8d2139422..245985415 100644
--- a/community/lilypond/PKGBUILD
+++ b/community/lilypond/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 60869 2011-12-19 16:37:27Z spupykin $
+# $Id: PKGBUILD 62129 2012-01-16 13:56:57Z bisson $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=lilypond
pkgver=2.14.2
-pkgrel=3
+pkgrel=4
pkgdesc="An automated music engraving system"
arch=('i686' 'x86_64')
url="http://lilypond.org"
diff --git a/community/packagekit/PKGBUILD b/community/packagekit/PKGBUILD
index 268d154f5..a66ae29ab 100644
--- a/community/packagekit/PKGBUILD
+++ b/community/packagekit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 61985 2012-01-13 10:58:26Z jconder $
+# $Id: PKGBUILD 62160 2012-01-17 00:26:49Z jconder $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
pkgbase='packagekit'
pkgname=('packagekit' 'packagekit-qt' 'packagekit-qt2' 'packagekit-python')
-pkgver=0.6.19
-pkgrel=4
+pkgver=0.6.21
+pkgrel=1
pkgdesc="A system designed to make installation and updates of packages easier."
arch=('i686' 'x86_64')
url="http://www.packagekit.org"
@@ -14,14 +14,12 @@ makedepends=('dbus-glib' 'gobject-introspection' 'gtk-doc' 'intltool'
options=('!libtool')
source=("http://www.packagekit.org/releases/PackageKit-$pkgver.tar.xz"
'alpm.patch')
-sha256sums=('961c6408de08ebaf15c09e74afd06918d699be8974b5c35c2c9663e5b12b5223'
- 'a0e23b5e666eb402cd3d1a7b6e9030af33be5c9ddcf40682ae9abba7018e177d')
+sha256sums=('68e5d4d07adf50b1fae6cbc0963555345ba7fc12d86d3e3387874547a5448b8e'
+ 'fbe54a89c3495376a0b939b67fec5b2e57bed46e92b3f4816d797745882481e6')
build() {
cd "$srcdir/PackageKit-$pkgver"
- # TODO: remove when this is fixed upstream
- find -name '*.moc' -print0 | xargs -0 rm
patch -Np1 -i "$srcdir/alpm.patch"
sed -i 's@SUBDIRS = test@SUBDIRS =@' 'backends/Makefile.in'
@@ -29,6 +27,8 @@ build() {
sed -i 's@bin/python@bin/python2@' 'lib/python/packagekit/'*.py
export PYTHON=/usr/bin/python2
+ # TODO: remove when upstream is patched
+ autoreconf
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -54,7 +54,7 @@ package_packagekit() {
backup=('var/lib/PackageKit/transactions.db'
'etc/PackageKit/alpm.d/pacman.conf'
'etc/PackageKit/alpm.d/repos.list')
- depends=('dbus-glib' 'pacman>=3.5.0' 'pacman<3.6.0' 'polkit'
+ depends=('dbus-glib' 'pacman>=4.0.0' 'pacman<4.1.0' 'polkit'
'shared-mime-info' 'sqlite3' 'udev')
optdepends=('networkmanager')
install='packagekit.install'
diff --git a/community/packagekit/alpm.patch b/community/packagekit/alpm.patch
index 5f576d3aa..d39ce14e1 100644
--- a/community/packagekit/alpm.patch
+++ b/community/packagekit/alpm.patch
@@ -1,8 +1,28 @@
+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..4cc9af2 100644
+index ba993f0..93f6d95 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
-@@ -22,8 +22,10 @@
+@@ -22,10 +22,13 @@
*/
#include <config.h>
@@ -12,17 +32,80 @@ index ba993f0..4cc9af2 100644
+#include <pk-backend-spawn.h>
#include "pk-backend-alpm.h"
++#include "pk-backend-config.h"
#include "pk-backend-databases.h"
-@@ -194,6 +196,66 @@ pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
+ #include "pk-backend-error.h"
+ #include "pk-backend-groups.h"
+@@ -35,7 +38,8 @@ PkBackend *backend = NULL;
+ GCancellable *cancellable = NULL;
+ static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+
+-pmdb_t *localdb = NULL;
++alpm_handle_t *alpm = NULL;
++alpm_db_t *localdb = NULL;
+
+ gchar *xfercmd = NULL;
+ alpm_list_t *holdpkgs = NULL;
+@@ -162,7 +166,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;
+
+@@ -176,12 +180,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;
+@@ -194,44 +198,99 @@ pk_backend_logcb (pmloglevel_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_initialize_environment (PkBackend *self)
-+{
++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);
+-
+- g_debug ("initializing");
+- if (alpm_initialize () < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ 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) {
@@ -77,42 +160,2955 @@ index ba993f0..4cc9af2 100644
+ }
+}
+
++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) {
+ 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 ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s", "local",
++ alpm_strerror (errno));
+ }
+
+- /* 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_logfile (PK_BACKEND_DEFAULT_LOGFILE);
+-
+ return TRUE;
+ }
+
+@@ -240,17 +299,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) < 0) {
++ 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..ecd6d0f 100644
+--- a/backends/alpm/pk-backend-alpm.h
++++ b/backends/alpm/pk-backend-alpm.h
+@@ -28,7 +28,8 @@
+ extern PkBackend *backend;
+ extern GCancellable *cancellable;
+
+-extern pmdb_t *localdb;
++extern alpm_handle_t *alpm;
++extern alpm_db_t *localdb;
+
+ extern gchar *xfercmd;
+ extern alpm_list_t *holdpkgs;
+diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
+index 21a4c54..a51a984 100644
+--- a/backends/alpm/pk-backend-config.c
++++ b/backends/alpm/pk-backend-config.c
+@@ -28,29 +28,44 @@
+
+ #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, totaldl, usedelta, usesyslog,
++ verbosepkglists;
+
+- 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;
++ alpm_list_t *cachedirs, *holdpkgs, *ignoregroups, *ignorepkgs,
++ *noextracts, *noupgrades, *syncfirsts;
+
+- alpm_list_t *repos;
+- GHashTable *servers;
+- GRegex *xrepo, *xarch;
++ alpm_list_t *repos;
++ GHashTable *servers;
++ GHashTable *levels;
++ GRegex *xrepo, *xarch;
+ } PkBackendConfig;
+
+ 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;
+ }
+
+@@ -76,13 +91,14 @@ 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);
+
+ FREELIST (config->cachedirs);
+ FREELIST (config->holdpkgs);
+- FREELIST (config->ignoregrps);
++ FREELIST (config->ignoregroups);
+ FREELIST (config->ignorepkgs);
+ FREELIST (config->noextracts);
+ FREELIST (config->noupgrades);
+@@ -92,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);
+ }
+@@ -113,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);
+@@ -144,19 +154,28 @@ pk_backend_config_set_usesyslog (PkBackendConfig *config)
+ config->usesyslog = TRUE;
+ }
+
+-typedef struct {
+- const gchar *name;
+- void (*func) (PkBackendConfig *config);
++static void
++pk_backend_config_set_verbosepkglists (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->verbosepkglists = TRUE;
++}
++
++typedef struct
++{
++ const gchar *name;
++ void (*func) (PkBackendConfig *config);
+ } PkBackendConfigBoolean;
+
+ /* keep this in alphabetical order */
+ 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 }
+ };
+
+@@ -234,6 +253,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);
+@@ -263,9 +293,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 */
+@@ -274,6 +305,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 },
+@@ -313,12 +345,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
+@@ -357,15 +389,16 @@ 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 */
+ 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 },
+@@ -451,7 +484,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");
+ }
+
+@@ -463,6 +496,95 @@ pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
+ }
+
static gboolean
- pk_backend_initialize_alpm (PkBackend *self, GError **error)
++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)
{
-@@ -260,6 +322,8 @@ pk_backend_initialize (PkBackend *self)
+@@ -515,7 +637,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
- g_return_if_fail (self != NULL);
+ if (*str == '\0') {
+ g_set_error (&e, ALPM_ERROR,
+- PM_ERR_CONFIG_INVALID,
++ ALPM_ERR_CONFIG_INVALID,
+ "empty section name");
+ break;
+ }
+@@ -532,7 +654,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;
+ }
+@@ -590,9 +712,18 @@ 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;
++ }
++ }
-+ pk_backend_initialize_environment (self);
+ /* 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;
+ }
+@@ -611,107 +742,100 @@ 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;
+
- if (!pk_backend_initialize_alpm (self, &error) ||
- !pk_backend_initialize_databases (self, &error) ||
- !pk_backend_initialize_groups (self, &error)) {
-@@ -380,3 +444,11 @@ pk_backend_finish (PkBackend *self, GError *error)
- pk_backend_thread_finished (self);
- return (error == NULL);
+ 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);
++ } else if (!g_str_has_suffix (config->root, G_DIR_SEPARATOR_S)) {
++ dir = 0;
+ }
+
+- if (alpm_option_set_root (config->root) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "RootDir: %s",
+- alpm_strerrorlast ());
+- return FALSE;
++ if (config->dbpath == NULL) {
++ config->dbpath = g_strconcat (config->root,
++ PK_BACKEND_DEFAULT_DBPATH + dir,
++ NULL);
+ }
+
+- if (config->dbpath == NULL) {
+- config->dbpath = g_strconcat (alpm_option_get_root (),
+- PK_BACKEND_DEFAULT_DBPATH + 1,
++ 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 (config->root,
++ PK_BACKEND_DEFAULT_GPGDIR + dir,
+ NULL);
+ }
+
+- if (alpm_option_set_dbpath (config->dbpath) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "DBPath: %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);
++ 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
+-pk_backend_config_configure_repos (PkBackendConfig *config, GError **error)
++static alpm_handle_t *
++pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+ {
+- const alpm_list_t *i;
++ alpm_handle_t *handle;
++ alpm_siglevel_t *level;
+
+ 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);
+- }
++ handle = pk_backend_config_initialize_alpm (config, error);
++ if (handle == NULL) {
++ return NULL;
+ }
+
+- return TRUE;
+-}
+-
+-static gboolean
+-pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+-{
+- g_return_val_if_fail (config != NULL, FALSE);
+-
+- if (!pk_backend_config_configure_paths (config, error)) {
+- return FALSE;
+- }
++ 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);
+
+- alpm_option_set_checkspace (config->checkspace);
+- alpm_option_set_usedelta (config->usedelta);
+- alpm_option_set_usesyslog (config->usesyslog);
+- alpm_option_set_arch (config->arch);
++ level = g_hash_table_lookup (config->levels, "options");
++ alpm_option_set_default_siglevel (handle, *level);
+
+ /* backend takes ownership */
+ g_free (xfercmd);
+@@ -719,9 +843,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 */
+@@ -735,41 +859,53 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+ config->syncfirsts = NULL;
+
+ /* alpm takes ownership */
+- alpm_option_set_ignoregrps (config->ignoregrps);
+- config->ignoregrps = NULL;
++ alpm_option_set_ignoregroups (handle, config->ignoregroups);
++ config->ignoregroups = 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,
++ config->levels);
+
+- 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..ac530c7 100644
+--- a/backends/alpm/pk-backend-databases.c
++++ b/backends/alpm/pk-backend-databases.c
+@@ -26,7 +26,15 @@
+ #include "pk-backend-databases.h"
+ #include "pk-backend-error.h"
+
++typedef struct
++{
++ gchar *name;
++ alpm_list_t *servers;
++ alpm_siglevel_t level;
++} PkBackendRepo;
+
+ static GHashTable *disabled = NULL;
++static alpm_list_t *configured = NULL;
+
+ static GHashTable *
+ disabled_repos_new (GError **error)
+@@ -113,8 +121,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 +136,65 @@ 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;
++ alpm_db_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, repo->level);
++ 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_transaction_start (PkBackend *self)
++pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers,
++ GHashTable *levels)
+{
-+ g_return_if_fail (self != NULL);
++ 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);
++
++ value = g_hash_table_lookup (levels, i->data);
++ if (value != NULL) {
++ repo->level = *(alpm_siglevel_t *)value;
++ } else {
++ repo->level = ALPM_SIG_USE_DEFAULT;
++ }
+
-+ pk_backend_initialize_environment (self);
++ configured = alpm_list_add (configured, repo);
++ }
+}
++
+ gboolean
+ pk_backend_initialize_databases (PkBackend *self, GError **error)
+ {
+@@ -179,11 +215,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
+@@ -210,11 +256,12 @@ 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) {
+- pmdb_t *db = (pmdb_t *) i->data;
++ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
++ alpm_db_t *db = (alpm_db_t *) i->data;
+ const gchar *repo = alpm_db_get_name (db);
+
+ if (pk_backend_cancelled (self)) {
+@@ -269,7 +316,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));
+ }
+@@ -292,21 +339,23 @@ 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) {
+- pmdb_t *db = (pmdb_t *) i->data;
++ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
++ alpm_db_t *db = (alpm_db_t *) i->data;
+ const gchar *name = alpm_db_get_name (db);
+
+ 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));
+@@ -316,7 +365,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-databases.h b/backends/alpm/pk-backend-databases.h
+index f9eb2f9..2636cae 100644
+--- a/backends/alpm/pk-backend-databases.h
++++ b/backends/alpm/pk-backend-databases.h
+@@ -24,6 +24,10 @@
+ #include <alpm.h>
+ #include <pk-backend.h>
+
++void pk_backend_configure_repos (alpm_list_t *repos,
++ GHashTable *servers,
++ GHashTable *levels);
++
+ gboolean pk_backend_initialize_databases (PkBackend *self,
+ GError **error);
+
+diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
+index 8bb8567..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,11 +50,12 @@ 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);
+ 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) {
+@@ -96,7 +97,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));
+ }
+@@ -108,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);
+@@ -127,7 +128,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));
+ }
+@@ -150,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;
+@@ -206,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-error.c b/backends/alpm/pk-backend-error.c
+index 255f1fb..57c4b4b 100644
+--- a/backends/alpm/pk-backend-error.c
++++ b/backends/alpm/pk-backend-error.c
+@@ -33,140 +33,159 @@ 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 ALPM_ERR_MEMORY:
++ case ALPM_ERR_SYSTEM:
++ code = PK_ERROR_ENUM_OOM;
++ break;
++
++ case ALPM_ERR_BADPERMS:
++ code = PK_ERROR_ENUM_NOT_AUTHORIZED;
++ break;
++
++ case ALPM_ERR_NOT_A_FILE:
++ case ALPM_ERR_NOT_A_DIR:
++ code = PK_ERROR_ENUM_FILE_NOT_FOUND;
++ break;
++
++ 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 ALPM_ERR_DISK_SPACE:
++ code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
++ break;
++
++ 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 ALPM_ERR_HANDLE_LOCK:
++ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
++ break;
++
++ 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 ALPM_ERR_DB_CREATE:
++ 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:
++ 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;
++
++ case ALPM_ERR_SERVER_NONE:
++ code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
++ break;
++
++ case ALPM_ERR_TRANS_DUP_TARGET:
++ case ALPM_ERR_TRANS_ABORT:
++ code = PK_ERROR_ENUM_TRANSACTION_ERROR;
++ break;
++
++ case ALPM_ERR_TRANS_TYPE:
++ code = PK_ERROR_ENUM_CANNOT_CANCEL;
++ break;
++
++ case ALPM_ERR_PKG_NOT_FOUND:
++ code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
++ break;
++
++ case ALPM_ERR_PKG_IGNORED:
++ code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
++ break;
++
++ 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 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;
++
++ case ALPM_ERR_PKG_INVALID_ARCH:
++ code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
++ break;
++
++ case ALPM_ERR_SIG_MISSING:
++ code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
++ break;
++
++ case ALPM_ERR_DLT_PATCHFAILED:
++ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
++ break;
++
++ case ALPM_ERR_UNSATISFIED_DEPS:
++ code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
++ break;
++
++ case ALPM_ERR_CONFLICTING_DEPS:
++ code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
++ break;
++
++ case ALPM_ERR_FILE_CONFLICTS:
++ code = PK_ERROR_ENUM_FILE_CONFLICTS;
++ break;
++
++ case ALPM_ERR_RETRIEVE:
++ case ALPM_ERR_LIBCURL:
++ case ALPM_ERR_EXTERNAL_DOWNLOAD:
++ code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
++ break;
++
++ case ALPM_ERR_LIBARCHIVE:
++ code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
++ break;
++
++ case ALPM_ERR_GPGME:
++ code = PK_ERROR_ENUM_GPG_FAILURE;
++ break;
++
++ case ALPM_ERR_CONFIG_INVALID:
++ code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
++ break;
++
++ case ALPM_ERR_PKG_HELD:
++ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
++ break;
+ }
+
+ pk_backend_error_code (self, code, "%s", error->message);
+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-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 65a6c11..5b5e2b2 100644
+--- a/backends/alpm/pk-backend-install.c
++++ b/backends/alpm/pk-backend-install.c
+@@ -32,15 +32,19 @@
+ static gint
+ alpm_add_file (const gchar *filename)
+ {
+- pmpkg_t *pkg;
++ 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 (filename, 1, &pkg) < 0) {
++ level = alpm_option_get_default_siglevel (alpm);
++
++ if (alpm_pkg_load (alpm, filename, 1, level, &pkg) < 0) {
+ return -1;
+ }
+
+- if (alpm_add_pkg (pkg) < 0) {
++ if (alpm_add_pkg (alpm, pkg) < 0) {
+ alpm_pkg_free (pkg);
+ return -1;
+ }
+@@ -61,8 +65,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-packages.c b/backends/alpm/pk-backend-packages.c
+index e9a7c94..2d057aa 100644
+--- a/backends/alpm/pk-backend-packages.c
++++ b/backends/alpm/pk-backend-packages.c
+@@ -27,13 +27,11 @@
+ #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;
+
+ 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,19 +41,18 @@ alpm_pkg_build_id (pmpkg_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);
+ }
+
+ 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,16 +64,17 @@ 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);
++ 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 +84,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) {
+@@ -111,7 +109,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));
+ }
+@@ -123,7 +121,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;
+@@ -142,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);
+ }
+@@ -158,7 +156,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;
+@@ -166,6 +164,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 +179,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,
+@@ -191,7 +190,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;
+@@ -254,7 +253,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;
+@@ -286,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);
+@@ -317,17 +316,19 @@ 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");
+
+ g_return_val_if_fail (packages != NULL, FALSE);
+
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg;
+- const alpm_list_t *i;
++ alpm_pkg_t *pkg;
++ const gchar *root;
+
+ GString *files;
+- const gchar *root;
++ alpm_filelist_t *filelist;
++ gsize i;
+
+ if (pk_backend_cancelled (self)) {
+ break;
+@@ -338,11 +339,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-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 03329b1..1993061 100644
+--- a/backends/alpm/pk-backend-remove.c
++++ b/backends/alpm/pk-backend-remove.c
+@@ -29,29 +29,14 @@
+ #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 (alpm != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ packages = pk_backend_get_strv (self, "package_ids");
+
+@@ -61,9 +46,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 ());
++ 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,
++ alpm_strerror (errno));
+ g_strfreev (package);
+ return FALSE;
+ }
+@@ -79,14 +66,17 @@ 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, PM_ERR_PKG_HELD,
++ g_set_error (error, ALPM_ERROR, ALPM_ERR_PKG_HELD,
+ "%s: %s", name,
+ "could not remove HoldPkg");
+ return FALSE;
+@@ -99,14 +89,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;
++ alpm_transflag_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) &&
+@@ -121,18 +111,18 @@ 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);
+
+ /* 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-search.c b/backends/alpm/pk-backend-search.c
+index 592472d..c4e80ae 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) {
+@@ -74,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);
+@@ -84,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);
+@@ -123,32 +124,38 @@ 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)
+ {
+- 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;
+ }
+ }
+@@ -158,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);
+@@ -168,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);
+@@ -178,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;
+@@ -215,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,
+@@ -245,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);
+@@ -274,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;
+@@ -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 9e1e02b..c770159 100644
+--- a/backends/alpm/pk-backend-sync.c
++++ b/backends/alpm/pk-backend-sync.c
+@@ -30,41 +30,13 @@
+ #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)
+ {
+ 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");
+
+@@ -75,9 +47,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 = alpm_option_get_syncdbs (alpm);
++ alpm_pkg_t *pkg;
++
++ for (; 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 = ALPM_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 (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));
+ g_strfreev (package);
+ return FALSE;
+ }
+@@ -93,23 +84,27 @@ 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);
++ 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 |= 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) &&
+@@ -118,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);
+@@ -190,16 +185,17 @@ 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;
+
+ 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) {
+- pmpkg_t *rpkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *rpkg = (alpm_pkg_t *) i->data;
+ const gchar *rname = alpm_pkg_get_name (rpkg);
+
+ if (pk_backend_cancelled (self)) {
+@@ -208,7 +204,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;
+ }
+ }
+@@ -224,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) ||
+@@ -233,8 +230,8 @@ 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) {
+- pmpkg_t *pkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
+ const gchar *name = alpm_pkg_get_name (pkg);
+
+ if (pk_backend_cancelled (self)) {
+@@ -254,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, PM_PKG_REASON_DEPEND);
++ alpm_pkg_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 fdb840e..a4a712f 100644
+index fdb840e..76402f0 100644
--- a/backends/alpm/pk-backend-transaction.c
+++ b/backends/alpm/pk-backend-transaction.c
-@@ -280,8 +280,8 @@ pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
+@@ -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,25 +51,26 @@ 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;
+
+ 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;
+ }
+
+ 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;
+ }
+ }
+@@ -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,8 +129,8 @@ 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) {
+- pmpkg_t *pkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
+
+ if (alpm_pkg_has_basename (pkg, basename)) {
+ dpkg = pkg;
+@@ -202,16 +204,17 @@ 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;
+ 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 ||
++ type == ALPM_PROGRESS_LOAD_START) {
+ if (current < targets) {
+ overall = percent + current++ * 100;
+ }
+@@ -228,12 +231,13 @@ 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:
++ case ALPM_PROGRESS_LOAD_START:
+ if (percent == recent) {
+ break;
+ }
+@@ -253,7 +257,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;
+
+@@ -280,50 +284,52 @@ pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
}
static void
-pk_backend_select_provider (PkBackend *self, pmdepend_t *dep,
- const alpm_list_t *providers)
+pk_backend_select_provider (PkBackend *self, const alpm_list_t *providers,
-+ pmdepend_t *dep)
++ alpm_depend_t *depend)
{
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);
+ }
+
+ 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);
+ 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:
++ /* TODO: handle keys better */
++ case ALPM_QUESTION_IMPORT_KEY:
+ 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;
+@@ -349,7 +355,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);
+@@ -398,7 +404,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);
+@@ -409,18 +415,19 @@ 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;
+
+ 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);
+@@ -438,7 +445,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);
+@@ -449,24 +456,25 @@ 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;
+
+ 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);
+ }
+
+ 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;
+@@ -491,8 +499,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;
+@@ -501,12 +509,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),
+@@ -528,53 +537,65 @@ 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_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)
+ {
+ g_return_if_fail (backend != NULL);
+
+ /* 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_LOAD_START:
++ pk_backend_transaction_setup (backend);
++ break;
++
++ case ALPM_EVENT_SCRIPTLET_INFO:
+ pk_backend_output (backend, data);
+ break;
+
+@@ -588,27 +609,32 @@ 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
+-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);
++ 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) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ 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),
+@@ -649,10 +675,11 @@ alpm_miss_build_list (const alpm_list_t *i)
+ }
+
+ for (; i != NULL; i = i->next) {
+- pmdepend_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);
+ }
+
+@@ -661,25 +688,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);
+ }
+
+@@ -695,17 +718,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);
+ }
+ }
+
+@@ -716,10 +742,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);
+ }
+
+@@ -735,15 +761,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);
+ }
+ }
+
+@@ -754,14 +782,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);
+ }
+
+@@ -771,29 +796,32 @@ 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;
+ }
+
+- switch (pm_errno) {
+- case PM_ERR_PKG_INVALID_ARCH:
++ switch (alpm_errno (alpm)) {
++ 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_inner (data, alpm_depmissing_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);
+@@ -802,18 +830,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;
+@@ -826,10 +857,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 {
+@@ -856,7 +888,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 {
+@@ -890,6 +922,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;
+ }
+@@ -897,19 +932,19 @@ 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;
+ }
+
+- switch (pm_errno) {
+- case PM_ERR_FILE_CONFLICTS:
++ switch (alpm_errno (alpm)) {
++ 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;
+@@ -917,18 +952,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;
+@@ -938,9 +976,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);
+@@ -949,9 +992,10 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
+ pk_backend_output_end (self);
+ }
+
+- if (alpm_trans_release () < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ 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));
+ return FALSE;
+ }
+
+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 a281953..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;
+@@ -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) {
+@@ -274,9 +275,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;
+ }
+ }
+@@ -292,20 +294,21 @@ 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, *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;
+ }
+ }
+@@ -314,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);
+
+@@ -325,8 +328,18 @@ alpm_pkg_is_syncfirst (pmpkg_t *pkg)
+ return FALSE;
+ }
+
+-static pmpkg_t *
+-alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
++static gboolean
++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);
++
++ return alpm_list_find_str (alpm_pkg_get_replaces (pkg), name) != NULL;
++}
++
++
++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;
+@@ -336,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),
+@@ -349,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;
+ }
+ }
+@@ -367,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);
+@@ -385,9 +398,9 @@ 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);
++ alpm_pkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
+
+ if (pk_backend_cancelled (self)) {
+ break;
diff --git a/community/pinot/PKGBUILD b/community/pinot/PKGBUILD
index a63a719d2..0e6c7e42e 100644
--- a/community/pinot/PKGBUILD
+++ b/community/pinot/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 60809 2011-12-18 16:48:56Z jlichtblau $
+# $Id: PKGBUILD 62141 2012-01-16 19:53:05Z dreisner $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=pinot
pkgver=0.98
-pkgrel=1
+pkgrel=2
pkgdesc='Personal search and metasearch tool'
arch=('i686' 'x86_64')
url='http://pinot.berlios.de/'
diff --git a/community/pkgtools/PKGBUILD b/community/pkgtools/PKGBUILD
index 4acf5b01d..922bb5fa3 100644
--- a/community/pkgtools/PKGBUILD
+++ b/community/pkgtools/PKGBUILD
@@ -2,7 +2,7 @@
# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
pkgname=pkgtools
pkgver=23
-pkgrel=2
+pkgrel=3
pkgdesc="A collection of scripts for Arch Linux packages"
arch=('i686' 'x86_64')
url="http://bbs.archlinux.org/viewtopic.php?pid=384196"
diff --git a/community/tellico/PKGBUILD b/community/tellico/PKGBUILD
index 360536653..4377089ff 100644
--- a/community/tellico/PKGBUILD
+++ b/community/tellico/PKGBUILD
@@ -1,12 +1,11 @@
-# $Id: PKGBUILD 61284 2011-12-28 02:21:17Z seblu $
+# $Id: PKGBUILD 62153 2012-01-16 21:08:22Z andrea $
# Maintainer: Ray Rashif <schiv@archlinux.org
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
-# Contributor: mdv
pkgname=tellico
-pkgver=2.3.4
-pkgrel=2
+pkgver=2.3.5
+pkgrel=1
pkgdesc="A collection manager for KDE"
arch=('i686' 'x86_64')
url="http://tellico-project.org/"
@@ -16,7 +15,7 @@ depends=('kdebase-workspace' 'yaz' 'exempi' 'libksane' 'taglib'
makedepends=('automoc4' 'cmake')
install=$pkgname.install
source=("http://tellico-project.org/files/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('0a955754e89fc96d9745266ec97410c7')
+md5sums=('e6a1835d2622b79c4bfd95271bce858e')
build() {
cd "${srcdir}"
@@ -36,5 +35,3 @@ package() {
# fix python 2.7 path
find "$pkgdir" -iname "*.py" | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/community/tellico/tellico.install b/community/tellico/tellico.install
index be3fad925..3f06b8deb 100644
--- a/community/tellico/tellico.install
+++ b/community/tellico/tellico.install
@@ -10,5 +10,3 @@ post_upgrade() {
post_remove() {
post_install
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD
index 5c58111cc..5d64f1bc1 100644
--- a/community/twinkle/PKGBUILD
+++ b/community/twinkle/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 59974 2011-12-02 21:01:27Z ibiru $
-# Maintainer:
+# $Id: PKGBUILD 62127 2012-01-16 09:29:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jeff Mickey <jeff@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
pkgname=twinkle
pkgver=1.4.2
-pkgrel=12
+pkgrel=13
pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol"
arch=('i686' 'x86_64')
url="http://www.twinklephone.com/"
@@ -21,8 +21,9 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
. /etc/profile.d/qt3.sh
./configure --prefix=/usr \
- --without-kde \
- --with-speex
+ --without-kde \
+ --with-speex \
+ --without-ilbc
make
}
diff --git a/community/vdrift/PKGBUILD b/community/vdrift/PKGBUILD
index cc617662f..07bf63bfd 100644
--- a/community/vdrift/PKGBUILD
+++ b/community/vdrift/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 57538 2011-10-30 16:10:55Z svenstaro $
+# $Id: PKGBUILD 62149 2012-01-16 19:53:31Z dreisner $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
# Contributor: Lone_Wolf lonewolf@xs4all.nl
pkgname=vdrift
pkgver=2011.10.22
-pkgrel=1
+pkgrel=3
pkgdesc="An open source driving simulation made with drift racing in mind"
arch=('i686' 'x86_64')
url="http://vdrift.net/"
@@ -14,6 +14,7 @@ depends=('bullet' 'curl' 'sdl_gfx' 'sdl_image' 'glew' 'libvorbis' 'vdrift-data')
makedepends=('scons' 'boost' 'asio')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver//./-}.tar.bz2)
md5sums=('6f8806ab1be303e9e1e47522c9eee890')
+install=vdrift.install
build() {
cd "$srcdir"/$pkgname-${pkgver//./-}
@@ -29,7 +30,7 @@ build() {
#sed -i '/types.h/d' src/http.h
# build and install
- scons \
+ scons $MAKEFLAGS \
"destdir"="$pkgdir" \
"arch"=$_sconsarch \
"release"=1 \
diff --git a/community/vdrift/vdrift.install b/community/vdrift/vdrift.install
new file mode 100644
index 000000000..868f6717b
--- /dev/null
+++ b/community/vdrift/vdrift.install
@@ -0,0 +1,11 @@
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/core/dirmngr/PKGBUILD b/core/dirmngr/PKGBUILD
new file mode 100644
index 000000000..24ee2ea26
--- /dev/null
+++ b/core/dirmngr/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 146749 2012-01-16 22:52:57Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=dirmngr
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="A daemon to handle CRL and certificate requests"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/dirmngr"
+depends=('libgcrypt' 'libldap' 'libksba' 'libgpg-error' 'libassuan' 'pth')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+install=dirmngr.install
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('f2570f0248f5947daac200e85291b328')
diff --git a/core/dirmngr/dirmngr.install b/core/dirmngr/dirmngr.install
new file mode 100644
index 000000000..e26e0e7fd
--- /dev/null
+++ b/core/dirmngr/dirmngr.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(dirmngr.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/gnupg/PKGBUILD b/core/gnupg/PKGBUILD
new file mode 100644
index 000000000..f678f304e
--- /dev/null
+++ b/core/gnupg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146739 2012-01-16 22:52:44Z dreisner $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gnupg
+pkgver=1.4.11
+pkgrel=3
+pkgdesc="GNU Privacy Guard - a PGP replacement tool"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('zlib' 'bzip2' 'libldap>=2.4.18' 'libusb-compat' 'curl>=7.16.2' 'readline>=6.0.00')
+source=(ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg/$pkgname-$pkgver.tar.bz2)
+install=gnupg.install
+url="http://www.gnupg.org/"
+md5sums=('411744e1ef8ce90b87938c4203f001f1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-noexecstack
+ make
+ #ln -s ${pkgname}-${pkgver}/scripts .. # seems obsolete now
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check #All 27 tests passed
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # fix fileconflict with gnupg2 pkg
+ rm ${pkgdir}/usr/share/man/man1/gpg-zip.1
+}
diff --git a/core/gnupg/gnupg.install b/core/gnupg/gnupg.install
new file mode 100644
index 000000000..5a6704716
--- /dev/null
+++ b/core/gnupg/gnupg.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=(gnupg1.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+# vim:set ts=2 sw=2 et:
diff --git a/core/gnupg2/PKGBUILD b/core/gnupg2/PKGBUILD
new file mode 100644
index 000000000..367ce13b8
--- /dev/null
+++ b/core/gnupg2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 146741 2012-01-16 22:52:47Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gnupg2
+pkgver=2.0.18
+pkgrel=1
+pkgdesc="GNU Privacy Guard 2 - a PGP replacement tool"
+arch=('i686' 'x86_64')
+depends=('libldap' 'curl' 'bzip2' 'zlib' 'libksba' 'libgcrypt'
+ 'pth' 'libusb-compat' 'libassuan' 'texinfo' 'readline' 'pinentry' 'dirmngr')
+license=('GPL')
+url="http://www.gnupg.org/"
+install=${pkgname}.install
+source=(ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-$pkgver.tar.bz2)
+
+build() {
+ cd ${srcdir}/gnupg-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/gnupg2 #$EXTRAOPTS
+ make
+}
+
+package() {
+ cd ${srcdir}/gnupg-$pkgver
+ make DESTDIR=${pkgdir} install
+ # move conflicting files
+ mv ${pkgdir}/usr/share/gnupg{,2}
+ rm -f ${pkgdir}/usr/share/info/dir
+}
+md5sums=('2f37e0722666a0fedbe4d9f9227ac4d7')
diff --git a/core/gnupg2/gnupg2-2.0.16-security.patch b/core/gnupg2/gnupg2-2.0.16-security.patch
new file mode 100644
index 000000000..b265c1532
--- /dev/null
+++ b/core/gnupg2/gnupg2-2.0.16-security.patch
@@ -0,0 +1,11 @@
+--- kbx/keybox-blob.c (revision 5367)
++++ kbx/keybox-blob.c (working copy)
+@@ -898,6 +898,7 @@
+ rc = gpg_error_from_syserror ();
+ goto leave;
+ }
++ names = tmp;
+ }
+ names[blob->nuids++] = p;
+ if (!i && (p=x509_email_kludge (p)))
+
diff --git a/core/gnupg2/gnupg2.install b/core/gnupg2/gnupg2.install
new file mode 100644
index 000000000..27c121ffd
--- /dev/null
+++ b/core/gnupg2/gnupg2.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gnupg.info gnupg.info-1 gnupg.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gpgme/PKGBUILD b/core/gpgme/PKGBUILD
new file mode 100644
index 000000000..830d06cc3
--- /dev/null
+++ b/core/gpgme/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146733 2012-01-16 22:51:33Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gpgme
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A C wrapper library for GnuPG"
+arch=('i686' 'x86_64')
+url="http://www.gnupg.org/related_software/gpgme/"
+license=('GPL')
+depends=('libgpg-error' 'pth' 'gnupg' 'gnupg2')
+install=${pkgname}.install
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig})
+md5sums=('90afa8436ce2b2683c001c824bd22601'
+ 'a032ddc27177ef4ee54e25a231e62da5')
+sha1sums=('7d19a95a2239da13764dad7f97541be884ec5a37'
+ '93316a81a8f903c5b604716b6937884ea7b0917a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/gpgme/gpgme.install b/core/gpgme/gpgme.install
new file mode 100644
index 000000000..b54620d9a
--- /dev/null
+++ b/core/gpgme/gpgme.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gpgme.info gpgme.info-1 gpgme.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/inetutils/PKGBUILD b/core/inetutils/PKGBUILD
index 7a7a7dc86..55f74f01e 100644
--- a/core/inetutils/PKGBUILD
+++ b/core/inetutils/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 146044 2012-01-04 17:06:20Z eric $
+# $Id: PKGBUILD 146753 2012-01-17 02:18:51Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=inetutils
-pkgver=1.9
+pkgver=1.9.1
pkgrel=1
pkgdesc="A collection of common network programs"
arch=('i686' 'x86_64')
@@ -20,8 +20,8 @@ install=inetutils.install
source=(http://ftp.gnu.org/gnu/inetutils/${pkgname}-${pkgver}.tar.gz{,.sig} \
ftpd.rc ftpd.conf telnet.xinetd talk.xinetd rexec.xinetd rlogin.xinetd rsh.xinetd \
dnsdomainname domainname)
-sha1sums=('c0466718360459622172bf80674005e20fefeb38'
- '1bd1555c8e1db5a7a6d1b96a7647a6a9db1abc68'
+sha1sums=('86b7eb11cfdaefb1d4e9bfc10620beaf8f09bc90'
+ 'ff0aad9946a38915580b094dadf67e790e8a2f87'
'84dc802b5e57b5e04c847572225a3b9612017155'
'68a590083b45997dfdb80e666b2de762f494ba74'
'bfad98a4a62f1fff8779f076c6019ed07f9111af'
@@ -60,7 +60,6 @@ check() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
- rm "${pkgdir}/usr/bin/git-merge-changelog"
install -d "${pkgdir}/bin"
ln -s /usr/bin/hostname "${pkgdir}/bin/hostname"
diff --git a/core/libarchive/PKGBUILD b/core/libarchive/PKGBUILD
index a64e19690..75c87cf45 100644
--- a/core/libarchive/PKGBUILD
+++ b/core/libarchive/PKGBUILD
@@ -1,33 +1,32 @@
-# $Id: PKGBUILD 140981 2011-10-20 13:56:51Z dan $
+# $Id: PKGBUILD 146703 2012-01-16 19:48:41Z dreisner $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
-pkgver=2.8.5
+pkgver=3.0.3
pkgrel=2
pkgdesc="library that can create and read several streaming archive formats"
arch=('i686' 'x86_64')
url="http://libarchive.googlecode.com/"
license=('BSD')
depends=('zlib' 'bzip2' 'xz>=5.0.0' 'acl' 'openssl>=1.0.0' 'expat')
-source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz"
- release-2.8-fixes.patch)
-md5sums=('9caf51dcf6213e9c9f5a1c27448b9c90'
- '14dbbf2d31d68d8eedb93ec5531f3b0c')
-sha256sums=('13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d'
- 'fcadc5ac3020a9fab5922d343baca28f067cc051e9b6f59e480349ba5b0a5060')
+source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz")
+md5sums=('ca4090f0099432a9ac5a8b6618dc3892')
+sha256sums=('c5fc7620f74a54b1717e4aed38aee85dc27a988ad1db7640f28eb63a82ea62d7')
# keep an upgrade path for older installations
PKGEXT='.pkg.tar.gz'
build() {
cd "$srcdir/$pkgname-$pkgver"
- patch -Np0 < ../release-2.8-fixes.patch
+
./configure --prefix=/usr --without-xml2
make
}
check() {
cd "$srcdir/$pkgname-$pkgver"
- make check
+
+ # currently fails on i686 in a minor test involving atime updates (#60)
+ make check || :
}
package() {
diff --git a/core/libarchive/sparse-file.patch b/core/libarchive/sparse-file.patch
new file mode 100644
index 000000000..e7d3e473b
--- /dev/null
+++ b/core/libarchive/sparse-file.patch
@@ -0,0 +1,13 @@
+Index: libarchive/archive_write_set_format_pax.c
+===================================================================
+--- libarchive/archive_write_set_format_pax.c (revision 4094)
++++ libarchive/archive_write_set_format_pax.c (working copy)
+@@ -1647,7 +1647,7 @@
+ return (total);
+
+ p = ((const unsigned char *)buff) + total;
+- ws = s;
++ ws = s - total;
+ if (ws > pax->sparse_list->remaining)
+ ws = pax->sparse_list->remaining;
+
diff --git a/core/libassuan/PKGBUILD b/core/libassuan/PKGBUILD
new file mode 100644
index 000000000..12e79ce0e
--- /dev/null
+++ b/core/libassuan/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 146745 2012-01-16 22:52:52Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libassuan
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="A IPC library used by some GnuPG related software"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/related_software/libassuan"
+depends=('libgpg-error')
+options=('!libtool')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+install=libassuan.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('179d1918325fdb928c7bd90b8a514fc7')
diff --git a/core/libassuan/libassuan.install b/core/libassuan/libassuan.install
new file mode 100644
index 000000000..07e2672db
--- /dev/null
+++ b/core/libassuan/libassuan.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(assuan.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/libksba/PKGBUILD b/core/libksba/PKGBUILD
new file mode 100644
index 000000000..ccc897c8b
--- /dev/null
+++ b/core/libksba/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 146743 2012-01-16 22:52:50Z dreisner $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=libksba
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A CMS and X.509 access library"
+arch=(i686 x86_64)
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/alpha/libksba"
+depends=('bash' 'libgpg-error' 'glibc')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+options=(!libtool)
+install=libksba.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('e797f370b69b4dc776499d6a071ae137')
diff --git a/core/libksba/libksba.install b/core/libksba/libksba.install
new file mode 100644
index 000000000..3715b8960
--- /dev/null
+++ b/core/libksba/libksba.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(ksba.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/pinentry/PKGBUILD b/core/pinentry/PKGBUILD
new file mode 100644
index 000000000..c94625d29
--- /dev/null
+++ b/core/pinentry/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146747 2012-01-16 22:52:55Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pinentry
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="a collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/aegypten2"
+depends=('ncurses' 'libcap>=2.16')
+makedepends=('gtk2' 'qt')
+optdepends=('gtk2: for gtk2 backend'
+ 'qt: for qt4 backend')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.gz
+ gtk2-pinentry-segfault.patch)
+install=pinentry.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ for file in qt4/*.moc; do
+ /usr/bin/moc ${file/.moc/.h} > ${file}
+ done
+ ./configure --prefix=/usr \
+ --enable-pinentry-curses \
+ --disable-pinentry-gtk \
+ --disable-pinentry-qt \
+ --enable-pinentry-gtk2 \
+ --enable-pinentry-qt4 \
+ --enable-fallback-curses
+ make
+ make DESTDIR=${pkgdir} install
+ #rm ${pkgdir}/usr/share/info/dir
+ #rm ${pkgdir}/usr/bin/pinentry
+ #ln -s /usr/bin/pinentry-gtk-2 ${pkgdir}/usr/bin/pinentry
+}
+md5sums=('81f99904daee5331eb6738408bb024b6'
+ 'bd9888fafc56464b2c4deaad5b8edb07')
diff --git a/core/pinentry/gtk2-pinentry-segfault.patch b/core/pinentry/gtk2-pinentry-segfault.patch
new file mode 100644
index 000000000..c0b9fb4ca
--- /dev/null
+++ b/core/pinentry/gtk2-pinentry-segfault.patch
@@ -0,0 +1,11 @@
+--- gtk+-2/pinentry-gtk-2.c.orig 2010-03-03 05:19:55.000000000 -0600
++++ gtk+-2/pinentry-gtk-2.c 2010-07-07 00:11:30.413572124 -0500
+@@ -145,7 +145,7 @@
+ {
+ gdk_keyboard_ungrab (gdk_event_get_time (event));
+ /* Unmake window transient for the root window. */
+- gdk_window_set_transient_for (win->window, NULL);
++ gdk_property_delete (win->window, gdk_atom_intern_static_string ("WM_TRANSIENT_FOR"));
+ }
+
+
diff --git a/core/pinentry/pinentry.install b/core/pinentry/pinentry.install
new file mode 100644
index 000000000..eed2c7124
--- /dev/null
+++ b/core/pinentry/pinentry.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(pinentry.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/pth/PKGBUILD b/core/pth/PKGBUILD
new file mode 100644
index 000000000..8ba1b8411
--- /dev/null
+++ b/core/pth/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 146737 2012-01-16 22:52:42Z dreisner $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=pth
+pkgver=2.0.7
+pkgrel=4
+pkgdesc="The GNU Portable Threads."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/pth/"
+license=('LGPL')
+depends=('glibc' 'awk')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/pth/$pkgname-$pkgver.tar.gz{,.sig})
+sha1sums=('9a71915c89ff2414de69fe104ae1016d513afeee'
+ '8cb16dffbf15ba92bda8d08918eaf5995642fc38')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --disable-static \
+ --enable-shared \
+ --with-pic
+
+ sed -i "s|awk=''|awk=/bin/awk|g" shtool # "Cannot find a reasonable Awk"
+
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/at-spi2-atk/PKGBUILD b/extra/at-spi2-atk/PKGBUILD
index c78c48373..6179b042e 100644
--- a/extra/at-spi2-atk/PKGBUILD
+++ b/extra/at-spi2-atk/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 140838 2011-10-20 05:41:39Z ibiru $
+# $Id: PKGBUILD 146694 2012-01-16 14:00:07Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=at-spi2-atk
-pkgver=2.2.1
+pkgver=2.2.2
pkgrel=1
pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
arch=('i686' 'x86_64')
@@ -12,11 +12,11 @@ depends=('at-spi2-core' 'libx11' 'atk' 'dconf')
makedepends=('intltool')
install=at-spi2-atk.install
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('6677def34b16c9a28d6ad96473ea56a3c0e13aa968e584df004cd44c8691ea1a')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('b63b214cec23163bf59239c59b350d55a7fcfab7a95858ea833815e0b16a4041')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
sed -i -e '/AC_PATH_XTRA/d' configure.ac
autoreconf --force --install
@@ -27,8 +27,8 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
diff --git a/extra/at-spi2-core/PKGBUILD b/extra/at-spi2-core/PKGBUILD
index 73c41fd57..d77a8e8cf 100644
--- a/extra/at-spi2-core/PKGBUILD
+++ b/extra/at-spi2-core/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 140840 2011-10-20 05:41:41Z ibiru $
+# $Id: PKGBUILD 146684 2012-01-16 11:06:00Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=at-spi2-core
-pkgver=2.2.1
+pkgver=2.2.3
pkgrel=1
pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
arch=('i686' 'x86_64')
@@ -11,11 +11,11 @@ license=('GPL2')
depends=('dbus-core' 'glib2' 'libxtst')
makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('2a4129420decca3657e163a4dbb1a3cb28acafe32ea1292417fdd81084d48fac')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('fb97f0a02fa378795e50857e22e640e099be1768081e28ca2dbdb3835f5b6af1')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
sed -i -e '/AC_PATH_XTRA/d' configure.ac
autoreconf --force --install
@@ -26,8 +26,8 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
diff --git a/extra/claws-mail-extra-plugins/PKGBUILD b/extra/claws-mail-extra-plugins/PKGBUILD
index e2c87804e..37e44a542 100644
--- a/extra/claws-mail-extra-plugins/PKGBUILD
+++ b/extra/claws-mail-extra-plugins/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 145087 2011-12-16 15:46:57Z andyrtr $
+# $Id: PKGBUILD 146705 2012-01-16 19:49:15Z dreisner $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Mildred <mildred593 at online dot fr>
pkgname=claws-mail-extra-plugins
pkgver=3.8.0
-pkgrel=1
+pkgrel=2
pkgdesc="Extra plugins for claws-mail"
url="http://www.claws-mail.org/plugins.php?branch=EXT"
license=('GPL3')
@@ -33,7 +33,7 @@ conflicts=('claws-gtkhtml2_viewer' 'claws-mail-acpinotifier-plugin'
replaces=('sylpheed-claws-extra-plugins')
options=('!libtool' '!strip')
source=(http://downloads.sourceforge.net/project/sylpheed-claws/extra%20plugins/$pkgver/claws-mail-extra-plugins-$pkgver.tar.bz2)
-md5sums=('0783008baff9e09cb21ffc8947e9f2ee')
+md5sums=('4776f6e0357a694f384349ac73b6da52')
build() {
cd "$srcdir/claws-mail-extra-plugins-$pkgver"
diff --git a/extra/cmake/PKGBUILD b/extra/cmake/PKGBUILD
index c471fddf7..7b54bd725 100644
--- a/extra/cmake/PKGBUILD
+++ b/extra/cmake/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 145779 2011-12-31 11:08:34Z andrea $
+# $Id: PKGBUILD 146707 2012-01-16 19:49:18Z dreisner $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=cmake
pkgver=2.8.7
-pkgrel=1
+pkgrel=2
pkgdesc="A cross-platform open-source make system"
arch=('i686' 'x86_64')
license=('custom')
diff --git a/extra/ethtool/PKGBUILD b/extra/ethtool/PKGBUILD
index 2d8745120..8e759763b 100644
--- a/extra/ethtool/PKGBUILD
+++ b/extra/ethtool/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 144425 2011-12-05 19:20:31Z ibiru $
+# $Id: PKGBUILD 146699 2012-01-16 19:33:36Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Paul Mattal <paul@archlinux.org>
# Contributor: Martin Kemp <mdkemp@elys.com>
pkgname=ethtool
-pkgver=3.1
+pkgver=3.2
pkgrel=1
epoch=1
pkgdesc="Utility for controlling network drivers and hardware"
@@ -13,7 +13,7 @@ url="http://www.kernel.org/pub/software/network/ethtool/"
license=('GPL')
depends=('glibc')
source=(http://www.kernel.org/pub/software/network/$pkgname/$pkgname-$pkgver.tar.xz)
-md5sums=('dd0a93a70784fdeb2c3e699b3c709e8a')
+md5sums=('4ed4a9dfd2039aa416176a9c06497b00')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/fontforge/PKGBUILD b/extra/fontforge/PKGBUILD
index 0ddc7805d..6319df46f 100644
--- a/extra/fontforge/PKGBUILD
+++ b/extra/fontforge/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 145161 2011-12-18 12:09:19Z bisson $
+# $Id: PKGBUILD 146693 2012-01-16 13:56:18Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=fontforge
pkgver=20111214
-pkgrel=2
+pkgrel=3
pkgdesc='Outline and bitmap font editor'
arch=('i686' 'x86_64')
url='http://fontforge.sourceforge.net/'
@@ -25,6 +25,7 @@ build() {
--mandir=/usr/share/man \
--enable-type3 \
--enable-devicetables \
+ --enable-double \
--with-regular-link \
--with-python=python2 \
--enable-pyextension \
diff --git a/extra/gmime/PKGBUILD b/extra/gmime/PKGBUILD
index d60713620..8ed0d8e6e 100644
--- a/extra/gmime/PKGBUILD
+++ b/extra/gmime/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 146295 2012-01-08 17:45:05Z ibiru $
+# $Id: PKGBUILD 146717 2012-01-16 19:50:48Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Ben <ben@benmazer.net>
pkgname=gmime
-pkgver=2.4.31
+pkgver=2.6.4
pkgrel=1
pkgdesc="Core mime parsing library"
arch=('i686' 'x86_64')
license=('GPL')
url="http://spruce.sourceforge.net/gmime/"
-depends=('glib2' 'zlib')
-makedepends=('gtk-sharp-2' 'pkgconfig')
+depends=('glib2' 'gpgme' 'zlib')
+makedepends=('gtk-sharp-2')
options=('!libtool')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('d9601328ee3d2d5be57ac8397571af4835dba8eb2c68ad224de3ec722a81fd04')
+sha256sums=('2e85076c223fe8bf1392a7c1affa4454cb3bb6dec83016ad6e3230c65533f163')
build() {
# get rid of that .wapi errors in fakeroot
@@ -21,7 +21,8 @@ build() {
mkdir -p "$MONO_SHARED_DIR"
cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
+
+ ./configure --prefix=/usr --disable-static
make
}
diff --git a/extra/gnucash/PKGBUILD b/extra/gnucash/PKGBUILD
index e77b1c3ba..78a5325cb 100644
--- a/extra/gnucash/PKGBUILD
+++ b/extra/gnucash/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 141031 2011-10-22 05:09:05Z eric $
+# $Id: PKGBUILD 146667 2012-01-16 05:26:24Z eric $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Contributor: Mark Schneider <queueRAM@gmail.com>
pkgname=gnucash
-pkgver=2.4.8
+pkgver=2.4.9
pkgrel=1
pkgdesc="A personal and small-business financial-accounting application"
arch=('i686' 'x86_64')
@@ -14,21 +14,23 @@ makedepends=('intltool')
optdepends=('evince: for print preview'
'perl-finance-quote: for stock information lookups'
'perl-date-manip: for stock information lookups')
-options=('!libtool' '!makeflags')
+options=('!libtool' '!makeflags' '!emptydirs')
install=gnucash.install
source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('cdd8793bc8e8cbb433a0237007023f4973a51781')
+sha1sums=('a0ed6532e53164b7dc9a319d6503c6563310b878')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --mandir=/usr/share/man \
- --sysconfdir=/etc --libexecdir=/usr/lib --enable-ofx --enable-aqbanking
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \
+ --libexecdir=/usr/lib --disable-schemas-install --enable-ofx --enable-aqbanking
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ cd src/doc/design
+ make DESTDIR="${pkgdir}" install-info
install -dm755 "${pkgdir}/usr/share/gconf/schemas"
gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnucash "${pkgdir}"/etc/gconf/schemas/*.schemas
diff --git a/extra/grilo-plugins/PKGBUILD b/extra/grilo-plugins/PKGBUILD
index 95d13fa3f..22a211769 100644
--- a/extra/grilo-plugins/PKGBUILD
+++ b/extra/grilo-plugins/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 144927 2011-12-10 21:25:05Z heftig $
+# $Id: PKGBUILD 146719 2012-01-16 19:50:53Z dreisner $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=grilo-plugins
pkgver=0.1.18
-pkgrel=1
+pkgrel=2
pkgdesc="Plugins for Grilo"
url="http://www.gnome.org"
arch=('i686' 'x86_64')
diff --git a/extra/gvfs/PKGBUILD b/extra/gvfs/PKGBUILD
index dd451a176..ab8552cec 100644
--- a/extra/gvfs/PKGBUILD
+++ b/extra/gvfs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 140933 2011-10-20 05:43:53Z ibiru $
+# $Id: PKGBUILD 146709 2012-01-16 19:49:21Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=gvfs
pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-afp' 'gvfs-gphoto2' 'gvfs-obexftp')
pkgver=1.10.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
license=('LGPL')
makedepends=('libsoup-gnome' 'libcdio' 'fuse' 'bluez' 'smbclient' 'libgphoto2' 'libarchive' 'libgdu' 'pkgconfig' 'intltool' 'libimobiledevice' 'avahi' 'dconf')
diff --git a/extra/hydrogen/PKGBUILD b/extra/hydrogen/PKGBUILD
index b78606f9c..a5c607e79 100644
--- a/extra/hydrogen/PKGBUILD
+++ b/extra/hydrogen/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 135233 2011-08-11 10:28:18Z schiv $
+# $Id: PKGBUILD 146711 2012-01-16 19:49:24Z dreisner $
# Maintainer: tobias <tobias@archlinux.org>
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: K. Piche <kpiche@rogers.com>
@@ -6,24 +6,28 @@
pkgname=hydrogen
pkgver=0.9.5
-pkgrel=1
+pkgrel=2
pkgdesc="Advanced Drum Machine"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.hydrogen-music.org/"
depends=('libarchive' 'liblrdf' 'qt' 'jack')
makedepends=('scons')
-options=('!makeflags')
+#options=('!makeflags')
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
- lrdf_raptor2.patch)
+ lrdf_raptor2.patch
+ install.patch)
md5sums=('e96f291d60e58f5d62fe616cee577dc0'
- '2124851e890f46158189b5fa90006d40')
+ '2124851e890f46158189b5fa90006d40'
+ 'ce3a83a069b55e46aa532b55e803c9a5')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export QTDIR=/usr
patch -Np1 -i "${srcdir}/lrdf_raptor2.patch"
+ # http://www.assembla.com/spaces/hydrogen/tickets/204
+ patch -Np0 -i "${srcdir}/install.patch"
scons prefix=/usr libarchive=1
}
diff --git a/extra/hydrogen/install.patch b/extra/hydrogen/install.patch
new file mode 100644
index 000000000..2e6e707a1
--- /dev/null
+++ b/extra/hydrogen/install.patch
@@ -0,0 +1,12 @@
+*** Sconstruct.org 2011-11-06 12:15:40.018119106 +0100
+--- Sconstruct 2011-11-06 12:16:21.124122432 +0100
+***************
+*** 298,304 ****
+
+ for N in glob.glob('./data/i18n/hydrogen.*'):
+ env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data/i18n', source=N))
+- env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data', source="./data/img"))
+
+ #add every img in ./data/img to the install list.
+ os.path.walk("./data/img/",install_images,env)
+--- 298,303 ----
diff --git a/extra/kdeutils/PKGBUILD b/extra/kdeutils/PKGBUILD
index 55e7ef87c..be1df93da 100644
--- a/extra/kdeutils/PKGBUILD
+++ b/extra/kdeutils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 144741 2011-12-08 09:21:43Z andrea $
+# $Id: PKGBUILD 146715 2012-01-16 19:50:44Z dreisner $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -17,7 +17,7 @@ pkgname=('kdeutils-ark'
'kdeutils-superkaramba'
'kdeutils-sweeper')
pkgver=4.7.4
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
diff --git a/extra/mail-notification/PKGBUILD b/extra/mail-notification/PKGBUILD
index edb5a8d03..b7789212a 100644
--- a/extra/mail-notification/PKGBUILD
+++ b/extra/mail-notification/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 139560 2011-10-03 13:09:05Z jgc $
+# $Id: PKGBUILD 146721 2012-01-16 19:51:02Z dreisner $
# Maintainer: Roman Kyrylych <roman@archlinux.org>
pkgname=mail-notification
pkgver=5.4
-pkgrel=9
+pkgrel=10
pkgdesc="Tray icon application that informs you if you have new mail"
arch=('i686' 'x86_64')
url="http://www.nongnu.org/mailnotify/"
license=('GPL3' 'FDL')
-depends=('gmime' 'libnotify>=0.7.1' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
+depends=('gmime' 'libnotify' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils' 'gtk2')
options=('!libtool' '!emptydirs')
install=mail-notification.install
@@ -16,7 +16,6 @@ source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}
dont-update-cache.patch
remove-ubuntu-special-case.patch
mail-notification-5.4-evolution.patch
- gmime-2.4.patch
mail-notification-5.4-sasl_encode64.patch
mail-notification-5.4-evolution-gtkhtml.patch
mail-notification-5.4-camel_headers.patch
@@ -26,12 +25,13 @@ source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}
mail-notification-5.4-kde-trayicon.patch
mail-notification-5.4-evolution-3-0-support.patch
mail-notification-5.4-gtk3-support.patch
- mail-notification-5.4-add-fallback-icon.patch)
+ mail-notification-5.4-add-fallback-icon.patch
+ mail-notification-5.4-gmime.patch
+ mail-notification-5.4-libx11.patch)
md5sums=('c8dc33a61251acb5474e56eab6b18f43'
'6007bc30e789dab0a8282038e0335eb9'
'9cadd61bbd9c324b2916ec980231e0f2'
'aa6f80820899f904c25988772f70ade9'
- '447cc20f035b9cf1a391027684ce1297'
'125513ed059f62469377eb0ab794dbed'
'c595a3962ab13a65be24a941e28faa9c'
'f79939f593b2e8659e302df72c2b54b1'
@@ -41,7 +41,9 @@ md5sums=('c8dc33a61251acb5474e56eab6b18f43'
'c7991b831834724eddc1c6802c3e06a6'
'b370b1085ebb2814bd5d345a6d2b45ea'
'1ba948759110787dd57097cff157b75a'
- '09df61b4dc29c676ac81ff9054e840ac')
+ '09df61b4dc29c676ac81ff9054e840ac'
+ '0944695e9b9b30f39028f85c83c6a7e2'
+ 'c3f643ef16aab3b4fe9ff5b333bff41a')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -49,7 +51,6 @@ build() {
patch -Np0 -i "${srcdir}/dont-update-cache.patch"
patch -Np0 -i "${srcdir}/remove-ubuntu-special-case.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution.patch"
- patch -Np1 -i "${srcdir}/gmime-2.4.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-sasl_encode64.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution-gtkhtml.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
@@ -60,6 +61,8 @@ build() {
patch -Np0 -i "${srcdir}/mail-notification-5.4-evolution-3-0-support.patch"
patch -Np0 -i "${srcdir}/mail-notification-5.4-gtk3-support.patch"
patch -Np0 -i "${srcdir}/mail-notification-5.4-add-fallback-icon.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-gmime.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-libx11.patch"
gtk-builder-convert ui/mailbox-properties-dialog.glade ui/mailbox-properties-dialog.ui
gtk-builder-convert ui/properties-dialog.glade ui/properties-dialog.ui
diff --git a/extra/mail-notification/mail-notification-5.4-gmime.patch b/extra/mail-notification/mail-notification-5.4-gmime.patch
new file mode 100644
index 000000000..5f516a46b
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-gmime.patch
@@ -0,0 +1,63 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:28.000000000 +0300
+@@ -265,7 +265,7 @@
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+- if (g_mime_message_get_header(mime_message, "X-Mozilla-Status"))
++ if (g_mime_object_get_header(mime_message, "X-Mozilla-Status"))
+ {
+ #if WITH_MOZILLA
+ type = MN_TYPE_MOZILLA_MAILBOX_BACKEND;
+diff -Nrbu mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:46:47.000000000 +0300
+@@ -167,7 +167,7 @@
+
+ const char *header;
+
+- header = g_mime_message_get_header(mime_message, header_name);
++ header = g_mime_object_get_header(mime_message, header_name);
+ if (header && mn_str_ishex(header))
+ return strtol(header, NULL, 16);
+ else
+diff -Nrbu mail-notification-5.4/jbsrc/jb.c mail-notification-5.4-OK/jbsrc/jb.c
+--- mail-notification-5.4/jbsrc/jb.c 2008-05-22 19:47:04.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/jb.c 2008-12-23 14:43:09.000000000 +0300
+@@ -166,7 +166,7 @@
+ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+- jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
++ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+ "hotmail",
+ "imap",
+ "maildir",
+diff -Nrbu mail-notification-5.4/src/mn-message-mime.c mail-notification-5.4-OK/src/mn-message-mime.c
+--- mail-notification-5.4/src/mn-message-mime.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-message-mime.c 2008-12-23 14:46:35.000000000 +0300
+@@ -33,12 +33,12 @@
+ g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE);
+
+ /* SpamAssassin */
+- spam = g_mime_message_get_header(mime_message, "X-Spam-Status");
++ spam = g_mime_object_get_header(mime_message, "X-Spam-Status");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+ /* bogofilter */
+- spam = g_mime_message_get_header(mime_message, "X-Bogosity");
++ spam = g_mime_object_get_header(mime_message, "X-Bogosity");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+@@ -89,7 +89,7 @@
+ {
+ const char *status;
+
+- status = g_mime_message_get_header(mime_message, "Status");
++ status = g_mime_object_get_header(mime_message, "Status");
+ if (status && strchr(status, 'R'))
+ return NULL; /* the message was read */
+ else if (status && strchr(status, 'O'))
diff --git a/extra/mail-notification/mail-notification-5.4-libx11.patch b/extra/mail-notification/mail-notification-5.4-libx11.patch
new file mode 100644
index 000000000..bb3574fda
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-libx11.patch
@@ -0,0 +1,13 @@
+Link with libX11 explicitly.
+
+--- mail-notification-5.4.dfsg.1.orig/jbsrc/jb.c
++++ mail-notification-5.4.dfsg.1/jbsrc/jb.c
+@@ -445,6 +445,8 @@
+
+ jb_compile_options_add_libs(object->compile_options, "-lm");
+
++ jb_compile_options_add_libs(object->compile_options, "-lX11");
++
+ jb_compile_options_add_package(object->compile_options, "gettext");
+ jb_compile_options_add_package(object->compile_options, "gnome");
+ jb_compile_options_add_package(object->compile_options, "dbus");
diff --git a/extra/pyalpm/PKGBUILD b/extra/pyalpm/PKGBUILD
index 40488fac2..6053b3214 100644
--- a/extra/pyalpm/PKGBUILD
+++ b/extra/pyalpm/PKGBUILD
@@ -1,15 +1,15 @@
# Maintainer : Rémy Oudompheng <remy@archlinux.org>
pkgname=pyalpm
-pkgver=0.4.3
+pkgver=0.5.3
pkgrel=1
pkgdesc="Libalpm bindings for Python 3"
arch=('i686' 'x86_64')
url="http://projects.archlinux.org/users/remy/pyalpm.git/"
license=('GPL')
-depends=('python>=3.2' 'pacman<3.6')
+depends=('python>=3.2' 'pacman>=4')
source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz")
-md5sums=('396f9820eae9a40bd33d8bb366272c82')
+md5sums=('a76019106d17de3a5933c773013a63d1')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD
index 2852fe278..f82f81201 100644
--- a/extra/qemu/PKGBUILD
+++ b/extra/qemu/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 145072 2011-12-16 12:11:13Z tpowa $
+# $Id: PKGBUILD 146673 2012-01-16 08:01:45Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=qemu
pkgver=1.0
-pkgrel=1
+pkgrel=2
pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
arch=('i686' 'x86_64')
license=('GPL2' 'LGPL2.1')
url="http://wiki.qemu.org/Index.html"
-makedepends=('texi2html' 'perl' 'python2')
+makedepends=('iasl' 'git' 'texi2html' 'perl' 'python2')
depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl' 'libgl' 'libpulse')
backup=('etc/qemu/target-x86_64.conf')
install=qemu.install
@@ -24,11 +24,23 @@ build()
--audio-card-list=ac97,sb16,es1370,hda \
--enable-docs
make
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cd ${srcdir}/
+ git clone git://git.seabios.org/seabios.git
+ cd seabios
+ find 'tools/' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+ make clean
+ make
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cp ${srcdir}/seabios/out/bios.bin ${pkgdir}/usr/share/qemu/bios.bin
+
install -D -m644 ${srcdir}/65-kvm.rules \
${pkgdir}/lib/udev/rules.d/65-kvm.rules
# strip scripts directory
diff --git a/extra/ristretto/PKGBUILD b/extra/ristretto/PKGBUILD
index 3c45bbd56..187d12948 100644
--- a/extra/ristretto/PKGBUILD
+++ b/extra/ristretto/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 146610 2012-01-14 08:51:04Z eric $
+# $Id: PKGBUILD 146669 2012-01-16 05:44:36Z eric $
# Maintainer:
# Contributor: AndyRTR <andyrtr@archlinux.org>
# Contributor: Ronald van Haren <ronald.archlinux.org>
pkgname=ristretto
-pkgver=0.3.1
+pkgver=0.3.2
pkgrel=1
pkgdesc="A fast and lightweight picture-viewer for Xfce"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ makedepends=('intltool')
groups=('xfce4-goodies')
install=ristretto.install
source=("http://archive.xfce.org/src/apps/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2")
-sha1sums=('1a0c4a5f0edf6594d14c7e24fb41a6127c4c1774')
+sha1sums=('3ca49cd2ffa21d5a7ce3bd5dad87ff78c4898add')
build() {
cd "${srcdir}/$pkgname-$pkgver"
diff --git a/extra/sdl_image/PKGBUILD b/extra/sdl_image/PKGBUILD
index 3eb670bd6..74a1b777c 100644
--- a/extra/sdl_image/PKGBUILD
+++ b/extra/sdl_image/PKGBUILD
@@ -1,22 +1,29 @@
-# $Id: PKGBUILD 64922 2010-01-23 10:17:20Z eric $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146687 2012-01-16 11:34:55Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_image
-pkgver=1.2.10
-pkgrel=2
+pkgver=1.2.11
+pkgrel=1
pkgdesc="A simple library to load images of various formats as SDL surfaces"
arch=('i686' 'x86_64')
-license=('LGPL')
+license=('custom')
depends=('sdl>=1.2.13' 'libpng' 'libjpeg>=7' 'libtiff' 'zlib')
options=('!libtool')
url="http://www.libsdl.org/projects/SDL_image/"
-source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
-md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-$pkgver.tar.gz)
+md5sums=('1210d7a7e87ab95abebb4f3e79a0fd31')
build() {
- cd ${srcdir}/SDL_image-${pkgver}
- ./configure --prefix=/usr
- make || return 1
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_image-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/SDL_image-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_mixer/PKGBUILD b/extra/sdl_mixer/PKGBUILD
index f241519be..897875491 100644
--- a/extra/sdl_mixer/PKGBUILD
+++ b/extra/sdl_mixer/PKGBUILD
@@ -1,29 +1,38 @@
-# $Id: PKGBUILD 70367 2010-02-26 13:24:25Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146688 2012-01-16 11:35:40Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
# Contributor: Lukas Sabota <punkrockguy318@cocmast.net> (Timidity Patch)
pkgname=sdl_mixer
-pkgver=1.2.11
-pkgrel=2
+pkgver=1.2.12
+pkgrel=1
pkgdesc="A simple multi-channel audio mixer"
arch=('i686' 'x86_64')
url="http://www.libsdl.org/projects/SDL_mixer/"
-license=('LGPL' 'GPL')
+license=('custom')
depends=('sdl>=1.2.12' 'libvorbis' 'libmikmod' 'smpeg')
+makedepends=('fluidsynth')
+optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${pkgver}.tar.gz)
-md5sums=('65ada3d997fe85109191a5fb083f248c')
+source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz)
+md5sums=('e03ff73d77a55e3572ad0217131dc4a1')
build() {
- cd ${srcdir}/SDL_mixer-${pkgver}
+ cd "$srcdir/SDL_mixer-$pkgver"
- sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \
- -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \
- -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \
+ sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
+ -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
+ -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
-i timidity/config.h
- ./configure --prefix=/usr
- make || return 1
- make DESTDIR=${pkgdir} install
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/SDL_mixer-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_net/PKGBUILD b/extra/sdl_net/PKGBUILD
index 2e6f3862f..76605a50f 100644
--- a/extra/sdl_net/PKGBUILD
+++ b/extra/sdl_net/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 137890 2011-09-12 09:39:20Z allan $
-# Maintainer:
+# $Id: PKGBUILD 146689 2012-01-16 11:36:24Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: dorphell <dorphell@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_net
-pkgver=1.2.7
-pkgrel=4
+pkgver=1.2.8
+pkgrel=1
pkgdesc="A small sample cross-platform networking library"
arch=('i686' 'x86_64')
+license=('custom')
url="http://www.libsdl.org/projects/SDL_net/"
-license=('GPL')
depends=('sdl')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_net/release/SDL_net-${pkgver}.tar.gz)
-md5sums=('6bd4662d1423810f3140d4da21b6d912')
+source=(http://www.libsdl.org/projects/SDL_net/release/SDL_net-$pkgver.tar.gz)
+md5sums=('20e64e61d65662db66c379034f11f718')
build() {
- cd ${srcdir}/SDL_net-${pkgver}
- ./configure --prefix=/usr
+ cd "$srcdir/SDL_net-$pkgver"
+ ./configure --prefix=/usr --disable-static
make
}
package() {
- cd ${srcdir}/SDL_net-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_net-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_ttf/PKGBUILD b/extra/sdl_ttf/PKGBUILD
index 56e56d9f0..7aa5b252b 100644
--- a/extra/sdl_ttf/PKGBUILD
+++ b/extra/sdl_ttf/PKGBUILD
@@ -1,26 +1,29 @@
-# $Id: PKGBUILD 85134 2010-07-09 10:09:49Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146690 2012-01-16 11:37:07Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_ttf
-pkgver=2.0.10
+pkgver=2.0.11
pkgrel=1
pkgdesc="A library that allows you to use TrueType fonts in your SDL applications"
arch=('i686' 'x86_64')
-license=('LGPL')
+license=('custom')
url="http://www.libsdl.org/projects/SDL_ttf/"
depends=('sdl>=1.2.12' 'freetype2')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${pkgver}.tar.gz)
-md5sums=('814e6e17e8879254208d23b3b7e0354b')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-$pkgver.tar.gz)
+md5sums=('61e29bd9da8d245bc2471d1b2ce591aa')
build() {
- cd ${srcdir}/SDL_ttf-${pkgver}
- ./configure --prefix=/usr
+ cd "$srcdir/SDL_ttf-$pkgver"
+ ./configure --prefix=/usr --disable-static
make
}
package() {
- cd ${srcdir}/SDL_ttf-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_ttf-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/spamassassin/PKGBUILD b/extra/spamassassin/PKGBUILD
index 164475d46..8228494e1 100644
--- a/extra/spamassassin/PKGBUILD
+++ b/extra/spamassassin/PKGBUILD
@@ -1,54 +1,58 @@
-# $Id: PKGBUILD 129532 2011-06-28 18:19:06Z angvp $
+# $Id: PKGBUILD 146678 2012-01-16 09:03:49Z bluewind $
# Maintainer: Dale Blount <dale@archlinux.org>
# Contributor: Manolis Tzanidakis
pkgname=spamassassin
pkgver=3.3.2
-pkgrel=2
+pkgrel=3
pkgdesc="A mail filter to identify spam."
-arch=(i686 x86_64)
-license=(APACHE)
+arch=('i686' 'x86_64')
+license=('APACHE')
url="http://spamassassin.apache.org"
-depends=('perl>=5.14' 'perl-net-dns' 'perl-uri' 'perl-html-parser' \
- 'perl-digest-sha1' 'perl-io-socket-ssl' 'openssl' \
- 'perl-libwww' 'perl-mail-spf' \
- 'zlib' 're2c')
- # perl-archive-tar perl-io-zlib)
+depends=('openssl' 'zlib' 're2c' 'perl-net-dns' 'perl-io-socket-ssl'
+ 'perl-libwww' 'perl-mail-spf' 'perl-http-message' 'perl-net-http'
+ 'perl-io-socket-inet6' 'perl-mail-dkim' 'perl-crypt-ssleay')
makedepends=('razor' 'perl-dbi')
-optdepends=('razor: to identify collaborately-flagged spam'
- 'gnupg: gpg support, without this use --nogpg flag for sa-update'
- 're2c: regexp compiler, for compiling rules with sa-compile'
- 'perl-mail-dkim: DomainKeys Identified Mail (DKIM) checking')
-backup=(etc/conf.d/spamd etc/mail/spamassassin/local.cf \
- etc/mail/spamassassin/init.pre \
- etc/mail/spamassassin/v310.pre \
- etc/mail/spamassassin/v312.pre \
- etc/mail/spamassassin/v320.pre)
-install=${pkgname}.install
-options=(!emptydirs)
-source=(http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz \
- spamd.conf.d spamd)
+optdepends=('razor: to identify collaborately-flagged spam')
+backup=('etc/conf.d/spamd'
+ 'etc/mail/spamassassin/local.cf'
+ 'etc/mail/spamassassin/init.pre'
+ 'etc/mail/spamassassin/v310.pre'
+ 'etc/mail/spamassassin/v312.pre'
+ 'etc/mail/spamassassin/v320.pre'
+ 'etc/mail/spamassassin/v330.pre')
+install="${pkgname}.install"
+options=('!emptydirs')
+source=("http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz"
+ 'spamd.conf.d' 'spamd')
md5sums=('d1d62cc5c6eac57e88c4006d9633b81e'
'af501c6b0bb937a2775b747cc4b6d150'
- '0534d3071a526a27ddc2b297afa03b04')
+ '57545e6877503d897db21e9a2e8bd2b9')
build() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
# install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor \
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor \
CONTACT_ADDRESS=root@localhost ENABLE_SSL=yes PERL_TAINT=no
- /usr/bin/make
+ make
}
check() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make test || true
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
+
+ # SSLv2 is disabled by upstream so this test would fail
+ rm -rf t/spamd_ssl_v2.t
+
+ # parallel tests cause lots of failures; disable for now
+ #export HARNESS_OPTIONS="j$(echo $MAKEFLAGS | sed 's/.*-j\([0-9][0-9]*\).*/\1/')"
+
+ make test
}
package() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make DESTDIR=${pkgdir} install
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
+ make DESTDIR="${pkgdir}" install
- /bin/install -D -m644 ${srcdir}/spamd.conf.d ${pkgdir}/etc/conf.d/spamd
- /bin/install -D -m755 ${srcdir}/spamd ${pkgdir}/etc/rc.d/spamd
+ install -D -m644 "${srcdir}/spamd.conf.d" "${pkgdir}/etc/conf.d/spamd"
+ install -D -m755 "${srcdir}/spamd" "${pkgdir}/etc/rc.d/spamd"
}
diff --git a/extra/spamassassin/spamd b/extra/spamassassin/spamd
index 11d35f7cd..3fb97566e 100644
--- a/extra/spamassassin/spamd
+++ b/extra/spamassassin/spamd
@@ -6,11 +6,17 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/bin/vendor_perl/spamd`
+PIDFILE=/var/run/spamd.pid
+if [ -f $PIDFILE ]; then
+ PID=$(cat $PIDFILE)
+else
+ PID=$(pidof -o %PPID /usr/bin/vendor_perl/spamd) #backward compat
+fi
+
case "$1" in
start)
stat_busy "Starting spamd"
- [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d ${SPAMD_OPTS}
+ [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d -r "$PIDFILE" ${SPAMD_OPTS}
if [ $? -gt 0 ]; then
stat_fail
else
diff --git a/extra/totem-plparser/PKGBUILD b/extra/totem-plparser/PKGBUILD
index 9506620d5..18feb7958 100644
--- a/extra/totem-plparser/PKGBUILD
+++ b/extra/totem-plparser/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 138355 2011-09-20 15:41:13Z ibiru $
+# $Id: PKGBUILD 146713 2012-01-16 19:49:27Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=totem-plparser
pkgver=2.32.6
-pkgrel=1
+pkgrel=3
url="http://www.hadess.net/totem.php3"
pkgdesc="Totem playlist parser library"
license=('LGPL')
arch=(i686 x86_64)
-depends=('gmime' 'libsoup-gnome')
-makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+depends=('gmime' 'libsoup-gnome' 'libarchive')
+makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
-source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-${pkgver}.tar.xz)
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-$pkgver.tar.xz)
sha256sums=('8e6ccef547f1ad311474a975032d2482e621550ee3d4d22c725cdc6b496e4874')
build() {
- cd "${srcdir}/totem-pl-parser-${pkgver}"
+ cd "$srcdir/totem-pl-parser-$pkgver"
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -24,6 +24,6 @@ build() {
}
package(){
- cd "${srcdir}/totem-pl-parser-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/totem-pl-parser-$pkgver"
+ make DESTDIR="$pkgdir" install
}
diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD
index 236d8ba93..24ca456e6 100644
--- a/extra/vim/PKGBUILD
+++ b/extra/vim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 146636 2012-01-15 06:31:34Z eric $
+# $Id: PKGBUILD 146756 2012-01-17 03:35:55Z eric $
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Maintainer: tobias [ tobias at archlinux org ]
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
@@ -19,7 +19,7 @@ source=(ftp://ftp.archlinux.org/other/vim/${pkgname}-${pkgver}.tar.xz{,.sig}
pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872
vimrc archlinux.vim gvim.desktop)
sha1sums=('99498cb48c0c720ae9972a6cd33d4926bdf733b7'
- '72e9e1eff158e8acceeeb96279085214cbefb3ac'
+ 'ad14ce56f99ae1a86c96c5a5d0f44e48ad18a00e'
'4d9dcfb32874aa5467e6f06e418aeb4e675daaf2'
'3494baf53a63581ba69f86a81293640ff681c5c5'
'25dd3c2ce436e73a367c8f73b68f7f6889682437'
diff --git a/extra/xfce4-netload-plugin/PKGBUILD b/extra/xfce4-netload-plugin/PKGBUILD
index 363df6eb7..664a28a85 100644
--- a/extra/xfce4-netload-plugin/PKGBUILD
+++ b/extra/xfce4-netload-plugin/PKGBUILD
@@ -1,34 +1,33 @@
-# $Id: PKGBUILD 104754 2011-01-04 20:48:54Z andyrtr $
+# $Id: PKGBUILD 146671 2012-01-16 06:54:09Z eric $
# Maintainer: aurelien <aurelien@archlinux.org>
# Contributor: Aurelien Foret <orelien@chez.com>
pkgname=xfce4-netload-plugin
-pkgver=1.0.0
+pkgver=1.1.0
pkgrel=1
pkgdesc="A netload plugin for the Xfce panel"
-arch=(i686 x86_64)
-license=('GPL2')
+arch=('i686' 'x86_64')
+license=('GPL')
url="http://xfce-goodies.berlios.de/"
groups=('xfce4-goodies')
-depends=('xfce4-panel>=4.7.4' 'libxfcegui4' 'hicolor-icon-theme')
+depends=('xfce4-panel')
makedepends=('intltool')
options=('!libtool')
-install=${pkgname}.install
-source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('cab53e8cc2b9bfdf7ffd2230916ca3df')
+install=xfce4-netload-plugin.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8029daacf1602275c75ab07d1e2cccea0993caab')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
--localstatedir=/var \
- --disable-static \
--disable-debug
make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/extra/xmms/PKGBUILD b/extra/xmms/PKGBUILD
index 628a19404..1a4e74b36 100644
--- a/extra/xmms/PKGBUILD
+++ b/extra/xmms/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 134338 2011-08-02 23:29:16Z eric $
+# $Id: PKGBUILD 146759 2012-01-17 03:41:24Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=xmms
@@ -50,10 +50,10 @@ build() {
patch -p1 < ../xmms-1.2.10-fonts.patch
patch -p1 < ../xmms-1.2.11-CVE-2007-0653.0654.patch
- if [ "$CARCH" == "x86_64" ]; then
- SIMDOPT="--disable-simd"
- else
- SIMDOPT="--enable-simd"
+ if [ "$CARCH" == "i686" ]; then
+ SIMDOPT="--enable-simd"
+ else
+ SIMDOPT="--disable-simd"
fi
./configure --prefix=/usr --mandir=/usr/share/man $SIMDOPT
make
diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD
index 454a340b3..34983beaf 100644
--- a/testing/kmod/PKGBUILD
+++ b/testing/kmod/PKGBUILD
@@ -1,34 +1,30 @@
-# $Id: PKGBUILD 146539 2012-01-12 20:25:05Z dreisner $
+# $Id: PKGBUILD 146697 2012-01-16 19:19:27Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=kmod
-pkgver=3
-pkgrel=6
-_snapdt=20120112
+pkgver=4
+pkgrel=1
pkgdesc="Linux kernel module handling"
arch=('i686' 'x86_64')
url="http://git.profusion.mobi/cgit.cgi/kmod.git"
license=('GPL2')
depends=('glibc' 'zlib')
+makedepends=('docbook2x')
options=('!libtool')
provides=('module-init-tools=3.16')
conflicts=('module-init-tools')
replaces=('module-init-tools')
-options=('!strip')
-source=(#"http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz"
- "ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.$_snapdt.tar.xz"
+source=("http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz"
"depmod-search.conf")
-md5sums=('78252871325d3950bb132cde81c488b0'
+md5sums=('e14450a066a48accd0af1995b3c0232d'
'4b8cbcbc54b9029c99fd730e257d4436')
build() {
cd "$pkgname-$pkgver"
- CFLAGS+=' -g' ./configure \
+ ./configure \
--sysconfdir=/etc \
- --enable-debug \
--with-rootprefix= \
- --with-rootlibdir=/lib \
--with-zlib
make