summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pcr/bamf/PKGBUILD37
-rw-r--r--pcr/bamf/fix-current-desktop.patch31
2 files changed, 68 insertions, 0 deletions
diff --git a/pcr/bamf/PKGBUILD b/pcr/bamf/PKGBUILD
new file mode 100644
index 000000000..8d0f0439d
--- /dev/null
+++ b/pcr/bamf/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=bamf
+pkgver=0.3.6
+pkgrel=1
+pkgdesc="Removes the headache of applications matching into a simple DBus daemon and c wrapper library"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/bamf"
+license=('GPL')
+depends=('dbus-glib' 'libwnck3' 'libgtop')
+makedepends=('gobject-introspection' 'vala')
+options=('!libtool')
+source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ fix-current-desktop.patch)
+md5sums=('56b0b0ac2d3f2a0401db268c78cc8527'
+ '406dfbb06f78a325515186be83523b1b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Fix build
+ sed -i 's/ -Werror//' configure{,.in}
+ sed -i 's/--c-include/--include/' lib/libbamf/Makefile.in
+
+ # Fix desktop file table if XDG_CURRENT_DESKTOP environment variable is not available
+ patch -Np1 -i "$srcdir/fix-current-desktop.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \
+ --disable-static --disable-webapps
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/bamf/fix-current-desktop.patch b/pcr/bamf/fix-current-desktop.patch
new file mode 100644
index 000000000..c4837c6ec
--- /dev/null
+++ b/pcr/bamf/fix-current-desktop.patch
@@ -0,0 +1,31 @@
+diff -Naur bamf-0.3.4.orig/src/bamf-matcher.c bamf-0.3.4/src/bamf-matcher.c
+--- bamf-0.3.4.orig/src/bamf-matcher.c 2012-10-11 09:40:29.122317000 +0200
++++ bamf-0.3.4/src/bamf-matcher.c 2012-12-04 04:44:07.236990092 +0100
+@@ -827,6 +827,7 @@
+ GHashTable *desktop_class_table)
+ {
+ GDesktopAppInfo *desktop_file;
++ const char *current_desktop;
+ char *exec;
+ char *path;
+ GString *desktop_id; /* is ok... really */
+@@ -840,7 +841,9 @@
+ return;
+ }
+
+- if (!g_desktop_app_info_get_show_in (desktop_file, g_getenv ("XDG_CURRENT_DESKTOP")))
++ current_desktop = g_getenv ("XDG_CURRENT_DESKTOP");
++
++ if (current_desktop && !g_desktop_app_info_get_show_in (desktop_file, current_desktop))
+ {
+ g_object_unref (desktop_file);
+ return;
+@@ -848,7 +851,7 @@
+
+ exec = g_strdup (g_app_info_get_commandline (G_APP_INFO (desktop_file)));
+
+- if (!exec)
++ if (!exec || exec[0] == '\0')
+ {
+ g_object_unref (desktop_file);
+ return;