summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/anjuta-extras/PKGBUILD28
-rw-r--r--testing/anjuta-extras/anjuta-extras.install11
-rw-r--r--testing/anjuta/PKGBUILD50
-rw-r--r--testing/anjuta/anjuta.install15
-rw-r--r--testing/at-spi2-atk/PKGBUILD34
-rw-r--r--testing/at-spi2-atk/at-spi2-atk.install11
-rw-r--r--testing/at-spi2-core/PKGBUILD33
-rw-r--r--testing/atk/PKGBUILD26
-rw-r--r--testing/banshee/PKGBUILD50
-rw-r--r--testing/banshee/banshee-recent-gpod.patch24
-rw-r--r--testing/banshee/banshee.install15
-rw-r--r--testing/banshee/gst-1.0.patch1025
-rw-r--r--testing/baobab/PKGBUILD29
-rw-r--r--testing/baobab/baobab.install13
-rw-r--r--testing/brasero/PKGBUILD38
-rw-r--r--testing/brasero/brasero.install14
-rw-r--r--testing/cheese/PKGBUILD32
-rw-r--r--testing/cheese/cheese.install12
-rw-r--r--testing/clutter-gst/PKGBUILD30
-rw-r--r--testing/clutter-gtk/PKGBUILD26
-rw-r--r--testing/clutter/PKGBUILD28
-rw-r--r--testing/colord-gtk/PKGBUILD32
-rw-r--r--testing/colord/PKGBUILD37
-rw-r--r--testing/dconf/PKGBUILD31
-rw-r--r--testing/dconf/dconf.install13
-rw-r--r--testing/devhelp/PKGBUILD35
-rw-r--r--testing/devhelp/devhelp.install22
-rw-r--r--testing/empathy/PKGBUILD40
-rw-r--r--testing/empathy/empathy.install16
-rw-r--r--testing/eog-plugins/PKGBUILD31
-rw-r--r--testing/eog-plugins/eog-plugins.install11
-rw-r--r--testing/eog/PKGBUILD33
-rw-r--r--testing/eog/eog.install13
-rw-r--r--testing/epiphany-extensions/PKGBUILD28
-rw-r--r--testing/epiphany-extensions/epiphany-extensions.install12
-rw-r--r--testing/epiphany/PKGBUILD30
-rw-r--r--testing/epiphany/epiphany.install13
-rw-r--r--testing/evince/PKGBUILD36
-rw-r--r--testing/evince/evince.install13
-rw-r--r--testing/evolution-data-server/PKGBUILD32
-rw-r--r--testing/evolution-data-server/evolution-data-server.install11
-rw-r--r--testing/evolution-ews/PKGBUILD27
-rw-r--r--testing/evolution/PKGBUILD42
-rw-r--r--testing/evolution/evolution.install19
-rw-r--r--testing/farstream/PKGBUILD34
-rw-r--r--testing/folks/PKGBUILD29
-rw-r--r--testing/folks/folks.install11
-rw-r--r--testing/gcalctool/PKGBUILD30
-rw-r--r--testing/gcalctool/gcalctool.install11
-rw-r--r--testing/gcr/PKGBUILD33
-rw-r--r--testing/gcr/gcr.install14
-rw-r--r--testing/gdk-pixbuf2/PKGBUILD6
-rw-r--r--testing/gdl/PKGBUILD27
-rw-r--r--testing/gdm/PKGBUILD79
-rw-r--r--testing/gdm/fix_external_program_directories.patch22
-rw-r--r--testing/gedit/PKGBUILD32
-rw-r--r--testing/gedit/gedit.install18
-rw-r--r--testing/ghex/PKGBUILD30
-rw-r--r--testing/ghex/ghex.install20
-rw-r--r--testing/gjs/PKGBUILD26
-rw-r--r--testing/glade/PKGBUILD29
-rw-r--r--testing/glade/glade.install12
-rw-r--r--testing/glib-networking/PKGBUILD31
-rw-r--r--testing/glib-networking/glib-networking.install11
-rw-r--r--testing/glib2/PKGBUILD14
-rw-r--r--testing/glibmm/PKGBUILD35
-rw-r--r--testing/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules7
-rw-r--r--testing/gnome-bluetooth/PKGBUILD38
-rw-r--r--testing/gnome-bluetooth/gnome-bluetooth.install12
-rw-r--r--testing/gnome-color-manager/PKGBUILD12
-rw-r--r--testing/gnome-contacts/PKGBUILD29
-rw-r--r--testing/gnome-contacts/gnome-contacts.install11
-rw-r--r--testing/gnome-control-center/PKGBUILD42
-rw-r--r--testing/gnome-control-center/gnome-control-center.install11
-rw-r--r--testing/gnome-desktop/PKGBUILD31
-rw-r--r--testing/gnome-dictionary/PKGBUILD29
-rw-r--r--testing/gnome-dictionary/gnome-dictionary.install11
-rw-r--r--testing/gnome-disk-utility/PKGBUILD30
-rw-r--r--testing/gnome-disk-utility/gnome-disk-utility.install13
-rw-r--r--testing/gnome-documents/PKGBUILD36
-rw-r--r--testing/gnome-documents/gnome-documents.install13
-rw-r--r--testing/gnome-font-viewer/PKGBUILD28
-rw-r--r--testing/gnome-font-viewer/gnome-font-viewer.install11
-rw-r--r--testing/gnome-games/PKGBUILD10
-rw-r--r--testing/gnome-games/gnome-games.install84
-rw-r--r--testing/gnome-keyring/PKGBUILD32
-rw-r--r--testing/gnome-keyring/gnome-keyring.install12
-rw-r--r--testing/gnome-menus/PKGBUILD36
-rw-r--r--testing/gnome-menus/menus.patch25
-rw-r--r--testing/gnome-nettool/PKGBUILD32
-rw-r--r--testing/gnome-nettool/gnome-nettool.install12
-rw-r--r--testing/gnome-online-accounts/PKGBUILD29
-rw-r--r--testing/gnome-online-accounts/gnome-online-accounts.install11
-rw-r--r--testing/gnome-panel/PKGBUILD38
-rw-r--r--testing/gnome-panel/gnome-panel.install24
-rw-r--r--testing/gnome-phone-manager/PKGBUILD35
-rw-r--r--testing/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch386
-rw-r--r--testing/gnome-phone-manager/gnome-phone-manager.install17
-rw-r--r--testing/gnome-power-manager/PKGBUILD32
-rw-r--r--testing/gnome-power-manager/gnome-power-manager.install12
-rw-r--r--testing/gnome-screensaver/PKGBUILD37
-rw-r--r--testing/gnome-screensaver/gnome-screensaver.install7
-rw-r--r--testing/gnome-screensaver/gnome-screensaver.pam3
-rw-r--r--testing/gnome-screenshot/PKGBUILD29
-rw-r--r--testing/gnome-screenshot/gnome-screenshot.install11
-rw-r--r--testing/gnome-search-tool/PKGBUILD30
-rw-r--r--testing/gnome-search-tool/gnome-search-tool.install16
-rw-r--r--testing/gnome-session/PKGBUILD42
-rw-r--r--testing/gnome-session/gnome-session-3.3.1-llvmpipe.patch9
-rw-r--r--testing/gnome-session/gnome-session.install12
-rw-r--r--testing/gnome-session/timeout.patch24
-rw-r--r--testing/gnome-settings-daemon/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch1473
-rw-r--r--testing/gnome-settings-daemon/PKGBUILD54
-rw-r--r--testing/gnome-settings-daemon/gnome-settings-daemon.install12
-rw-r--r--testing/gnome-settings-daemon/screensaver.patch145
-rw-r--r--testing/gnome-shell/PKGBUILD33
-rw-r--r--testing/gnome-shell/gnome-shell.install19
-rw-r--r--testing/gnome-system-log/PKGBUILD30
-rw-r--r--testing/gnome-system-log/gnome-system-log.install12
-rw-r--r--testing/gnome-system-monitor/PKGBUILD29
-rw-r--r--testing/gnome-system-monitor/gnome-system-monitor.install11
-rw-r--r--testing/gnome-terminal/PKGBUILD33
-rw-r--r--testing/gnome-terminal/gnome-terminal.install17
-rw-r--r--testing/gnome-themes-standard/PKGBUILD31
-rw-r--r--testing/gnome-user-share/PKGBUILD29
-rw-r--r--testing/gnome-user-share/gnome-user-share.install12
-rw-r--r--testing/gobject-introspection/PKGBUILD29
-rw-r--r--testing/grilo-plugins/PKGBUILD39
-rw-r--r--testing/grilo/PKGBUILD27
-rw-r--r--testing/gssdp/PKGBUILD34
-rw-r--r--testing/gst-libav/PKGBUILD35
-rw-r--r--testing/gst-plugins-bad/PKGBUILD37
-rw-r--r--testing/gst-plugins-base/PKGBUILD50
-rw-r--r--testing/gst-plugins-good/PKGBUILD36
-rw-r--r--testing/gst-plugins-ugly/PKGBUILD35
-rw-r--r--testing/gstreamer/PKGBUILD35
-rw-r--r--testing/gthumb/PKGBUILD10
-rw-r--r--testing/gtk3/PKGBUILD8
-rw-r--r--testing/gtkhtml4/PKGBUILD29
-rw-r--r--testing/gtkmm3/PKGBUILD38
-rw-r--r--testing/gtksourceview3/PKGBUILD29
-rw-r--r--testing/gucharmap/PKGBUILD30
-rw-r--r--testing/gucharmap/gucharmap.install17
-rw-r--r--testing/gupnp/PKGBUILD30
-rw-r--r--testing/gvfs/PKGBUILD17
-rw-r--r--testing/harfbuzz/PKGBUILD29
-rw-r--r--testing/ibus/PKGBUILD38
-rw-r--r--testing/ibus/ibus.install17
-rw-r--r--testing/json-glib/PKGBUILD31
-rw-r--r--testing/kdebase-workspace/PKGBUILD31
-rw-r--r--testing/kdebase-workspace/etc-scripts.patch11
-rw-r--r--testing/libcroco/PKGBUILD26
-rw-r--r--testing/libgdata/PKGBUILD26
-rw-r--r--testing/libgee/PKGBUILD27
-rw-r--r--testing/libgnome-keyring/PKGBUILD28
-rw-r--r--testing/libgnomekbd/PKGBUILD28
-rw-r--r--testing/libgnomekbd/libgnomekbd.install11
-rw-r--r--testing/libgweather/PKGBUILD44
-rw-r--r--testing/libgweather/gettext-not-xml.patch551
-rw-r--r--testing/libgweather/libgweather.install18
-rw-r--r--testing/libgweather/no_external_gettext.patch14
-rw-r--r--testing/libnice/PKGBUILD28
-rw-r--r--testing/libpeas/PKGBUILD32
-rw-r--r--testing/libpeas/libpeas.install11
-rw-r--r--testing/libpwquality/PKGBUILD32
-rw-r--r--testing/librsvg/PKGBUILD29
-rw-r--r--testing/librsvg/librsvg.install11
-rw-r--r--testing/libsecret/PKGBUILD27
-rw-r--r--testing/libsoup/PKGBUILD49
-rw-r--r--testing/libxklavier/PKGBUILD28
-rw-r--r--testing/libzapojit/PKGBUILD26
-rw-r--r--testing/libzeitgeist/PKGBUILD29
-rw-r--r--testing/mousetweaks/PKGBUILD30
-rw-r--r--testing/mousetweaks/mousetweaks.install17
-rw-r--r--testing/mutter/PKGBUILD33
-rw-r--r--testing/mutter/mutter.install19
-rw-r--r--testing/nautilus-open-terminal/PKGBUILD33
-rw-r--r--testing/nautilus-open-terminal/nautilus-open-terminal.install17
-rw-r--r--testing/nautilus-sendto/PKGBUILD31
-rw-r--r--testing/nautilus-sendto/nautilus-sendto.install11
-rw-r--r--testing/nautilus/PKGBUILD34
-rw-r--r--testing/nautilus/nautilus.install14
-rw-r--r--testing/networkmanager/PKGBUILD34
-rw-r--r--testing/networkmanager/nm-polkit-permissive.patch12
-rw-r--r--testing/networkmanager/repair-signals.patch37
-rw-r--r--testing/networkmanager/systemd-sleep.patch616
-rw-r--r--testing/pango/PKGBUILD30
-rw-r--r--testing/pango/pango.install21
-rw-r--r--testing/pangox-compat/PKGBUILD27
-rw-r--r--testing/pidgin/PKGBUILD100
-rw-r--r--testing/pidgin/pidgin.install11
-rw-r--r--testing/polkit/PKGBUILD19
-rw-r--r--testing/polkit/fix-empty-wheel.patch47
-rw-r--r--testing/pygobject/PKGBUILD10
-rw-r--r--testing/rest/PKGBUILD30
-rw-r--r--testing/rhythmbox/PKGBUILD18
-rw-r--r--testing/seahorse/PKGBUILD39
-rw-r--r--testing/seahorse/seahorse-ssh-askpass.sh3
-rw-r--r--testing/seahorse/seahorse.install13
-rw-r--r--testing/slim/PKGBUILD63
-rw-r--r--testing/slim/fix-glibc-segfault-1.3.4.patch13
-rw-r--r--testing/slim/libpng-1.4+-support.patch14
-rw-r--r--testing/slim/logrotate9
-rw-r--r--testing/slim/pam.d10
-rwxr-xr-xtesting/slim/rc.d36
-rw-r--r--testing/slim/session-name.patch21
-rw-r--r--testing/slim/slim.service9
-rw-r--r--testing/slim/tty-slowness.patch30
-rw-r--r--testing/sushi/PKGBUILD30
-rw-r--r--testing/sushi/sushi.install11
-rw-r--r--testing/telepathy-farstream/PKGBUILD34
-rw-r--r--testing/telepathy-gabble/PKGBUILD31
-rw-r--r--testing/telepathy-gabble/telepathy-gabble.install13
-rw-r--r--testing/telepathy-glib/PKGBUILD31
-rw-r--r--testing/telepathy-mission-control/PKGBUILD33
-rw-r--r--testing/telepathy-mission-control/telepathy-mission-control.install11
-rw-r--r--testing/totem-plparser/PKGBUILD30
-rw-r--r--testing/totem/PKGBUILD70
-rw-r--r--testing/totem/browser-plugins.ini2
-rw-r--r--testing/totem/totem.install13
-rw-r--r--testing/tracker/PKGBUILD90
-rw-r--r--testing/tracker/bug675660.patch29
-rw-r--r--testing/tracker/tracker-extract-pdf-crash-fix.patch22
-rw-r--r--testing/tracker/tracker.install13
-rw-r--r--testing/udisks2/PKGBUILD31
-rw-r--r--testing/vala/PKGBUILD27
-rw-r--r--testing/vinagre/PKGBUILD34
-rw-r--r--testing/vinagre/vinagre.install14
-rw-r--r--testing/vino/PKGBUILD34
-rw-r--r--testing/vino/vino.install12
-rw-r--r--testing/vte3/PKGBUILD40
-rw-r--r--testing/webkitgtk/PKGBUILD61
-rw-r--r--testing/xfce4-session/PKGBUILD51
-rw-r--r--testing/xfce4-session/xfce4-session-4.10.0-add-systemd-support.patch388
-rw-r--r--testing/xfce4-session/xfce4-session.install13
-rw-r--r--testing/xorg-xdm/PKGBUILD26
-rw-r--r--testing/xorg-xdm/git_fixes.diff673
-rw-r--r--testing/yelp/PKGBUILD31
-rw-r--r--testing/yelp/yelp.install13
-rw-r--r--testing/zenity/PKGBUILD26
240 files changed, 11048 insertions, 223 deletions
diff --git a/testing/anjuta-extras/PKGBUILD b/testing/anjuta-extras/PKGBUILD
new file mode 100644
index 000000000..7789902d5
--- /dev/null
+++ b/testing/anjuta-extras/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169278 2012-10-18 19:45:48Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=anjuta-extras
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Anjuta Integrated Development Environment extra plugins"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('anjuta')
+makedepends=('intltool' 'gnome-doc-utils')
+install=anjuta-extras.install
+url="http://www.anjuta.org/"
+source=(ftp://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('69df64e6e13a6e0683ebaee5a26ee9b9368eda9ed157607d1e6935b52d7f0b9c')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/anjuta-extras/anjuta-extras.install b/testing/anjuta-extras/anjuta-extras.install
new file mode 100644
index 000000000..a96048c1d
--- /dev/null
+++ b/testing/anjuta-extras/anjuta-extras.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/anjuta/PKGBUILD b/testing/anjuta/PKGBUILD
new file mode 100644
index 000000000..18dbfb6c4
--- /dev/null
+++ b/testing/anjuta/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 169303 2012-10-18 23:51:08Z heftig $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Harley Laue <losinggeneration@yahoo.com>
+
+pkgbase=anjuta
+pkgname=('libanjuta' 'anjuta')
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="GNOME Integrated Development Environment (IDE)"
+arch=('i686' 'x86_64')
+license=('GPL')
+makedepends=('vte3' 'gdl' 'autogen' 'devhelp' 'glade' 'libgda' 'subversion' 'gnome-icon-theme' 'vala' 'dconf' 'gnome-doc-utils' 'intltool' 'gobject-introspection' 'itstool')
+url="http://www.anjuta.org/"
+source=(ftp://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('fd1e380f26bfdcf49661d6b8b2ab25eb3af44bca56aaa5f08c4d9af72cd9d98b')
+
+build() {
+ cd "$pkgbase-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package_libanjuta(){
+ pkgdesc="Anjuta runtime library"
+ depends=('gdl')
+ conflicts=('anjuta<3.4.4')
+
+ cd "$pkgbase-$pkgver/libanjuta"
+
+ # j1: Race during linking
+ make -j1 DESTDIR="$pkgdir" install
+}
+
+package_anjuta(){
+ pkgdesc="GNOME Integrated Development Environment (IDE)"
+ depends=('libanjuta' 'vte3' 'autogen' 'devhelp' 'glade' 'libgda' 'subversion' 'gnome-icon-theme' 'vala' 'dconf')
+
+ install=anjuta.install
+
+ cd "$pkgbase-$pkgver"
+ make -j1 DESTDIR="$pkgdir" install
+
+ cd libanjuta
+ make -j1 DESTDIR="$pkgdir" uninstall
+
+ sed -i "1s|#!/usr/bin/python$|&2|" \
+ $pkgdir/usr/share/anjuta/project/{pygtk,python}/src/main.py
+}
diff --git a/testing/anjuta/anjuta.install b/testing/anjuta/anjuta.install
new file mode 100644
index 000000000..5608d35be
--- /dev/null
+++ b/testing/anjuta/anjuta.install
@@ -0,0 +1,15 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f /usr/share/icons/gnome
+ update-mime-database /usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/at-spi2-atk/PKGBUILD b/testing/at-spi2-atk/PKGBUILD
new file mode 100644
index 000000000..e685a89d8
--- /dev/null
+++ b/testing/at-spi2-atk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169276 2012-10-18 19:29:51Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=at-spi2-atk
+pkgver=2.6.1
+pkgrel=1
+pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+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=('0a796c3635b23d094d488ac3aeee1bd785debfde433640687d4b17dfeaeb3398')
+
+build() {
+ cd $pkgname-$pkgver
+
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ autoreconf --force --install
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/at-spi2-atk/at-spi2-atk.install b/testing/at-spi2-atk/at-spi2-atk.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/testing/at-spi2-atk/at-spi2-atk.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/at-spi2-core/PKGBUILD b/testing/at-spi2-core/PKGBUILD
new file mode 100644
index 000000000..8318a2287
--- /dev/null
+++ b/testing/at-spi2-core/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169275 2012-10-18 19:29:47Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=at-spi2-core
+pkgver=2.6.1
+pkgrel=1
+pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+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=('cb087f0a9191422bc3f44c562a0dbfdf1c2266e45c267070aeb63b874e00f867')
+
+build() {
+ cd $pkgname-$pkgver
+
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ autoreconf --force --install
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/at-spi2-core --disable-xevie
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/atk/PKGBUILD b/testing/atk/PKGBUILD
new file mode 100644
index 000000000..25686b87c
--- /dev/null
+++ b/testing/atk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169279 2012-10-18 19:45:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=atk
+pkgver=2.6.0
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+url='http://www.gtk.org/'
+sha256sums=('eff663f90847620bb68c9c2cbaaf7f45e2ff44163b9ab3f10d15be763680491f')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/banshee/PKGBUILD b/testing/banshee/PKGBUILD
new file mode 100644
index 000000000..0cce416cd
--- /dev/null
+++ b/testing/banshee/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 141668 2011-11-02 03:17:12Z eric $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=banshee
+pkgver=2.6.0
+pkgrel=1
+pkgdesc="Music management and playback for GNOME"
+arch=('i686' 'x86_64')
+url="http://banshee.fm/"
+license=('MIT')
+depends=(libxxf86vm gst-plugins-base mono-addins dbus-sharp-glib boo libwebkit libsoup-gnome gdata-sharp taglib-sharp gudev-sharp gkeyfile-sharp gconf-sharp libmtp libgpod mono-zeroconf desktop-file-utils hicolor-icon-theme xdg-utils media-player-info gst-plugins-bad mono-upnp)
+makedepends=('intltool' 'gnome-doc-utils' 'gtk-sharp-beans' 'gnome-common')
+optdepends=('gst-plugins-good: Extra media codecs'
+ 'gst-plugins-ugly: Extra media codecs'
+ 'gst-libav: Extra media codecs'
+ 'brasero: CD burning')
+options=('!libtool')
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/2.6/$pkgname-$pkgver.tar.xz
+ gst-1.0.patch)
+sha256sums=('a47cc741f8ef2f81726ec4872e8179b17efa271c0c991e912e384fabf777394a'
+ 'eddf696b0be91331fae8d63c23277a355e94539a3436a8619dab2d732b30234e')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+ #https://bugzilla.gnome.org/show_bug.cgi?id=679433
+ patch -Np1 -i "${srcdir}/gst-1.0.patch"
+
+ ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-docs \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-install \
+ --with-vendor-build-id=ArchLinux
+ make
+}
+
+package() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/testing/banshee/banshee-recent-gpod.patch b/testing/banshee/banshee-recent-gpod.patch
new file mode 100644
index 000000000..afb3a0fd1
--- /dev/null
+++ b/testing/banshee/banshee-recent-gpod.patch
@@ -0,0 +1,24 @@
+From d4cd959c4a48ffc9da8fe0983bd31c4647669bf4 Mon Sep 17 00:00:00 2001
+From: William Witt <william@witt-family.net>
+Date: Sat, 30 Jul 2011 21:54:41 -0500
+Subject: [PATCH] - Changed typecast on FileSize to uint in AppleDeviceTrackInfo to comply with libgpod-sharp
+
+---
+ .../AppleDeviceTrackInfo.cs | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
+index 178266d..b8549f7 100644
+--- a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
++++ b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceTrackInfo.cs
+@@ -215,7 +215,7 @@ namespace Banshee.Dap.AppleDevice
+ track.CDs = DiscCount;
+ track.CDNumber = DiscNumber;
+ track.TrackLength = (int) Duration.TotalMilliseconds;
+- track.Size = (int)FileSize;
++ track.Size = (uint)FileSize;
+ track.Grouping = Grouping;
+ try {
+ track.TimePlayed = LastPlayed;
+--
+1.7.3.4
diff --git a/testing/banshee/banshee.install b/testing/banshee/banshee.install
new file mode 100644
index 000000000..1d0fd332b
--- /dev/null
+++ b/testing/banshee/banshee.install
@@ -0,0 +1,15 @@
+pkgname=banshee
+
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+ xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/banshee/gst-1.0.patch b/testing/banshee/gst-1.0.patch
new file mode 100644
index 000000000..f8fa7a7c2
--- /dev/null
+++ b/testing/banshee/gst-1.0.patch
@@ -0,0 +1,1025 @@
+From ec14625f10c26ae3646f382ffd804ee28c3d7334 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian.droege@collabora.co.uk>
+Date: Wed, 19 Sep 2012 11:34:06 +0200
+Subject: [PATCH] Initial port to GStreamer 1.0
+
+---
+ build/m4/banshee/gstreamer.m4 | 19 +++---
+ data/audio-profiles/wav.xml.in | 5 +-
+ libbanshee/banshee-bpmdetector.c | 11 ++--
+ libbanshee/banshee-gst.h | 4 +-
+ libbanshee/banshee-player-cdda.c | 5 +-
+ libbanshee/banshee-player-dvd.c | 4 +-
+ libbanshee/banshee-player-equalizer.c | 4 +-
+ libbanshee/banshee-player-missing-elements.c | 2 +-
+ libbanshee/banshee-player-pipeline.c | 37 ++++++-----
+ libbanshee/banshee-player-private.h | 13 ++--
+ libbanshee/banshee-player-replaygain.c | 29 ++++-----
+ libbanshee/banshee-player-video.c | 89 +++++++++++++-------------
+ libbanshee/banshee-player-vis.c | 88 ++++++++-----------------
+ libbanshee/banshee-player.c | 11 ++--
+ libbanshee/banshee-ripper.c | 16 ++---
+ libbanshee/banshee-tagger.c | 2 +-
+ libbanshee/banshee-transcoder.c | 19 +++---
+ 17 files changed, 156 insertions(+), 202 deletions(-)
+
+diff --git a/build/m4/banshee/gstreamer.m4 b/build/m4/banshee/gstreamer.m4
+index 6267cce..917cf58 100644
+--- a/build/m4/banshee/gstreamer.m4
++++ b/build/m4/banshee/gstreamer.m4
+@@ -1,17 +1,18 @@
+ AC_DEFUN([BANSHEE_CHECK_GSTREAMER],
+ [
+- GSTREAMER_REQUIRED_VERSION=0.10.26
++ GSTREAMER_REQUIRED_VERSION=0.11.99
+ AC_SUBST(GSTREAMER_REQUIRED_VERSION)
+
+ PKG_CHECK_MODULES(GST,
+- gstreamer-0.10 >= $GSTREAMER_REQUIRED_VERSION
+- gstreamer-base-0.10 >= $GSTREAMER_REQUIRED_VERSION
+- gstreamer-plugins-base-0.10 >= $GSTREAMER_REQUIRED_VERSION
+- gstreamer-controller-0.10 >= $GSTREAMER_REQUIRED_VERSION
+- gstreamer-dataprotocol-0.10 >= $GSTREAMER_REQUIRED_VERSION
+- gstreamer-fft-0.10 >= $GSTREAMER_REQUIRED_VERSION)
+-
+- GST_LIBS="$GST_LIBS -lgstvideo-0.10 -lgstinterfaces-0.10 -lgstcdda-0.10 -lgstpbutils-0.10 -lgsttag-0.10"
++ gstreamer-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-base-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-controller-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-plugins-base-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-audio-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-fft-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-pbutils-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-tag-1.0 >= $GSTREAMER_REQUIRED_VERSION
++ gstreamer-video-1.0 >= $GSTREAMER_REQUIRED_VERSION)
+
+ AC_SUBST(GST_CFLAGS)
+ AC_SUBST(GST_LIBS)
+diff --git a/data/audio-profiles/wav.xml.in b/data/audio-profiles/wav.xml.in
+index 35cd1d2..6dc1bab 100644
+--- a/data/audio-profiles/wav.xml.in
++++ b/data/audio-profiles/wav.xml.in
+@@ -14,10 +14,7 @@
+ "audioresample"
+ "audioconvert"
+ (+ "audio/x-raw-int, "
+- "endianness=(int)1234, "
+- "width=(int)16, "
+- "depth=(int)16, "
+- "signed=(boolean)true, "
++ "format=(string)S16LE, "
+ "rate=(int)44100, "
+ "channels=(int)2" )
+ "wavenc")
+diff --git a/libbanshee/banshee-bpmdetector.c b/libbanshee/banshee-bpmdetector.c
+index c06ffcb..68b0419 100644
+--- a/libbanshee/banshee-bpmdetector.c
++++ b/libbanshee/banshee-bpmdetector.c
+@@ -30,6 +30,7 @@
+ # include "config.h"
+ #endif
+
++#include <stdio.h>
+ #include <string.h>
+ #include <glib/gi18n.h>
+
+@@ -50,7 +51,7 @@ struct BansheeBpmDetector {
+
+ /*
+ * You can run this pipeline on the cmd line with:
+- * gst-launch -m filesrc location=/path/to/my.mp3 ! decodebin2 ! \
++ * gst-launch -m filesrc location=/path/to/my.mp3 ! decodebin ! \
+ * audioconvert ! bpmdetect ! fakesink
+ */
+
+@@ -168,14 +169,14 @@ bbd_new_decoded_pad(GstElement *decodebin, GstPad *pad,
+
+ g_return_if_fail(detector != NULL);
+
+- audiopad = gst_element_get_pad(detector->audioconvert, "sink");
++ audiopad = gst_element_get_static_pad(detector->audioconvert, "sink");
+
+ if(GST_PAD_IS_LINKED(audiopad)) {
+ g_object_unref(audiopad);
+ return;
+ }
+
+- caps = gst_pad_get_caps(pad);
++ caps = gst_pad_query_caps(pad, NULL);
+ str = gst_caps_get_structure(caps, 0);
+
+ if(!g_strrstr(gst_structure_get_name(str), "audio")) {
+@@ -209,9 +210,9 @@ bbd_pipeline_construct (BansheeBpmDetector *detector)
+ return FALSE;
+ }
+
+- detector->decodebin = gst_element_factory_make ("decodebin2", "decodebin2");
++ detector->decodebin = gst_element_factory_make ("decodebin", "decodebin");
+ if (detector->decodebin == NULL) {
+- bbd_raise_error (detector, _("Could not create decodebin2 plugin"), NULL);
++ bbd_raise_error (detector, _("Could not create decodebin plugin"), NULL);
+ return FALSE;
+ }
+
+diff --git a/libbanshee/banshee-gst.h b/libbanshee/banshee-gst.h
+index 85662cf..332f356 100644
+--- a/libbanshee/banshee-gst.h
++++ b/libbanshee/banshee-gst.h
+@@ -41,9 +41,11 @@
+ #define BANSHEE_GST_ITERATOR_ITERATE(iter,child_type,child_name,free,block) { \
+ gboolean iter##_done = FALSE; \
+ while (!iter##_done) { \
++ GValue child_value = {0, }; \
+ child_type child_name; \
+- switch (gst_iterator_next (iter, (gpointer)&child_name)) { \
++ switch (gst_iterator_next (iter, &child_value)) { \
+ case GST_ITERATOR_OK: { \
++ child_name = (child_type) g_value_get_object(&child_value); \
+ { block; } \
+ break; \
+ } \
+diff --git a/libbanshee/banshee-player-cdda.c b/libbanshee/banshee-player-cdda.c
+index 8be2bdd..401edf0 100644
+--- a/libbanshee/banshee-player-cdda.c
++++ b/libbanshee/banshee-player-cdda.c
+@@ -28,7 +28,8 @@
+ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ //
+
+-#include <gst/cdda/gstcddabasesrc.h>
++#include <stdlib.h>
++#include <gst/audio/gstaudiocdsrc.h>
+ #include "banshee-player-cdda.h"
+
+ // ---------------------------------------------------------------------------
+@@ -46,7 +47,7 @@ bp_cdda_get_cdda_source (GstElement *playbin)
+
+ g_object_get (playbin, "source", &source, NULL);
+
+- if (source == NULL || !GST_IS_CDDA_BASE_SRC (source)) {
++ if (source == NULL || !GST_IS_AUDIO_CD_SRC (source)) {
+ if (source != NULL) {
+ g_object_unref (source);
+ }
+diff --git a/libbanshee/banshee-player-dvd.c b/libbanshee/banshee-player-dvd.c
+index 55d499c..991b506 100644
+--- a/libbanshee/banshee-player-dvd.c
++++ b/libbanshee/banshee-player-dvd.c
+@@ -296,7 +296,7 @@ bp_dvd_go_to_next_chapter (BansheePlayer *player)
+ {
+ gint64 index;
+ GstFormat format = gst_format_get_by_nick ("chapter");
+- gst_element_query_position (player->playbin, &format, &index);
++ gst_element_query_position (player->playbin, format, &index);
+ gst_element_seek (player->playbin, 1.0, format, GST_SEEK_FLAG_FLUSH,
+ GST_SEEK_TYPE_SET, index + 1, GST_SEEK_TYPE_NONE, 0);
+ }
+@@ -306,7 +306,7 @@ bp_dvd_go_to_previous_chapter (BansheePlayer *player)
+ {
+ gint64 index;
+ GstFormat format = gst_format_get_by_nick ("chapter");
+- gst_element_query_position (player->playbin, &format, &index);
++ gst_element_query_position (player->playbin, format, &index);
+ gst_element_seek (player->playbin, 1.0, format, GST_SEEK_FLAG_FLUSH,
+ GST_SEEK_TYPE_SET, index - 1, GST_SEEK_TYPE_NONE, 0);
+ }
+diff --git a/libbanshee/banshee-player-equalizer.c b/libbanshee/banshee-player-equalizer.c
+index a496ada..0cbb3b7 100644
+--- a/libbanshee/banshee-player-equalizer.c
++++ b/libbanshee/banshee-player-equalizer.c
+@@ -122,7 +122,7 @@ bp_equalizer_set_gain (BansheePlayer *player, guint bandnum, gdouble gain)
+ g_return_if_fail (IS_BANSHEE_PLAYER (player));
+
+ if (player->equalizer != NULL) {
+- GstObject *band;
++ GObject *band;
+
+ g_return_if_fail (bandnum < gst_child_proxy_get_children_count (GST_CHILD_PROXY (player->equalizer)));
+
+@@ -188,7 +188,7 @@ bp_equalizer_get_frequencies (BansheePlayer *player, gdouble **freq)
+ count = gst_child_proxy_get_children_count (GST_CHILD_PROXY (player->equalizer));
+
+ for (i = 0; i < count; i++) {
+- GstObject *band;
++ GObject *band;
+
+ band = gst_child_proxy_get_child_by_index (GST_CHILD_PROXY (player->equalizer), i);
+ g_object_get (G_OBJECT (band), "freq", &(*freq)[i], NULL);
+diff --git a/libbanshee/banshee-player-missing-elements.c b/libbanshee/banshee-player-missing-elements.c
+index 20804c4..30118c5 100644
+--- a/libbanshee/banshee-player-missing-elements.c
++++ b/libbanshee/banshee-player-missing-elements.c
+@@ -170,7 +170,7 @@ _bp_missing_elements_handle_state_changed (BansheePlayer *player, GstState old,
+ }
+ #endif
+
+- install_return = gst_install_plugins_async (details, player->install_plugins_context,
++ install_return = gst_install_plugins_async ((const gchar * const*) details, player->install_plugins_context,
+ bp_missing_elements_handle_install_result, player);
+
+ if (install_return != GST_INSTALL_PLUGINS_STARTED_OK) {
+diff --git a/libbanshee/banshee-player-pipeline.c b/libbanshee/banshee-player-pipeline.c
+index ed845f3..6c2af35 100644
+--- a/libbanshee/banshee-player-pipeline.c
++++ b/libbanshee/banshee-player-pipeline.c
+@@ -76,7 +76,7 @@ playbin_stream_changed_cb (GstElement * element, BansheePlayer *player)
+ GstMessage *msg;
+
+ // We're being called from the streaming thread, so don't do anything here
+- msg = gst_message_new_application (GST_OBJECT (player->playbin), gst_structure_new ("stream-changed", NULL));
++ msg = gst_message_new_application (GST_OBJECT (player->playbin), gst_structure_new_empty ("stream-changed"));
+ gst_element_post_message (player->playbin, msg);
+ }
+
+@@ -218,6 +218,11 @@ bp_pipeline_bus_callback (GstBus *bus, GstMessage *message, gpointer userdata)
+ break;
+ }
+
++ case GST_MESSAGE_STREAM_START: {
++ bp_next_track_starting (player);
++ break;
++ }
++
+ case GST_MESSAGE_APPLICATION: {
+ const gchar * name;
+ const GstStructure * s = gst_message_get_structure (message);
+@@ -289,11 +294,11 @@ _bp_pipeline_construct (BansheePlayer *player)
+
+ // Playbin is the core element that handles autoplugging (finding the right
+ // source and decoder elements) based on source URI and stream content
+- player->playbin = gst_element_factory_make ("playbin2", "playbin");
++ player->playbin = gst_element_factory_make ("playbin", "playbin");
+
+ #ifdef ENABLE_GAPLESS
+ // FIXME: Connect a proxy about-to-finish callback that will generate a next-track-starting callback.
+- // This can be removed once playbin2 generates its own next-track signal.
++ // This can be removed once playbin generates its own next-track signal.
+ // bgo#584987 - this is included in >= 0.10.26
+ g_signal_connect (player->playbin, "about-to-finish", G_CALLBACK (bp_about_to_finish_callback), player);
+ #endif //ENABLE_GAPLESS
+@@ -305,18 +310,13 @@ _bp_pipeline_construct (BansheePlayer *player)
+ g_signal_connect (player->playbin, "audio-changed", G_CALLBACK (playbin_stream_changed_cb), player);
+ g_signal_connect (player->playbin, "text-changed", G_CALLBACK (playbin_stream_changed_cb), player);
+
+- // Try to find an audio sink, prefer gconf, which typically is set to auto these days,
+- // fall back on auto, which should work on windows, and as a last ditch, try alsa
+- audiosink = gst_element_factory_make ("gconfaudiosink", "audiosink");
+- if (audiosink == NULL) {
+- audiosink = gst_element_factory_make ("directsoundsink", "audiosink");
+- if (audiosink != NULL) {
+- g_object_set (G_OBJECT (audiosink), "volume", 1.0, NULL);
+- } else {
+- audiosink = gst_element_factory_make ("autoaudiosink", "audiosink");
+- if (audiosink == NULL) {
+- audiosink = gst_element_factory_make ("alsasink", "audiosink");
+- }
++ audiosink = gst_element_factory_make ("directsoundsink", "audiosink");
++ if (audiosink != NULL) {
++ g_object_set (G_OBJECT (audiosink), "volume", 1.0, NULL);
++ } else {
++ audiosink = gst_element_factory_make ("autoaudiosink", "audiosink");
++ if (audiosink == NULL) {
++ audiosink = gst_element_factory_make ("alsasink", "audiosink");
+ }
+ }
+
+@@ -341,7 +341,6 @@ _bp_pipeline_construct (BansheePlayer *player)
+ GstIterator *elem_iter = gst_bin_iterate_recurse (GST_BIN (audiosink));
+ BANSHEE_GST_ITERATOR_ITERATE (elem_iter, GstElement *, element, TRUE, {
+ player->audiosink_has_volume |= g_object_class_find_property (G_OBJECT_GET_CLASS (element), "volume") != NULL;
+- gst_object_unref (element);
+ });
+ }
+ bp_debug ("Audiosink has volume: %s",
+@@ -383,7 +382,7 @@ _bp_pipeline_construct (BansheePlayer *player)
+ }
+
+ // Ghost pad the audio bin so audio is passed from the bin into the tee
+- teepad = gst_element_get_pad (player->audiotee, "sink");
++ teepad = gst_element_get_static_pad (player->audiotee, "sink");
+ gst_element_add_pad (player->audiobin, gst_ghost_pad_new ("sink", teepad));
+ gst_object_unref (teepad);
+
+@@ -411,8 +410,8 @@ _bp_pipeline_construct (BansheePlayer *player)
+ gst_bus_add_watch (bus, bp_pipeline_bus_callback, player);
+
+ // Link the first tee pad to the primary audio sink queue
+- GstPad *sinkpad = gst_element_get_pad (audiosinkqueue, "sink");
+- pad = gst_element_get_request_pad (player->audiotee, "src%d");
++ GstPad *sinkpad = gst_element_get_static_pad (audiosinkqueue, "sink");
++ pad = gst_element_get_request_pad (player->audiotee, "src_%u");
+ g_object_set(player->audiotee, "alloc-pad", pad, NULL);
+ gst_pad_link (pad, sinkpad);
+ gst_object_unref (GST_OBJECT (pad));
+diff --git a/libbanshee/banshee-player-private.h b/libbanshee/banshee-player-private.h
+index 9fed356..9346911 100644
+--- a/libbanshee/banshee-player-private.h
++++ b/libbanshee/banshee-player-private.h
+@@ -42,14 +42,14 @@
+ #include <gst/fft/gstfftf32.h>
+ #include <gst/pbutils/pbutils.h>
+ #include <gst/tag/tag.h>
+-#include <gst/interfaces/navigation.h>
++#include <gst/video/navigation.h>
+
+ #if defined(GDK_WINDOWING_X11)
+ # include <gdk/gdkx.h>
+-# include <gst/interfaces/xoverlay.h>
++# include <gst/video/videooverlay.h>
+ #elif defined(GDK_WINDOWING_WIN32)
+ # include <gdk/gdkwin32.h>
+-# include <gst/interfaces/xoverlay.h>
++# include <gst/video/videooverlay.h>
+ #endif
+
+ #include "banshee-gst.h"
+@@ -155,11 +155,11 @@ struct BansheePlayer {
+ // Video State
+ BpVideoDisplayContextType video_display_context_type;
+ #if defined(GDK_WINDOWING_X11)
+- GstXOverlay *xoverlay;
++ GstVideoOverlay *video_overlay;
+ GdkWindow *video_window;
+ XID video_window_xid;
+ #elif defined(GDK_WINDOWING_WIN32)
+- GstXOverlay *xoverlay;
++ GstVideoOverlay *video_overlay;
+ GdkWindow *video_window;
+ HWND video_window_xid;
+ #endif
+@@ -179,6 +179,8 @@ struct BansheePlayer {
+ GstFFTF32 *vis_fft;
+ GstFFTF32Complex *vis_fft_buffer;
+ gfloat *vis_fft_sample_buffer;
++ GstPad *vis_event_probe_pad;
++ gulong vis_event_probe_id;
+
+ // Plugin Installer State
+ GdkWindow *window;
+@@ -197,6 +199,7 @@ struct BansheePlayer {
+ // http://replaygain.hydrogenaudio.org/player_scale.html
+ gdouble rg_gain_history[10];
+ gint history_size;
++ gulong rg_pad_block_id;
+
+ //dvd navigation
+ GstNavigation *navigation;
+diff --git a/libbanshee/banshee-player-replaygain.c b/libbanshee/banshee-player-replaygain.c
+index a479d4a..e42b197 100644
+--- a/libbanshee/banshee-player-replaygain.c
++++ b/libbanshee/banshee-player-replaygain.c
+@@ -79,17 +79,13 @@ static void on_target_gain_changed (GstElement *rgvolume, GParamSpec *pspec, Ban
+ _bp_rgvolume_print_volume (player);
+ }
+
+-static void
+-pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data)
++static GstPadProbeReturn
++pad_block_cb (GstPad *srcPad, GstPadProbeInfo *info, gpointer user_data)
+ {
+ BansheePlayer* player;
+
+- if (!blocked) {
+- return;
+- }
+-
+ player = (BansheePlayer*) user_data;
+- g_return_if_fail (IS_BANSHEE_PLAYER (player));
++ g_return_val_if_fail (IS_BANSHEE_PLAYER (player), GST_PAD_PROBE_OK);
+
+ // The pad_block_cb can get triggered multiple times, on different threads.
+ // Lock around the link/unlink code, so we don't end up going through here
+@@ -99,11 +95,9 @@ pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data)
+ if ((player->replaygain_enabled && player->rgvolume_in_pipeline) ||
+ (!player->replaygain_enabled && !player->rgvolume_in_pipeline)) {
+ // The pipeline is already in the correct state. Unblock the pad, and return.
++ player->rg_pad_block_id = 0;
+ g_mutex_unlock (player->replaygain_mutex);
+- if (gst_pad_is_blocked (srcPad)) {
+- gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player);
+- }
+- return;
++ return GST_PAD_PROBE_REMOVE;
+ }
+
+ if (player->rgvolume_in_pipeline) {
+@@ -139,13 +133,12 @@ pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data)
+ }
+
+ // Our state is now consistent
++ player->rg_pad_block_id = 0;
+ g_mutex_unlock (player->replaygain_mutex);
+
+- if (gst_pad_is_blocked (srcPad)) {
+- gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player);
+- }
+-
+ _bp_rgvolume_print_volume (player);
++
++ return GST_PAD_PROBE_REMOVE;
+ }
+
+ // ---------------------------------------------------------------------------
+@@ -187,9 +180,9 @@ void _bp_replaygain_pipeline_rebuild (BansheePlayer* player)
+ srcPad = gst_element_get_static_pad (player->before_rgvolume, "src");
+
+ if (gst_pad_is_active (srcPad) && !gst_pad_is_blocked (srcPad)) {
+- gst_pad_set_blocked_async (srcPad, TRUE, &pad_block_cb, player);
+- } else if (srcPad->block_callback == NULL) {
+- pad_block_cb (srcPad, TRUE, player);
++ player->rg_pad_block_id = gst_pad_add_probe (srcPad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, &pad_block_cb, player, NULL);
++ } else if (!player->rg_pad_block_id) {
++ pad_block_cb (srcPad, NULL, player);
+ }
+ }
+
+diff --git a/libbanshee/banshee-player-video.c b/libbanshee/banshee-player-video.c
+index b901354..eb95c3f 100644
+--- a/libbanshee/banshee-player-video.c
++++ b/libbanshee/banshee-player-video.c
+@@ -37,54 +37,54 @@
+ #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32)
+
+ static gboolean
+-bp_video_find_xoverlay (BansheePlayer *player)
++bp_video_find_video_overlay (BansheePlayer *player)
+ {
+ GstElement *video_sink = NULL;
+- GstElement *xoverlay;
+- GstXOverlay *previous_xoverlay;
+- gboolean found_xoverlay;
++ GstElement *video_overlay;
++ GstVideoOverlay *previous_video_overlay;
++ gboolean found_video_overlay;
+
+ g_object_get (player->playbin, "video-sink", &video_sink, NULL);
+
+ g_mutex_lock (player->video_mutex);
+- previous_xoverlay = player->xoverlay;
++ previous_video_overlay = player->video_overlay;
+
+ if (video_sink == NULL) {
+- player->xoverlay = NULL;
+- if (previous_xoverlay != NULL) {
+- gst_object_unref (previous_xoverlay);
++ player->video_overlay = NULL;
++ if (previous_video_overlay != NULL) {
++ gst_object_unref (previous_video_overlay);
+ }
+ g_mutex_unlock (player->video_mutex);
+ return FALSE;
+ }
+
+- xoverlay = GST_IS_BIN (video_sink)
+- ? gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_X_OVERLAY)
++ video_overlay = GST_IS_BIN (video_sink)
++ ? gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_VIDEO_OVERLAY)
+ : video_sink;
+
+- player->xoverlay = GST_IS_X_OVERLAY (xoverlay) ? GST_X_OVERLAY (xoverlay) : NULL;
++ player->video_overlay = GST_IS_VIDEO_OVERLAY (video_overlay) ? GST_VIDEO_OVERLAY (video_overlay) : NULL;
+
+- if (previous_xoverlay != NULL) {
+- gst_object_unref (previous_xoverlay);
++ if (previous_video_overlay != NULL) {
++ gst_object_unref (previous_video_overlay);
+ }
+
+ #if !defined(GDK_WINDOWING_WIN32) // We can't rely on aspect ratio from dshowvideosink
+- if (player->xoverlay != NULL && g_object_class_find_property (
+- G_OBJECT_GET_CLASS (player->xoverlay), "force-aspect-ratio")) {
+- g_object_set (G_OBJECT (player->xoverlay), "force-aspect-ratio", TRUE, NULL);
++ if (player->video_overlay != NULL && g_object_class_find_property (
++ G_OBJECT_GET_CLASS (player->video_overlay), "force-aspect-ratio")) {
++ g_object_set (G_OBJECT (player->video_overlay), "force-aspect-ratio", TRUE, NULL);
+ }
+ #endif
+
+- if (player->xoverlay != NULL && g_object_class_find_property (
+- G_OBJECT_GET_CLASS (player->xoverlay), "handle-events")) {
+- g_object_set (G_OBJECT (player->xoverlay), "handle-events", FALSE, NULL);
++ if (player->video_overlay != NULL && g_object_class_find_property (
++ G_OBJECT_GET_CLASS (player->video_overlay), "handle-events")) {
++ g_object_set (G_OBJECT (player->video_overlay), "handle-events", FALSE, NULL);
+ }
+
+ gst_object_unref (video_sink);
+- found_xoverlay = (player->xoverlay != NULL) ? TRUE : FALSE;
++ found_video_overlay = (player->video_overlay != NULL) ? TRUE : FALSE;
+
+ g_mutex_unlock (player->video_mutex);
+- return found_xoverlay;
++ return found_video_overlay;
+ }
+
+ #endif /* GDK_WINDOWING_X11 || GDK_WINDOWING_WIN32 */
+@@ -130,27 +130,27 @@ bp_video_sink_element_added (GstBin *videosink, GstElement *element, BansheePlay
+ g_return_if_fail (IS_BANSHEE_PLAYER (player));
+
+ #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32)
+- bp_video_find_xoverlay (player);
++ bp_video_find_video_overlay (player);
+ #endif
+ }
+
+ static void
+ bp_video_bus_element_sync_message (GstBus *bus, GstMessage *message, BansheePlayer *player)
+ {
+- gboolean found_xoverlay;
++ gboolean found_video_overlay;
+
+ g_return_if_fail (IS_BANSHEE_PLAYER (player));
+
+ #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32)
+
+- if (message->structure == NULL || !gst_structure_has_name (message->structure, "prepare-xwindow-id")) {
++ if (!gst_is_video_overlay_prepare_window_handle_message (message)) {
+ return;
+ }
+
+- found_xoverlay = bp_video_find_xoverlay (player);
++ found_video_overlay = bp_video_find_video_overlay (player);
+
+- if (found_xoverlay) {
+- gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid);
++ if (found_video_overlay) {
++ gst_video_overlay_set_window_handle (player->video_overlay, player->video_window_xid);
+ }
+
+ #endif
+@@ -164,7 +164,7 @@ static void
+ cb_caps_set (GObject *obj, GParamSpec *pspec, BansheePlayer *p)
+ {
+ GstStructure * s = NULL;
+- GstCaps * caps = gst_pad_get_negotiated_caps (GST_PAD (obj));
++ GstCaps * caps = gst_pad_get_current_caps (GST_PAD (obj));
+
+ if (G_UNLIKELY (!caps)) {
+ return;
+@@ -219,7 +219,7 @@ _bp_parse_stream_info (BansheePlayer *player)
+ }
+
+ if (G_LIKELY (vpad)) {
+- GstCaps *caps = gst_pad_get_negotiated_caps (vpad);
++ GstCaps *caps = gst_pad_get_current_caps (vpad);
+ if (G_LIKELY (caps)) {
+ cb_caps_set (G_OBJECT (vpad), NULL, player);
+ gst_caps_unref (caps);
+@@ -249,21 +249,18 @@ _bp_video_pipeline_setup (BansheePlayer *player, GstBus *bus)
+
+ player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_GDK_WINDOW;
+
+- videosink = gst_element_factory_make ("gconfvideosink", "videosink");
++ videosink = gst_element_factory_make ("autovideosink", "videosink");
+ if (videosink == NULL) {
+- videosink = gst_element_factory_make ("autovideosink", "videosink");
+- if (videosink == NULL) {
+- player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_UNSUPPORTED;
+- videosink = gst_element_factory_make ("fakesink", "videosink");
+- if (videosink != NULL) {
+- g_object_set (G_OBJECT (videosink), "sync", TRUE, NULL);
+- }
++ player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_UNSUPPORTED;
++ videosink = gst_element_factory_make ("fakesink", "videosink");
++ if (videosink != NULL) {
++ g_object_set (G_OBJECT (videosink), "sync", TRUE, NULL);
+ }
+ }
+
+ g_object_set (G_OBJECT (player->playbin), "video-sink", videosink, NULL);
+
+- gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, player);
++ gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, player, NULL);
+ g_signal_connect (bus, "sync-message::element", G_CALLBACK (bp_video_bus_element_sync_message), player);
+
+ if (GST_IS_BIN (videosink)) {
+@@ -349,21 +346,21 @@ bp_video_window_expose (BansheePlayer *player, GdkWindow *window, gboolean direc
+ {
+ g_return_if_fail (IS_BANSHEE_PLAYER (player));
+
+- if (direct && player->xoverlay != NULL && GST_IS_X_OVERLAY (player->xoverlay)) {
+- gst_x_overlay_expose (player->xoverlay);
++ if (direct && player->video_overlay != NULL && GST_IS_VIDEO_OVERLAY (player->video_overlay)) {
++ gst_video_overlay_expose (player->video_overlay);
+ return;
+ }
+
+- if (player->xoverlay == NULL && !bp_video_find_xoverlay (player)) {
++ if (player->video_overlay == NULL && !bp_video_find_video_overlay (player)) {
+ return;
+ }
+
+- gst_object_ref (player->xoverlay);
++ gst_object_ref (player->video_overlay);
+
+- gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid);
+- gst_x_overlay_expose (player->xoverlay);
++ gst_video_overlay_set_window_handle (player->video_overlay, player->video_window_xid);
++ gst_video_overlay_expose (player->video_overlay);
+
+- gst_object_unref (player->xoverlay);
++ gst_object_unref (player->video_overlay);
+ }
+
+ // MUST be called from the GTK main thread; calling it in OnRealized will do the right thing.
+@@ -379,7 +376,7 @@ bp_video_window_realize (BansheePlayer *player, GdkWindow *window)
+ // //Explicitly create the native window. GDK_WINDOW_XWINDOW will call this
+ // //function anyway, but this way we can raise a more useful message should it fail.
+ // if (!gdk_window_ensure_native (window)) {
+-// banshee_log (BANSHEE_LOG_TYPE_ERROR, "player-video", "Couldn't create native window needed for GstXOverlay!");
++// banshee_log (BANSHEE_LOG_TYPE_ERROR, "player-video", "Couldn't create native window needed for GstVideoOverlay!");
+ // }
+ //#endif
+
+diff --git a/libbanshee/banshee-player-vis.c b/libbanshee/banshee-player-vis.c
+index 5787c87..7e7dc78 100644
+--- a/libbanshee/banshee-player-vis.c
++++ b/libbanshee/banshee-player-vis.c
+@@ -27,17 +27,17 @@
+ //
+
+ #include <math.h>
++#include <gst/audio/audio.h>
+
+ #include "banshee-player-vis.h"
+
+ #define SLICE_SIZE 735
+
+ static GstStaticCaps vis_data_sink_caps = GST_STATIC_CAPS (
+- "audio/x-raw-float, "
++ "audio/x-raw, "
++ "format = (string) " GST_AUDIO_NE(F32) ", "
+ "rate = (int) 44100, "
+- "channels = (int) 2, "
+- "endianness = (int) BYTE_ORDER, "
+- "width = (int) 32"
++ "channels = (int) 2"
+ );
+
+ // ---------------------------------------------------------------------------
+@@ -48,6 +48,7 @@ static void
+ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer userdata)
+ {
+ BansheePlayer *player = (BansheePlayer*)userdata;
++ GstCaps *caps;
+ GstStructure *structure;
+ gint channels, wanted_size;
+ gfloat *data;
+@@ -69,14 +70,16 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u
+ player->vis_thawing = FALSE;
+ }
+
+- structure = gst_caps_get_structure (gst_buffer_get_caps (buffer), 0);
++ caps = gst_pad_get_current_caps (pad);
++ structure = gst_caps_get_structure (caps, 0);
+ gst_structure_get_int (structure, "channels", &channels);
++ gst_caps_unref (caps);
+
+ wanted_size = channels * SLICE_SIZE * sizeof (gfloat);
+
+- gst_adapter_push (player->vis_buffer, gst_buffer_copy (buffer));
++ gst_adapter_push (player->vis_buffer, gst_buffer_ref (buffer));
+
+- while ((data = (gfloat *)gst_adapter_peek (player->vis_buffer, wanted_size)) != NULL) {
++ while ((data = (gfloat *)gst_adapter_map (player->vis_buffer, wanted_size)) != NULL) {
+ gfloat *deinterlaced = g_malloc (wanted_size);
+ gfloat *specbuf = g_new (gfloat, SLICE_SIZE * 2);
+
+@@ -124,6 +127,7 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u
+ g_free (deinterlaced);
+ g_free (specbuf);
+
++ gst_adapter_unmap (player->vis_buffer);
+ gst_adapter_flush (player->vis_buffer, wanted_size);
+ }
+ }
+@@ -132,65 +136,28 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u
+ // Internal Functions
+ // ---------------------------------------------------------------------------
+
+-static void
+-_bp_vis_pipeline_block_callback (GstPad *pad, gboolean blocked, gpointer data)
++static GstPadProbeReturn
++_bp_vis_pipeline_event_probe (GstPad *pad, GstPadProbeInfo *info, gpointer data)
+ {
+ BansheePlayer *player = (BansheePlayer *) data;
++ GstEvent *event;
+
+- if (!blocked) {
+- // Set thawing mode (discards buffers that are too old from the queue).
+- player->vis_thawing = TRUE;
+- }
+-}
+-
+-static void
+-_bp_vis_pipeline_set_blocked (BansheePlayer *player, gboolean blocked)
+-{
+- GstPad *queue_sink;
+-
+- if (player->vis_resampler == NULL)
+- return;
+-
+- queue_sink = gst_element_get_static_pad (player->vis_resampler, "src");
+-
+- gst_pad_set_blocked_async (queue_sink, blocked, _bp_vis_pipeline_block_callback, (gpointer) player);
+-
+- gst_object_unref (GST_OBJECT (queue_sink));
+-}
+-
+-static gboolean
+-_bp_vis_pipeline_event_probe (GstPad *pad, GstEvent *event, gpointer data)
+-{
+- BansheePlayer *player = (BansheePlayer *) data;
++ if ((info->type & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) == 0)
++ return GST_PAD_PROBE_PASS;
+
++ event = GST_EVENT (info->data);
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_FLUSH_START:
+ case GST_EVENT_FLUSH_STOP:
+ case GST_EVENT_SEEK:
+- case GST_EVENT_NEWSEGMENT:
++ case GST_EVENT_SEGMENT:
+ case GST_EVENT_CUSTOM_DOWNSTREAM:
+ player->vis_thawing = TRUE;
+
+ default: break;
+ }
+
+- if (player->vis_enabled)
+- return TRUE;
+-
+- switch (GST_EVENT_TYPE (event)) {
+- case GST_EVENT_EOS:
+- case GST_EVENT_CUSTOM_DOWNSTREAM_OOB:
+- _bp_vis_pipeline_set_blocked (player, FALSE);
+- break;
+- case GST_EVENT_CUSTOM_DOWNSTREAM:
+- case GST_EVENT_NEWSEGMENT:
+- _bp_vis_pipeline_set_blocked (player, TRUE);
+- break;
+-
+- default: break;
+- }
+-
+- return TRUE;
++ return GST_PAD_PROBE_PASS;
+ }
+
+ void
+@@ -212,9 +179,8 @@ _bp_vis_pipeline_setup (BansheePlayer *player)
+ // Core elements, if something fails here, it's the end of the world
+ audiosinkqueue = gst_element_factory_make ("queue", "vis-queue");
+
+- pad = gst_element_get_static_pad (audiosinkqueue, "sink");
+- gst_pad_add_event_probe (pad, G_CALLBACK (_bp_vis_pipeline_event_probe), player);
+- gst_object_unref (GST_OBJECT (pad));
++ player->vis_event_probe_pad = gst_element_get_static_pad (audiosinkqueue, "sink");
++ player->vis_event_probe_id = gst_pad_add_probe (player->vis_event_probe_pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, _bp_vis_pipeline_event_probe, player, NULL);
+
+ resampler = gst_element_factory_make ("audioresample", "vis-resample");
+ converter = gst_element_factory_make ("audioconvert", "vis-convert");
+@@ -255,7 +221,7 @@ _bp_vis_pipeline_setup (BansheePlayer *player)
+ converter, fakesink, NULL);
+
+ pad = gst_element_get_static_pad (audiosinkqueue, "sink");
+- teepad = gst_element_get_request_pad (player->audiotee, "src%d");
++ teepad = gst_element_get_request_pad (player->audiotee, "src_%u");
+ gst_pad_link (teepad, pad);
+ gst_object_unref (GST_OBJECT (teepad));
+ gst_object_unref (GST_OBJECT (pad));
+@@ -270,14 +236,17 @@ _bp_vis_pipeline_setup (BansheePlayer *player)
+ player->vis_resampler = resampler;
+ player->vis_thawing = FALSE;
+ player->vis_enabled = FALSE;
+-
+- // Disable the pipeline till we hear otherwise from managed land.
+- _bp_vis_pipeline_set_blocked (player, TRUE);
+ }
+
+ void
+ _bp_vis_pipeline_destroy (BansheePlayer *player)
+ {
++ if (player->vis_event_probe_pad) {
++ gst_pad_remove_probe (player->vis_event_probe_pad, player->vis_event_probe_id);
++ gst_object_unref (GST_OBJECT (player->vis_event_probe_pad));
++ player->vis_event_probe_pad = NULL;
++ }
++
+ if (player->vis_buffer != NULL) {
+ gst_object_unref (player->vis_buffer);
+ player->vis_buffer = NULL;
+@@ -315,6 +284,5 @@ bp_set_vis_data_callback (BansheePlayer *player, BansheePlayerVisDataCallback cb
+
+ player->vis_data_cb = cb;
+
+- _bp_vis_pipeline_set_blocked (player, cb == NULL);
+ player->vis_enabled = cb != NULL;
+ }
+diff --git a/libbanshee/banshee-player.c b/libbanshee/banshee-player.c
+index c655a72..b8f98b8 100644
+--- a/libbanshee/banshee-player.c
++++ b/libbanshee/banshee-player.c
+@@ -250,12 +250,11 @@ bp_set_position (BansheePlayer *player, guint64 time_ms)
+ P_INVOKE guint64
+ bp_get_position (BansheePlayer *player)
+ {
+- static GstFormat format = GST_FORMAT_TIME;
+ gint64 position;
+
+ g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0);
+
+- if (player->playbin != NULL && gst_element_query_position (player->playbin, &format, &position)) {
++ if (player->playbin != NULL && gst_element_query_position (player->playbin, GST_FORMAT_TIME, &position)) {
+ return position / GST_MSECOND;
+ }
+
+@@ -265,12 +264,11 @@ bp_get_position (BansheePlayer *player)
+ P_INVOKE guint64
+ bp_get_duration (BansheePlayer *player)
+ {
+- static GstFormat format = GST_FORMAT_TIME;
+ gint64 duration;
+
+ g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0);
+
+- if (player->playbin != NULL && gst_element_query_duration (player->playbin, &format, &duration)) {
++ if (player->playbin != NULL && gst_element_query_duration (player->playbin, GST_FORMAT_TIME, &duration)) {
+ return duration / GST_MSECOND;
+ }
+
+@@ -446,7 +444,6 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri)
+ g_return_if_fail (IS_BANSHEE_PLAYER (player));
+ gint64 pos = -1;
+ GstState state;
+- GstFormat format = GST_FORMAT_BYTES;
+ gboolean paused = FALSE;
+
+ // Gstreamer playbin do not support to set suburi during playback
+@@ -454,7 +451,7 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri)
+ gst_element_get_state (player->playbin, &state, NULL, 0);
+ paused = (state == GST_STATE_PAUSED);
+ if (state >= GST_STATE_PAUSED) {
+- gst_element_query_position (player->playbin, &format, &pos);
++ gst_element_query_position (player->playbin, GST_FORMAT_BYTES, &pos);
+ gst_element_set_state (player->playbin, GST_STATE_READY);
+ // Force to wait asynch operation
+ gst_element_get_state (player->playbin, &state, NULL, -1);
+@@ -467,7 +464,7 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri)
+ gst_element_get_state (player->playbin, &state, NULL, -1);
+
+ if (pos != -1) {
+- gst_element_seek_simple (player->playbin, format, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, pos);
++ gst_element_seek_simple (player->playbin, GST_FORMAT_BYTES, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, pos);
+ }
+ }
+
+diff --git a/libbanshee/banshee-ripper.c b/libbanshee/banshee-ripper.c
+index e0e8c85..b3f8fed 100644
+--- a/libbanshee/banshee-ripper.c
++++ b/libbanshee/banshee-ripper.c
+@@ -85,7 +85,6 @@ br_raise_error (BansheeRipper *ripper, const gchar *error, const gchar *debug)
+ static gboolean
+ br_iterate_timeout (BansheeRipper *ripper)
+ {
+- GstFormat format = GST_FORMAT_TIME;
+ GstState state;
+ gint64 position;
+
+@@ -96,7 +95,7 @@ br_iterate_timeout (BansheeRipper *ripper)
+ return TRUE;
+ }
+
+- if (!gst_element_query_position (ripper->cddasrc, &format, &position)) {
++ if (!gst_element_query_position (ripper->cddasrc, GST_FORMAT_TIME, &position)) {
+ return TRUE;
+ }
+
+@@ -142,8 +141,9 @@ br_encoder_probe_mime_type (GstBin *bin)
+ GstIterator *pad_iter = gst_element_iterate_src_pads (element);
+
+ BANSHEE_GST_ITERATOR_ITERATE (pad_iter, GstPad *, pad, TRUE, {
+- GstStructure *str = GST_PAD_CAPS (pad) != NULL
+- ? gst_caps_get_structure (GST_PAD_CAPS (pad), 0)
++ GstCaps *caps = gst_pad_get_current_caps (pad);
++ GstStructure *str = caps != NULL
++ ? gst_caps_get_structure (caps, 0)
+ : NULL;
+
+ if (str != NULL) {
+@@ -171,11 +171,8 @@ br_encoder_probe_mime_type (GstBin *bin)
+ preferred_mimetype = mimetype;
+ }
+ }
+-
+- gst_object_unref (pad);
++ gst_caps_unref (caps);
+ });
+-
+- gst_object_unref (element);
+ });
+
+ return preferred_mimetype;
+@@ -271,7 +268,7 @@ br_pipeline_construct (BansheeRipper *ripper)
+ return FALSE;
+ }
+
+- ripper->cddasrc = gst_element_make_from_uri (GST_URI_SRC, "cdda://1", "cddasrc");
++ ripper->cddasrc = gst_element_make_from_uri (GST_URI_SRC, "cdda://1", "cddasrc", NULL);
+ if (ripper->cddasrc == NULL) {
+ br_raise_error (ripper, _("Could not initialize element from cdda URI"), NULL);
+ return FALSE;
+@@ -405,7 +402,6 @@ br_rip_track (BansheeRipper *ripper, gint track_number, gchar *output_path,
+
+ // We'll warn the user in the UI if we can't tag the encoded audio files
+ *tagging_supported = TRUE;
+- gst_object_unref (element);
+ }
+ });
+
+diff --git a/libbanshee/banshee-tagger.c b/libbanshee/banshee-tagger.c
+index ca15e8f..762dfa9 100644
+--- a/libbanshee/banshee-tagger.c
++++ b/libbanshee/banshee-tagger.c
+@@ -69,7 +69,7 @@ bt_tag_list_foreach (const GstTagList *list, const gchar *tag, gpointer userdata
+ GstTagList *
+ bt_tag_list_new ()
+ {
+- return gst_tag_list_new ();
++ return gst_tag_list_new_empty ();
+ }
+
+ void
+diff --git a/libbanshee/banshee-transcoder.c b/libbanshee/banshee-transcoder.c
+index 10fc35c..0e241f0 100644
+--- a/libbanshee/banshee-transcoder.c
++++ b/libbanshee/banshee-transcoder.c
+@@ -64,14 +64,13 @@ gst_transcoder_raise_error(GstTranscoder *transcoder, const gchar *error, const
+ static gboolean
+ gst_transcoder_iterate_timeout(GstTranscoder *transcoder)
+ {
+- GstFormat format = GST_FORMAT_TIME;
+ gint64 position;
+ gint64 duration;
+
+ g_return_val_if_fail(transcoder != NULL, FALSE);
+
+- if(!gst_element_query_duration(transcoder->pipeline, &format, &duration) ||
+- !gst_element_query_position(transcoder->sink_bin, &format, &position)) {
++ if(!gst_element_query_duration(transcoder->pipeline, GST_FORMAT_TIME, &duration) ||
++ !gst_element_query_position(transcoder->sink_bin, GST_FORMAT_TIME, &position)) {
+ return TRUE;
+ }
+
+@@ -196,14 +195,14 @@ gst_transcoder_new_decoded_pad(GstElement *decodebin, GstPad *pad,
+
+ g_return_if_fail(transcoder != NULL);
+
+- audiopad = gst_element_get_pad(transcoder->sink_bin, "sink");
++ audiopad = gst_element_get_static_pad(transcoder->sink_bin, "sink");
+
+ if(GST_PAD_IS_LINKED(audiopad)) {
+ g_object_unref(audiopad);
+ return;
+ }
+
+- caps = gst_pad_get_caps(pad);
++ caps = gst_pad_query_caps(pad, NULL);
+ str = gst_caps_get_structure(caps, 0);
+
+ if(!g_strrstr(gst_structure_get_name(str), "audio")) {
+@@ -235,19 +234,19 @@ gst_transcoder_create_pipeline(GstTranscoder *transcoder,
+
+ transcoder->pipeline = gst_pipeline_new("pipeline");
+
+- source_elem = gst_element_make_from_uri(GST_URI_SRC, input_uri, "source");
++ source_elem = gst_element_make_from_uri(GST_URI_SRC, input_uri, "source", NULL);
+ if(source_elem == NULL) {
+ gst_transcoder_raise_error(transcoder, _("Could not create source element"), NULL);
+ return FALSE;
+ }
+
+- decoder_elem = gst_element_factory_make("decodebin2", "decodebin2");
++ decoder_elem = gst_element_factory_make("decodebin", "decodebin");
+ if(decoder_elem == NULL) {
+- gst_transcoder_raise_error(transcoder, _("Could not create decodebin2 plugin"), NULL);
++ gst_transcoder_raise_error(transcoder, _("Could not create decodebin plugin"), NULL);
+ return FALSE;
+ }
+
+- sink_elem = gst_element_make_from_uri(GST_URI_SINK, output_uri, "sink");
++ sink_elem = gst_element_make_from_uri(GST_URI_SINK, output_uri, "sink", NULL);
+ if(sink_elem == NULL) {
+ gst_transcoder_raise_error(transcoder, _("Could not create sink element"), NULL);
+ return FALSE;
+@@ -277,7 +276,7 @@ gst_transcoder_create_pipeline(GstTranscoder *transcoder,
+ return FALSE;
+ }
+
+- encoder_pad = gst_element_get_pad(conv_elem, "sink");
++ encoder_pad = gst_element_get_static_pad(conv_elem, "sink");
+ if(encoder_pad == NULL) {
+ gst_transcoder_raise_error(transcoder, _("Could not get sink pad from encoder"), NULL);
+ return FALSE;
+--
+1.7.10.4 \ No newline at end of file
diff --git a/testing/baobab/PKGBUILD b/testing/baobab/PKGBUILD
new file mode 100644
index 000000000..5d9f45bcd
--- /dev/null
+++ b/testing/baobab/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169273 2012-10-18 19:29:39Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=baobab
+pkgver=3.6.2
+pkgrel=1
+pkgdesc="A graphical directory tree analyzer"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('GPL2')
+depends=('dconf' 'gtk3' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('intltool' 'itstool' 'vala' 'gobject-introspection')
+groups=('gnome-extra')
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('8ffef397f11fb1e7105d1429be828e88b9ceb5746984f0bb978e66e87faf047a')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/baobab/baobab.install b/testing/baobab/baobab.install
new file mode 100644
index 000000000..5a3c24041
--- /dev/null
+++ b/testing/baobab/baobab.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/brasero/PKGBUILD b/testing/brasero/PKGBUILD
new file mode 100644
index 000000000..04fa8e0bb
--- /dev/null
+++ b/testing/brasero/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 169272 2012-10-18 19:29:34Z jgc $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=brasero
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="A disc burning application for Gnome"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/brasero"
+license=('GPL')
+options=('!libtool' '!emptydirs')
+depends=('gtk3' 'gst-plugins-base' 'totem-plparser' 'cdrkit' 'cdrdao' 'desktop-file-utils' 'hicolor-icon-theme' 'shared-mime-info' 'libcanberra' 'dvd+rw-tools' 'dconf' 'libsm' 'libtracker-sparql')
+makedepends=('gtk-doc' 'intltool' 'libburn' 'libisofs' 'nautilus' 'gobject-introspection' 'gconf' 'itstool' 'docbook-xsl')
+optdepends=('libburn: alternative back-end'
+ 'libisofs: libburn back-end'
+ 'dvdauthor: video project'
+ 'gstreamer0.10-bad-plugins: video project'
+ 'vcdimager: video project')
+replaces=('nautilus-cd-burner')
+install=brasero.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1eb16f85c5663f3f38ee60516759c0980024b893af9ec7875d31208a53c12b3b')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-caches \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/testing/brasero/brasero.install b/testing/brasero/brasero.install
new file mode 100644
index 000000000..9248062f7
--- /dev/null
+++ b/testing/brasero/brasero.install
@@ -0,0 +1,14 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+ update-mime-database /usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/cheese/PKGBUILD b/testing/cheese/PKGBUILD
new file mode 100644
index 000000000..eecdebb6a
--- /dev/null
+++ b/testing/cheese/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169270 2012-10-18 19:29:27Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cheese
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Use your webcam to take photos and videos, apply fancy special effects and share the fun with others"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtk3' 'gstreamer' 'gst-plugins-bad' 'gst-plugins-base' 'gst-plugins-good' 'clutter-gst' 'clutter-gtk' 'libcanberra' 'libgee' 'gnome-video-effects' 'librsvg' 'gnome-desktop')
+makedepends=('pkgconfig' 'intltool' 'gobject-introspection' 'itstool' 'vala' 'nautilus-sendto')
+optdepends=('nautilus-sendto: Send snapshots'
+ 'frei0r-plugins: More camera effects')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/projects/cheese/"
+install=cheese.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('2db101cd16ce41764eb2f676c1bed94e58e4a89141785b95ff088b60bcf6abef')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/cheese/cheese.install b/testing/cheese/cheese.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/testing/cheese/cheese.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/clutter-gst/PKGBUILD b/testing/clutter-gst/PKGBUILD
new file mode 100644
index 000000000..3fe2197ba
--- /dev/null
+++ b/testing/clutter-gst/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169268 2012-10-18 19:29:21Z jgc $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=clutter-gst
+pkgver=1.9.92
+pkgrel=1
+pkgdesc="GStreamer bindings for clutter"
+arch=('i686' 'x86_64')
+url="http://www.clutter-project.org/"
+license=('LGPL')
+depends=('clutter' 'gst-plugins-base-libs' 'libxdamage')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('5c09dce218f711a44bd4d741e2dd10ffc47e7fcd7b0cf514ca0e92b825c76c45')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/clutter-gtk/PKGBUILD b/testing/clutter-gtk/PKGBUILD
new file mode 100644
index 000000000..d0d1059da
--- /dev/null
+++ b/testing/clutter-gtk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169267 2012-10-18 19:29:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=clutter-gtk
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="GTK clutter widget"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter' 'gtk3')
+makedepends=('gobject-introspection')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('d51c4bb6a6ad0a337976766383f97a1c905a37bd77b3dbf484a7314130d97b6e')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/clutter/PKGBUILD b/testing/clutter/PKGBUILD
new file mode 100644
index 000000000..8aa993d60
--- /dev/null
+++ b/testing/clutter/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169269 2012-10-18 19:29:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=clutter
+pkgver=1.12.2
+pkgrel=1
+pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('cogl' 'mesa' 'json-glib' 'atk' 'libxi')
+makedepends=('gobject-introspection' 'mesa')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('27a8c4495099ea33de39c2d9a911a2c9e00ffa4dcc8f94fafedbcc752c0ddf13')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --enable-introspection
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/colord-gtk/PKGBUILD b/testing/colord-gtk/PKGBUILD
new file mode 100644
index 000000000..b7d6d028c
--- /dev/null
+++ b/testing/colord-gtk/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169266 2012-10-18 19:29:14Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=colord-gtk
+pkgver=0.1.23
+pkgrel=1
+pkgdesc="GTK integration for libcolord"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/software/colord"
+license=('GPL2')
+depends=('lcms2' 'gtk3' 'colord')
+makedepends=('intltool' 'gobject-introspection' 'vala' 'gtk-doc')
+source=($url/releases/$pkgname-$pkgver.tar.xz)
+options=('!libtool')
+sha1sums=('71fd56b34ba91ddf76c1ac394c2a31fa5e24770c')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc --libexecdir=/usr/lib/colord \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/colord/PKGBUILD b/testing/colord/PKGBUILD
new file mode 100644
index 000000000..b92249dca
--- /dev/null
+++ b/testing/colord/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 169265 2012-10-18 19:29:11Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=colord
+pkgver=0.1.23
+pkgrel=1
+pkgdesc="Color daemon"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/software/colord"
+license=('GPL2')
+depends=('lcms2' 'libgusb' 'polkit' 'sane' 'shared-color-profiles' 'sqlite' 'udev')
+makedepends=('intltool' 'gobject-introspection' 'vala' 'docbook2x')
+source=($url/releases/$pkgname-$pkgver.tar.xz)
+options=('!libtool')
+sha1sums=('08019c86f89b1675e4e155772cc555ed748f319e')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # put udev files in /usr/lib
+ sed -i "/slashlibdir=/s#/lib#/usr/lib#" configure
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc --libexecdir=/usr/lib/colord \
+ --localstatedir=/var --disable-static \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install \
+ bashcompletiondir=/usr/share/bash-completion/completions
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/dconf/PKGBUILD b/testing/dconf/PKGBUILD
new file mode 100644
index 000000000..0bf1ed1c7
--- /dev/null
+++ b/testing/dconf/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169264 2012-10-18 19:29:07Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=dconf
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="A low-level configuration system."
+arch=(i686 x86_64)
+url="http://live.gnome.org/dconf"
+license=('LGPL2.1')
+depends=('glib2' 'gtk-update-icon-cache')
+makedepends=('vala' 'gtk3' 'intltool' 'docbook-xsl')
+optdepends=('gtk3: for dconf-editor')
+install=dconf.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('9ae848bf25c3de0fb8c0157679630ddf39be1c10ed2f3beb2b8f0165d768da33')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/dconf
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make completiondir=/usr/share/bash-completion/completions DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/dconf/dconf.install b/testing/dconf/dconf.install
new file mode 100644
index 000000000..75d713d64
--- /dev/null
+++ b/testing/dconf/dconf.install
@@ -0,0 +1,13 @@
+post_install() {
+ gio-querymodules /usr/lib/gio/modules
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade(){
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/devhelp/PKGBUILD b/testing/devhelp/PKGBUILD
new file mode 100644
index 000000000..d5b880feb
--- /dev/null
+++ b/testing/devhelp/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 169263 2012-10-18 19:29:04Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=devhelp
+pkgver=3.6.0
+pkgrel=2
+pkgdesc="API documentation browser for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://live.gnome.org/devhelp/"
+depends=('gconf' 'webkitgtk3' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'python2')
+options=('!libtool' '!emptydirs')
+install=devhelp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('bf0576d5d70496367ccb22be53be620bbfe341bd491c1d725cfb59d566769fe1')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-webkit2
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain devhelp ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/testing/devhelp/devhelp.install b/testing/devhelp/devhelp.install
new file mode 100644
index 000000000..4db5f6e5c
--- /dev/null
+++ b/testing/devhelp/devhelp.install
@@ -0,0 +1,22 @@
+pkgname=devhelp
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/testing/empathy/PKGBUILD b/testing/empathy/PKGBUILD
new file mode 100644
index 000000000..3c814c345
--- /dev/null
+++ b/testing/empathy/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 169262 2012-10-18 19:29:01Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=empathy
+pkgver=3.6.0.2
+pkgrel=1
+pkgdesc="A GNOME instant messaging client using the Telepathy framework."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Empathy"
+license=('GPL2')
+depends=('clutter-gst' 'clutter-gtk' 'folks' 'gcr' 'iso-codes' 'libcanberra' 'libpulse' 'webkitgtk3' 'telepathy-farstream' 'telepathy-glib' 'telepathy-logger' 'telepathy-mission-control')
+makedepends=('intltool' 'itstool' 'docbook-xsl' 'nautilus-sendto')
+optdepends=('telepathy-gabble: XMPP/Jabber support'
+ 'telepathy-idle: IRC support'
+ 'telepathy-salut: Link-local XMPP support'
+ 'telepathy-rakia: SIP support'
+ 'telepathy-haze: libpurple support'
+ 'nautilus-sendto: Send files from nautilus')
+options=('!libtool')
+groups=('gnome-extra')
+install=empathy.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('3c27db67236249e60ee0439d6a1098729939731ce597b724a058c8ce2eb659f9')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/empathy \
+ --disable-static \
+ --disable-schemas-compile \
+ --enable-gst-1.0=yes
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/empathy/empathy.install b/testing/empathy/empathy.install
new file mode 100644
index 000000000..f8d2dfb1f
--- /dev/null
+++ b/testing/empathy/empathy.install
@@ -0,0 +1,16 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ echo "To use Empathy you need to install at least one Telepathy connection manager."
+}
+
+post_upgrade() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_remove() {
+ post_upgrade
+}
diff --git a/testing/eog-plugins/PKGBUILD b/testing/eog-plugins/PKGBUILD
new file mode 100644
index 000000000..3b9071fd2
--- /dev/null
+++ b/testing/eog-plugins/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169261 2012-10-18 19:28:57Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=eog-plugins
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Plugins for Eye of Gnome"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/"
+license=('GPL2')
+depends=('eog' 'libchamplain' 'libgdata')
+makedepends=('intltool')
+install=eog-plugins.install
+options=('!libtool')
+groups=(gnome-extra)
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('0270ae05f6cdd9c73472323370c4779f1148c77f3f8890c89fb8488cf83051ac')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/eog-plugins/eog-plugins.install b/testing/eog-plugins/eog-plugins.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/testing/eog-plugins/eog-plugins.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/eog/PKGBUILD b/testing/eog/PKGBUILD
new file mode 100644
index 000000000..eed12259c
--- /dev/null
+++ b/testing/eog/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169260 2012-10-18 19:28:54Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=eog
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Eye of Gnome: An image viewing and cataloging program"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-desktop' 'libexif' 'lcms2' 'desktop-file-utils' 'exempi' 'libpeas' 'librsvg' 'gnome-icon-theme' 'dconf')
+makedepends=('gtk-doc' 'intltool' 'itstool')
+install=eog.install
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('4442ec61b0c5092c686ccd13038359eb50e48ee49176a588b8ea04072c19bd57')
+
+build() {
+ cd "$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # remove it from Xfce menu that ships its own thingy
+ echo "NotShowIn=XFCE" >> $pkgdir/usr/share/applications/eog.desktop
+}
diff --git a/testing/eog/eog.install b/testing/eog/eog.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/testing/eog/eog.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/epiphany-extensions/PKGBUILD b/testing/epiphany-extensions/PKGBUILD
new file mode 100644
index 000000000..3dc63bab9
--- /dev/null
+++ b/testing/epiphany-extensions/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169258 2012-10-18 19:28:46Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany-extensions
+pkgver=3.6.0
+pkgrel=1
+url="http://www.gnome.org/projects/epiphany/"
+pkgdesc="Various extentions for the Epiphany web browser"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('epiphany' 'opensp' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=epiphany-extensions.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('3a1cc21b44a7b00cfe055b87c23f20f16c9fbd2b5a30380338885a5ae0847f7a')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/epiphany-extensions/epiphany-extensions.install b/testing/epiphany-extensions/epiphany-extensions.install
new file mode 100644
index 000000000..c0ed9a0d7
--- /dev/null
+++ b/testing/epiphany-extensions/epiphany-extensions.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/epiphany/PKGBUILD b/testing/epiphany/PKGBUILD
new file mode 100644
index 000000000..e44998d06
--- /dev/null
+++ b/testing/epiphany/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169259 2012-10-18 19:28:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany
+pkgver=3.6.1
+pkgrel=1
+install=epiphany.install
+pkgdesc="A GNOME web browser based on the WebKit rendering engine."
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup-gnome' 'libnotify' 'gsettings-desktop-schemas' 'webkitgtk3' 'nss' 'iso-codes' 'dconf' 'gobject-introspection' 'desktop-file-utils'
+ 'hicolor-icon-theme' 'gcr' 'gnome-desktop')
+makedepends=('intltool' 'gnome-doc-utils' 'startup-notification')
+options=('!libtool' '!emptydirs')
+groups=('gnome')
+url="http://www.gnome.org/projects/epiphany/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1b4e33e02f7653489be9c49d182be84da13348b4ad3cb4c09c643898586a6008')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/epiphany/epiphany.install b/testing/epiphany/epiphany.install
new file mode 100644
index 000000000..8b17fa3d4
--- /dev/null
+++ b/testing/epiphany/epiphany.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/evince/PKGBUILD b/testing/evince/PKGBUILD
new file mode 100644
index 000000000..504b698f1
--- /dev/null
+++ b/testing/evince/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 169257 2012-10-18 19:28:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evince
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Simply a document viewer"
+url="http://projects.gnome.org/evince/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk3' 'libgxps' 'libspectre' 'gsfonts' 'poppler-glib' 'djvulibre' 'gnome-icon-theme' 't1lib' 'libgnome-keyring' 'desktop-file-utils' 'dconf' 'gsettings-desktop-schemas')
+makedepends=('itstool' 'nautilus' 'texlive-bin' 'intltool' 'gobject-introspection' 'docbook-xsl')
+optdepends=('texlive-bin: DVI support')
+groups=('gnome-extra')
+install=evince.install
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('8dfa7b9c2f0b910d06b1612ff445d3f3050c44d25f2e78718966374d30ab83f2')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/evince \
+ --disable-static --enable-nautilus \
+ --enable-pdf --enable-tiff \
+ --enable-djvu --enable-dvi \
+ --enable-t1lib --enable-comics \
+ --disable-scrollkeeper --disable-schemas-compile \
+ --enable-introspection
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/evince/evince.install b/testing/evince/evince.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/testing/evince/evince.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/evolution-data-server/PKGBUILD b/testing/evolution-data-server/PKGBUILD
new file mode 100644
index 000000000..45fee9741
--- /dev/null
+++ b/testing/evolution-data-server/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169256 2012-10-18 19:28:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-data-server
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Centralized access to appointments and contacts"
+arch=('i686' 'x86_64')
+depends=('gnome-online-accounts' 'nss' 'krb5' 'libgweather' 'libical' 'db' 'libgdata')
+makedepends=('intltool' 'gperf' 'gobject-introspection' 'vala')
+options=('!libtool')
+install=$pkgname.install
+url="http://www.gnome.org"
+license=('GPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('637fcb6a83601af2968ca0b600958da8b0f25444224edc5fae41dea995924150')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-openldap=yes \
+ --libexecdir=/usr/lib/evolution-data-server \
+ --with-krb5=/usr --with-libdb=/usr \
+ --enable-vala-bindings
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/evolution-data-server/evolution-data-server.install b/testing/evolution-data-server/evolution-data-server.install
new file mode 100644
index 000000000..29a359805
--- /dev/null
+++ b/testing/evolution-data-server/evolution-data-server.install
@@ -0,0 +1,11 @@
+post_install () {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade () {
+ post_install
+}
+
+post_remove () {
+ post_install
+}
diff --git a/testing/evolution-ews/PKGBUILD b/testing/evolution-ews/PKGBUILD
new file mode 100644
index 000000000..de2a41619
--- /dev/null
+++ b/testing/evolution-ews/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169254 2012-10-18 19:28:32Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=evolution-ews
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="MS Exchange integration through Exchange Web Services"
+arch=('i686' 'x86_64')
+license=('LGPL2.1')
+url="http://www.gnome.org"
+depends=('evolution-data-server' 'gtkhtml4' 'gnome-desktop')
+makedepends=('intltool' 'evolution')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('a1d40971f47bfd947349f48a86f8a5ec7252db41b9b0d19204b4e28f2408a96a')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/evolution --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/evolution/PKGBUILD b/testing/evolution/PKGBUILD
new file mode 100644
index 000000000..f08bcae4d
--- /dev/null
+++ b/testing/evolution/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 169255 2012-10-18 19:28:35Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Manage your email, contacts and schedule"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-desktop' 'evolution-data-server' 'gtkhtml4' 'libcanberra' 'gstreamer0.10' 'libpst' 'libytnef' 'desktop-file-utils' 'hicolor-icon-theme' 'dconf')
+makedepends=('intltool' 'itstool' 'docbook-xsl' 'networkmanager')
+optdepends=('bogofilter: possible junk filter plugin'
+ 'spamassassin: possible junk filter plugin')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=evolution.install
+url=http://www.gnome.org/projects/evolution/
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('6163ef56a22ca7c605a89d774851c9988d7840a4dc5c73c546308e5380cfe7b4')
+
+build() {
+ cd $pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --enable-nss=yes \
+ --with-openldap=yes \
+ --enable-smime=yes \
+ --with-krb5=/usr \
+ --disable-schemas-compile
+
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/evolution/evolution.install b/testing/evolution/evolution.install
new file mode 100644
index 000000000..67eca41f0
--- /dev/null
+++ b/testing/evolution/evolution.install
@@ -0,0 +1,19 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/evolution.schemas ]; then
+ gconfpkg --uninstall evolution
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/farstream/PKGBUILD b/testing/farstream/PKGBUILD
new file mode 100644
index 000000000..de76e2a49
--- /dev/null
+++ b/testing/farstream/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169253 2012-10-18 19:28:28Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=farstream
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework"
+arch=(i686 x86_64)
+url="http://www.freedesktop.org/wiki/Software/Farstream"
+license=('LGPL2.1')
+depends=('gst-plugins-base-libs' 'libnice')
+makedepends=('gobject-introspection')
+optdepends=('gst-plugins-good' 'gst-plugins-bad')
+conflicts=('farsight2')
+replaces=('farsight2')
+options=(!libtool)
+source=(http://freedesktop.org/software/$pkgname/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('479c42adf5cc606abcb47d58ed542414')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --with-package-name='Arch Linux farstream package' \
+ --with-package-origin='http://archlinux.org' \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/folks/PKGBUILD b/testing/folks/PKGBUILD
new file mode 100644
index 000000000..c4099d927
--- /dev/null
+++ b/testing/folks/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169251 2012-10-18 19:28:21Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=folks
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="Library to aggregates people into metacontacts"
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org/wiki/Folks"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgee' 'libxml2' 'evolution-data-server' 'libsocialweb' 'libzeitgeist')
+makedepends=('gobject-introspection' 'intltool')
+install=folks.install
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('8c56c7594dd502ef5877e93181136e41f4ea03de4971372a7a04e7f1492eed9d')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/folks/folks.install b/testing/folks/folks.install
new file mode 100644
index 000000000..c19349f72
--- /dev/null
+++ b/testing/folks/folks.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gcalctool/PKGBUILD b/testing/gcalctool/PKGBUILD
new file mode 100644
index 000000000..0634cb9fe
--- /dev/null
+++ b/testing/gcalctool/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169250 2012-10-18 19:28:17Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gcalctool
+pkgver=6.6.1
+pkgrel=1
+pkgdesc="GNOME Scientific calculator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk3' 'dconf')
+makedepends=('intltool' 'yelp-tools')
+groups=('gnome-extra')
+options=(!emptydirs)
+url="http://www.gnome.org"
+install=gcalctool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver::3}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('bc08a583f13f239a2b731f3478afa1077957b51563dd35f9ee303cb5f9b29016')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-compile \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gcalctool/gcalctool.install b/testing/gcalctool/gcalctool.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/testing/gcalctool/gcalctool.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/gcr/PKGBUILD b/testing/gcr/PKGBUILD
new file mode 100644
index 000000000..ef21fdbbd
--- /dev/null
+++ b/testing/gcr/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169249 2012-10-18 19:28:14Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gcr
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="A library for bits of crypto UI and parsing"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('dconf' 'desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'libgcrypt')
+makedepends=('intltool' 'gobject-introspection')
+options=(!libtool)
+install=gcr.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('d95f8b70bdcc371c2712ba166e124114bd99bbde1173c0cbe7a8462f146a9927')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --libexec=/usr/lib/gcr \
+ --disable-static \
+ --disable-update-mime \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gcr/gcr.install b/testing/gcr/gcr.install
new file mode 100644
index 000000000..8677671c4
--- /dev/null
+++ b/testing/gcr/gcr.install
@@ -0,0 +1,14 @@
+post_install () {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-mime-database /usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade () {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gdk-pixbuf2/PKGBUILD b/testing/gdk-pixbuf2/PKGBUILD
index 15840ad30..e3dc9a299 100644
--- a/testing/gdk-pixbuf2/PKGBUILD
+++ b/testing/gdk-pixbuf2/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 165188 2012-08-12 19:25:57Z ibiru $
+# $Id: PKGBUILD 169248 2012-10-18 19:28:10Z jgc $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gdk-pixbuf2
-pkgver=2.26.2
+pkgver=2.26.4
pkgrel=1
pkgdesc="An image loading library"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ makedepends=('gtk-doc' 'gobject-introspection')
options=('!libtool')
install=gdk-pixbuf2.install
source=(http://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-$pkgver.tar.xz)
-sha256sums=('3555521050e30e2fa090bfe650910c14649b6ab0acb35a5a7eaf90fe694f1403')
+sha256sums=('a91458645f078debf204fef8bb06b30f356fcb5d48f65395132a5dba2b3510be')
build() {
cd gdk-pixbuf-$pkgver
diff --git a/testing/gdl/PKGBUILD b/testing/gdl/PKGBUILD
new file mode 100644
index 000000000..efbed0c95
--- /dev/null
+++ b/testing/gdl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169247 2012-10-18 19:28:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdl
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME Docking Library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org/"
+depends=('gtk3')
+makedepends=('gtk-doc' 'intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('32a04fc96667e2f7ca1e3c853b996da3e62f4811b2a90d62cb2081f68aeecac3')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gdm/PKGBUILD b/testing/gdm/PKGBUILD
index 71b0db89f..a7f614765 100644
--- a/testing/gdm/PKGBUILD
+++ b/testing/gdm/PKGBUILD
@@ -1,69 +1,58 @@
-# $Id: PKGBUILD 165393 2012-08-17 23:22:35Z heftig $
+# $Id: PKGBUILD 169280 2012-10-18 19:45:52Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=gdm
-pkgver=3.4.1
-pkgrel=3
-pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
-arch=('i686' 'x86_64')
-license=('GPL')
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Gnome Display Manager"
+arch=(i686 x86_64)
+license=(GPL)
url="http://www.gnome.org"
-backup=('etc/pam.d/gdm-autologin' 'etc/pam.d/gdm-fingerprint' 'etc/pam.d/gdm' 'etc/pam.d/gdm-password'
- 'etc/pam.d/gdm-smartcard' 'etc/pam.d/gdm-welcome' 'etc/gdm/custom.conf')
-groups=('gnome-extra')
+backup=(etc/pam.d/gdm-autologin etc/pam.d/gdm-fingerprint etc/pam.d/gdm-launch-environment
+ etc/pam.d/gdm-password etc/pam.d/gdm-smartcard etc/gdm/custom.conf)
+groups=(gnome)
options=('!libtool')
-depends=('libcanberra' 'libxklavier' 'gnome-session' 'gnome-settings-daemon' 'metacity' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb' 'nss')
-makedepends=('intltool' 'gnome-doc-utils' 'xorg-server' 'gobject-introspection')
+depends=(libcanberra gnome-session gnome-settings-daemon metacity upower accountsservice systemd
+ xorg-xrdb nss polkit-gnome)
+makedepends=(itstool intltool gnome-doc-utils xorg-server gobject-introspection)
optdepends=('gnome-shell: new login interface'
'fprintd: fingerprint authentication')
install=gdm.install
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
- fix_external_program_directories.patch
- gdm-vt-allocation-hack.patch
- gdm gdm.service
- gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam)
-sha256sums=('6292968dff5fc89877b5e1aaa3c7d1484dd3ed2d4f388e935841d053439be665'
- 'f68600ccf80f475deb417d58ab3306c4a1ba4622688e2901996c8549c85a9ee6'
- '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
- '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550'
- 'b7b91c682ff4c7cfb2d395c65abeca9dad8c0997b399dcf22abdf481c3e61349'
- '6a8b286d1ffa04150b3cc401f64e6ddec778c7b65f5bfc831031b64345d7e6b2'
- 'dd50f5bd28807a16c5ebe89fc868b7c47fa571138498e879f2b1c9da1ad6eb84'
- 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
- '1a1e9b3f26de4eb9f45d1e9a0b5d0db902ca734461ba46b4bb620b0298bb98aa'
- '844d5fae0df59241d34099a3d458289bd95707b2aae976627c663904294043d8'
- '39bf3824cc505043dc3136356da16dab9df9f369f1077435a324be2ac16cf834')
+ fix_external_program_directories.patch)
+sha256sums=('aff69dde55e11b540145002c95cf966cd16376910283b385520431ced10c5031'
+ 'a878680734e35c1d66252cbcfe678c3961b5ff0fa16302f8796a5e7e65ffe4a2')
build() {
cd "$pkgname-$pkgver"
patch -Np1 -i "$srcdir/fix_external_program_directories.patch"
- patch -Np1 -i "$srcdir/gdm-vt-allocation-hack.patch"
- ./configure --prefix=/usr --sysconfdir=/etc \
- --libexecdir=/usr/lib/gdm \
- --localstatedir=/var \
- --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \
- --disable-scrollkeeper \
- --disable-static \
- --without-tcp-wrappers \
- --disable-schemas-compile \
- --with-systemd=no
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gdm \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-schemas-compile \
+ --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \
+ --with-check-accelerated-directory=/usr/lib/gnome-session \
+ --with-authentication-agent-directory=/usr/lib/polkit-gnome \
+ --without-tcp-wrappers \
+ --without-console-kit \
+ --with-systemd \
+ --with-default-pam-config=exherbo
+
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
- make
+
+ make -j1 # race condition building gdm-client.c, does not wait for gdm-client-glue.h
}
package() {
cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
- for i in gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam;do
- install -m644 "$srcdir/$i" "$pkgdir/etc/pam.d/${i%.pam}"
- done
-
- install -Dm755 "$srcdir/gdm" "$pkgdir/etc/rc.d/gdm"
- install -Dm644 "$srcdir/gdm.service" "$pkgdir/usr/lib/systemd/system/gdm.service"
-
chmod 1770 "$pkgdir/var/log/gdm"
chmod 700 "$pkgdir/var/lib/gdm/.config/dconf"
- rm -rf "$pkgdir/var/run" "$pkgdir/var/gdm"
+ rm -r "$pkgdir/var/run" "$pkgdir/var/gdm"
}
diff --git a/testing/gdm/fix_external_program_directories.patch b/testing/gdm/fix_external_program_directories.patch
index b3a0f0cf6..5e51a776f 100644
--- a/testing/gdm/fix_external_program_directories.patch
+++ b/testing/gdm/fix_external_program_directories.patch
@@ -1,25 +1,3 @@
-diff -Nur gdm-3.3.92.orig/daemon/gdm-server.c gdm-3.3.92/daemon/gdm-server.c
---- gdm-3.3.92.orig/daemon/gdm-server.c 2012-03-19 22:30:05.311490006 +0000
-+++ gdm-3.3.92/daemon/gdm-server.c 2012-03-19 22:30:17.004732251 +0000
-@@ -139,7 +139,7 @@
- g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
-
- error = NULL;
-- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
-+ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
- server->priv->display_name);
-
- g_debug ("GdmServer: Running helper %s", command);
-diff -Nur gdm-3.3.92.orig/data/gdm-shell.session.in gdm-3.3.92/data/gdm-shell.session.in
---- gdm-3.3.92.orig/data/gdm-shell.session.in 2012-03-19 22:30:05.311490006 +0000
-+++ gdm-3.3.92/data/gdm-shell.session.in 2012-03-19 22:30:17.004732251 +0000
-@@ -1,5 +1,5 @@
- [GNOME Session]
- Name=Display Manager
- RequiredComponents=gnome-shell;gnome-settings-daemon;
--IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated'
-+IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/lib/gnome-session/gnome-session-check-accelerated'
- FallbackSession=gdm-fallback
diff -Nur gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c
--- gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:05.304823391 +0000
+++ gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:17.004732251 +0000
diff --git a/testing/gedit/PKGBUILD b/testing/gedit/PKGBUILD
new file mode 100644
index 000000000..62827d8bc
--- /dev/null
+++ b/testing/gedit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169246 2012-10-18 19:28:03Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gedit
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="A text editor for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtksourceview3' 'gsettings-desktop-schemas' 'libpeas' 'enchant' 'iso-codes' 'libsm' 'desktop-file-utils' 'python2-gobject' 'dconf')
+makedepends=('yelp-tools' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gedit.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('75fb18e32a7571900dda8cbd3a71212bded1ef714d3aa9f9513296eea02779a4')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --disable-updater --disable-schemas-compile \
+ --enable-python
+ make
+}
+
+package(){
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gedit/gedit.install b/testing/gedit/gedit.install
new file mode 100644
index 000000000..606920688
--- /dev/null
+++ b/testing/gedit/gedit.install
@@ -0,0 +1,18 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/gedit.schemas ]; then
+ gconfpkg --uninstall gedit
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/ghex/PKGBUILD b/testing/ghex/PKGBUILD
new file mode 100644
index 000000000..adb0e8281
--- /dev/null
+++ b/testing/ghex/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169245 2012-10-18 19:28:00Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=ghex
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="A simple binary editor for the Gnome desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/Ghex"
+depends=('gtk3' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=ghex.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('ef74fc5a5a67736391b3fb7fb14f588f3a4441b1aa48d1a6eaa1adb6c0427544')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/ghex/ghex.install b/testing/ghex/ghex.install
new file mode 100644
index 000000000..084bc82ee
--- /dev/null
+++ b/testing/ghex/ghex.install
@@ -0,0 +1,20 @@
+pkgname=ghex
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/$pkgname.schemas ]; then
+ gconfpkg --uninstall $pkgname
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/gjs/PKGBUILD b/testing/gjs/PKGBUILD
new file mode 100644
index 000000000..c08ea4dc7
--- /dev/null
+++ b/testing/gjs/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169244 2012-10-18 19:27:55Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gjs
+pkgver=1.34.0
+pkgrel=1
+pkgdesc="Javascript Bindings for GNOME"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Gjs"
+license=('GPL')
+depends=('cairo' 'dbus-glib' 'gobject-introspection' 'js')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('3d62c717a0522a36c6faa1eb021872255e3cd285a72786afe23b7cca2e3084cb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|python|python2|' scripts/make-tests
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/glade/PKGBUILD b/testing/glade/PKGBUILD
new file mode 100644
index 000000000..280591b87
--- /dev/null
+++ b/testing/glade/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169243 2012-10-18 19:27:52Z jgc $
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=glade
+pkgver=3.14.1
+pkgrel=1
+pkgdesc="User interface builder for GTK+ and GNOME."
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk3' 'libxml2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'python2' 'gtk-doc' 'gobject-introspection' 'python2-gobject' 'itstool' 'docbook-xsl')
+optdepends=('python2: Python widgets support')
+options=('!libtool')
+url="http://glade.gnome.org/"
+install=glade.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('8484b62c7a4579ea3e5d98200b397a1baf0b621c0b0c70242ee1dbbe449eae20')
+
+build() {
+ cd "$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/glade/glade.install b/testing/glade/glade.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/testing/glade/glade.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/glib-networking/PKGBUILD b/testing/glib-networking/PKGBUILD
new file mode 100644
index 000000000..7e6f403ac
--- /dev/null
+++ b/testing/glib-networking/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169240 2012-10-18 19:27:39Z jgc $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=glib-networking
+pkgver=2.34.0
+pkgrel=1
+pkgdesc="Network-related giomodules for glib"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libproxy' 'gnutls' 'ca-certificates' 'gsettings-desktop-schemas')
+makedepends=('intltool')
+options=('!libtool')
+install=glib-networking.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('c56eb4161671bff9568f3a92a88531ca01217eb7ee8514bb6255730400f877f1')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/glib-networking --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/glib-networking/glib-networking.install b/testing/glib-networking/glib-networking.install
new file mode 100644
index 000000000..8214e1968
--- /dev/null
+++ b/testing/glib-networking/glib-networking.install
@@ -0,0 +1,11 @@
+post_install() {
+ gio-querymodules /usr/lib/gio/modules
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/glib2/PKGBUILD b/testing/glib2/PKGBUILD
index 8bc1a779a..bc162b826 100644
--- a/testing/glib2/PKGBUILD
+++ b/testing/glib2/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 163756 2012-07-19 08:05:05Z heftig $
+# $Id: PKGBUILD 169242 2012-10-18 19:27:48Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=glib2
-pkgver=2.32.4
+pkgver=2.34.1
pkgrel=1
pkgdesc="Common C routines used by GTK+ and other libs"
url="http://www.gtk.org/"
@@ -13,12 +13,8 @@ makedepends=('pkg-config' 'python2')
optdepends=('python2: for gdbus-codegen')
options=('!libtool' '!docs' '!emptydirs')
source=(http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz
- glib2.sh
- glib2.csh
revert-warn-glib-compile-schemas.patch)
-sha256sums=('a5d742a4fda22fb6975a8c0cfcd2499dd1c809b8afd4ef709bda4d11b167fae2'
- '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
- '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3'
+sha256sums=('6e84dc9d84b104725b34d255421ed7ac3629e49f437d37addde5ce3891c2e2f1'
'049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97')
build() {
@@ -35,10 +31,6 @@ package() {
cd glib-$pkgver
make completiondir=/usr/share/bash-completion/completions DESTDIR="$pkgdir" install
- install -d "$pkgdir/etc/profile.d"
- install -m755 "$srcdir/glib2.sh" "$pkgdir/etc/profile.d/"
- install -m755 "$srcdir/glib2.csh" "$pkgdir/etc/profile.d/"
-
for _i in "$pkgdir/usr/share/bash-completion/completions/"*; do
chmod -x "$_i"
done
diff --git a/testing/glibmm/PKGBUILD b/testing/glibmm/PKGBUILD
new file mode 100644
index 000000000..29e0ffaac
--- /dev/null
+++ b/testing/glibmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 169241 2012-10-18 19:27:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=glibmm
+pkgname=('glibmm' 'glibmm-docs')
+pkgver=2.33.14
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2' 'libsigc++2.0' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+options=('!libtool')
+url="http://www.gtkmm.org/"
+sha256sums=('5bf9e9338a8e50cf46e637abed9c62cba41cccecb6610f5bba2830d9afc4e6ed')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package_glibmm() {
+ pkgdesc="Glib-- (glibmm) is a C++ interface for glib"
+ depends=('glib2' 'libsigc++2.0')
+ cd "$pkgbase-$pkgver"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="$pkgdir" install
+}
+
+package_glibmm-docs() {
+ pkgdesc="Developer documentation for glibmm"
+ cd "$pkgbase-$pkgver/docs"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules b/testing/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
new file mode 100644
index 000000000..d7d9650dc
--- /dev/null
+++ b/testing/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
@@ -0,0 +1,7 @@
+# Get access to /dev/rfkill for users
+# See https://bugzilla.redhat.com/show_bug.cgi?id=514798
+#
+# Simplified by Kay Sievers
+# https://bugzilla.redhat.com/show_bug.cgi?id=733326
+
+KERNEL=="rfkill", SUBSYSTEM=="misc", TAG+="uaccess"
diff --git a/testing/gnome-bluetooth/PKGBUILD b/testing/gnome-bluetooth/PKGBUILD
new file mode 100644
index 000000000..5191ec4e8
--- /dev/null
+++ b/testing/gnome-bluetooth/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 169238 2012-10-18 19:27:33Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-bluetooth
+pkgver=3.6.0
+pkgrel=2
+pkgdesc="The GNOME Bluetooth Subsystem"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/GnomeBluetooth"
+license=('GPL' 'LGPL')
+depends=('gtk3' 'hicolor-icon-theme' 'gvfs-obexftp' 'obexd-client' 'dconf' 'libnotify')
+makedepends=('intltool' 'nautilus-sendto' 'gobject-introspection' 'itstool' 'docbook-xsl')
+options=('!libtool' '!emptydirs')
+install=gnome-bluetooth.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ 61-gnome-bluetooth-rfkill.rules)
+sha256sums=('021d9711d76e6d195812b1804ff39b5936ce978c25f900bc92e4bffd7045d306'
+ '8dd2d3637f380a89e72f65e6c8021e994ccbdc645f1a1b1dbffe74ac9f061f53')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ install -m644 -D ../61-gnome-bluetooth-rfkill.rules \
+ "$pkgdir/usr/lib/udev/rules.d//61-gnome-bluetooth-rfkill.rules"
+}
diff --git a/testing/gnome-bluetooth/gnome-bluetooth.install b/testing/gnome-bluetooth/gnome-bluetooth.install
new file mode 100644
index 000000000..8c991877f
--- /dev/null
+++ b/testing/gnome-bluetooth/gnome-bluetooth.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/gnome-color-manager/PKGBUILD b/testing/gnome-color-manager/PKGBUILD
index 1c33c0e9e..937b0f330 100644
--- a/testing/gnome-color-manager/PKGBUILD
+++ b/testing/gnome-color-manager/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 164677 2012-08-02 15:21:28Z andrea $
+# $Id: PKGBUILD 169237 2012-10-18 19:27:30Z jgc $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgname=gnome-color-manager
-pkgver=3.4.2
-pkgrel=2
+pkgver=3.6.0
+pkgrel=1
pkgdesc="Color profile manager for the GNOME desktop"
arch=(i686 x86_64)
url="http://projects.gnome.org/gnome-color-manager/"
license=(GPL2)
depends=('libcanberra' 'vte3' 'exiv2' 'hicolor-icon-theme' 'desktop-file-utils' 'clutter-gtk'
- 'mash' 'shared-color-profiles' 'shared-color-targets' 'gnome-desktop')
-makedepends=('intltool' 'gtk-doc')
+ 'mash' 'shared-color-profiles' 'shared-color-targets' 'gnome-desktop' 'colord-gtk')
+makedepends=('intltool' 'yelp-tools')
install=gnome-color-manager.install
options=('!libtool' '!emptydirs')
groups=('gnome-extra')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('ad69ac0ac242be0ad5b7966e0c2978a9a1440e52ee816993e4a8eb2cf6f0c922')
+sha256sums=('c4e9d63c53061c65c4d1bcdd14952dd01aed7332c2e36d34f4a243a9e5097ec9')
build(){
cd $pkgname-$pkgver
diff --git a/testing/gnome-contacts/PKGBUILD b/testing/gnome-contacts/PKGBUILD
new file mode 100644
index 000000000..096682447
--- /dev/null
+++ b/testing/gnome-contacts/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169235 2012-10-18 19:27:23Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-contacts
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Contacts Manager for GNOME"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+groups=(gnome-extra)
+depends=('gtk3' 'folks' 'libnotify' 'gnome-desktop' 'dconf' 'gnome-online-accounts' 'libgee' 'telepathy-glib' 'cheese')
+makedepends=('intltool' 'vala')
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('2cc93827511cd28cc854ce4c36924a437350f7d61b6b0b4140a32833be683f95')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/gnome-contacts
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-contacts/gnome-contacts.install b/testing/gnome-contacts/gnome-contacts.install
new file mode 100644
index 000000000..c19349f72
--- /dev/null
+++ b/testing/gnome-contacts/gnome-contacts.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-control-center/PKGBUILD b/testing/gnome-control-center/PKGBUILD
new file mode 100644
index 000000000..13e45bd3b
--- /dev/null
+++ b/testing/gnome-control-center/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 169234 2012-10-18 19:27:19Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-control-center
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="The Control Center for GNOME"
+arch=('i686' 'x86_64')
+depends=('accountsservice' 'cups-pk-helper' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus'
+ 'gnome-online-accounts' 'gnome-settings-daemon' 'gsettings-desktop-schemas' 'gtk3'
+ 'libgtop' 'libsocialweb' 'network-manager-applet' 'sound-theme-freedesktop' 'upower' 'libpwquality' 'libsystemd')
+optdepends=('mesa-demos: provides glxinfo for graphics information'
+ 'gnome-color-manager: for color management tasks')
+makedepends=('gnome-doc-utils' 'intltool' 'docbook-xsl')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-control-center.install
+license=('GPL')
+options=('!libtool' '!emptydirs')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('b6e9530deac15408fee43c9c7a21200456bebf947e677856cd7345a79e2923d5')
+
+build() {
+ cd $pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-systemd --with-libsocialweb \
+ --disable-update-mimedb \
+ --without-cheese
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=656229
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-control-center/gnome-control-center.install b/testing/gnome-control-center/gnome-control-center.install
new file mode 100644
index 000000000..079e0fa34
--- /dev/null
+++ b/testing/gnome-control-center/gnome-control-center.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/gnome-desktop/PKGBUILD b/testing/gnome-desktop/PKGBUILD
new file mode 100644
index 000000000..1bb318788
--- /dev/null
+++ b/testing/gnome-desktop/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169233 2012-10-18 19:27:16Z jgc $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-desktop
+pkgver=3.6.1
+pkgrel=1
+epoch=1
+pkgdesc="Library with common API for various GNOME modules"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('gsettings-desktop-schemas' 'gtk3' 'xkeyboard-config')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection' 'itstool')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver::3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1c4954d143d696263888ea2061b2854f8c4094d33dfe51a39fb41f0a8051a174')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-desktop \
+ --with-gnome-distributor="Arch Linux"
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-dictionary/PKGBUILD b/testing/gnome-dictionary/PKGBUILD
new file mode 100644
index 000000000..1e81d2ca6
--- /dev/null
+++ b/testing/gnome-dictionary/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169232 2012-10-18 19:27:12Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gnome-dictionary
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Look up words in dictionary sources"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('GPL2')
+depends=('dconf' 'gtk3')
+makedepends=('intltool' 'itstool' 'docbook-xsl')
+install=$pkgname.install
+options=(!libtool)
+groups=('gnome-extra')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1ad03f629bbfe4360fc6d8dd2d7cb4a03e24579068bdd79a25ff5fc5fbff6fa9')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-dictionary/gnome-dictionary.install b/testing/gnome-dictionary/gnome-dictionary.install
new file mode 100644
index 000000000..c25dff2d3
--- /dev/null
+++ b/testing/gnome-dictionary/gnome-dictionary.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-disk-utility/PKGBUILD b/testing/gnome-disk-utility/PKGBUILD
new file mode 100644
index 000000000..d8d3b1868
--- /dev/null
+++ b/testing/gnome-disk-utility/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169231 2012-10-18 19:27:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Silvio Knizek (killermoehre)
+
+pkgname=gnome-disk-utility
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Disk Management Utility for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+depends=('gtk3' 'udisks2' 'hicolor-icon-theme' 'libsecret' 'libpwquality' 'desktop-file-utils')
+makedepends=('intltool' 'docbook-xsl')
+options=('!libtool' '!emptydirs')
+install=gnome-disk-utility.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('e848bd0a5787a654e3421c904718c587e1a953fc1b43a21401ca65b329988c32')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-disk-utility/gnome-disk-utility.install b/testing/gnome-disk-utility/gnome-disk-utility.install
new file mode 100644
index 000000000..8b17fa3d4
--- /dev/null
+++ b/testing/gnome-disk-utility/gnome-disk-utility.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-documents/PKGBUILD b/testing/gnome-documents/PKGBUILD
new file mode 100644
index 000000000..21416f4af
--- /dev/null
+++ b/testing/gnome-documents/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 169230 2012-10-18 19:27:05Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=gnome-documents
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Documents Manager for GNOME"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL')
+groups=('gnome-extra')
+depends=('clutter-gtk' 'evince' 'gjs' 'gtk3' 'gnome-desktop' 'gnome-online-accounts' 'libgdata'
+ 'tracker' 'libzapojit')
+makedepends=('intltool')
+optdepends=('unoconv: Support for Libreoffice document types')
+options=('!libtool')
+install=gnome-documents.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('a4a5c525cba047a6c8f712f8a0d73fc26dc0445d4c8278c10ecbeac4efd342e2')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-documents
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-documents/gnome-documents.install b/testing/gnome-documents/gnome-documents.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/testing/gnome-documents/gnome-documents.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-font-viewer/PKGBUILD b/testing/gnome-font-viewer/PKGBUILD
new file mode 100644
index 000000000..6eef0419d
--- /dev/null
+++ b/testing/gnome-font-viewer/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169229 2012-10-18 19:27:00Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=gnome-font-viewer
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME font viewer and thumbnailer"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtk3' 'desktop-file-utils' 'gnome-desktop')
+makedepends=('intltool')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-font-viewer.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('3625c9f70ef227cd6cdaa1fea4990d87ba12ba3681e105cf5db731edec208e74')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-font-viewer/gnome-font-viewer.install b/testing/gnome-font-viewer/gnome-font-viewer.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/testing/gnome-font-viewer/gnome-font-viewer.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-games/PKGBUILD b/testing/gnome-games/PKGBUILD
index f10dee80a..b235215d0 100644
--- a/testing/gnome-games/PKGBUILD
+++ b/testing/gnome-games/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 168505 2012-10-13 00:06:42Z heftig $
+# $Id: PKGBUILD 169228 2012-10-18 19:26:55Z jgc $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=gnome-games
-pkgver=3.4.2
-pkgrel=2
+pkgver=3.6.1
+pkgrel=1
pkgdesc="Some Games for GNOME"
arch=('i686' 'x86_64')
license=('GPL')
@@ -14,8 +14,8 @@ options=('!emptydirs' '!libtool')
install=gnome-games.install
url="http://www.gnome.org"
groups=('gnome-extra')
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('25676285fad33a39da7fc26b5b1dc751c7981ae778b8fe82e8b7c0a367e5117c')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('f016068350ca2a4deceeac0374d5372610b1da07e2c4b356470f3401e6e2a43d')
build() {
cd $pkgname-$pkgver
diff --git a/testing/gnome-games/gnome-games.install b/testing/gnome-games/gnome-games.install
index aaa36a896..2fad5db0b 100644
--- a/testing/gnome-games/gnome-games.install
+++ b/testing/gnome-games/gnome-games.install
@@ -1,39 +1,47 @@
-_scores=(glines.Large.scores
+_scores=(glines.Small.scores
glines.Medium.scores
- glines.Small.scores
- gnibbles.1.0.scores
- gnibbles.1.1.scores
- gnibbles.2.0.scores
- gnibbles.2.1.scores
- gnibbles.3.0.scores
- gnibbles.3.1.scores
+ glines.Large.scores
gnibbles.4.0.scores
+ gnibbles.3.0.scores
+ gnibbles.2.0.scores
+ gnibbles.1.0.scores
gnibbles.4.1.scores
- gnobots2.classic_robots-safe.scores
- gnobots2.classic_robots-super-safe.scores
- gnobots2.classic_robots.scores
- gnobots2.nightmare-safe.scores
- gnobots2.nightmare-super-safe.scores
- gnobots2.nightmare.scores
+ gnibbles.3.1.scores
+ gnibbles.2.1.scores
+ gnibbles.1.1.scores
+ gnobots2.robots2.scores
gnobots2.robots2-safe.scores
gnobots2.robots2-super-safe.scores
- gnobots2.robots2.scores
+ gnobots2.robots2_easy.scores
gnobots2.robots2_easy-safe.scores
gnobots2.robots2_easy-super-safe.scores
- gnobots2.robots2_easy.scores
+ gnobots2.classic_robots.scores
+ gnobots2.classic_robots-safe.scores
+ gnobots2.classic_robots-super-safe.scores
+ gnobots2.robots_with_safe_teleport.scores
gnobots2.robots_with_safe_teleport-safe.scores
gnobots2.robots_with_safe_teleport-super-safe.scores
- gnobots2.robots_with_safe_teleport.scores
- gnomine.Custom.scores
- gnomine.Large.scores
- gnomine.Medium.scores
+ gnobots2.nightmare.scores
+ gnobots2.nightmare-safe.scores
+ gnobots2.nightmare-super-safe.scores
gnomine.Small.scores
+ gnomine.Medium.scores
+ gnomine.Large.scores
+ gnomine.Custom.scores
gnotravex.2x2.scores
gnotravex.3x3.scores
gnotravex.4x4.scores
gnotravex.5x5.scores
gnotravex.6x6.scores
gnotski.1.scores
+ gnotski.2.scores
+ gnotski.3.scores
+ gnotski.4.scores
+ gnotski.5.scores
+ gnotski.6.scores
+ gnotski.7.scores
+ gnotski.8.scores
+ gnotski.9.scores
gnotski.10.scores
gnotski.11.scores
gnotski.12.scores
@@ -44,7 +52,6 @@ _scores=(glines.Large.scores
gnotski.17.scores
gnotski.18.scores
gnotski.19.scores
- gnotski.2.scores
gnotski.20.scores
gnotski.21.scores
gnotski.22.scores
@@ -55,7 +62,6 @@ _scores=(glines.Large.scores
gnotski.27.scores
gnotski.28.scores
gnotski.29.scores
- gnotski.3.scores
gnotski.30.scores
gnotski.31.scores
gnotski.32.scores
@@ -64,27 +70,21 @@ _scores=(glines.Large.scores
gnotski.35.scores
gnotski.36.scores
gnotski.37.scores
- gnotski.4.scores
- gnotski.5.scores
- gnotski.6.scores
- gnotski.7.scores
- gnotski.8.scores
- gnotski.9.scores
- gtali.Colors.scores
gtali.Regular.scores
- mahjongg.bridges.scores
- mahjongg.cloud.scores
- mahjongg.confounding.scores
- mahjongg.difficult.scores
- mahjongg.dragon.scores
- mahjongg.easy.scores
- mahjongg.pyramid.scores
- mahjongg.tictactoe.scores
- mahjongg.ziggurat.scores
- swell-foop.Large.scores
- swell-foop.Medium.scores
- swell-foop.Small.scores
- quadrapassel.scores)
+ gtali.Colors.scores
+ gnome-mahjongg.easy.scores
+ gnome-mahjongg.difficult.scores
+ gnome-mahjongg.confounding.scores
+ gnome-mahjongg.pyramid.scores
+ gnome-mahjongg.tictactoe.scores
+ gnome-mahjongg.cloud.scores
+ gnome-mahjongg.dragon.scores
+ gnome-mahjongg.bridges.scores
+ gnome-mahjongg.ziggurat.scores
+ quadrapassel.scores
+ swell-foop.small.scores
+ swell-foop.normal.scores
+ swell-foop.large.scores)
post_install() {
glib-compile-schemas usr/share/glib-2.0/schemas
diff --git a/testing/gnome-keyring/PKGBUILD b/testing/gnome-keyring/PKGBUILD
new file mode 100644
index 000000000..6adece782
--- /dev/null
+++ b/testing/gnome-keyring/PKGBUILD
@@ -0,0 +1,32 @@
+#$Id: PKGBUILD 169225 2012-10-18 19:26:46Z jgc $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gnome-keyring
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="GNOME Password Management daemon"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk3' 'gcr' 'libcap-ng')
+makedepends=('intltool')
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-keyring.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('0c3a2ccc1744ce681fa7eb8d5e3e94d1712e932068a36ce7076222eb82b25aa5')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring \
+ --with-pam-dir=/usr/lib/security --with-root-certs=/etc/ssl/certs \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-keyring/gnome-keyring.install b/testing/gnome-keyring/gnome-keyring.install
new file mode 100644
index 000000000..c351377a2
--- /dev/null
+++ b/testing/gnome-keyring/gnome-keyring.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ setcap cap_ipc_lock=ep /usr/bin/gnome-keyring-daemon
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
diff --git a/testing/gnome-menus/PKGBUILD b/testing/gnome-menus/PKGBUILD
new file mode 100644
index 000000000..57da0011c
--- /dev/null
+++ b/testing/gnome-menus/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 169224 2012-10-18 19:26:43Z jgc $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-menus
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME menu specifications"
+arch=('i686' 'x86_64')
+depends=('glib2' 'python2-gobject')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+license=('GPL' 'LGPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ menus.patch)
+sha256sums=('523ac10729e28f9acde4785e61dcb895828fd89e39b38b68f6c14ec815805a0b'
+ 'df2779777906b038fa911dc745534564ede9524a64ab368e2f6f8e38d54e7acc')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ patch -Np0 -i "$srcdir/menus.patch"
+
+ PYTHON=/usr/bin/python2 ./configure \
+ --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package(){
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ sed -i "1s|#!/usr/bin/env python$|&2|" \
+ "$pkgdir/usr/lib/python2.7/site-packages/GMenuSimpleEditor/config.py"
+}
diff --git a/testing/gnome-menus/menus.patch b/testing/gnome-menus/menus.patch
new file mode 100644
index 000000000..bf73e86cd
--- /dev/null
+++ b/testing/gnome-menus/menus.patch
@@ -0,0 +1,25 @@
+--- layout/applications.menu 2005-06-28 10:16:39.000000000 +0200
++++ layout/applications.menu 2005-09-12 23:21:20.000000000 +0200
+@@ -7,7 +7,6 @@
+ <Directory>Applications.directory</Directory>
+
+ <!-- Scan legacy dirs first, as later items take priority -->
+- <KDELegacyDirs/>
+ <LegacyDir>/etc/X11/applnk</LegacyDir>
+ <LegacyDir>/usr/share/gnome/apps</LegacyDir>
+
+@@ -18,6 +17,14 @@
+ <!-- Read in overrides and child menus from applications-merged/ -->
+ <DefaultMergeDirs/>
+
++ <!-- Archlinux submenu -->
++ <Menu>
++ <Name>Archlinux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu> <!-- End Archlinux -->
+ <!-- Accessories submenu -->
+ <Menu>
+ <Name>Accessories</Name>
diff --git a/testing/gnome-nettool/PKGBUILD b/testing/gnome-nettool/PKGBUILD
new file mode 100644
index 000000000..0d56224e0
--- /dev/null
+++ b/testing/gnome-nettool/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169223 2012-10-18 19:26:38Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+
+pkgname=gnome-nettool
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="A Collection of GNOME3 Networking Tools."
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtk3' 'libgtop' 'dnsutils' 'iputils' 'dconf' 'whois' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'intltool' 'nmap' 'net-tools')
+optdepends=('nmap: Port scanning'
+ 'net-tools: Network statistics')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+install=gnome-nettool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('9888202f1c13f98fd26b417468e6f2345f885557f3a98fb365eeea52d792bf79')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-nettool/gnome-nettool.install b/testing/gnome-nettool/gnome-nettool.install
new file mode 100644
index 000000000..e5dfaf4a5
--- /dev/null
+++ b/testing/gnome-nettool/gnome-nettool.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-online-accounts/PKGBUILD b/testing/gnome-online-accounts/PKGBUILD
new file mode 100644
index 000000000..2a31df997
--- /dev/null
+++ b/testing/gnome-online-accounts/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169222 2012-10-18 19:26:35Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-online-accounts
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME service to access online accounts"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL')
+depends=('webkitgtk3' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme' 'libsecret')
+makedepends=('intltool' 'libxslt' 'gobject-introspection' 'docbook-xsl')
+options=(!libtool)
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('2a88772873935b1c23e8e6b7a2333d8cfb225755aba22e0977129f13351028f7')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --libexec=/usr/lib/gnome-online-accounts
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-online-accounts/gnome-online-accounts.install b/testing/gnome-online-accounts/gnome-online-accounts.install
new file mode 100644
index 000000000..525ecff63
--- /dev/null
+++ b/testing/gnome-online-accounts/gnome-online-accounts.install
@@ -0,0 +1,11 @@
+post_install () {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-panel/PKGBUILD b/testing/gnome-panel/PKGBUILD
new file mode 100644
index 000000000..f5b8ab969
--- /dev/null
+++ b/testing/gnome-panel/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 169281 2012-10-18 19:45:55Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-panel
+pkgver=3.6.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="The GNOME Panel"
+url="http://www.gnome.org"
+depends=('gnome-menus' 'gnome-desktop' 'evolution-data-server' 'librsvg' 'libwnck3' 'libsm' 'dconf'
+ 'gconf' 'telepathy-glib')
+makedepends=('yelp-tools' 'intltool' 'gobject-introspection' 'networkmanager' 'libcanberra')
+install=gnome-panel.install
+groups=('gnome')
+provides=("gnome-panel-bonobo=${pkgver}")
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('6a8058df6263af35b0e430514f7e16d1b4df095365242d39e170cfc451a328b6')
+
+build() {
+ cd "$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-panel \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain gnome-panel-3.0 "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
+}
diff --git a/testing/gnome-panel/gnome-panel.install b/testing/gnome-panel/gnome-panel.install
new file mode 100644
index 000000000..0f9324937
--- /dev/null
+++ b/testing/gnome-panel/gnome-panel.install
@@ -0,0 +1,24 @@
+pkgname=gnome-panel
+
+post_install() {
+ gconfpkg --install $pkgname
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ gconfpkg --uninstall $pkgname
+}
+
+post_remove() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
diff --git a/testing/gnome-phone-manager/PKGBUILD b/testing/gnome-phone-manager/PKGBUILD
new file mode 100644
index 000000000..2775223dd
--- /dev/null
+++ b/testing/gnome-phone-manager/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 169299 2012-10-18 22:31:09Z jgc $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-phone-manager
+pkgver=0.68
+pkgrel=3
+pkgdesc="Control your mobile phone from your GNOME desktop."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/PhoneManager"
+license=('GPL')
+depends=('evolution-data-server' 'gnokii' 'gnome-bluetooth' 'gnome-icon-theme' 'libcanberra' 'gconf')
+makedepends=('intltool')
+options=('!emptydirs' '!libtool')
+install=gnome-phone-manager.install
+source=(ftp://ftp.archlinux.org/other/gnome-phone-manager/gnome-phone-manager-0.68-git20121019.tar.xz
+ gnome-phone-manager-0.68-eds.patch)
+sha256sums=('885dfa80989c633a5ae8b118c9b7c903e18e44f0e9fc89e6a9bae05da87c9b15'
+ '98d5c2d3034081eebbaa0dac85f53dcc40c8970114f5711aff8c37bab2931a66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../gnome-phone-manager-0.68-eds.patch
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-phone-manager "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/testing/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch b/testing/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch
new file mode 100644
index 000000000..2a36de13a
--- /dev/null
+++ b/testing/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch
@@ -0,0 +1,386 @@
+diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.c b/cut-n-paste/e-contact-entry/e-contact-entry.c
+index dc8e2e3..d95e5b9 100644
+--- a/cut-n-paste/e-contact-entry/e-contact-entry.c
++++ b/cut-n-paste/e-contact-entry/e-contact-entry.c
+@@ -38,11 +38,6 @@
+ #include <glib.h>
+ #include <glib/gi18n.h>
+
+-#include <libedataserver/e-source.h>
+-#include <libebook/e-book.h>
+-#include <libebook/e-book-view.h>
+-#include <libebook/e-contact.h>
+-
+ #include "e-contact-entry.h"
+ #include "econtactentry-marshal.h"
+
+@@ -59,7 +54,7 @@ static int signals[LAST_SIGNAL] = { 0 };
+ /* Properties */
+ enum {
+ PROP_0, /* TODO: why? */
+- PROP_SOURCE_LIST,
++ PROP_REGISTRY,
+ PROP_COMPLETE_LENGTH,
+ };
+
+@@ -70,7 +65,7 @@ enum {
+ struct EContactEntryPriv {
+ GtkEntryCompletion *completion;
+ GtkListStore *store;
+- ESourceList *source_list;
++ ESourceRegistry *registry;
+ /* A list of EntryLookup structs we are searching */
+ GList *lookup_entries;
+ /* Number of characters to start searching at */
+@@ -227,7 +222,7 @@ e_contact_entry_display_func (EContact *contact)
+ emails = e_contact_get (contact, E_CONTACT_EMAIL);
+ for (l = emails; l != NULL; l = l->next) {
+ item = g_new0 (EContactEntyItem, 1);
+- item->identifier = item->identifier = g_strdup (l->data);
++ item->identifier = g_strdup (l->data);
+ item->display_string = g_strdup_printf ("%s <%s>", (char*)e_contact_get_const (contact, E_CONTACT_NAME_OR_ORG), item->identifier);
+
+ items = g_list_prepend (items, item);
+@@ -276,22 +271,13 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data)
+ return;
+
+ photo = e_contact_get (contact, E_CONTACT_PHOTO);
+-#ifndef HAVE_ECONTACTPHOTOTYPE
+- if (photo) {
+-#else
+ if (photo && photo->type == E_CONTACT_PHOTO_TYPE_INLINED) {
+-#endif
+ GdkPixbufLoader *loader;
+
+ loader = gdk_pixbuf_loader_new ();
+
+-#ifndef HAVE_ECONTACTPHOTOTYPE
+- if (gdk_pixbuf_loader_write (loader, (guchar *)photo->data,
+- photo->length, NULL))
+-#else
+ if (gdk_pixbuf_loader_write (loader, (guchar *)photo->data.inlined.data,
+ photo->data.inlined.length, NULL))
+-#endif
+ pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
+
+ if (pixbuf) {
+@@ -339,16 +325,15 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data)
+ * The query on the EBookView has completed.
+ */
+ static void
+-view_completed_cb (EBookView *book_view, EBookViewStatus status, gpointer user_data)
++view_completed_cb (EBookView *book_view, EBookViewStatus status, const gchar *message, gpointer user_data)
+ {
+ EntryLookup *lookup;
+ g_return_if_fail (user_data != NULL);
+- /* TODO: handle status != OK */
+- g_return_if_fail (status == E_BOOK_ERROR_OK);
+ g_return_if_fail (book_view != NULL);
+
+ lookup = (EntryLookup*)user_data;
+ g_object_unref (lookup->bookview);
++ lookup->bookview = NULL;
+ }
+
+ /**
+@@ -373,8 +358,8 @@ bookview_cb (EBook *book, EBookStatus status, EBookView *book_view, gpointer clo
+ lookup->bookview = book_view;
+ g_object_add_weak_pointer ((GObject*)book_view, (gpointer*)&lookup->bookview);
+
+- g_signal_connect (book_view, "contacts_added", (GCallback)view_contacts_added_cb, lookup);
+- g_signal_connect (book_view, "sequence_complete", (GCallback)view_completed_cb, lookup);
++ g_signal_connect (book_view, "contacts-added", (GCallback)view_contacts_added_cb, lookup);
++ g_signal_connect (book_view, "view_complete", (GCallback)view_completed_cb, lookup);
+
+ e_book_view_start (book_view);
+ }
+@@ -396,6 +381,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data)
+ if (lookup->bookview) {
+ e_book_view_stop (lookup->bookview);
+ g_object_unref (lookup->bookview);
++ lookup->bookview = NULL;
+ }
+ }
+
+@@ -410,7 +396,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data)
+ if (!lookup->open)
+ continue;
+
+- if (e_book_async_get_book_view (lookup->book, query, NULL, 11, (EBookBookViewCallback)bookview_cb, lookup) != 0) {
++ if (e_book_async_get_book_view (lookup->book, query, NULL, MAX_ENTRIES, (EBookBookViewCallback)bookview_cb, lookup) == FALSE) {
+ g_signal_emit (entry, signals[ERROR], 0, _("Cannot create searchable view."));
+ }
+ }
+@@ -458,11 +444,12 @@ book_opened_cb (EBook *book, EBookStatus status, gpointer data)
+ */
+
+ void
+-e_contact_entry_set_source_list (EContactEntry *entry,
+- ESourceList *source_list)
++e_contact_entry_set_registry (EContactEntry *entry,
++ ESourceRegistry *registry)
+ {
++ GList *list, *link;
++ const gchar *extension_name;
+ GError *error = NULL;
+- GSList *list, *l;
+
+ g_return_if_fail (E_IS_CONTACT_ENTRY (entry));
+
+@@ -471,58 +458,48 @@ e_contact_entry_set_source_list (EContactEntry *entry,
+ g_list_foreach (entry->priv->lookup_entries, (GFunc)lookup_entry_free, NULL);
+ g_list_free (entry->priv->lookup_entries);
+ }
+- if (entry->priv->source_list) {
+- g_object_unref (entry->priv->source_list);
++ if (entry->priv->registry) {
++ g_object_unref (entry->priv->registry);
+ }
+
+ /* If we have no new sources, disable and return here */
+- if (source_list == NULL) {
++ if (registry == NULL) {
+ g_signal_emit (entry, signals[STATE_CHANGE], 0, FALSE);
+- entry->priv->source_list = NULL;
++ entry->priv->registry = NULL;
+ entry->priv->lookup_entries = NULL;
+ return;
+ }
+
+- entry->priv->source_list = source_list;
+- /* So that the list isn't going away underneath us */
+- g_object_ref (entry->priv->source_list);
++ entry->priv->registry = registry;
++ /* So that the registry isn't going away underneath us */
++ g_object_ref (entry->priv->registry);
+
+- /* That gets us a list of ESourceGroup */
+- list = e_source_list_peek_groups (source_list);
+ entry->priv->lookup_entries = NULL;
+
+- for (l = list; l != NULL; l = l->next) {
+- ESourceGroup *group = l->data;
+- GSList *sources = NULL, *m;
+- /* That should give us a list of ESource */
+- sources = e_source_group_peek_sources (group);
+- for (m = sources; m != NULL; m = m->next) {
+- ESource *source = m->data;
+- ESource *s = e_source_copy (source);
+- EntryLookup *lookup;
+- char *uri;
++ extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK;
++ list = e_source_registry_list_sources (registry, extension_name);
+
+- uri = g_strdup_printf("%s/%s", e_source_group_peek_base_uri (group), e_source_peek_relative_uri (source));
+- e_source_set_absolute_uri (s, uri);
+- g_free (uri);
++ for (link = list; link != NULL; link = g_list_next (link)) {
++ ESource *source = E_SOURCE (link->data);
++ EntryLookup *lookup;
+
+- /* Now add those to the lookup entries list */
+- lookup = g_new0 (EntryLookup, 1);
+- lookup->entry = entry;
+- lookup->status = E_BOOK_ERROR_OK;
+- lookup->open = FALSE;
++ /* Now add those to the lookup entries list */
++ lookup = g_new0 (EntryLookup, 1);
++ lookup->entry = entry;
++ lookup->status = E_BOOK_ERROR_OK;
++ lookup->open = FALSE;
+
+- if ((lookup->book = e_book_new (s, &error)) == NULL) {
+- /* TODO handle this better, fire the error signal I guess */
++ if ((lookup->book = e_book_new (source, &error)) == NULL) {
++ /* TODO handle this better, fire the error signal I guess */
++ if (error) {
+ g_warning ("%s", error->message);
+- g_error_free (error);
+- g_free (lookup);
+- } else {
+- entry->priv->lookup_entries = g_list_append (entry->priv->lookup_entries, lookup);
+- e_book_async_open(lookup->book, TRUE, (EBookCallback)book_opened_cb, lookup);
++ g_error_free (error);
++ error = NULL;
+ }
+-
+- g_object_unref (s);
++ g_free (lookup);
++ } else {
++ entry->priv->lookup_entries = g_list_append (entry->priv->lookup_entries, lookup);
++ e_book_async_open(lookup->book, TRUE, (EBookCallback)book_opened_cb, lookup);
+ }
+ }
+
+@@ -530,12 +507,12 @@ e_contact_entry_set_source_list (EContactEntry *entry,
+ g_signal_emit (entry, signals[STATE_CHANGE], 0, FALSE);
+ }
+
+-ESourceList *
+-e_contact_entry_get_source_list (EContactEntry *entry)
++ESourceRegistry *
++e_contact_entry_get_registry (EContactEntry *entry)
+ {
+ g_return_val_if_fail (E_IS_CONTACT_ENTRY (entry), NULL);
+
+- return entry->priv->source_list;
++ return entry->priv->registry;
+ }
+
+ void
+@@ -601,8 +578,8 @@ e_contact_entry_set_property (GObject *object, guint property_id, const GValue *
+ entry = E_CONTACT_ENTRY (object);
+
+ switch (property_id) {
+- case PROP_SOURCE_LIST:
+- e_contact_entry_set_source_list (entry, g_value_get_object (value));
++ case PROP_REGISTRY:
++ e_contact_entry_set_registry (entry, g_value_get_object (value));
+ break;
+ case PROP_COMPLETE_LENGTH:
+ e_contact_entry_set_complete_length (entry, g_value_get_int (value));
+@@ -620,8 +597,8 @@ e_contact_entry_get_property (GObject *object, guint property_id, GValue *value,
+ entry = E_CONTACT_ENTRY (object);
+
+ switch (property_id) {
+- case PROP_SOURCE_LIST:
+- g_value_set_object (value, e_contact_entry_get_source_list (entry));
++ case PROP_REGISTRY:
++ g_value_set_object (value, e_contact_entry_get_registry (entry));
+ break;
+ case PROP_COMPLETE_LENGTH:
+ g_value_set_int (value, e_contact_entry_get_complete_length (entry));
+@@ -644,7 +621,7 @@ e_contact_entry_finalize (GObject *object)
+ g_list_free (entry->priv->lookup_entries);
+ g_object_unref (entry->priv->completion);
+ g_object_unref (entry->priv->store);
+- g_object_unref (entry->priv->source_list);
++ g_object_unref (entry->priv->registry);
+
+ if (entry->priv->display_destroy) {
+ entry->priv->display_destroy (entry->priv->display_func);
+@@ -657,7 +634,7 @@ e_contact_entry_finalize (GObject *object)
+ static void
+ reset_search_fields (EContactEntry *entry)
+ {
+- EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_EMAIL, E_CONTACT_NICKNAME, E_CONTACT_ORG, 0 };
++ EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_EMAIL, E_CONTACT_NICKNAME, 0 };
+
+ g_free (entry->priv->search_fields);
+ entry->priv->search_fields = g_new0 (EContactField, G_N_ELEMENTS (fields));
+@@ -716,9 +693,9 @@ e_contact_entry_class_init (EContactEntryClass *klass)
+ object_class->finalize = e_contact_entry_finalize;
+
+ /* Properties */
+- g_object_class_install_property (object_class, PROP_SOURCE_LIST,
+- g_param_spec_object ("source-list", "Source List", "The source list to search for contacts.",
+- E_TYPE_SOURCE_LIST, G_PARAM_READWRITE));
++ g_object_class_install_property (object_class, PROP_REGISTRY,
++ g_param_spec_object ("registry", "Registry", "Data source registry.",
++ E_TYPE_SOURCE_REGISTRY, G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_COMPLETE_LENGTH,
+ g_param_spec_int ("complete-length", "Complete length", "Number of characters to start a search on.",
+@@ -771,6 +748,7 @@ lookup_entry_free (EntryLookup *lookup)
+ if (lookup->bookview) {
+ g_warning("EBookView still around");
+ g_object_unref (lookup->bookview);
++ lookup->bookview = NULL;
+ }
+ if (lookup->book) {
+ g_object_unref (lookup->book);
+diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.h b/cut-n-paste/e-contact-entry/e-contact-entry.h
+index bf6b39b..6fedef7 100644
+--- a/cut-n-paste/e-contact-entry/e-contact-entry.h
++++ b/cut-n-paste/e-contact-entry/e-contact-entry.h
+@@ -23,10 +23,8 @@
+ #ifndef CONTACT_ENTRY_H
+ #define CONTACT_ENTRY_H
+
+-#include <libedataserver/e-source-group.h>
+-#include <libedataserver/e-source-list.h>
+-#include <libebook/e-contact.h>
+ #include <gtk/gtk.h>
++#include <libebook/libebook.h>
+
+ G_BEGIN_DECLS
+
+@@ -71,8 +69,8 @@ GType e_contact_entry_get_type (void);
+
+ GtkWidget *e_contact_entry_new (void);
+
+-void e_contact_entry_set_source_list (EContactEntry *entry, ESourceList *list);
+-ESourceList *e_contact_entry_get_source_list (EContactEntry *entry);
++void e_contact_entry_set_registry (EContactEntry *entry, ESourceRegistry *registry);
++ESourceRegistry *e_contact_entry_get_registry (EContactEntry *entry);
+
+ void e_contact_entry_set_complete_length(EContactEntry *entry, int length);
+ int e_contact_entry_get_complete_length(EContactEntry *entry);
+diff --git a/libgsm/phonemgr-utils.c b/libgsm/phonemgr-utils.c
+index 4e62e10..baef34f 100644
+--- a/libgsm/phonemgr-utils.c
++++ b/libgsm/phonemgr-utils.c
+@@ -27,7 +27,7 @@
+ #include <glib.h>
+ #include <glib/gstdio.h>
+ #include <glib-object.h>
+-#include <libebook/e-contact.h>
++#include <libebook/libebook.h>
+ #include <gnokii.h>
+
+ #include <bluetooth/bluetooth.h>
+diff --git a/src/e-phone-entry.c b/src/e-phone-entry.c
+index 5d25622..38f4c2f 100644
+--- a/src/e-phone-entry.c
++++ b/src/e-phone-entry.c
+@@ -31,8 +31,7 @@
+
+ #include <gtk/gtk.h>
+ #include <string.h>
+-#include <libedataserver/e-source-list.h>
+-#include <libedataserverui/e-client-utils.h>
++#include <libedataserverui/libedataserverui.h>
+ #include "e-phone-entry.h"
+
+ #define CONTACT_FORMAT "%s (%s)"
+@@ -181,25 +180,25 @@ e_phone_entry_finalize (GObject *object)
+ }
+
+ static void
+-add_sources (EContactEntry *entry)
+-{
+- ESourceList *source_list;
+-
+- if (e_client_utils_get_sources (&source_list,
+- E_CLIENT_SOURCE_TYPE_CONTACTS,
+- NULL)) {
+- e_contact_entry_set_source_list (E_CONTACT_ENTRY (entry),
+- source_list);
+- g_object_unref (source_list);
+- }
+-}
+-
+-static void
+ e_phone_entry_init (EPhoneEntry *entry)
+ {
+ EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_NICKNAME, E_CONTACT_ORG, E_CONTACT_PHONE_MOBILE, 0 };
++ ESourceRegistry *registry;
++ GError *error = NULL;
++
++ /* XXX This call blocks while a D-Bus connection is made, possibly
++ * requiring activation. Might be better to create the registry
++ * in main(), pass it to ui_init(), and have e_phone_entry_new()
++ * take it as an argument. Calling this from main() means if it
++ * fails you can abort cleanly with a console error message. */
++ registry = e_source_registry_new_sync (NULL, &error);
++ if (registry == NULL) {
++ g_error ("%s: %s", G_STRFUNC, error->message);
++ g_assert_not_reached ();
++ }
++ e_contact_entry_set_registry (E_CONTACT_ENTRY (entry), registry);
++ g_object_unref (registry);
+
+- add_sources (E_CONTACT_ENTRY (entry));
+ e_contact_entry_set_search_fields (E_CONTACT_ENTRY (entry), (const EContactField *)fields);
+ e_contact_entry_set_display_func (E_CONTACT_ENTRY (entry), test_display_func, NULL, NULL);
+ g_signal_connect (G_OBJECT (entry), "contact_selected",
diff --git a/testing/gnome-phone-manager/gnome-phone-manager.install b/testing/gnome-phone-manager/gnome-phone-manager.install
new file mode 100644
index 000000000..91212fa2e
--- /dev/null
+++ b/testing/gnome-phone-manager/gnome-phone-manager.install
@@ -0,0 +1,17 @@
+pkgname=gnome-phone-manager
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/testing/gnome-power-manager/PKGBUILD b/testing/gnome-power-manager/PKGBUILD
new file mode 100644
index 000000000..c2cb1dd1e
--- /dev/null
+++ b/testing/gnome-power-manager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169221 2012-10-18 19:26:31Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-power-manager
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Power management tools."
+arch=(i686 x86_64)
+url="http://www.gnome.org/projects/gnome-power-manager/"
+license=('GPL')
+depends=('gtk3' 'upower' 'dconf' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=(!emptydirs)
+install=gnome-power-manager.install
+groups=(gnome-extra)
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('176023d51d544a888bcd07611f2c1adaedfe2e20796f3fb97fba59f6330851c6')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-power-manager \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-power-manager/gnome-power-manager.install b/testing/gnome-power-manager/gnome-power-manager.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/testing/gnome-power-manager/gnome-power-manager.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-screensaver/PKGBUILD b/testing/gnome-screensaver/PKGBUILD
new file mode 100644
index 000000000..558151417
--- /dev/null
+++ b/testing/gnome-screensaver/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 169220 2012-10-18 19:26:26Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-screensaver
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Screensaver designed to integrate well with the GNOME desktop."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/GnomeScreensaver"
+backup=(etc/pam.d/gnome-screensaver)
+depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop' 'gsettings-desktop-schemas' 'libsystemd')
+makedepends=('pkgconfig' 'intltool' 'libxss')
+groups=('gnome')
+options=(!emptydirs)
+install=gnome-screensaver.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ gnome-screensaver.pam)
+sha256sums=('f39b78d4f7fed748c7f0a31d694112fb907c6d3c4e63db22eb858df07e962cd0'
+ 'c19870c4f2d6e91ba0eea2603753a74e0c5c82ff5fa3cacb1198027a38d0a6cb')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-screensaver \
+ --localstatedir=/var \
+ --with-mit-ext --with-systemd
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ install -Dm644 ../gnome-screensaver.pam "$pkgdir/etc/pam.d/gnome-screensaver"
+}
diff --git a/testing/gnome-screensaver/gnome-screensaver.install b/testing/gnome-screensaver/gnome-screensaver.install
new file mode 100644
index 000000000..d1a42c6ce
--- /dev/null
+++ b/testing/gnome-screensaver/gnome-screensaver.install
@@ -0,0 +1,7 @@
+pkgname=gnome-screensaver
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/testing/gnome-screensaver/gnome-screensaver.pam b/testing/gnome-screensaver/gnome-screensaver.pam
new file mode 100644
index 000000000..453dae646
--- /dev/null
+++ b/testing/gnome-screensaver/gnome-screensaver.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+auth required pam_unix_auth.so nullok
+auth optional pam_gnome_keyring.so
diff --git a/testing/gnome-screenshot/PKGBUILD b/testing/gnome-screenshot/PKGBUILD
new file mode 100644
index 000000000..0d380fc0c
--- /dev/null
+++ b/testing/gnome-screenshot/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169219 2012-10-18 19:26:22Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-screenshot
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Take pictures of your screen"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('GPL2')
+depends=('dconf' 'gtk3' 'libcanberra')
+makedepends=('intltool')
+groups=('gnome-extra')
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('96626b86d0ebaacf420b68ddd846d5185dc90a58e5d86843799c2071255b7636')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-screenshot/gnome-screenshot.install b/testing/gnome-screenshot/gnome-screenshot.install
new file mode 100644
index 000000000..c25dff2d3
--- /dev/null
+++ b/testing/gnome-screenshot/gnome-screenshot.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-search-tool/PKGBUILD b/testing/gnome-search-tool/PKGBUILD
new file mode 100644
index 000000000..ca530ec6e
--- /dev/null
+++ b/testing/gnome-search-tool/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169218 2012-10-18 19:26:17Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-search-tool
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Utility to search for files"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('GPL2')
+depends=('gtk3' 'libsm')
+makedepends=('intltool' 'yelp-tools')
+install=$pkgname.install
+options=('!emptydirs')
+groups=('gnome-extra')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('a33000cd7d033be4ea50422f0f2cca611da5b79bd0f0875017f105a1bc177f42')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-search-tool/gnome-search-tool.install b/testing/gnome-search-tool/gnome-search-tool.install
new file mode 100644
index 000000000..b631b6a89
--- /dev/null
+++ b/testing/gnome-search-tool/gnome-search-tool.install
@@ -0,0 +1,16 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ (( $(vercmp $2 3.6.0) < 0 )) && gconfpkg --uninstall gnome-search-tool
+ return 0
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-session/PKGBUILD b/testing/gnome-session/PKGBUILD
new file mode 100644
index 000000000..38e396045
--- /dev/null
+++ b/testing/gnome-session/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 169217 2012-10-18 19:26:12Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=gnome-session
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="The GNOME Session Handler"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('libsystemd' 'dconf' 'gconf' 'gsettings-desktop-schemas' 'gtk3'
+ 'hicolor-icon-theme' 'json-glib' 'libgl' 'libsm' 'libxtst' 'polkit-gnome'
+ 'upower')
+makedepends=('intltool' 'mesa' 'xtrans')
+options=('!emptydirs')
+install=gnome-session.install
+url="http://www.gnome.org"
+groups=('gnome')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ gnome-session-3.3.1-llvmpipe.patch timeout.patch)
+sha256sums=('759c26230d8ac3f2d51344f5eaadce166819c4394acb733987e6d23fd42bddfb'
+ '59ea58012febe48a67dabd944dc638400637ad4d296d63b63b585f10eea4f85e'
+ '9eaf31857b41db417475c3b14adc11b10c8226ed76978cdf96dd648fa6e505fc')
+
+build() {
+ cd $pkgname-$pkgver
+
+ # Allow software rendering
+ patch -Np1 -i ../gnome-session-3.3.1-llvmpipe.patch
+
+ # Increase timeout, for slow machines
+ patch -Np1 -i ../timeout.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/gnome-session \
+ --disable-schemas-compile --enable-systemd
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-session/gnome-session-3.3.1-llvmpipe.patch b/testing/gnome-session/gnome-session-3.3.1-llvmpipe.patch
new file mode 100644
index 000000000..40da1c9b7
--- /dev/null
+++ b/testing/gnome-session/gnome-session-3.3.1-llvmpipe.patch
@@ -0,0 +1,9 @@
+diff -up gnome-session-3.3.1/data/hardware-compatibility.jx gnome-session-3.3.1/data/hardware-compatibility
+--- gnome-session-3.3.1/data/hardware-compatibility.jx 2011-10-21 10:35:39.000000000 -0400
++++ gnome-session-3.3.1/data/hardware-compatibility 2011-11-03 17:53:17.156407217 -0400
+@@ -20,4 +20,4 @@
+
+ # Gallium has softpipe and llvmpipe
+ -softpipe
+--llvmpipe
++#llvmpipe
diff --git a/testing/gnome-session/gnome-session.install b/testing/gnome-session/gnome-session.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/testing/gnome-session/gnome-session.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-session/timeout.patch b/testing/gnome-session/timeout.patch
new file mode 100644
index 000000000..a26b0dcf5
--- /dev/null
+++ b/testing/gnome-session/timeout.patch
@@ -0,0 +1,24 @@
+diff -u -r gnome-session-3.4.2/gnome-session/gsm-session-fill.c gnome-session-3.4.2-timeout/gnome-session/gsm-session-fill.c
+--- gnome-session-3.4.2/gnome-session/gsm-session-fill.c 2012-02-02 15:33:01.000000000 +0100
++++ gnome-session-3.4.2-timeout/gnome-session/gsm-session-fill.c 2012-06-10 02:39:46.184348462 +0200
+@@ -36,7 +36,7 @@
+ #define GSM_KEYFILE_DEFAULT_PROVIDER_PREFIX "DefaultProvider"
+
+ /* See https://bugzilla.gnome.org/show_bug.cgi?id=641992 for discussion */
+-#define GSM_RUNNABLE_HELPER_TIMEOUT 3000 /* ms */
++#define GSM_RUNNABLE_HELPER_TIMEOUT 10000 /* ms */
+
+ typedef void (*GsmFillHandleProvider) (const char *provides,
+ const char *default_provider,
+diff -u -r gnome-session-3.4.2/tools/gnome-session-check-accelerated.c gnome-session-3.4.2-timeout/tools/gnome-session-check-accelerated.c
+--- gnome-session-3.4.2/tools/gnome-session-check-accelerated.c 2011-03-22 21:31:43.000000000 +0100
++++ gnome-session-3.4.2-timeout/tools/gnome-session-check-accelerated.c 2012-06-10 02:42:08.013218006 +0200
+@@ -30,7 +30,7 @@
+ #include <X11/Xatom.h>
+
+ /* Wait up to this long for a running check to finish */
+-#define PROPERTY_CHANGE_TIMEOUT 5000
++#define PROPERTY_CHANGE_TIMEOUT 12000
+
+ /* Values used for the _GNOME_SESSION_ACCELERATED root window property */
+ #define NO_ACCEL 0
diff --git a/testing/gnome-settings-daemon/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch b/testing/gnome-settings-daemon/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
new file mode 100644
index 000000000..293a419df
--- /dev/null
+++ b/testing/gnome-settings-daemon/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
@@ -0,0 +1,1473 @@
+From 79ead5309fe21e77cfe58adc6a9340953c2d52f4 Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Fri, 21 Sep 2012 11:56:53 +0100
+Subject: [PATCH] power and media-keys: Use logind for suspending and
+ rebooting the system
+
+Use the new logind features to suspend and resume but making sure we opt out
+of logind handling the sleep and power keys, and also inhibiting for lid close
+auto-suspend if there is an external monitor connected.
+
+Also use a delay inihibit for logind so that we can do actions on suspend like
+blanking the screen using the screensaver and also poking the screensaver on
+resume.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=680689
+---
+ plugins/common/Makefile.am | 4 +-
+ plugins/common/gsd-power-helper.c | 203 --------
+ plugins/common/gsd-power-helper.h | 35 --
+ plugins/media-keys/gsd-media-keys-manager.c | 156 +++++--
+ plugins/power/gsd-power-manager.c | 699 +++++++++++++++++++---------
+ 5 files changed, 595 insertions(+), 502 deletions(-)
+ delete mode 100644 plugins/common/gsd-power-helper.c
+ delete mode 100644 plugins/common/gsd-power-helper.h
+
+diff --git a/plugins/common/Makefile.am b/plugins/common/Makefile.am
+index 7e50db4..b0e907c 100644
+--- a/plugins/common/Makefile.am
++++ b/plugins/common/Makefile.am
+@@ -6,9 +6,7 @@ libcommon_la_SOURCES = \
+ gsd-keygrab.c \
+ gsd-keygrab.h \
+ gsd-input-helper.c \
+- gsd-input-helper.h \
+- gsd-power-helper.c \
+- gsd-power-helper.h
++ gsd-input-helper.h
+
+ libcommon_la_CPPFLAGS = \
+ $(AM_CPPFLAGS)
+diff --git a/plugins/common/gsd-power-helper.c b/plugins/common/gsd-power-helper.c
+deleted file mode 100644
+index 27d0eda..0000000
+--- a/plugins/common/gsd-power-helper.c
++++ /dev/null
+@@ -1,203 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2012 Bastien Nocera <hadess@hadess.net>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+- *
+- */
+-
+-#include "config.h"
+-
+-#include "gsd-power-helper.h"
+-
+-#define SYSTEMD_DBUS_NAME "org.freedesktop.login1"
+-#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1"
+-#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager"
+-
+-#define CONSOLEKIT_DBUS_NAME "org.freedesktop.ConsoleKit"
+-#define CONSOLEKIT_DBUS_PATH_MANAGER "/org/freedesktop/ConsoleKit/Manager"
+-#define CONSOLEKIT_DBUS_INTERFACE_MANAGER "org.freedesktop.ConsoleKit.Manager"
+-
+-#ifdef HAVE_SYSTEMD
+-static void
+-systemd_stop (void)
+-{
+- GDBusConnection *bus;
+-
+- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+- g_dbus_connection_call (bus,
+- SYSTEMD_DBUS_NAME,
+- SYSTEMD_DBUS_PATH,
+- SYSTEMD_DBUS_INTERFACE,
+- "PowerOff",
+- g_variant_new ("(b)", FALSE),
+- NULL, 0, G_MAXINT, NULL, NULL, NULL);
+- g_object_unref (bus);
+-}
+-
+-static void
+-systemd_suspend (void)
+-{
+- GDBusConnection *bus;
+-
+- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+- g_dbus_connection_call (bus,
+- SYSTEMD_DBUS_NAME,
+- SYSTEMD_DBUS_PATH,
+- SYSTEMD_DBUS_INTERFACE,
+- "Suspend",
+- g_variant_new ("(b)", TRUE),
+- NULL, 0, G_MAXINT, NULL, NULL, NULL);
+- g_object_unref (bus);
+-}
+-
+-static void
+-systemd_hibernate (void)
+-{
+- GDBusConnection *bus;
+-
+- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+- g_dbus_connection_call (bus,
+- SYSTEMD_DBUS_NAME,
+- SYSTEMD_DBUS_PATH,
+- SYSTEMD_DBUS_INTERFACE,
+- "Hibernate",
+- g_variant_new ("(b)", TRUE),
+- NULL, 0, G_MAXINT, NULL, NULL, NULL);
+- g_object_unref (bus);
+-}
+-
+-#else /* HAVE_SYSTEMD */
+-
+-static void
+-consolekit_stop_cb (GObject *source_object,
+- GAsyncResult *res,
+- gpointer user_data)
+-{
+- GVariant *result;
+- GError *error = NULL;
+-
+- result = g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object),
+- res,
+- &error);
+- if (result == NULL) {
+- g_warning ("couldn't stop using ConsoleKit: %s",
+- error->message);
+- g_error_free (error);
+- } else {
+- g_variant_unref (result);
+- }
+-}
+-
+-static void
+-consolekit_stop (void)
+-{
+- GError *error = NULL;
+- GDBusProxy *proxy;
+-
+- /* power down the machine in a safe way */
+- proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+- NULL,
+- CONSOLEKIT_DBUS_NAME,
+- CONSOLEKIT_DBUS_PATH_MANAGER,
+- CONSOLEKIT_DBUS_INTERFACE_MANAGER,
+- NULL, &error);
+- if (proxy == NULL) {
+- g_warning ("cannot connect to ConsoleKit: %s",
+- error->message);
+- g_error_free (error);
+- return;
+- }
+- g_dbus_proxy_call (proxy,
+- "Stop",
+- NULL,
+- G_DBUS_CALL_FLAGS_NONE,
+- -1, NULL,
+- consolekit_stop_cb, NULL);
+- g_object_unref (proxy);
+-}
+-static void
+-upower_sleep_cb (GObject *source_object,
+- GAsyncResult *res,
+- gpointer user_data)
+-{
+- GVariant *result;
+- GError *error = NULL;
+-
+- result = g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object),
+- res,
+- &error);
+- if (result == NULL) {
+- g_warning ("couldn't sleep using UPower: %s",
+- error->message);
+- g_error_free (error);
+- } else {
+- g_variant_unref (result);
+- }
+-}
+-
+-static void
+-upower_suspend (GDBusProxy *upower_proxy)
+-{
+- g_dbus_proxy_call (upower_proxy,
+- "Suspend",
+- NULL,
+- G_DBUS_CALL_FLAGS_NONE,
+- -1, NULL,
+- upower_sleep_cb, NULL);
+-}
+-
+-static void
+-upower_hibernate (GDBusProxy *upower_proxy)
+-{
+- g_dbus_proxy_call (upower_proxy,
+- "Hibernate",
+- NULL,
+- G_DBUS_CALL_FLAGS_NONE,
+- -1, NULL,
+- upower_sleep_cb, NULL);
+-}
+-#endif /* HAVE_SYSTEMD */
+-
+-void
+-gsd_power_suspend (GDBusProxy *upower_proxy)
+-{
+-#ifdef HAVE_SYSTEMD
+- systemd_suspend ();
+-#else
+- upower_suspend (upower_proxy);
+-#endif
+-}
+-
+-void
+-gsd_power_poweroff (void)
+-{
+-#ifdef HAVE_SYSTEMD
+- systemd_stop ();
+-#else
+- consolekit_stop ();
+-#endif
+-}
+-
+-void
+-gsd_power_hibernate (GDBusProxy *upower_proxy)
+-{
+-#ifdef HAVE_SYSTEMD
+- systemd_hibernate ();
+-#else
+- upower_hibernate (upower_proxy);
+-#endif
+-}
+diff --git a/plugins/common/gsd-power-helper.h b/plugins/common/gsd-power-helper.h
+deleted file mode 100644
+index e3be14f..0000000
+--- a/plugins/common/gsd-power-helper.h
++++ /dev/null
+@@ -1,35 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2012 Bastien Nocera <hadess@hadess.net>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+- */
+-
+-#ifndef __GSD_POWER_HELPER_H
+-#define __GSD_POWER_HELPER_H
+-
+-#include <glib.h>
+-
+-G_BEGIN_DECLS
+-
+-#include <gio/gio.h>
+-
+-void gsd_power_suspend (GDBusProxy *upower_proxy);
+-void gsd_power_hibernate (GDBusProxy *upower_proxy);
+-void gsd_power_poweroff (void);
+-
+-G_END_DECLS
+-
+-#endif /* __GSD_POWER_HELPER_H */
+diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
+index 9c84d7f..a2f277e 100644
+--- a/plugins/media-keys/gsd-media-keys-manager.c
++++ b/plugins/media-keys/gsd-media-keys-manager.c
+@@ -39,6 +39,7 @@
+ #include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <gio/gdesktopappinfo.h>
++#include <gio/gunixfdlist.h>
+
+ #ifdef HAVE_GUDEV
+ #include <gudev/gudev.h>
+@@ -51,7 +52,6 @@
+ #include "shortcuts-list.h"
+ #include "gsd-osd-window.h"
+ #include "gsd-input-helper.h"
+-#include "gsd-power-helper.h"
+ #include "gsd-enums.h"
+
+ #include <canberra.h>
+@@ -105,6 +105,10 @@ static const gchar introspection_xml[] =
+ #define KEY_CURRENT_INPUT_SOURCE "current"
+ #define KEY_INPUT_SOURCES "sources"
+
++#define SYSTEMD_DBUS_NAME "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager"
++
+ #define GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MEDIA_KEYS_MANAGER, GsdMediaKeysManagerPrivate))
+
+ typedef struct {
+@@ -148,10 +152,13 @@ struct GsdMediaKeysManagerPrivate
+
+ /* Power stuff */
+ GSettings *power_settings;
+- GDBusProxy *upower_proxy;
+ GDBusProxy *power_screen_proxy;
+ GDBusProxy *power_keyboard_proxy;
+
++ /* systemd stuff */
++ GDBusProxy *logind_proxy;
++ gint inhibit_keys_fd;
++
+ /* Multihead stuff */
+ GdkScreen *current_screen;
+ GSList *screens;
+@@ -1618,6 +1625,38 @@ do_toggle_contrast_action (GsdMediaKeysManager *manager)
+ }
+
+ static void
++power_action_suspend (GsdMediaKeysManager *manager)
++{
++#ifndef HAVE_SYSTEMD
++ g_warning ("no systemd support");
++ return;
++#endif
++ g_dbus_proxy_call (manager->priv->logind_proxy,
++ "Suspend",
++ g_variant_new ("(b)", TRUE),
++ G_DBUS_CALL_FLAGS_NONE,
++ G_MAXINT,
++ manager->priv->bus_cancellable,
++ NULL, NULL);
++}
++
++static void
++power_action_hibernate (GsdMediaKeysManager *manager)
++{
++#ifndef HAVE_SYSTEMD
++ g_warning ("no systemd support");
++ return;
++#endif
++ g_dbus_proxy_call (manager->priv->logind_proxy,
++ "Hibernate",
++ g_variant_new ("(b)", TRUE),
++ G_DBUS_CALL_FLAGS_NONE,
++ G_MAXINT,
++ manager->priv->bus_cancellable,
++ NULL, NULL);
++}
++
++static void
+ do_config_power_action (GsdMediaKeysManager *manager,
+ const gchar *config_key)
+ {
+@@ -1627,14 +1666,14 @@ do_config_power_action (GsdMediaKeysManager *manager,
+ config_key);
+ switch (action_type) {
+ case GSD_POWER_ACTION_SUSPEND:
+- gsd_power_suspend (manager->priv->upower_proxy);
++ power_action_suspend (manager);
+ break;
+ case GSD_POWER_ACTION_INTERACTIVE:
+ case GSD_POWER_ACTION_SHUTDOWN:
+ gnome_session_shutdown (manager);
+ break;
+ case GSD_POWER_ACTION_HIBERNATE:
+- gsd_power_hibernate (manager->priv->upower_proxy);
++ power_action_hibernate (manager);
+ break;
+ case GSD_POWER_ACTION_BLANK:
+ case GSD_POWER_ACTION_NOTHING:
+@@ -2248,6 +2287,7 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager)
+ }
+ #endif /* HAVE_GUDEV */
+
++ g_clear_object (&priv->logind_proxy);
+ if (priv->settings) {
+ g_object_unref (priv->settings);
+ priv->settings = NULL;
+@@ -2268,11 +2308,6 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager)
+ priv->power_keyboard_proxy = NULL;
+ }
+
+- if (priv->upower_proxy) {
+- g_object_unref (priv->upower_proxy);
+- priv->upower_proxy = NULL;
+- }
+-
+ if (priv->cancellable != NULL) {
+ g_cancellable_cancel (priv->cancellable);
+ g_object_unref (priv->cancellable);
+@@ -2363,9 +2398,85 @@ gsd_media_keys_manager_class_init (GsdMediaKeysManagerClass *klass)
+ }
+
+ static void
++inhibit_done (GObject *source,
++ GAsyncResult *result,
++ gpointer user_data)
++{
++ GDBusProxy *proxy = G_DBUS_PROXY (source);
++ GsdMediaKeysManager *manager = GSD_MEDIA_KEYS_MANAGER (user_data);
++ GError *error = NULL;
++ GVariant *res;
++ GUnixFDList *fd_list = NULL;
++ gint idx;
++
++ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++ if (res == NULL) {
++ g_warning ("Unable to inhibit keypresses: %s", error->message);
++ g_error_free (error);
++ } else {
++ g_variant_get (res, "(h)", &idx);
++ manager->priv->inhibit_keys_fd = g_unix_fd_list_get (fd_list, idx, &error);
++ if (manager->priv->inhibit_keys_fd == -1) {
++ g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++ g_error_free (error);
++ }
++ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_keys_fd);
++ g_object_unref (fd_list);
++ g_variant_unref (res);
++ }
++}
++
++static void
+ gsd_media_keys_manager_init (GsdMediaKeysManager *manager)
+ {
++ GError *error;
++ GDBusConnection *bus;
++
++ error = NULL;
+ manager->priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager);
++
++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
++ if (bus == NULL) {
++ g_warning ("Failed to connect to system bus: %s",
++ error->message);
++ g_error_free (error);
++ return;
++ }
++
++ manager->priv->logind_proxy =
++ g_dbus_proxy_new_sync (bus,
++ 0,
++ NULL,
++ SYSTEMD_DBUS_NAME,
++ SYSTEMD_DBUS_PATH,
++ SYSTEMD_DBUS_INTERFACE,
++ NULL,
++ &error);
++
++ if (manager->priv->logind_proxy == NULL) {
++ g_warning ("Failed to connect to systemd: %s",
++ error->message);
++ g_error_free (error);
++ }
++
++ g_object_unref (bus);
++
++ g_debug ("Adding system inhibitors for power keys");
++ manager->priv->inhibit_keys_fd = -1;
++ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++ "Inhibit",
++ g_variant_new ("(ssss)",
++ "handle-power-key:handle-suspend-key:handle-hibernate-key",
++ g_get_user_name (),
++ "GNOME handling keypresses",
++ "block"),
++ 0,
++ G_MAXINT,
++ NULL,
++ NULL,
++ inhibit_done,
++ manager);
++
+ }
+
+ static void
+@@ -2382,6 +2493,8 @@ gsd_media_keys_manager_finalize (GObject *object)
+
+ if (media_keys_manager->priv->start_idle_id != 0)
+ g_source_remove (media_keys_manager->priv->start_idle_id);
++ if (media_keys_manager->priv->inhibit_keys_fd != -1)
++ close (media_keys_manager->priv->inhibit_keys_fd);
+
+ G_OBJECT_CLASS (gsd_media_keys_manager_parent_class)->finalize (object);
+ }
+@@ -2401,21 +2514,6 @@ xrandr_ready_cb (GObject *source_object,
+ }
+
+ static void
+-upower_ready_cb (GObject *source_object,
+- GAsyncResult *res,
+- GsdMediaKeysManager *manager)
+-{
+- GError *error = NULL;
+-
+- manager->priv->upower_proxy = g_dbus_proxy_new_finish (res, &error);
+- if (manager->priv->upower_proxy == NULL) {
+- g_warning ("Failed to get proxy for upower: %s",
+- error->message);
+- g_error_free (error);
+- }
+-}
+-
+-static void
+ power_screen_ready_cb (GObject *source_object,
+ GAsyncResult *res,
+ GsdMediaKeysManager *manager)
+@@ -2517,16 +2615,6 @@ register_manager (GsdMediaKeysManager *manager)
+ manager->priv->bus_cancellable,
+ (GAsyncReadyCallback) on_bus_gotten,
+ manager);
+-
+- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+- G_DBUS_PROXY_FLAGS_NONE,
+- NULL,
+- "org.freedesktop.UPower",
+- "/org/freedesktop/UPower",
+- "org.freedesktop.UPower",
+- NULL,
+- (GAsyncReadyCallback) upower_ready_cb,
+- manager);
+ }
+
+ GsdMediaKeysManager *
+diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
+index 070cf32..18fcedf 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -1,7 +1,7 @@
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
+- * Copyright (C) 2011 Richard Hughes <richard@hughsie.com>
++ * Copyright (C) 2011-2012 Richard Hughes <richard@hughsie.com>
+ * Copyright (C) 2011 Ritesh Khadgaray <khadgaray@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -32,6 +32,7 @@
+ #include <libupower-glib/upower.h>
+ #include <libnotify/notify.h>
+ #include <canberra-gtk.h>
++#include <gio/gunixfdlist.h>
+
+ #define GNOME_DESKTOP_USE_UNSTABLE_API
+ #include <libgnome-desktop/gnome-rr.h>
+@@ -43,7 +44,6 @@
+ #include "gnome-settings-session.h"
+ #include "gsd-enums.h"
+ #include "gsd-power-manager.h"
+-#include "gsd-power-helper.h"
+
+ #define GNOME_SESSION_DBUS_NAME "org.gnome.SessionManager"
+ #define GNOME_SESSION_DBUS_PATH "/org/gnome/SessionManager"
+@@ -78,6 +78,10 @@
+ #define GSD_POWER_MANAGER_RECALL_DELAY 30 /* seconds */
+ #define GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT 30 /* seconds */
+
++#define SYSTEMD_DBUS_NAME "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager"
++
+ /* Keep this in sync with gnome-shell */
+ #define SCREENSAVER_FADE_TIME 10 /* seconds */
+
+@@ -193,14 +197,20 @@ struct GsdPowerManagerPrivate
+ ca_context *canberra_context;
+ ca_proplist *critical_alert_loop_props;
+ guint32 critical_alert_timeout_id;
+- GDBusProxy *screensaver_proxy;
+ GDBusProxy *session_proxy;
+ GDBusProxy *session_presence_proxy;
+ GpmIdletime *idletime;
+ GsdPowerIdleMode current_idle_mode;
+- guint lid_close_safety_timer_id;
+ GtkStatusIcon *status_icon;
+ guint xscreensaver_watchdog_timer_id;
++
++ /* systemd stuff */
++ GDBusProxy *logind_proxy;
++ gint inhibit_lid_switch_fd;
++ gboolean inhibit_lid_switch_taken;
++ gint inhibit_suspend_fd;
++ gboolean inhibit_suspend_taken;
++ guint inhibit_lid_switch_timer_id;
+ };
+
+ enum {
+@@ -217,8 +227,8 @@ static GIcon *engine_get_icon (GsdPowerManager *manager);
+ static gchar *engine_get_summary (GsdPowerManager *manager);
+ static void do_power_action_type (GsdPowerManager *manager, GsdPowerActionType action_type);
+ static void do_lid_closed_action (GsdPowerManager *manager);
+-static void lock_screensaver (GsdPowerManager *manager);
+-static void kill_lid_close_safety_timer (GsdPowerManager *manager);
++static void uninhibit_lid_switch (GsdPowerManager *manager);
++static gboolean external_monitor_is_connected (GnomeRRScreen *screen);
+
+ G_DEFINE_TYPE (GsdPowerManager, gsd_power_manager, G_TYPE_OBJECT)
+
+@@ -2048,6 +2058,57 @@ gnome_session_shutdown (void)
+ }
+
+ static void
++action_poweroff (GsdPowerManager *manager)
++{
++ if (manager->priv->logind_proxy == NULL) {
++ g_warning ("no systemd support");
++ return;
++ }
++ g_dbus_proxy_call (manager->priv->logind_proxy,
++ "PowerOff",
++ g_variant_new ("(b)", FALSE),
++ G_DBUS_CALL_FLAGS_NONE,
++ G_MAXINT,
++ NULL,
++ NULL,
++ NULL);
++}
++
++static void
++action_suspend (GsdPowerManager *manager)
++{
++ if (manager->priv->logind_proxy == NULL) {
++ g_warning ("no systemd support");
++ return;
++ }
++ g_dbus_proxy_call (manager->priv->logind_proxy,
++ "Suspend",
++ g_variant_new ("(b)", FALSE),
++ G_DBUS_CALL_FLAGS_NONE,
++ G_MAXINT,
++ NULL,
++ NULL,
++ NULL);
++}
++
++static void
++action_hibernate (GsdPowerManager *manager)
++{
++ if (manager->priv->logind_proxy == NULL) {
++ g_warning ("no systemd support");
++ return;
++ }
++ g_dbus_proxy_call (manager->priv->logind_proxy,
++ "Hibernate",
++ g_variant_new ("(b)", FALSE),
++ G_DBUS_CALL_FLAGS_NONE,
++ G_MAXINT,
++ NULL,
++ NULL,
++ NULL);
++}
++
++static void
+ do_power_action_type (GsdPowerManager *manager,
+ GsdPowerActionType action_type)
+ {
+@@ -2056,19 +2117,19 @@ do_power_action_type (GsdPowerManager *manager,
+
+ switch (action_type) {
+ case GSD_POWER_ACTION_SUSPEND:
+- gsd_power_suspend (manager->priv->upower_proxy);
++ action_suspend (manager);
+ break;
+ case GSD_POWER_ACTION_INTERACTIVE:
+ gnome_session_shutdown ();
+ break;
+ case GSD_POWER_ACTION_HIBERNATE:
+- gsd_power_hibernate (manager->priv->upower_proxy);
++ action_hibernate (manager);
+ break;
+ case GSD_POWER_ACTION_SHUTDOWN:
+ /* this is only used on critically low battery where
+ * hibernate is not available and is marginally better
+ * than just powering down the computer mid-write */
+- gsd_power_poweroff ();
++ action_poweroff (manager);
+ break;
+ case GSD_POWER_ACTION_BLANK:
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+@@ -2140,85 +2201,20 @@ upower_kbd_toggle (GsdPowerManager *manager,
+ return ret;
+ }
+
+-static void
+-do_lid_open_action (GsdPowerManager *manager)
+-{
+- gboolean ret;
+- GError *error = NULL;
+-
+- /* play a sound, using sounds from the naming spec */
+- ca_context_play (manager->priv->canberra_context, 0,
+- CA_PROP_EVENT_ID, "lid-open",
+- /* TRANSLATORS: this is the sound description */
+- CA_PROP_EVENT_DESCRIPTION, _("Lid has been opened"),
+- NULL);
+-
+- /* ensure we turn the panel back on after lid open */
+- ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+- GNOME_RR_DPMS_ON,
+- &error);
+- if (!ret) {
+- g_warning ("failed to turn the panel on after lid open: %s",
+- error->message);
+- g_clear_error (&error);
+- }
+-
+- /* only toggle keyboard if present and already toggled off */
+- if (manager->priv->upower_kdb_proxy != NULL &&
+- manager->priv->kbd_brightness_old != -1) {
+- ret = upower_kbd_toggle (manager, &error);
+- if (!ret) {
+- g_warning ("failed to turn the kbd backlight on: %s",
+- error->message);
+- g_error_free (error);
+- }
+- }
+-
+- kill_lid_close_safety_timer (manager);
+-}
+-
+ static gboolean
+-is_on (GnomeRROutput *output)
++inhibit_lid_switch_timer_cb (GsdPowerManager *manager)
+ {
+- GnomeRRCrtc *crtc;
+-
+- crtc = gnome_rr_output_get_crtc (output);
+- if (!crtc)
+- return FALSE;
+- return gnome_rr_crtc_get_current_mode (crtc) != NULL;
+-}
+-
+-static gboolean
+-non_laptop_outputs_are_all_off (GnomeRRScreen *screen)
+-{
+- GnomeRROutput **outputs;
+- int i;
+-
+- outputs = gnome_rr_screen_list_outputs (screen);
+- for (i = 0; outputs[i] != NULL; i++) {
+- if (gnome_rr_output_is_laptop (outputs[i]))
+- continue;
+-
+- if (is_on (outputs[i]))
+- return FALSE;
++ if (!external_monitor_is_connected (manager->priv->x11_screen) ||
++ g_settings_get_boolean (manager->priv->settings,
++ "lid-close-suspend-with-external-monitor")) {
++ g_debug ("no external monitors for a while; uninhibiting lid close");
++ uninhibit_lid_switch (manager);
++ manager->priv->inhibit_lid_switch_timer_id = 0;
++ return G_SOURCE_REMOVE;
+ }
+
+- return TRUE;
+-}
+-
+-/* Timeout callback used to check conditions when the laptop's lid is closed but
+- * the machine is not suspended yet. We try to suspend again, so that the laptop
+- * won't overheat if placed in a backpack.
+- */
+-static gboolean
+-lid_close_safety_timer_cb (GsdPowerManager *manager)
+-{
+- manager->priv->lid_close_safety_timer_id = 0;
+-
+- g_debug ("lid has been closed for a while; trying to suspend again");
+- do_lid_closed_action (manager);
+-
+- return FALSE;
++ g_debug ("external monitor still there; trying again later");
++ return G_SOURCE_CONTINUE;
+ }
+
+ /* Sets up a timer to be triggered some seconds after closing the laptop lid
+@@ -2226,82 +2222,73 @@ lid_close_safety_timer_cb (GsdPowerManager *manager)
+ * again in the timeout handler to see if we can suspend then.
+ */
+ static void
+-setup_lid_close_safety_timer (GsdPowerManager *manager)
++setup_inhibit_lid_switch_timer (GsdPowerManager *manager)
+ {
+- if (manager->priv->lid_close_safety_timer_id != 0)
++ if (manager->priv->inhibit_lid_switch_timer_id != 0) {
++ g_debug ("lid close safety timer already set up");
+ return;
++ }
++
++ g_debug ("setting up lid close safety timer");
+
+- manager->priv->lid_close_safety_timer_id = g_timeout_add_seconds (GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT,
+- (GSourceFunc) lid_close_safety_timer_cb,
++ manager->priv->inhibit_lid_switch_timer_id = g_timeout_add_seconds (GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT,
++ (GSourceFunc) inhibit_lid_switch_timer_cb,
+ manager);
+- g_source_set_name_by_id (manager->priv->lid_close_safety_timer_id, "[GsdPowerManager] lid close safety timer");
++ g_source_set_name_by_id (manager->priv->inhibit_lid_switch_timer_id, "[GsdPowerManager] lid close safety timer");
+ }
+
+ static void
+-kill_lid_close_safety_timer (GsdPowerManager *manager)
++restart_inhibit_lid_switch_timer (GsdPowerManager *manager)
+ {
+- if (manager->priv->lid_close_safety_timer_id != 0) {
+- g_source_remove (manager->priv->lid_close_safety_timer_id);
+- manager->priv->lid_close_safety_timer_id = 0;
++ if (manager->priv->inhibit_lid_switch_timer_id != 0) {
++ g_debug ("restarting lid close safety timer");
++ g_source_remove (manager->priv->inhibit_lid_switch_timer_id);
++ manager->priv->inhibit_lid_switch_timer_id = 0;
++ setup_inhibit_lid_switch_timer (manager);
+ }
+ }
+
+ static void
+-suspend_with_lid_closed (GsdPowerManager *manager)
++do_lid_open_action (GsdPowerManager *manager)
+ {
+ gboolean ret;
+ GError *error = NULL;
+- GsdPowerActionType action_type;
+
+- /* maybe lock the screen if the lid is closed */
+- lock_screensaver (manager);
+-
+- /* we have different settings depending on AC state */
+- if (up_client_get_on_battery (manager->priv->up_client)) {
+- action_type = g_settings_get_enum (manager->priv->settings,
+- "lid-close-battery-action");
+- } else {
+- action_type = g_settings_get_enum (manager->priv->settings,
+- "lid-close-ac-action");
+- }
+-
+- /* check we won't melt when the lid is closed */
+- if (action_type != GSD_POWER_ACTION_SUSPEND &&
+- action_type != GSD_POWER_ACTION_HIBERNATE) {
+- if (up_client_get_lid_force_sleep (manager->priv->up_client)) {
+- g_warning ("to prevent damage, now forcing suspend");
+- do_power_action_type (manager, GSD_POWER_ACTION_SUSPEND);
+- return;
+- }
+- }
++ /* play a sound, using sounds from the naming spec */
++ ca_context_play (manager->priv->canberra_context, 0,
++ CA_PROP_EVENT_ID, "lid-open",
++ /* TRANSLATORS: this is the sound description */
++ CA_PROP_EVENT_DESCRIPTION, _("Lid has been opened"),
++ NULL);
+
+- /* ensure we turn the panel back on after resume */
++ /* ensure we turn the panel back on after lid open */
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+- GNOME_RR_DPMS_OFF,
++ GNOME_RR_DPMS_ON,
+ &error);
+ if (!ret) {
+- g_warning ("failed to turn the panel off after lid close: %s",
++ g_warning ("failed to turn the panel on after lid open: %s",
+ error->message);
+- g_error_free (error);
++ g_clear_error (&error);
+ }
+
+- /* only toggle keyboard if present and not already toggled */
+- if (manager->priv->upower_kdb_proxy &&
+- manager->priv->kbd_brightness_old == -1) {
++ /* only toggle keyboard if present and already toggled off */
++ if (manager->priv->upower_kdb_proxy != NULL &&
++ manager->priv->kbd_brightness_old != -1) {
+ ret = upower_kbd_toggle (manager, &error);
+ if (!ret) {
+- g_warning ("failed to turn the kbd backlight off: %s",
++ g_warning ("failed to turn the kbd backlight on: %s",
+ error->message);
+ g_error_free (error);
+ }
+ }
+-
+- do_power_action_type (manager, action_type);
+ }
+
+ static void
+ do_lid_closed_action (GsdPowerManager *manager)
+ {
++ gboolean ret;
++ GError *error = NULL;
++
+ /* play a sound, using sounds from the naming spec */
+ ca_context_play (manager->priv->canberra_context, 0,
+ CA_PROP_EVENT_ID, "lid-close",
+@@ -2309,21 +2296,22 @@ do_lid_closed_action (GsdPowerManager *manager)
+ CA_PROP_EVENT_DESCRIPTION, _("Lid has been closed"),
+ NULL);
+
++ /* turn the panel off if the lid is closed (mainly for Dells...) */
++ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
++ GNOME_RR_DPMS_OFF,
++ &error);
++ if (!ret) {
++ g_warning ("failed to turn the panel off after lid close: %s",
++ error->message);
++ g_error_free (error);
++ }
++
+ /* refresh RANDR so we get an accurate view of what monitors are plugged in when the lid is closed */
+ gnome_rr_screen_refresh (manager->priv->x11_screen, NULL); /* NULL-GError */
+
+- /* perform policy action */
+- if (g_settings_get_boolean (manager->priv->settings, "lid-close-suspend-with-external-monitor")
+- || non_laptop_outputs_are_all_off (manager->priv->x11_screen)) {
+- g_debug ("lid is closed; suspending or hibernating");
+- suspend_with_lid_closed (manager);
+- } else {
+- g_debug ("lid is closed; not suspending nor hibernating since some external monitor outputs are still active");
+- setup_lid_close_safety_timer (manager);
+- }
++ restart_inhibit_lid_switch_timer (manager);
+ }
+
+-
+ static void
+ up_client_changed_cb (UpClient *client, GsdPowerManager *manager)
+ {
+@@ -2343,6 +2331,7 @@ up_client_changed_cb (UpClient *client, GsdPowerManager *manager)
+ if (manager->priv->lid_is_closed == tmp)
+ return;
+ manager->priv->lid_is_closed = tmp;
++ g_debug ("up changed: lid is now %s", tmp ? "closed" : "open");
+
+ /* fake a keypress */
+ if (tmp)
+@@ -3294,30 +3283,6 @@ gsd_power_manager_class_init (GsdPowerManagerClass *klass)
+ }
+
+ static void
+-sleep_cb_screensaver_proxy_ready_cb (GObject *source_object,
+- GAsyncResult *res,
+- gpointer user_data)
+-{
+- GError *error = NULL;
+- GsdPowerManager *manager = GSD_POWER_MANAGER (user_data);
+-
+- manager->priv->screensaver_proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+- if (manager->priv->screensaver_proxy == NULL) {
+- g_warning ("Could not connect to gnome-screensaver: %s",
+- error->message);
+- g_error_free (error);
+- return;
+- }
+-
+- /* Finish the upower_notify_sleep_cb() call by locking the screen */
+- g_debug ("gnome-screensaver activated, doing gnome-screensaver lock");
+- g_dbus_proxy_call (manager->priv->screensaver_proxy,
+- "Lock",
+- NULL, G_DBUS_CALL_FLAGS_NONE, -1,
+- NULL, NULL, NULL);
+-}
+-
+-static void
+ idle_dbus_signal_cb (GDBusProxy *proxy,
+ const gchar *sender_name,
+ const gchar *signal_name,
+@@ -3469,75 +3434,38 @@ out:
+ }
+
+ static void
+-lock_screensaver (GsdPowerManager *manager)
++lock_screensaver (GsdPowerManager *manager,
++ GSourceFunc done_cb)
+ {
+ gboolean do_lock;
+
+ do_lock = g_settings_get_boolean (manager->priv->settings_screensaver,
+ "lock-enabled");
+- if (!do_lock)
++ if (!do_lock && done_cb) {
++ done_cb (manager);
+ return;
+-
+- if (manager->priv->screensaver_proxy != NULL) {
+- g_debug ("doing gnome-screensaver lock");
+- g_dbus_proxy_call (manager->priv->screensaver_proxy,
+- "Lock",
+- NULL, G_DBUS_CALL_FLAGS_NONE, -1,
+- NULL, NULL, NULL);
+- } else {
+- /* connect to the screensaver first */
+- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
+- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+- NULL,
+- GS_DBUS_NAME,
+- GS_DBUS_PATH,
+- GS_DBUS_INTERFACE,
+- NULL,
+- sleep_cb_screensaver_proxy_ready_cb,
+- manager);
+ }
+-}
+-
+-static void
+-upower_notify_sleep_cb (UpClient *client,
+- UpSleepKind sleep_kind,
+- GsdPowerManager *manager)
+-{
+- lock_screensaver (manager);
+-}
+-
+-static void
+-upower_notify_resume_cb (UpClient *client,
+- UpSleepKind sleep_kind,
+- GsdPowerManager *manager)
+-{
+- gboolean ret;
+- GError *error = NULL;
+-
+- /* this displays the unlock dialogue so the user doesn't have
+- * to move the mouse or press any key before the window comes up */
+- if (manager->priv->screensaver_proxy != NULL) {
+- g_dbus_proxy_call (manager->priv->screensaver_proxy,
+- "SimulateUserActivity",
+- NULL,
+- G_DBUS_CALL_FLAGS_NONE,
+- -1, NULL, NULL, NULL);
+- }
+-
+- /* close existing notifications on resume, the system power
+- * state is probably different now */
+- notify_close_if_showing (manager->priv->notification_low);
+- notify_close_if_showing (manager->priv->notification_discharging);
+
+- /* ensure we turn the panel back on after resume */
+- ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+- GNOME_RR_DPMS_ON,
+- &error);
+- if (!ret) {
+- g_warning ("failed to turn the panel on after resume: %s",
+- error->message);
+- g_error_free (error);
+- }
++ g_dbus_connection_call (manager->priv->connection,
++ GS_DBUS_NAME,
++ GS_DBUS_PATH,
++ GS_DBUS_INTERFACE,
++ "Lock",
++ NULL, NULL,
++ G_DBUS_CALL_FLAGS_NONE, -1,
++ NULL, NULL, NULL);
++
++ /* Wait until gnome-shell shield animation is done
++ *
++ * FIXME: the shell should mark the lock as active
++ * when the shield is down, then we could wait for
++ * that. This would also fix the problem that we wait
++ * needlessly when the shell has already locked the
++ * screen because it is initiating the suspend.
++ *
++ * https://bugzilla.gnome.org/show_bug.cgi?id=685053
++ */
++ g_timeout_add (500, done_cb, manager);
+ }
+
+ static void
+@@ -3696,6 +3624,287 @@ disable_builtin_screensaver (gpointer unused)
+ return TRUE;
+ }
+
++static void
++inhibit_lid_switch_done (GObject *source,
++ GAsyncResult *result,
++ gpointer user_data)
++{
++ GDBusProxy *proxy = G_DBUS_PROXY (source);
++ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data);
++ GError *error = NULL;
++ GVariant *res;
++ GUnixFDList *fd_list = NULL;
++ gint idx;
++
++ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++ if (res == NULL) {
++ g_warning ("Unable to inhibit lid switch: %s", error->message);
++ g_error_free (error);
++ } else {
++ g_variant_get (res, "(h)", &idx);
++ manager->priv->inhibit_lid_switch_fd = g_unix_fd_list_get (fd_list, idx, &error);
++ if (manager->priv->inhibit_lid_switch_fd == -1) {
++ g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++ g_error_free (error);
++ }
++ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_lid_switch_fd);
++ g_object_unref (fd_list);
++ g_variant_unref (res);
++ }
++}
++
++static void
++inhibit_lid_switch (GsdPowerManager *manager)
++{
++ GVariant *params;
++
++ if (manager->priv->inhibit_lid_switch_taken) {
++ g_debug ("already inhibited lid-switch");
++ return;
++ }
++ g_debug ("Adding lid switch system inhibitor");
++ manager->priv->inhibit_lid_switch_taken = TRUE;
++
++ params = g_variant_new ("(ssss)",
++ "handle-lid-switch",
++ g_get_user_name (),
++ "Multiple displays attached",
++ "block");
++ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++ "Inhibit",
++ params,
++ 0,
++ G_MAXINT,
++ NULL,
++ NULL,
++ inhibit_lid_switch_done,
++ manager);
++}
++
++static void
++uninhibit_lid_switch (GsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_lid_switch_fd == -1) {
++ g_debug ("no lid-switch inhibitor");
++ return;
++ }
++ g_debug ("Removing lid switch system inhibitor");
++ close (manager->priv->inhibit_lid_switch_fd);
++ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_lid_switch_taken = FALSE;
++}
++
++static void
++inhibit_suspend_done (GObject *source,
++ GAsyncResult *result,
++ gpointer user_data)
++{
++ GDBusProxy *proxy = G_DBUS_PROXY (source);
++ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data);
++ GError *error = NULL;
++ GVariant *res;
++ GUnixFDList *fd_list = NULL;
++ gint idx;
++
++ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++ if (res == NULL) {
++ g_warning ("Unable to inhibit suspend: %s", error->message);
++ g_error_free (error);
++ } else {
++ g_variant_get (res, "(h)", &idx);
++ manager->priv->inhibit_suspend_fd = g_unix_fd_list_get (fd_list, idx, &error);
++ if (manager->priv->inhibit_suspend_fd == -1) {
++ g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++ g_error_free (error);
++ }
++ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_suspend_fd);
++ g_object_unref (fd_list);
++ g_variant_unref (res);
++ }
++}
++
++/* We take a delay inhibitor here, which causes logind to send a
++ * PrepareToSleep signal, which gives us a chance to lock the screen
++ * and do some other preparations.
++ */
++static void
++inhibit_suspend (GsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_suspend_taken) {
++ g_debug ("already inhibited lid-switch");
++ return;
++ }
++ g_debug ("Adding suspend delay inhibitor");
++ manager->priv->inhibit_suspend_taken = TRUE;
++ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++ "Inhibit",
++ g_variant_new ("(ssss)",
++ "sleep",
++ g_get_user_name (),
++ "GNOME needs to lock the screen",
++ "delay"),
++ 0,
++ G_MAXINT,
++ NULL,
++ NULL,
++ inhibit_suspend_done,
++ manager);
++}
++
++static void
++uninhibit_suspend (GsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_suspend_fd == -1) {
++ g_debug ("no suspend delay inhibitor");
++ return;
++ }
++ g_debug ("Removing suspend delay inhibitor");
++ close (manager->priv->inhibit_suspend_fd);
++ manager->priv->inhibit_suspend_fd = -1;
++ manager->priv->inhibit_suspend_taken = TRUE;
++}
++
++static gboolean
++randr_output_is_on (GnomeRROutput *output)
++{
++ GnomeRRCrtc *crtc;
++
++ crtc = gnome_rr_output_get_crtc (output);
++ if (!crtc)
++ return FALSE;
++ return gnome_rr_crtc_get_current_mode (crtc) != NULL;
++}
++
++static gboolean
++external_monitor_is_connected (GnomeRRScreen *screen)
++{
++ GnomeRROutput **outputs;
++ guint i;
++
++ if (g_file_test ("/tmp/external_connected", G_FILE_TEST_EXISTS))
++ return TRUE;
++
++ /* see if we have more than one screen plugged in */
++ outputs = gnome_rr_screen_list_outputs (screen);
++ for (i = 0; outputs[i] != NULL; i++) {
++ if (randr_output_is_on (outputs[i]) &&
++ !gnome_rr_output_is_laptop (outputs[i]))
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++static void
++on_randr_event (GnomeRRScreen *screen, gpointer user_data)
++{
++ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data);
++
++ /* when a second monitor is plugged in, we take the
++ * handle-lid-switch inhibitor lock of logind to prevent
++ * it from suspending.
++ *
++ * Uninhibiting is done in the inhibit_lid_switch_timer,
++ * since we want to give users a few seconds when unplugging
++ * and replugging an external monitor, not suspend right away.
++ */
++ if (external_monitor_is_connected (screen) &&
++ !g_settings_get_boolean (manager->priv->settings,
++ "lid-close-suspend-with-external-monitor")) {
++ inhibit_lid_switch (manager);
++ setup_inhibit_lid_switch_timer (manager);
++ }
++ else {
++ restart_inhibit_lid_switch_timer (manager);
++ }
++}
++
++static gboolean
++screen_lock_done_cb (gpointer data)
++{
++ GsdPowerManager *manager = data;
++
++ /* lift the delay inhibit, so logind can proceed */
++ uninhibit_suspend (manager);
++
++ return FALSE;
++}
++
++static void
++handle_suspend_actions (GsdPowerManager *manager)
++{
++ gboolean ret;
++ GError *error = NULL;
++
++ /* ensure we turn the panel back on after resume */
++ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
++ GNOME_RR_DPMS_ON,
++ &error);
++ if (!ret) {
++ g_warning ("failed to turn the panel on after resume: %s",
++ error->message);
++ g_error_free (error);
++ }
++
++ lock_screensaver (manager, screen_lock_done_cb);
++}
++
++static void
++handle_resume_actions (GsdPowerManager *manager)
++{
++ gboolean ret;
++ GError *error = NULL;
++
++ /* this displays the unlock dialogue so the user doesn't have
++ * to move the mouse or press any key before the window comes up */
++ g_dbus_connection_call (manager->priv->connection,
++ GS_DBUS_NAME,
++ GS_DBUS_PATH,
++ GS_DBUS_INTERFACE,
++ "SimulateUserActivity",
++ NULL, NULL,
++ G_DBUS_CALL_FLAGS_NONE, -1,
++ NULL, NULL, NULL);
++
++ /* close existing notifications on resume, the system power
++ * state is probably different now */
++ notify_close_if_showing (manager->priv->notification_low);
++ notify_close_if_showing (manager->priv->notification_discharging);
++
++ /* ensure we turn the panel back on after resume */
++ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
++ GNOME_RR_DPMS_ON,
++ &error);
++ if (!ret) {
++ g_warning ("failed to turn the panel on after resume: %s",
++ error->message);
++ g_error_free (error);
++ }
++
++ /* set up the delay again */
++ inhibit_suspend (manager);
++}
++
++static void
++logind_proxy_signal_cb (GDBusProxy *proxy,
++ const gchar *sender_name,
++ const gchar *signal_name,
++ GVariant *parameters,
++ gpointer user_data)
++{
++ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data);
++ gboolean is_about_to_suspend;
++
++ if (g_strcmp0 (signal_name, "PrepareForSleep") != 0)
++ return;
++ g_variant_get (parameters, "(b)", &is_about_to_suspend);
++ if (is_about_to_suspend) {
++ handle_suspend_actions (manager);
++ } else {
++ handle_resume_actions (manager);
++ }
++}
++
+ gboolean
+ gsd_power_manager_start (GsdPowerManager *manager,
+ GError **error)
+@@ -3705,6 +3914,25 @@ gsd_power_manager_start (GsdPowerManager *manager,
+ g_debug ("Starting power manager");
+ gnome_settings_profile_start (NULL);
+
++ manager->priv->logind_proxy =
++ g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
++ 0,
++ NULL,
++ SYSTEMD_DBUS_NAME,
++ SYSTEMD_DBUS_PATH,
++ SYSTEMD_DBUS_INTERFACE,
++ NULL,
++ error);
++ if (manager->priv->logind_proxy == NULL) {
++ g_warning ("no systemd support");
++ return FALSE;
++ }
++ g_signal_connect (manager->priv->logind_proxy, "g-signal",
++ G_CALLBACK (logind_proxy_signal_cb),
++ manager);
++ /* Set up a delay inhibitor to be informed about suspend attempts */
++ inhibit_suspend (manager);
++
+ /* track the active session */
+ manager->priv->session = gnome_settings_session_new ();
+ g_signal_connect (manager->priv->session, "notify::state",
+@@ -3719,10 +3947,6 @@ gsd_power_manager_start (GsdPowerManager *manager,
+ G_CALLBACK (engine_settings_key_changed_cb), manager);
+ manager->priv->settings_screensaver = g_settings_new ("org.gnome.desktop.screensaver");
+ manager->priv->up_client = up_client_new ();
+- g_signal_connect (manager->priv->up_client, "notify-sleep",
+- G_CALLBACK (upower_notify_sleep_cb), manager);
+- g_signal_connect (manager->priv->up_client, "notify-resume",
+- G_CALLBACK (upower_notify_resume_cb), manager);
+ manager->priv->lid_is_closed = up_client_get_lid_is_closed (manager->priv->up_client);
+ g_signal_connect (manager->priv->up_client, "device-added",
+ G_CALLBACK (engine_device_added_cb), manager);
+@@ -3836,6 +4060,9 @@ gsd_power_manager_start (GsdPowerManager *manager,
+ manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
+ if (manager->priv->x11_screen == NULL)
+ return FALSE;
++ g_signal_connect (manager->priv->x11_screen, "changed", G_CALLBACK (on_randr_event), manager);
++ /* set up initial state */
++ on_randr_event (manager->priv->x11_screen, manager);
+
+ /* ensure the default dpms timeouts are cleared */
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+@@ -3865,6 +4092,11 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+ {
+ g_debug ("Stopping power manager");
+
++ if (manager->priv->inhibit_lid_switch_timer_id != 0) {
++ g_source_remove (manager->priv->inhibit_lid_switch_timer_id);
++ manager->priv->inhibit_lid_switch_timer_id = 0;
++ }
++
+ if (manager->priv->bus_cancellable != NULL) {
+ g_cancellable_cancel (manager->priv->bus_cancellable);
+ g_object_unref (manager->priv->bus_cancellable);
+@@ -3876,8 +4108,6 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+ manager->priv->introspection_data = NULL;
+ }
+
+- kill_lid_close_safety_timer (manager);
+-
+ g_signal_handlers_disconnect_by_data (manager->priv->up_client, manager);
+
+ g_clear_object (&manager->priv->connection);
+@@ -3885,6 +4115,19 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+ g_clear_object (&manager->priv->settings);
+ g_clear_object (&manager->priv->settings_screensaver);
+ g_clear_object (&manager->priv->up_client);
++
++ if (manager->priv->inhibit_lid_switch_fd != -1) {
++ close (manager->priv->inhibit_lid_switch_fd);
++ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_lid_switch_taken = FALSE;
++ }
++ if (manager->priv->inhibit_suspend_fd != -1) {
++ close (manager->priv->inhibit_suspend_fd);
++ manager->priv->inhibit_suspend_fd = -1;
++ manager->priv->inhibit_suspend_taken = FALSE;
++ }
++
++ g_clear_object (&manager->priv->logind_proxy);
+ g_clear_object (&manager->priv->x11_screen);
+
+ g_ptr_array_unref (manager->priv->devices_array);
+@@ -3918,6 +4161,8 @@ static void
+ gsd_power_manager_init (GsdPowerManager *manager)
+ {
+ manager->priv = GSD_POWER_MANAGER_GET_PRIVATE (manager);
++ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_suspend_fd = -1;
+ }
+
+ static void
+--
+1.7.12.2
+
diff --git a/testing/gnome-settings-daemon/PKGBUILD b/testing/gnome-settings-daemon/PKGBUILD
new file mode 100644
index 000000000..4e972454a
--- /dev/null
+++ b/testing/gnome-settings-daemon/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 169291 2012-10-18 21:41:48Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=gnome-settings-daemon
+pkgver=3.6.1
+pkgrel=2
+pkgdesc="The GNOME Settings daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('dconf' 'gnome-desktop' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'libcanberra-pulse' 'libnotify'
+ 'libsystemd' 'libwacom' 'nss' 'pulseaudio' 'pulseaudio-alsa' 'upower' 'ibus')
+makedepends=('intltool' 'xf86-input-wacom' 'libxslt' 'docbook-xsl')
+options=('!emptydirs' '!libtool')
+install=gnome-settings-daemon.install
+url="http://www.gnome.org"
+groups=('gnome')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ screensaver.patch
+ 0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch)
+sha256sums=('1fe96e0709d7c618d90cc1bfcddc46eede3c2cdb305f5e7f4cb388d43dd5526a'
+ 'd2c32fa0262e4d0e97fc07fb631ad2627b4f2ae273e2cb3028236d9725711880'
+ 'f23db348593f58da755889928d7fa75817479d9ad5be67cc7a2f8cbc5db23632')
+
+build() {
+ cd $pkgname-$pkgver
+
+ # Disable X's built-in screensaver
+ patch -Np1 -i ../screensaver.patch
+
+ # logind key handling FS#31801, patch from Fedora
+ # rebased onto screensaver.patch
+ patch -Np1 -i ../0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
+ aclocal
+ automake
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-settings-daemon --disable-static \
+ --enable-systemd
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=656231
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ # Plugins that aren't installed still have schema references
+ # and cause gsettings errors - remove the references we're not using
+ sed -i '/org\.gnome\.settings-daemon\.plugins\.updates/d' \
+ "$pkgdir/usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.gschema.xml"
+}
diff --git a/testing/gnome-settings-daemon/gnome-settings-daemon.install b/testing/gnome-settings-daemon/gnome-settings-daemon.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/testing/gnome-settings-daemon/gnome-settings-daemon.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-settings-daemon/screensaver.patch b/testing/gnome-settings-daemon/screensaver.patch
new file mode 100644
index 000000000..bbcfe3430
--- /dev/null
+++ b/testing/gnome-settings-daemon/screensaver.patch
@@ -0,0 +1,145 @@
+From b47e4019a12ac84fba31e1c631d878ce03fa3808 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Wed, 17 Oct 2012 22:44:54 +0000
+Subject: power: Add a watchdog to keep X's builtin screen saver disabled
+
+X's builtin screen saver may activate DPMS. Since we want to activate
+DPMS ourselves according to our own policy we must make sure that X's
+screen saver remains disabled.
+
+This code is a copy of the original found in gs-watcher-x11.c from
+gnome-screensaver which stopped being used in GNOME 3.6.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=686339
+---
+diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
+index 0e06495..070cf32 100644
+--- a/plugins/power/gsd-power-manager.c
++++ b/plugins/power/gsd-power-manager.c
+@@ -27,6 +27,7 @@
+ #include <stdio.h>
+ #include <sys/wait.h>
+ #include <glib/gi18n.h>
++#include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <libupower-glib/upower.h>
+ #include <libnotify/notify.h>
+@@ -80,6 +81,8 @@
+ /* Keep this in sync with gnome-shell */
+ #define SCREENSAVER_FADE_TIME 10 /* seconds */
+
++#define XSCREENSAVER_WATCHDOG_TIMEOUT 120 /* seconds */
++
+ enum {
+ GSD_POWER_IDLETIME_NULL_ID,
+ GSD_POWER_IDLETIME_DIM_ID,
+@@ -197,6 +200,7 @@ struct GsdPowerManagerPrivate
+ GsdPowerIdleMode current_idle_mode;
+ guint lid_close_safety_timer_id;
+ GtkStatusIcon *status_icon;
++ guint xscreensaver_watchdog_timer_id;
+ };
+
+ enum {
+@@ -3621,6 +3625,77 @@ engine_session_active_changed_cb (GnomeSettingsSession *session,
+ idle_set_mode (manager, GSD_POWER_IDLE_MODE_NORMAL);
+ }
+
++/* This timer goes off every few minutes, whether the user is idle or not,
++ to try and clean up anything that has gone wrong.
++
++ It calls disable_builtin_screensaver() so that if xset has been used,
++ or some other program (like xlock) has messed with the XSetScreenSaver()
++ settings, they will be set back to sensible values (if a server extension
++ is in use, messing with xlock can cause the screensaver to never get a wakeup
++ event, and could cause monitor power-saving to occur, and all manner of
++ heinousness.)
++
++ This code was originally part of gnome-screensaver, see
++ http://git.gnome.org/browse/gnome-screensaver/tree/src/gs-watcher-x11.c?id=fec00b12ec46c86334cfd36b37771cc4632f0d4d#n530
++ */
++static gboolean
++disable_builtin_screensaver (gpointer unused)
++{
++ int current_server_timeout, current_server_interval;
++ int current_prefer_blank, current_allow_exp;
++ int desired_server_timeout, desired_server_interval;
++ int desired_prefer_blank, desired_allow_exp;
++
++ XGetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
++ &current_server_timeout,
++ &current_server_interval,
++ &current_prefer_blank,
++ &current_allow_exp);
++
++ desired_server_timeout = current_server_timeout;
++ desired_server_interval = current_server_interval;
++ desired_prefer_blank = current_prefer_blank;
++ desired_allow_exp = current_allow_exp;
++
++ desired_server_interval = 0;
++
++ /* I suspect (but am not sure) that DontAllowExposures might have
++ something to do with powering off the monitor as well, at least
++ on some systems that don't support XDPMS? Who know... */
++ desired_allow_exp = AllowExposures;
++
++ /* When we're not using an extension, set the server-side timeout to 0,
++ so that the server never gets involved with screen blanking, and we
++ do it all ourselves. (However, when we *are* using an extension,
++ we tell the server when to notify us, and rather than blanking the
++ screen, the server will send us an X event telling us to blank.)
++ */
++ desired_server_timeout = 0;
++
++ if (desired_server_timeout != current_server_timeout
++ || desired_server_interval != current_server_interval
++ || desired_prefer_blank != current_prefer_blank
++ || desired_allow_exp != current_allow_exp) {
++
++ g_debug ("disabling server builtin screensaver:"
++ " (xset s %d %d; xset s %s; xset s %s)",
++ desired_server_timeout,
++ desired_server_interval,
++ (desired_prefer_blank ? "blank" : "noblank"),
++ (desired_allow_exp ? "expose" : "noexpose"));
++
++ XSetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
++ desired_server_timeout,
++ desired_server_interval,
++ desired_prefer_blank,
++ desired_allow_exp);
++
++ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
++ }
++
++ return TRUE;
++}
++
+ gboolean
+ gsd_power_manager_start (GsdPowerManager *manager,
+ GError **error)
+@@ -3778,6 +3853,9 @@ gsd_power_manager_start (GsdPowerManager *manager,
+ /* set the initial dim time that can adapt for the user */
+ refresh_idle_dim_settings (manager);
+
++ manager->priv->xscreensaver_watchdog_timer_id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
++ disable_builtin_screensaver,
++ NULL);
+ gnome_settings_profile_end (NULL);
+ return TRUE;
+ }
+@@ -3829,6 +3907,11 @@ gsd_power_manager_stop (GsdPowerManager *manager)
+
+ g_clear_object (&manager->priv->idletime);
+ g_clear_object (&manager->priv->status_icon);
++
++ if (manager->priv->xscreensaver_watchdog_timer_id > 0) {
++ g_source_remove (manager->priv->xscreensaver_watchdog_timer_id);
++ manager->priv->xscreensaver_watchdog_timer_id = 0;
++ }
+ }
+
+ static void
+--
+cgit v0.9.0.2
diff --git a/testing/gnome-shell/PKGBUILD b/testing/gnome-shell/PKGBUILD
new file mode 100644
index 000000000..9ad311911
--- /dev/null
+++ b/testing/gnome-shell/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169215 2012-10-18 19:26:02Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Flamelab <panosfilip@gmail.com
+
+pkgname=gnome-shell
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="The next generation GNOME Shell"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/GnomeShell"
+license=('GPL2')
+depends=('caribou' 'folks' 'gcr' 'gjs' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus' 'libcroco' 'libpulse' 'mutter' 'nautilus' 'networkmanager' 'telepathy-logger' 'telepathy-mission-control' 'unzip')
+makedepends=('intltool' 'gnome-doc-utils')
+optdepends=('network-manager-applet: shell integration for networkmanager')
+options=('!libtool' '!emptydirs')
+install=gnome-shell.install
+groups=(gnome)
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('566a9d902f85a89c23dc29f1789f859aa2c5a0de7dffa5235bf5a1885c76a3a7')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-shell \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-shell/gnome-shell.install b/testing/gnome-shell/gnome-shell.install
new file mode 100644
index 000000000..27d70b19d
--- /dev/null
+++ b/testing/gnome-shell/gnome-shell.install
@@ -0,0 +1,19 @@
+pkgname=gnome-shell
+
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/$pkgname.schemas ]; then
+ gconfpkg --uninstall $pkgname
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-system-log/PKGBUILD b/testing/gnome-system-log/PKGBUILD
new file mode 100644
index 000000000..2b4a08ea1
--- /dev/null
+++ b/testing/gnome-system-log/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169214 2012-10-18 19:25:56Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gnome-system-log
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="View your system logs"
+arch=(i686 x86_64)
+url="http://gnome.org"
+license=('GPL2')
+depends=('dconf' 'gtk3')
+makedepends=('intltool' 'itstool' 'docbook-xsl')
+groups=('gnome-extra')
+install=$pkgname.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('46dea7cb8c63c26578bd0c854aa9143e86b094bc676564400bf4c57fc259369a')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-system-log/gnome-system-log.install b/testing/gnome-system-log/gnome-system-log.install
new file mode 100644
index 000000000..847019792
--- /dev/null
+++ b/testing/gnome-system-log/gnome-system-log.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-system-monitor/PKGBUILD b/testing/gnome-system-monitor/PKGBUILD
new file mode 100644
index 000000000..345898ac4
--- /dev/null
+++ b/testing/gnome-system-monitor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169213 2012-10-18 19:25:52Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-system-monitor
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="A system monitor for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libwnck3' 'libgtop' 'gtkmm3' 'librsvg' 'gnome-icon-theme' 'libsystemd')
+makedepends=('itstool' 'docbook-xsl' 'intltool')
+options=(!emptydirs)
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-system-monitor.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('5e427d6c7dbe3cfb87afe3feb93882485f79ce71556e5b855152055d8a6080ab')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gnome-system-monitor/gnome-system-monitor.install b/testing/gnome-system-monitor/gnome-system-monitor.install
new file mode 100644
index 000000000..c25dff2d3
--- /dev/null
+++ b/testing/gnome-system-monitor/gnome-system-monitor.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gnome-terminal/PKGBUILD b/testing/gnome-terminal/PKGBUILD
new file mode 100644
index 000000000..a7cb7d13f
--- /dev/null
+++ b/testing/gnome-terminal/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169212 2012-10-18 19:25:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-terminal
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="The GNOME Terminal Emulator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gconf' 'vte3' 'gsettings-desktop-schemas' 'libsm')
+makedepends=('gnome-doc-utils' 'intltool' 'gtk2' 'itstool' 'docbook-xsl')
+options=('!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-terminal.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('5ee068ca7f4d0e410aabbddee3937559138163d84c00e5bef1e9050beb7409cd')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain gnome-terminal "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
+}
diff --git a/testing/gnome-terminal/gnome-terminal.install b/testing/gnome-terminal/gnome-terminal.install
new file mode 100644
index 000000000..1d8510f06
--- /dev/null
+++ b/testing/gnome-terminal/gnome-terminal.install
@@ -0,0 +1,17 @@
+pkgname=gnome-terminal
+
+post_install() {
+ gconfpkg --install $pkgname
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall $pkgname
+}
diff --git a/testing/gnome-themes-standard/PKGBUILD b/testing/gnome-themes-standard/PKGBUILD
new file mode 100644
index 000000000..92a3bb730
--- /dev/null
+++ b/testing/gnome-themes-standard/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169211 2012-10-18 19:25:43Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=gnome-themes-standard
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Default themes for the GNOME desktop"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('cantarell-fonts' 'ttf-dejavu' 'gtk3' 'gtk-engines' 'librsvg')
+makedepends=('intltool')
+groups=('gnome')
+replaces=('gnome-themes')
+conflicts=('gnome-themes')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('f56dd1f593b0a853041b54f9167aab0cb3689ced9cd8f8f4d777c3116bb4878a')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/gnome-user-share/PKGBUILD b/testing/gnome-user-share/PKGBUILD
new file mode 100644
index 000000000..d5dca3241
--- /dev/null
+++ b/testing/gnome-user-share/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169208 2012-10-18 19:25:32Z jgc $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-user-share
+pkgver=3.0.4
+pkgrel=1
+pkgdesc="Easy to use user-level file sharing for GNOME."
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/gnome-user-share/"
+license=('GPL')
+depends=('mod_dnssd' 'dconf' 'gtk3' 'hicolor-icon-theme' 'libnotify' 'gnome-bluetooth' 'libcanberra')
+makedepends=('intltool' 'nautilus' 'itstool' 'docbook-xsl')
+options=('!emptydirs' '!libtool')
+install=gnome-user-share.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('e1c8ca73163bf77ce7ca1b92db94cd9c4680a24b940d620996c9331ab79edeb8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-user-share \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gnome-user-share/gnome-user-share.install b/testing/gnome-user-share/gnome-user-share.install
new file mode 100644
index 000000000..f7e8c46ac
--- /dev/null
+++ b/testing/gnome-user-share/gnome-user-share.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gobject-introspection/PKGBUILD b/testing/gobject-introspection/PKGBUILD
new file mode 100644
index 000000000..f994ade98
--- /dev/null
+++ b/testing/gobject-introspection/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169206 2012-10-18 19:25:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gobject-introspection
+pkgver=1.34.1.1
+pkgrel=1
+pkgdesc="Introspection system for GObject-based libraries"
+url="https://live.gnome.org/GObjectIntrospection"
+arch=('x86_64' 'i686')
+license=('LGPL' 'GPL')
+depends=('glib2' 'python2')
+makedepends=('cairo')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver::4}/$pkgname-$pkgver.tar.xz)
+sha256sums=('85b9ac268d34311138f3c6bf646c07975eebfae6ae67d9239e1066a42c5d525b')
+
+build() {
+ cd "$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ sed -i '1s|#!/usr/bin/env python$|&2|' \
+ "$pkgdir"/usr/lib/gobject-introspection/giscanner/*.py
+}
diff --git a/testing/grilo-plugins/PKGBUILD b/testing/grilo-plugins/PKGBUILD
new file mode 100644
index 000000000..140b89001
--- /dev/null
+++ b/testing/grilo-plugins/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 169204 2012-10-18 19:25:16Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=grilo-plugins
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="Plugins for Grilo"
+url="http://www.gnome.org"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('grilo' 'sqlite' 'libgcrypt')
+makedepends=(gupnp-av libgdata libquvi gmime rest libtracker-sparql totem-plparser libdmapsharing
+ json-glib)
+optdepends=('gupnp-av: uPnP plugin'
+ 'libgdata: Youtube plugin'
+ 'libquvi: Youtube plugin'
+ 'sqlite: Podcasts plugin'
+ 'gmime: Podcasts plugin'
+ 'rest: Blip.tv plugin'
+ 'libtracker-sparql: Tracker plugin'
+ 'totem-plparser: Optical media plugin'
+ 'libdmapsharing: DMAP sharing plugin'
+ 'json-glib: TMDb plugin')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('54e65b734917df74ba5e53d92a3b2e69edd669625820fd0353c22e9b0f61e90d')
+
+build() {
+ cd $pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --enable-shoutcast
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/grilo/PKGBUILD b/testing/grilo/PKGBUILD
new file mode 100644
index 000000000..61e5eb7fd
--- /dev/null
+++ b/testing/grilo/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169205 2012-10-18 19:25:21Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=grilo
+pkgver=0.2.2
+pkgrel=1
+pkgdesc="Framework that provides access to various sources of multimedia content"
+url="http://www.gnome.org"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk3' 'libxml2' 'libsoup')
+makedepends=('gobject-introspection' 'gtk-doc' 'vala')
+optdepends=('grilo-plugins: Plugins for grilo')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('e98d86e9c26dc444f43782e68f44a90da47f69da8a4ac313da9a3795fb72271f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gssdp/PKGBUILD b/testing/gssdp/PKGBUILD
new file mode 100644
index 000000000..b9adf6345
--- /dev/null
+++ b/testing/gssdp/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169202 2012-10-18 19:25:09Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gssdp
+pkgver=0.12.2.1
+pkgrel=1
+pkgdesc="A GObject-based API for handling resource discovery and announcement over SSDP"
+arch=('i686' 'x86_64')
+url="http://gupnp.org/"
+license=('LGPL')
+depends=('libsoup')
+makedepends=('gobject-introspection' 'gtk2' 'gtk-doc')
+optdepends=('gtk2: gssdp-device-sniffer')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:4}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('928aa257815d044fdbfc740f5799530d41897947b5d7854173f636b36d728414')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gst-libav/PKGBUILD b/testing/gst-libav/PKGBUILD
new file mode 100644
index 000000000..9d07843ed
--- /dev/null
+++ b/testing/gst-libav/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 169201 2012-10-18 19:25:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gst-libav
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Gstreamer libav Plugin"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('gst-plugins-base-libs' 'bzip2')
+makedepends=('yasm')
+options=(!libtool !emptydirs)
+provides=("gst-ffmpeg=$pkgver-pkgrel")
+source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz)
+sha256sums=('7c998468ffa57b5d1c2c76d6857dbc0c4ed87fd207ef71bf96aeaada6a1cfa89')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --with-libav-extra-configure="--enable-runtime-cpudetect" \
+ --with-package-name="GStreamer libav Plugin (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gst-plugins-bad/PKGBUILD b/testing/gst-plugins-bad/PKGBUILD
new file mode 100644
index 000000000..1326152c6
--- /dev/null
+++ b/testing/gst-plugins-bad/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 153258 2012-03-12 16:05:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gst-plugins-bad
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework Bad Plugins"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('mjpegtools' 'gst-plugins-base-libs' 'curl' 'chromaprint' 'libmms' 'faad2' 'mpg123' 'faac' 'celt' 'libdca' 'soundtouch' 'spandsp' 'libdvdnav' 'libmodplug' 'libgme' 'opus')
+makedepends=('gstreamer' 'schroedinger' 'gtk3' 'libexif' 'libdvdread' 'libvdpau' 'libmpeg2')
+options=(!libtool !emptydirs)
+source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz)
+sha256sums=('5e3cffcd258c4c722c880a52ebc9920d6b38aa4153bbc49d1b5a9893885d45f3')
+
+build() {
+ cd $pkgname-$pkgver
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Bad Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/" \
+ --with-gtk=3.0
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gst-plugins-base/PKGBUILD b/testing/gst-plugins-base/PKGBUILD
new file mode 100644
index 000000000..27c9ccd41
--- /dev/null
+++ b/testing/gst-plugins-base/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 153256 2012-03-12 15:48:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gst-plugins-base
+pkgname=('gst-plugins-base-libs' 'gst-plugins-base')
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework Base Plugins"
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('pkgconfig' 'gstreamer' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection')
+options=(!libtool !emptydirs)
+url="http://gstreamer.freedesktop.org/"
+source=(${url}/src/$pkgbase/$pkgbase-${pkgver}.tar.xz)
+sha256sums=('75466452e4267fff86e322bc52ed0c962c6c3785f802230fe898cb09984b8de0')
+
+build() {
+ cd $pkgbase-$pkgver
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Base Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+ make
+ sed -e 's/^SUBDIRS_EXT =.*/SUBDIRS_EXT =/' -i Makefile
+}
+
+check() {
+ cd $pkgbase-$pkgver
+ # Testsuite fails on one test. Some refcount leak
+ #make check
+}
+
+package_gst-plugins-base-libs() {
+ pkgdesc="GStreamer Multimedia Framework Base Plugin libraries"
+ depends=('gstreamer' 'orc' 'libxv')
+
+ cd $pkgbase-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gst-plugins-base() {
+ depends=("gst-plugins-base-libs=$pkgver" 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango')
+
+ cd $pkgbase-$pkgver
+ make -C gst-libs DESTDIR="${pkgdir}" install
+ make -C ext DESTDIR="${pkgdir}" install
+ make -C gst-libs DESTDIR="${pkgdir}" uninstall
+}
diff --git a/testing/gst-plugins-good/PKGBUILD b/testing/gst-plugins-good/PKGBUILD
new file mode 100644
index 000000000..8ae52cc53
--- /dev/null
+++ b/testing/gst-plugins-good/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 153258 2012-03-12 16:05:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gst-plugins-good
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="GStreamer Multimedia Framework Good Plugins"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('libpulse' 'jack' 'libsoup' 'gst-plugins-base-libs' 'wavpack' 'aalib' 'taglib' 'libdv' 'libshout' 'libvpx' 'gdk-pixbuf2' 'libcaca' 'libavc1394' 'libiec61883' 'libxdamage' 'v4l-utils')
+makedepends=('gstreamer' 'speex' 'flac' 'libraw1394')
+options=(!libtool !emptydirs)
+source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz)
+md5sums=('30bc72d77d274289844e2138ca79c840')
+
+build() {
+ cd $pkgname-$pkgver
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Good Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gst-plugins-ugly/PKGBUILD b/testing/gst-plugins-ugly/PKGBUILD
new file mode 100644
index 000000000..b585e6aaf
--- /dev/null
+++ b/testing/gst-plugins-ugly/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 169196 2012-10-18 19:24:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gst-plugins-ugly
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework Ugly Plugins"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('gst-plugins-base-libs' 'libdvdread' 'lame' 'libmpeg2' 'a52dec' 'libmad' 'libsidplay' 'libcdio' 'x264' 'opencore-amr')
+options=(!libtool !emptydirs)
+source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz)
+sha256sums=('378952a36e553f65fc1fcbcb0cc445304337e2e75503fb6b5f0ca2c05405e4f0')
+
+build() {
+ cd $pkgname-$pkgver
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Ugly Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gstreamer/PKGBUILD b/testing/gstreamer/PKGBUILD
new file mode 100644
index 000000000..474424f8a
--- /dev/null
+++ b/testing/gstreamer/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 153251 2012-03-12 14:53:13Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('libxml2' 'glib2')
+optdepends=('sh: feedback script')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz)
+sha256sums=('e0e5478bc81caa7e208b0863419bb98b2fbef281a7c806bea61bd70db8c9d3dc')
+
+build() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib \
+ --with-package-name="GStreamer (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/" \
+ --enable-gtk-doc --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/gthumb/PKGBUILD b/testing/gthumb/PKGBUILD
index fdbdf7e3b..8d0b5540e 100644
--- a/testing/gthumb/PKGBUILD
+++ b/testing/gthumb/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 164678 2012-08-02 15:21:33Z andrea $
+# $Id: PKGBUILD 169195 2012-10-18 19:24:39Z jgc $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
pkgname=gthumb
-pkgver=3.0.1
-pkgrel=2
+pkgver=3.1.1
+pkgrel=1
pkgdesc="Image browser and viewer for the GNOME Desktop"
arch=(i686 x86_64)
license=('GPL')
url="http://live.gnome.org/gthumb"
depends=('desktop-file-utils' 'hicolor-icon-theme' 'dconf' 'librsvg' 'clutter-gtk'
- 'gstreamer0.10-base' 'gsettings-desktop-schemas')
+ 'gstreamer0.10-base' 'gsettings-desktop-schemas' 'libwebp')
makedepends=('intltool' 'gnome-doc-utils' 'libchamplain' 'libopenraw' 'exiv2' 'libsoup-gnome'
'brasero' 'librsvg' 'libopenraw' 'liboauth')
optdepends=('libopenraw: read RAW files'
@@ -23,7 +23,7 @@ optdepends=('libopenraw: read RAW files'
options=('!libtool' '!emptydirs')
install=gthumb.install
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('1fb2939e4896a012c7d0320a31e3c6139214218e9f6ec39c6370febeda94725c')
+sha256sums=('7e725ba38d1220ed09d0657dd365982547856aa0d03c775891de33d04c31e332')
build() {
cd $pkgname-$pkgver
diff --git a/testing/gtk3/PKGBUILD b/testing/gtk3/PKGBUILD
index 270e6a7aa..16e10043b 100644
--- a/testing/gtk3/PKGBUILD
+++ b/testing/gtk3/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 163763 2012-07-19 08:26:23Z heftig $
+# $Id: PKGBUILD 169194 2012-10-18 19:24:35Z jgc $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gtk3
-pkgver=3.4.4
+pkgver=3.6.1
pkgrel=1
pkgdesc="GObject-based multi-platform GUI toolkit (v3)"
arch=('i686' 'x86_64')
url="http://www.gtk.org/"
install=gtk3.install
-depends=('atk' 'cairo' 'gtk-update-icon-cache' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info' 'colord')
+depends=('atk' 'cairo' 'gtk-update-icon-cache' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info' 'colord' 'at-spi2-atk')
makedepends=('gobject-introspection')
options=('!libtool')
backup=(etc/gtk-3.0/settings.ini)
license=('LGPL')
source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz
settings.ini wacom.patch)
-sha256sums=('f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7'
+sha256sums=('fe6c89ae40145b077d7291105e81d4f876be01bf21ddfb9cba449f6be49d7996'
'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621'
'86bda95a14a99d0f596c4ecb2ed715689f71c207c65dfc90a39d4ae7f1c0c0f5')
build() {
diff --git a/testing/gtkhtml4/PKGBUILD b/testing/gtkhtml4/PKGBUILD
new file mode 100644
index 000000000..53ca6a982
--- /dev/null
+++ b/testing/gtkhtml4/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169193 2012-10-18 19:24:30Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtkhtml4
+_pkgbasename=gtkhtml
+pkgver=4.6.0
+pkgrel=1
+pkgdesc="A lightweight HTML renderer/editor widget for GTK3"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtk3' 'enchant' 'iso-codes' 'gnome-icon-theme' 'libsoup')
+makedepends=('intltool')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz)
+sha256sums=('129023d83d5e53f22c7b103ed8668204f78c23837955905315dc95b48618c29e')
+
+build() {
+ cd "$_pkgbasename-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gtkhtml4 \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$_pkgbasename-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gtkmm3/PKGBUILD b/testing/gtkmm3/PKGBUILD
new file mode 100644
index 000000000..b1feb945a
--- /dev/null
+++ b/testing/gtkmm3/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 169192 2012-10-18 19:24:25Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=gtkmm3
+_pkgbasename=gtkmm
+pkgname=('gtkmm3' 'gtkmm3-docs')
+pkgver=3.5.13
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('gtk3' 'pangomm' 'atkmm' 'glibmm-docs' 'mm-common' 'doxygen' 'libxslt')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://www.gtkmm.org/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz)
+sha256sums=('2dcd3654f1e88cd80d1641e91bb9bceb10216ee74ec400c14f7bb7c5e4cecbfc')
+
+build() {
+ cd "$_pkgbasename-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package_gtkmm3() {
+ pkgdesc="C++ bindings for gtk3"
+ depends=('gtk3' 'pangomm' 'atkmm')
+ cd "$_pkgbasename-$pkgver"
+
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+
+ make DESTDIR="$pkgdir" install
+}
+
+package_gtkmm3-docs() {
+ pkgdesc="Developer documentation for gtkmm v3"
+
+ cd "$_pkgbasename-$pkgver"
+ make -C docs DESTDIR="$pkgdir" install
+}
diff --git a/testing/gtksourceview3/PKGBUILD b/testing/gtksourceview3/PKGBUILD
new file mode 100644
index 000000000..b8ab610b1
--- /dev/null
+++ b/testing/gtksourceview3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169191 2012-10-18 19:24:22Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtksourceview3
+_pkgbasename=gtksourceview
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="A text widget adding syntax highlighting and more to GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk3' 'libxml2')
+makedepends=('intltool' 'gobject-introspection' 'glade')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz)
+sha256sums=('7d268618fbe8c2960300a305d38255294c9f497fcbc0e53a1da1bf9bda0d1c7a')
+
+build() {
+ cd "$_pkgbasename-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-glade-catalog
+ make
+}
+
+package() {
+ cd "$_pkgbasename-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gucharmap/PKGBUILD b/testing/gucharmap/PKGBUILD
new file mode 100644
index 000000000..b83e71eea
--- /dev/null
+++ b/testing/gucharmap/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169190 2012-10-18 19:24:18Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gucharmap
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Gnome Unicode Charmap"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('dconf' 'gtk3' 'hicolor-icon-theme')
+makedepends=('gtk-doc' 'intltool' 'gobject-introspection' 'itstool' 'docbook-xsl')
+options=('!libtool' '!emptydirs')
+install=gucharmap.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('778bbc61bedcb6c573800ccebc56d360d988a156727b5a8f8bac9787c1fe7fb4')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile --enable-introspection
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gucharmap/gucharmap.install b/testing/gucharmap/gucharmap.install
new file mode 100644
index 000000000..0a9ddf4c2
--- /dev/null
+++ b/testing/gucharmap/gucharmap.install
@@ -0,0 +1,17 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ (( $(vercmp $2 3.3) < 0 )) && gconfpkg --uninstall gucharmap
+ return 0
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/gupnp/PKGBUILD b/testing/gupnp/PKGBUILD
new file mode 100644
index 000000000..ea140a171
--- /dev/null
+++ b/testing/gupnp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169189 2012-10-18 19:24:14Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gupnp
+pkgver=0.18.4
+pkgrel=1
+pkgdesc="An object-oriented UPNP framework"
+arch=('i686' 'x86_64')
+url="http://gupnp.org/"
+license=('LGPL')
+depends=('gssdp' 'util-linux')
+makedepends=('gobject-introspection' 'gtk-doc')
+optdepends=('python2: gupnp-binding-tool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('6b437d5711b212292c6080626b97480268310da636a6cf937ad6119291af78a1')
+
+build() {
+ cd $pkgname-$pkgver
+ sed -i '1s|^#!.*python$|&2|' tools/gupnp-binding-tool
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --with-context-manager=linux
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/gvfs/PKGBUILD b/testing/gvfs/PKGBUILD
index ab9d29025..98cc2c4f6 100644
--- a/testing/gvfs/PKGBUILD
+++ b/testing/gvfs/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 164298 2012-07-29 23:16:11Z tomegun $
+# $Id: PKGBUILD 169188 2012-10-18 19:24:11Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=gvfs
pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-afp' 'gvfs-gphoto2' 'gvfs-obexftp')
-pkgver=1.12.3
-pkgrel=3
+pkgver=1.14.0
+pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL')
-makedepends=('avahi' 'bluez' 'dbus-glib' 'fuse' 'intltool' 'libarchive' 'libcdio' 'libgphoto2' 'libimobiledevice' 'libsoup-gnome' 'smbclient' 'udisks2')
+makedepends=('avahi' 'bluez' 'dbus-glib' 'fuse' 'intltool' 'libarchive' 'libcdio' 'libgphoto2' 'libimobiledevice' 'libsoup-gnome' 'smbclient' 'udisks2' 'libsecret' 'docbook-xsl' 'gtk3')
url="http://www.gnome.org"
options=(!libtool)
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz)
-sha256sums=('38f69ec92083f86a51e7814e98d2861151f16dfb3abe4b3b39488408e12fd9c2')
+sha256sums=('71ab8cf60070025d1aff9bee1f514fdb45682ffad01b6856cabab1bc3791bfb4')
build() {
cd "$pkgbase-$pkgver"
@@ -24,12 +24,13 @@ build() {
package_gvfs() {
pkgdesc="Userspace virtual filesystem implemented as a pluggable module for gio"
- depends=('avahi' 'dconf' 'fuse' 'libarchive' 'libcdio' 'libsoup-gnome' 'udisks2')
+ depends=('avahi' 'dconf' 'fuse' 'libarchive' 'libcdio' 'libsoup-gnome' 'udisks2' 'libsecret')
optdepends=('gvfs-afc: AFC (mobile devices) support'
'gvfs-smb: SMB/CIFS (Windows client) support'
'gvfs-gphoto2: gphoto2 (PTP camera/MTP media player) support'
'gvfs-obexftp: ObexFTP (bluetooth) support'
- 'gvfs-afp: Apple Filing Protocol (AFP) support')
+ 'gvfs-afp: Apple Filing Protocol (AFP) support'
+ 'gtk3: Recent files support')
install=gvfs.install
cd "$pkgbase-$pkgver"
@@ -47,7 +48,7 @@ package_gvfs() {
package_gvfs-smb() {
pkgdesc="SMB/CIFS (Windows client) backend for gvfs"
- depends=("gvfs=$pkgver" 'smbclient' 'libgnome-keyring')
+ depends=("gvfs=$pkgver" 'smbclient')
install=gvfs-smb.install
cd "$pkgbase-$pkgver/daemon"
diff --git a/testing/harfbuzz/PKGBUILD b/testing/harfbuzz/PKGBUILD
new file mode 100644
index 000000000..3ceed5738
--- /dev/null
+++ b/testing/harfbuzz/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=harfbuzz
+pkgver=0.9.4
+pkgrel=1
+pkgdesc="OpenType text shaping engine."
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/HarfBuzz"
+license=('MIT')
+depends=('icu' 'glib2' 'freetype2')
+makedepends=('icu' 'cairo' 'glib2' 'freetype2')
+optdepends=('cairo: hb-view program')
+options=(!libtool)
+source=(http://www.freedesktop.org/software/harfbuzz/release/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2572f9a810d17a735ef565115463827d075af2371ee5b68e6d77231381f4bddc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/harfbuzz/COPYING"
+}
diff --git a/testing/ibus/PKGBUILD b/testing/ibus/PKGBUILD
new file mode 100644
index 000000000..79bf2f9b3
--- /dev/null
+++ b/testing/ibus/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars at gmail dot com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=ibus
+pkgver=1.4.99.20120822
+pkgrel=1
+pkgdesc="Next Generation Input Bus for Linux"
+arch=('i686' 'x86_64')
+url="http://ibus.googlecode.com"
+license=('LGPL')
+makedepends=('gobject-introspection' 'dconf' 'iso-codes' 'intltool')
+depends=('hicolor-icon-theme' 'gtk2' 'gtk3')
+options=('!libtool')
+install=ibus.install
+source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('46d836b68733953b443859f47ad6991f4584658d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ export PYTHON=python2
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus \
+ --sysconfdir=/etc \
+ --disable-gconf \
+ --enable-dconf \
+ --disable-memconf \
+ --disable-ui
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/ibus/ibus.install b/testing/ibus/ibus.install
new file mode 100644
index 000000000..e4e446693
--- /dev/null
+++ b/testing/ibus/ibus.install
@@ -0,0 +1,17 @@
+post_install() {
+ gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ gtk-query-immodules-3.0 --update-cache
+
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_remove() {
+ gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ gtk-query-immodules-3.0 --update-cache
+
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
diff --git a/testing/json-glib/PKGBUILD b/testing/json-glib/PKGBUILD
new file mode 100644
index 000000000..b1229d31d
--- /dev/null
+++ b/testing/json-glib/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169184 2012-10-18 19:24:00Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=json-glib
+pkgver=0.15.2
+pkgrel=1
+pkgdesc="JSON library built on GLib"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/JsonGlib"
+license=('GPL')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.15/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('f090cd94acc85989e033d72028fa70863d05092ae5bba6b454e70c132b24cdde')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
+check(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
diff --git a/testing/kdebase-workspace/PKGBUILD b/testing/kdebase-workspace/PKGBUILD
index e3384d191..50d2c2724 100644
--- a/testing/kdebase-workspace/PKGBUILD
+++ b/testing/kdebase-workspace/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 168549 2012-10-13 11:06:38Z andrea $
+# $Id: PKGBUILD 169286 2012-10-18 19:49:13Z jgc $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdebase-workspace
_pkgname=kde-workspace
pkgver=4.9.2
-pkgrel=4
+pkgrel=5
pkgdesc="Provides the interface and basic tools for the KDE workspace"
arch=('i686' 'x86_64')
url='https://projects.kde.org/projects/kde/kde-workspace'
@@ -15,22 +15,17 @@ groups=('kde')
# not detected by namcap because libgl depends on it
# but nvidia providing libgl does not depend on libxdamage
depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'libqalculate'
- 'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage'
+ 'qimageblitz' 'polkit-kde' 'xorg-xprop' 'libxdamage'
'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama'
'xorg-xrdb' 'libgles' 'libegl' 'libxres' 'xorg-xrandr'
'xorg-xmessage' 'libusb-compat' 'kde-base-artwork')
-makedepends=('cmake' 'automoc4' 'boost' 'kdebindings-python2' 'networkmanager')
+makedepends=('cmake' 'automoc4' 'boost' 'kdebindings-python2' 'networkmanager' 'mesa')
optdepends=('kde-wallpapers: wallpapers for KDE Plasma Workspaces')
install="${pkgname}.install"
-backup=('usr/share/config/kdm/kdmrc'
- 'etc/pam.d/kde'
- 'etc/pam.d/kde-np'
- 'etc/pam.d/kscreensaver')
-options=('emptydirs')
+backup=('usr/share/config/kdm/kdmrc')
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
- 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service'
- 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch'
- 'kdm.logrotate'
+ 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service' 'kdm.logrotate'
+ 'etc-scripts.patch' 'terminate-server.patch' 'kdm-xinitrd.patch'
'logind-support.patch')
sha1sums=('091bec159d85db2a9a6d6b1b43a53183c23de488'
'5db3a245201bd4a50e65aa2ef583cf5490e4f646'
@@ -38,23 +33,22 @@ sha1sums=('091bec159d85db2a9a6d6b1b43a53183c23de488'
'b7980f2e199963caf8e92b499042d244ece2fca0'
'106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
'b6f8e8692737b11eec1f8022ce74b5b23e247b1b'
- 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'bbe55f2000217474ce7246f12ee437ceaaf7e9ae'
+ 'c079ebd157c836ba996190f0d2bcea1a7828d02c'
'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
'd509dac592bd8b310df27991b208c95b6d907514'
- 'bbe55f2000217474ce7246f12ee437ceaaf7e9ae'
'ccde71c42e19feaf40d3bd76e7396a0cb6df012f')
build() {
cd ${_pkgname}-${pkgver}
+ # reads the shell scripts in /etc/kde/
+ patch -p0 -i "${srcdir}"/etc-scripts.patch
# FS#26120
patch -p1 -i "${srcdir}"/kdm-xinitrd.patch
- patch -p0 -i "${srcdir}"/fixpath.patch
-
# KDEBUG#202629
patch -p0 -i "${srcdir}"/terminate-server.patch
-
# KDEBUG#307412 (fixed upstream)
patch -p1 -i "${srcdir}"/logind-support.patch
@@ -69,7 +63,8 @@ build() {
-DWITH_Xmms=OFF \
-DWITH_Googlegadgets=OFF \
-DWITH_libgps=OFF \
- -DPYTHON_EXECUTABLE=/usr/bin/python2
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DWITH_CkConnector=OFF
make
}
diff --git a/testing/kdebase-workspace/etc-scripts.patch b/testing/kdebase-workspace/etc-scripts.patch
new file mode 100644
index 000000000..903a90a53
--- /dev/null
+++ b/testing/kdebase-workspace/etc-scripts.patch
@@ -0,0 +1,11 @@
+--- startkde.cmake.orig 2009-01-15 14:24:44.000000000 +0100
++++ startkde.cmake 2009-01-15 14:33:08.000000000 +0100
+@@ -206,7 +190,7 @@
+ # For anything else (that doesn't set env vars, or that needs a window manager),
+ # better use the Autostart folder.
+
+-libpath=`kde4-config --path lib | tr : '\n'`
++libpath=`kde4-config --path lib | tr : '\n'`$(echo -e '\n/etc/kde/lib/')
+
+ for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+ for file in "$prefix"*.sh; do
diff --git a/testing/libcroco/PKGBUILD b/testing/libcroco/PKGBUILD
new file mode 100644
index 000000000..87e17f8b5
--- /dev/null
+++ b/testing/libcroco/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169176 2012-10-18 19:23:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libcroco
+pkgver=0.6.7
+pkgrel=1
+pkgdesc="A CSS parsing library"
+arch=('x86_64' 'i686')
+depends=('glib2' 'libxml2')
+makedepends=('intltool')
+license=('LGPL')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/0.6/$pkgname-$pkgver.tar.xz)
+url="http://www.gnome.org"
+sha256sums=('892b8a7e311b80d0a5a633b8204fed5656d7af20e884719e5ec6e340e1f0cd88')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgdata/PKGBUILD b/testing/libgdata/PKGBUILD
new file mode 100644
index 000000000..7b3ac92be
--- /dev/null
+++ b/testing/libgdata/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169183 2012-10-18 19:23:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgdata
+pkgver=0.13.2
+pkgrel=1
+pkgdesc="GLib-based library for accessing online service APIs using the GData protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup-gnome' 'liboauth' 'gcr' 'gnome-online-accounts')
+makedepends=('intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('3dc4e3529b4bf13d4ae4ef7cc4d74c3b5c90bd96e7d9fa83db2066a2b9a36330')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgee/PKGBUILD b/testing/libgee/PKGBUILD
new file mode 100644
index 000000000..ee1cb1739
--- /dev/null
+++ b/testing/libgee/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169182 2012-10-18 19:23:57Z jgc $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgee
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="GObject collection library"
+url="http://live.gnome.org/Libgee"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('glib2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver::3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('b6b008a6b84332b88f5a12f33d56a3fa3a307946cdd70bc17a403822d4f02e7b')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgnome-keyring/PKGBUILD b/testing/libgnome-keyring/PKGBUILD
new file mode 100644
index 000000000..a5fec0581
--- /dev/null
+++ b/testing/libgnome-keyring/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 169181 2012-10-18 19:23:55Z jgc $
+#Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=libgnome-keyring
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME keyring client library"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('dbus-core' 'glib2' 'libgcrypt')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('6dca37fb7b37f800f498031ffe303a567410bec09a9bdd877a18865dafcc9830')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgnomekbd/PKGBUILD b/testing/libgnomekbd/PKGBUILD
new file mode 100644
index 000000000..d19a2dc26
--- /dev/null
+++ b/testing/libgnomekbd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169282 2012-10-18 19:45:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomekbd
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Gnome keyboard library"
+url="http://gswitchit.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxklavier' 'gtk3' 'dconf')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+install=libgnomekbd.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('c41ea5b0f64da470925ba09f9f1b46b26b82d4e433e594b2c71eab3da8856a09')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgnomekbd/libgnomekbd.install b/testing/libgnomekbd/libgnomekbd.install
new file mode 100644
index 000000000..a3d820459
--- /dev/null
+++ b/testing/libgnomekbd/libgnomekbd.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/libgweather/PKGBUILD b/testing/libgweather/PKGBUILD
new file mode 100644
index 000000000..420e2b212
--- /dev/null
+++ b/testing/libgweather/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 169180 2012-10-18 19:23:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgweather
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Provides access to weather information from the net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libsoup-gnome' 'gnome-icon-theme' 'gtk3')
+makedepends=('intltool' 'gtk-doc' 'gobject-introspection' 'gnome-common')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/"
+install=libgweather.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ gettext-not-xml.patch
+ no_external_gettext.patch)
+sha256sums=('93c9ef9bba3feb559c02b860909915fa9ffc7c08b4789a825939236e3e84b676'
+ '40325e0b5464ebb75eaad3c9292c0bab7b15cfefb93011d9ccc0ab82635a9533'
+ 'f07ac07a70ad4999c3acd5d5b82aabd8831e6a45beb9aaed239f212057ded672')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/gettext-not-xml.patch"
+ patch -Np1 -i "$srcdir/no_external_gettext.patch"
+ gtkdocize
+ autoreconf -fi
+
+ cd po
+ intltool-update --pot
+ cd ../po-locations
+ intltool-update --gettext-package libgweather-locations --pot
+ cd ..
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-locations-compression
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+}
diff --git a/testing/libgweather/gettext-not-xml.patch b/testing/libgweather/gettext-not-xml.patch
new file mode 100644
index 000000000..b966c5648
--- /dev/null
+++ b/testing/libgweather/gettext-not-xml.patch
@@ -0,0 +1,551 @@
+Description: Switch to using gettext to find localized names for locations, instead of shipping very large locale-specific XML files with lots of duplicate information.
+Author: ?
+
+only in patch2:
+unchanged:
+Index: libgweather-3.5.1/configure.ac
+===================================================================
+--- libgweather-3.5.1.orig/configure.ac 2012-06-25 03:23:11.000000000 +1200
++++ libgweather-3.5.1/configure.ac 2012-07-05 10:27:51.457384292 +1200
+@@ -46,6 +46,10 @@
+ LT_INIT([dlopen win32-dll disable-static])
+ LT_LIB_M
+
++dnl IT_PROG_INTLTOOL does this for us in the case of the po/ subdir, but we're on our own for po-locations
++AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po-locations/Makefile.in > po-locations/Makefile])
++IT_PO_SUBDIR([po-locations])
++
+ PKG_PROG_PKG_CONFIG([0.19])
+
+ AC_PROG_CC
+@@ -53,13 +57,6 @@
+
+ GLIB_GSETTINGS
+
+-AC_ARG_ENABLE(all-translations-in-one-xml,
+- [AS_HELP_STRING([--enable-all-translations-in-one-xml],
+- [Put all translations in a big Locations.xml file (slow to parse)])],
+- [enable_big_xml=yes],
+- [enable_big_xml=no])
+-AM_CONDITIONAL(USE_ONE_BIG_XML, test "x$enable_big_xml" = "xyes")
+-
+ AC_ARG_ENABLE(locations-compression,
+ [AS_HELP_STRING([--enable-locations-compression],
+ [Compress Locations.xml files])],
+@@ -183,7 +180,7 @@
+ Makefile
+ doc/Makefile
+ po/Makefile.in
+-po-locations/Makefile
++po-locations/Makefile.in
+ libgweather/Makefile
+ libgweather/gweather-3.0.pc
+ libgweather/gweather-3.0-uninstalled.pc
+@@ -192,12 +189,6 @@
+ ])
+ AC_OUTPUT
+
+-if test "x$enable_big_xml" = "xyes"; then
+- LOCATIONS_XML_TRANSLATIONS="one big file"
+-else
+- LOCATIONS_XML_TRANSLATIONS="one file per translation"
+-fi
+-
+ dnl ***************************************************************************
+ dnl *** Display Summary ***
+ dnl ***************************************************************************
+@@ -208,6 +199,4 @@
+ Source code location: ${srcdir}
+ Compiler: ${CC}
+ Introspection support: ${found_introspection}
+- Locations.xml translations: ${LOCATIONS_XML_TRANSLATIONS}
+- Locations.xml compression: ${enable_locations_compression}
+ " >&2
+Index: libgweather-3.5.1/data/Makefile.am
+===================================================================
+--- libgweather-3.5.1.orig/data/Makefile.am 2012-06-06 04:07:53.000000000 +1200
++++ libgweather-3.5.1/data/Makefile.am 2012-07-05 10:27:51.461384292 +1200
+@@ -4,61 +4,21 @@
+ libgweatherlocationsdir = $(pkgdatadir)
+ libgweatherlocations_in_files = Locations.xml.in
+
+-if USE_ONE_BIG_XML
+-
+-LOCATIONS_STAMP =
+-
+-libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml$(COMPRESS_EXT))
+-
+-%.xml$(COMPRESS_EXT): %.xml.in $(wildcard $(top_srcdir)/po-locations/*.po)
+- $(AM_V_GEN)LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"` && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"`; \
+- fi
+-
+-else # USE_ONE_BIG_XML
+-
+ LOCATIONS_STAMP = stamp-Locations.xml
+
+-PO_LOCATIONS = $(shell if test -n "$(LINGUAS)"; then for lang in $(LINGUAS); do if test -f "$(top_srcdir)/po-locations/$$lang.po"; then echo "$(top_srcdir)/po-locations/$$lang.po "; fi; done; else for pofile in $(top_srcdir)/po-locations/*.po; do echo $$pofile; done; fi)
+-
+ # Helper variable
+-libgweatherlocations_data = $(libgweatherlocations_in_files:.xml.in=.xml)
+-
+-libgweatherlocations_DATA = $(shell echo $(PO_LOCATIONS) | sed "s|$(top_srcdir)/po-locations/|Locations.|g;s|\.po|.xml$(COMPRESS_EXT)|g") $(libgweatherlocations_data)$(COMPRESS_EXT)
++libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml)
+
+ # We need this step so that we merge all the make Locations.xy.xml destinations
+ # into one unique destination. This makes -j2 work. (Else, we end up with
+ # multiple and conflicting calls to intltool-merge)
+ $(libgweatherlocations_DATA): $(LOCATIONS_STAMP)
+
+-$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) $(PO_LOCATIONS) Makefile
+- $(AM_V_at)LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< $(libgweatherlocations_data) && \
+- for pofile in $(PO_LOCATIONS); do \
+- locale=`echo $$pofile | sed "s;$(top_srcdir)/po-locations/\(.*\)\.po;\1;"`; \
+- xmllint --noblanks -o Locations.$$locale.xml $$locale/$(libgweatherlocations_data); \
+- rm -f $$locale/$(libgweatherlocations_data); \
+- test -d $$locale && rmdir $$locale; \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.$$locale.xml; \
+- fi; \
+- done && \
+- xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_data) && \
+- rm -f C/$(libgweatherlocations_data) && \
+- test -d C && rmdir C && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.xml; \
+- fi && \
+- touch $@
+-
+-endif # USE_ONE_BIG_XML
+-
+-### Locations.xml.in rebuild
+-rebuild-locations: locationdb.sqlite update-locations.py
+- $(AM_V_GEN)($(srcdir)/update-locations.py > Locations.xml.in.new && mv Locations.xml.in.new Locations.xml.in) || rm -f Locations.xml.in.new
+-
+-locationdb.sqlite: build-locationdb.pl major-cities.txt sources/nsd_cccc.txt sources/POP_PLACES.txt sources/US_CONCISE.txt sources/geonames_dd_dms_date_*.txt city-fixups.pl station-fixups.pl
+- $(AM_V_GEN)$(srcdir)/build-locationdb.pl
++$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) Makefile
++ LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache /dev/null $< $(libgweatherlocations_DATA) && \
++ xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_DATA) && \
++ rm -f C/$(libgweatherlocations_DATA) && \
++ touch $@
+
+ check:
+ xmllint --valid --noout $(top_srcdir)/data/Locations.xml.in
+Index: libgweather-3.5.1/libgweather/gweather-location.c
+===================================================================
+--- libgweather-3.5.1.orig/libgweather/gweather-location.c 2012-06-15 08:15:23.000000000 +1200
++++ libgweather-3.5.1/libgweather/gweather-location.c 2012-07-05 10:27:51.461384292 +1200
+@@ -22,11 +22,14 @@
+ #include <config.h>
+ #endif
+
++#include "config.h"
++
+ #include <string.h>
+ #include <math.h>
+ #include <locale.h>
+ #include <gtk/gtk.h>
+ #include <libxml/xmlreader.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-location.h"
+@@ -157,10 +160,20 @@
+
+ tagname = (const char *) xmlTextReaderConstName (parser->xml);
+ if (!strcmp (tagname, "name") && !loc->name) {
+- value = gweather_parser_get_localized_value (parser);
++ char *context = NULL;
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++
++ value = gweather_parser_get_value (parser);
+ if (!value)
+ goto error_out;
+- loc->name = g_strdup (value);
++
++ if (context != NULL) {
++ loc->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, value));
++ xmlFree (context);
++ }
++ else
++ loc->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",value));
++
+ xmlFree (value);
+ normalized = g_utf8_normalize (loc->name, -1, G_NORMALIZE_ALL);
+ loc->sort_name = g_utf8_casefold (normalized, -1);
+Index: libgweather-3.5.1/libgweather/gweather-timezone.c
+===================================================================
+--- libgweather-3.5.1.orig/libgweather/gweather-timezone.c 2011-11-16 01:03:32.000000000 +1300
++++ libgweather-3.5.1/libgweather/gweather-timezone.c 2012-07-05 10:27:51.461384292 +1200
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <string.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-timezone.h"
+@@ -154,7 +155,7 @@
+ parse_timezone (GWeatherParser *parser)
+ {
+ GWeatherTimezone *zone = NULL;
+- char *id = NULL, *name = NULL;
++ char *id = NULL, *name = NULL, *context = NULL;
+ int offset = 0, dst_offset = 0;
+ gboolean has_dst = FALSE;
+
+@@ -177,27 +178,34 @@
+ continue;
+ }
+
+- if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name"))
+- name = gweather_parser_get_localized_value (parser);
++ if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name")) {
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++ name = gweather_parser_get_value (parser);
++ }
+ else {
+ if (xmlTextReaderNext (parser->xml) != 1)
+ break;
+ }
+ }
+ }
+-
++
+ if (parse_tzdata (id, parser->year_start, parser->year_end,
+ &offset, &has_dst, &dst_offset)) {
+ zone = g_slice_new0 (GWeatherTimezone);
+ zone->ref_count = 1;
+ zone->id = g_strdup (id);
+- zone->name = g_strdup (name);
++ if (context != NULL)
++ zone->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, name));
++ else
++ zone->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",name));
+ zone->offset = offset;
+ zone->has_dst = has_dst;
+ zone->dst_offset = dst_offset;
+ }
+
+ xmlFree (id);
++ if (context)
++ xmlFree (context);
+ if (name)
+ xmlFree (name);
+
+Index: libgweather-3.5.1/po-locations/LINGUAS
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libgweather-3.5.1/po-locations/LINGUAS 2012-07-05 10:27:51.461384292 +1200
+@@ -0,0 +1,78 @@
++ang
++ar
++as
++az
++be
++be@latin
++bg
++bn_IN
++bn
++bs
++ca
++cs
++cy
++da
++de
++dz
++el
++en_CA
++en_GB
++es
++et
++eu
++fa
++fi
++fr
++ga
++gl
++gu
++he
++hi
++hr
++hu
++id
++it
++ja
++ka
++kn
++ko
++ku
++ky
++lt
++lv
++mai
++mg
++mk
++ml
++mn
++mr
++ms
++nb
++ne
++nl
++nn
++oc
++or
++pa
++pl
++pt_BR
++pt
++ro
++ru
++rw
++si
++sk
++sl
++sq
++sr@latin
++sr
++sv
++ta
++te
++th
++tr
++uk
++vi
++zh_CN
++zh_HK
++zh_TW
+Index: libgweather-3.5.1/po-locations/Makefile.in.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libgweather-3.5.1/po-locations/Makefile.in.in 2012-07-05 10:27:51.461384292 +1200
+@@ -0,0 +1,217 @@
++# Makefile for program source directory in GNU NLS utilities package.
++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
++# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
++#
++# This file may be copied and used freely without restrictions. It may
++# be used in projects which are not available under a GNU Public License,
++# but which still want to provide support for the GNU gettext functionality.
++#
++# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
++# instead of PACKAGE and to look for po2tbl in ./ not in intl/
++#
++# - Modified by jacob berkman <jacob@ximian.com> to install
++# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
++#
++# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
++#
++# We have the following line for use by intltoolize:
++# INTLTOOL_MAKEFILE
++
++GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-locations
++PACKAGE = @PACKAGE@
++VERSION = @VERSION@
++
++SHELL = /bin/sh
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++top_builddir = @top_builddir@
++VPATH = @srcdir@
++
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++datadir = @datadir@
++datarootdir = @datarootdir@
++libdir = @libdir@
++DATADIRNAME = @DATADIRNAME@
++itlocaledir = $(prefix)/$(DATADIRNAME)/locale
++subdir = po-locations
++install_sh = @install_sh@
++# Automake >= 1.8 provides @mkdir_p@.
++# Until it can be supposed, use the safe fallback:
++mkdir_p = $(install_sh) -d
++
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++
++GMSGFMT = @GMSGFMT@
++MSGFMT = @MSGFMT@
++XGETTEXT = @XGETTEXT@
++INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
++INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
++MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
++GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
++
++ALL_LINGUAS = @ALL_LINGUAS@
++
++PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
++
++USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
++
++USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
++
++POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
++
++DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
++EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
++
++POTFILES = \
++# This comment gets stripped out
++
++CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
++
++.SUFFIXES:
++.SUFFIXES: .po .pox .gmo .mo .msg .cat
++
++.po.pox:
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
++
++.po.mo:
++ $(MSGFMT) -o $@ $<
++
++.po.gmo:
++ file=`echo $* | sed 's,.*/,,'`.gmo \
++ && rm -f $$file && $(GMSGFMT) -o $$file $<
++
++.po.cat:
++ sed -f ../intl/po2msg.sed < $< > $*.msg \
++ && rm -f $@ && gencat $@ $*.msg
++
++
++all: all-@USE_NLS@
++
++all-yes: $(CATALOGS)
++all-no:
++
++$(GETTEXT_PACKAGE).pot: $(POTFILES)
++ $(GENPOT)
++
++install: install-data
++install-data: install-data-@USE_NLS@
++install-data-no: all
++install-data-yes: all
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
++ $(mkdir_p) $$dir; \
++ if test -r $$lang.gmo; then \
++ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
++ else \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $(srcdir)/$$lang.gmo as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo"; \
++ fi; \
++ if test -r $$lang.gmo.m; then \
++ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ if test -r $(srcdir)/$$lang.gmo.m ; then \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
++ $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $(srcdir)/$$lang.gmo.m as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ true; \
++ fi; \
++ fi; \
++ done
++
++# Empty stubs to satisfy archaic automake needs
++dvi info tags TAGS ID:
++
++# Define this as empty until I found a useful application.
++install-exec installcheck:
++
++uninstall:
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
++ done
++
++check: all $(GETTEXT_PACKAGE).pot
++ rm -f missing notexist
++ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
++ if [ -r missing -o -r notexist ]; then \
++ exit 1; \
++ fi
++
++mostlyclean:
++ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
++ rm -f .intltool-merge-cache
++
++clean: mostlyclean
++
++distclean: clean
++ rm -f Makefile Makefile.in POTFILES stamp-it
++ rm -f *.mo *.msg *.cat *.cat.m *.gmo
++
++maintainer-clean: distclean
++ @echo "This command is intended for maintainers to use;"
++ @echo "it deletes files that may require special tools to rebuild."
++ rm -f Makefile.in.in
++
++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
++dist distdir: $(DISTFILES)
++ dists="$(DISTFILES)"; \
++ extra_dists="$(EXTRA_DISTFILES)"; \
++ for file in $$extra_dists; do \
++ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
++ done; \
++ for file in $$dists; do \
++ test -f $$file || file="$(srcdir)/$$file"; \
++ ln $$file $(distdir) 2> /dev/null \
++ || cp -p $$file $(distdir); \
++ done
++
++update-po: Makefile
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ tmpdir=`pwd`; \
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ echo "$$lang:"; \
++ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
++ if $$result; then \
++ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
++ rm -f $$tmpdir/$$lang.new.po; \
++ else \
++ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
++ :; \
++ else \
++ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ exit 1; \
++ fi; \
++ fi; \
++ else \
++ echo "msgmerge for $$lang.gmo failed!"; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ fi; \
++ done
++
++Makefile POTFILES: stamp-it
++ @if test ! -f $@; then \
++ rm -f stamp-it; \
++ $(MAKE) stamp-it; \
++ fi
++
++stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
++ $(SHELL) ./config.status
++
++# Tell versions [3.59,3.63) of GNU make not to export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+Index: libgweather-3.5.1/po-locations/POTFILES.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libgweather-3.5.1/po-locations/POTFILES.in 2012-07-05 10:27:51.461384292 +1200
+@@ -0,0 +1,4 @@
++# This list should contain *only* data/Locations.xml.in.
++# Everything else should be in POTFILES.skip.
++[encoding:UTF-8]
++data/Locations.xml.in
diff --git a/testing/libgweather/libgweather.install b/testing/libgweather/libgweather.install
new file mode 100644
index 000000000..3ba0d0a48
--- /dev/null
+++ b/testing/libgweather/libgweather.install
@@ -0,0 +1,18 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/gnome
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/libgweather.schemas ]; then
+ gconfpkg --uninstall libgweather
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/libgweather/no_external_gettext.patch b/testing/libgweather/no_external_gettext.patch
new file mode 100644
index 000000000..64b3c5ad5
--- /dev/null
+++ b/testing/libgweather/no_external_gettext.patch
@@ -0,0 +1,14 @@
+Index: libgweather-3.5.1/configure.ac
+===================================================================
+--- libgweather-3.5.1.orig/configure.ac 2012-07-05 10:33:10.277373254 +1200
++++ libgweather-3.5.1/configure.ac 2012-07-05 10:33:44.957372053 +1200
+@@ -97,9 +97,6 @@
+ dnl gettext
+ IT_PROG_INTLTOOL([0.50.0])
+
+-AM_GNU_GETTEXT_VERSION([0.18])
+-AM_GNU_GETTEXT([external])
+-
+ GETTEXT_PACKAGE=libgweather-3.0
+ AC_SUBST(GETTEXT_PACKAGE)
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext Package])
diff --git a/testing/libnice/PKGBUILD b/testing/libnice/PKGBUILD
new file mode 100644
index 000000000..05890543b
--- /dev/null
+++ b/testing/libnice/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 500 2009-08-01 11:44:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=libnice
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams)"
+arch=('i686' 'x86_64')
+url="http://nice.freedesktop.org"
+license=('LGPL')
+depends=('glib2')
+makedepends=('gstreamer' 'gstreamer0.10')
+optdepends=('gstreamer' 'gstreamer0.10')
+options=('!libtool')
+source=(http://nice.freedesktop.org/releases/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+md5sums=('1a0907605f852dcda32a3b3daf38d36c')
diff --git a/testing/libpeas/PKGBUILD b/testing/libpeas/PKGBUILD
new file mode 100644
index 000000000..a226b8b09
--- /dev/null
+++ b/testing/libpeas/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 169178 2012-10-18 19:23:50Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=libpeas
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="A GObject-based plugins engine"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('gtk3' 'hicolor-icon-theme' 'gobject-introspection')
+makedepends=('gtk-doc' 'intltool' 'python2-gobject' 'gjs' 'seed' 'glade')
+optdepends=('gjs: gobject-based plugin engine - gjs runtime loader'
+ 'seed: gobject-based plugin engine - seed runtime loader')
+options=('!libtool')
+install=libpeas.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('7f133f44101594e0f96a0e5fe69c5893cde500f3edf916f680467dfd74de5c39')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/libpeas/libpeas.install b/testing/libpeas/libpeas.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/testing/libpeas/libpeas.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/libpwquality/PKGBUILD b/testing/libpwquality/PKGBUILD
new file mode 100644
index 000000000..b40a35d4b
--- /dev/null
+++ b/testing/libpwquality/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libpwquality
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Library for password quality checking and generating random passwords"
+arch=('i686' 'x86_64')
+url="https://fedorahosted.org/libpwquality/"
+license=('GPL')
+options=('!libtool')
+depends=('cracklib')
+optdepends=('python2: Python bindings')
+makedepends=('python2')
+source=(https://fedorahosted.org/releases/l/i/libpwquality/$pkgname-$pkgver.tar.bz2)
+md5sums=('8827419118064539db70090cbed5cb21')
+
+build() {
+ cd "$pkgname-$pkgver"
+ sed -i -e 's/python setup.py/python2 setup.py/' python/Makefile.in
+
+ PYTHON=python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/librsvg/PKGBUILD b/testing/librsvg/PKGBUILD
new file mode 100644
index 000000000..5389ec8a3
--- /dev/null
+++ b/testing/librsvg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 169175 2012-10-18 19:23:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=librsvg
+pkgver=2.36.4
+pkgrel=1
+pkgdesc="A SVG viewing library"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gdk-pixbuf2' 'pango' 'libcroco')
+makedepends=('intltool' 'gtk2' 'gtk3' 'gobject-introspection')
+optdepends=('gtk3: for rsvg-view-3'
+ 'gtk2: gtk2 SVG engine module')
+options=('!libtool' '!emptydirs')
+url="http://librsvg.sourceforge.net/"
+install=librsvg.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('1021935204798f4f0ad3004a09b583668ea94a48593461b147fdcff68a18e6c2')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/librsvg/librsvg.install b/testing/librsvg/librsvg.install
new file mode 100644
index 000000000..8852ebf28
--- /dev/null
+++ b/testing/librsvg/librsvg.install
@@ -0,0 +1,11 @@
+post_install() {
+ gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/libsecret/PKGBUILD b/testing/libsecret/PKGBUILD
new file mode 100644
index 000000000..1ec9f5695
--- /dev/null
+++ b/testing/libsecret/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 166488 2012-09-08 10:31:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libsecret
+pkgver=0.10
+pkgrel=1
+pkgdesc='library for storing and retrieving passwords and other secrets.'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="https://live.gnome.org/Libsecret"
+depends=('glib2' 'libgcrypt')
+makedepends=('intltool' 'docbook-xsl')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz)
+sha256sums=('4015ac83042fa408bf66ca8526709662d194fe566181db6ab3d86a6ea4ab8880')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libsoup/PKGBUILD b/testing/libsoup/PKGBUILD
new file mode 100644
index 000000000..084b15b16
--- /dev/null
+++ b/testing/libsoup/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 169173 2012-10-18 19:23:38Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libsoup
+pkgname=('libsoup' 'libsoup-gnome')
+pkgver=2.40.1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2' 'libxml2' 'sqlite' 'libgnome-keyring' 'intltool' 'gobject-introspection' 'glib-networking' 'python2')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz)
+options=('!libtool' '!emptydirs')
+sha256sums=('77a55d57e7e8055acd2f44e0cc889b9ba48052e8b7f07e829157d57417ac650a')
+
+build() {
+ cd "$pkgbase-$pkgver"
+ sed -i -e 's/env python/python2/' libsoup/tld-parser.py
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package_libsoup() {
+ pkgdesc="GNOME HTTP Library - base library"
+ depends=('glib2' 'libxml2' 'glib-networking')
+
+ cd "$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ rm -f "$pkgdir"/usr/lib/libsoup-gnome-2.4.*
+ rm -f "$pkgdir/usr/lib/pkgconfig/libsoup-gnome-2.4.pc"
+ rm -rf "$pkgdir/usr/include/libsoup-gnome-2.4"
+ rm -f "$pkgdir/usr/lib/girepository-1.0/SoupGNOME-2.4.typelib"
+}
+
+package_libsoup-gnome() {
+ pkgdesc="GNOME HTTP Library - GNOME libraries"
+ depends=("libsoup=$pkgver" 'libgnome-keyring' 'sqlite')
+
+ cd "$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ rm -f "$pkgdir"/usr/lib/libsoup-2.4.*
+ rm -f "$pkgdir/usr/lib/pkgconfig/libsoup-2.4.pc"
+ rm -rf "$pkgdir/usr/include/libsoup-2.4"
+ rm -rf "$pkgdir/usr/share"
+ rm -f "$pkgdir/usr/lib/girepository-1.0/Soup-2.4.typelib"
+}
diff --git a/testing/libxklavier/PKGBUILD b/testing/libxklavier/PKGBUILD
new file mode 100644
index 000000000..1c8023bd1
--- /dev/null
+++ b/testing/libxklavier/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 169172 2012-10-18 19:23:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+
+pkgname=libxklavier
+pkgver=5.3
+pkgrel=1
+pkgdesc="High-level API for X Keyboard Extension"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2' 'libxkbfile' 'libxml2' 'xkeyboard-config' 'libxi' 'iso-codes')
+makedepends=('gobject-introspection')
+options=('!libtool' '!emptydirs')
+url="http://gswitchit.sourceforge.net"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver::3}/$pkgname-$pkgver.tar.xz)
+sha256sums=('ebec3bc54b5652838502b96223152fb1cd8fcb14ace5cb02d718fc3276bbd404')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --with-xkb-base=/usr/share/X11/xkb --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libzapojit/PKGBUILD b/testing/libzapojit/PKGBUILD
new file mode 100644
index 000000000..d3c5c1690
--- /dev/null
+++ b/testing/libzapojit/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169171 2012-10-18 19:23:32Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=libzapojit
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="GLib/GObject wrapper for the SkyDrive and Hotmail REST APIs"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup' 'gnome-online-accounts')
+makedepends=('intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('7b5a2fcf8e94fa8c869098b8461104633f4b046c471a03e3fea2b1a358574b24')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/libzeitgeist/PKGBUILD b/testing/libzeitgeist/PKGBUILD
new file mode 100644
index 000000000..65137cd82
--- /dev/null
+++ b/testing/libzeitgeist/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: kiefer <jorgelmadrid@gmail.com>
+# Contributor: Alessio Sergi <asergi at archlinux dot us>
+
+pkgname=libzeitgeist
+pkgver=0.3.18
+_pkgmainver=0.3
+pkgrel=3
+pkgdesc="Zeitgeist client library"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/libzeitgeist"
+license=('LGPL2.1')
+depends=('glib2')
+optdepends=("zeitgeist: zeitgeist framework")
+options=('!libtool')
+source=(http://launchpad.net/${pkgname}/${_pkgmainver}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('d63a37295d01a58086d0d4ae26e604c2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/mousetweaks/PKGBUILD b/testing/mousetweaks/PKGBUILD
new file mode 100644
index 000000000..4dddd4cb5
--- /dev/null
+++ b/testing/mousetweaks/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 2392 2008-06-01 19:38:25Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=mousetweaks
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Mouse accessibility enhancements for the GNOME desktop"
+arch=(i686 x86_64)
+license=('GPL3' 'FDL')
+depends=('libxtst' 'gtk3' 'gsettings-desktop-schemas')
+makedepends=('gnome-doc-utils' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=mousetweaks.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('2c48f655c5b53615270503fd1631e0cf7baa5872b20f75af8608983f039c5cfc')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/mousetweaks/mousetweaks.install b/testing/mousetweaks/mousetweaks.install
new file mode 100644
index 000000000..1ae919322
--- /dev/null
+++ b/testing/mousetweaks/mousetweaks.install
@@ -0,0 +1,17 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall mousetweaks
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/mutter/PKGBUILD b/testing/mutter/PKGBUILD
new file mode 100644
index 000000000..08e3155ac
--- /dev/null
+++ b/testing/mutter/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169169 2012-10-18 19:23:25Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
+
+pkgname=mutter
+pkgver=3.6.1
+pkgrel=2
+pkgdesc="A window manager for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('clutter' 'dconf' 'gobject-introspection' 'gsettings-desktop-schemas' 'libcanberra' 'startup-notification' 'zenity' 'libsm')
+makedepends=('intltool' 'gnome-doc-utils')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=mutter.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('4bec46ceb114a78d5f851823d8966b9b386a9319fbec740ff59bf5eb265d6637')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/mutter \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/mutter/mutter.install b/testing/mutter/mutter.install
new file mode 100644
index 000000000..c47f1cef2
--- /dev/null
+++ b/testing/mutter/mutter.install
@@ -0,0 +1,19 @@
+pkgname=mutter
+
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/$pkgname.schemas ]; then
+ /usr/sbin/gconfpkg --uninstall $pkgname
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/nautilus-open-terminal/PKGBUILD b/testing/nautilus-open-terminal/PKGBUILD
new file mode 100644
index 000000000..a3104098a
--- /dev/null
+++ b/testing/nautilus-open-terminal/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169167 2012-10-18 19:23:18Z jgc $
+# Maintainer : Biru Ionut <ionut@archlinux.ro>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=nautilus-open-terminal
+pkgver=0.19
+pkgrel=3
+pkgdesc="A nautilus plugin for opening terminals in arbitrary local paths"
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/nautilus-open-terminal"
+license=('GPL')
+depends=('nautilus' 'gconf')
+makedepends=('pkgconfig' 'gettext' 'intltool')
+install=nautilus-open-terminal.install
+source=(ftp://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('4760f3a5a862ba9239ea92690a42ecee2c68fad413b023dd06505bdb3ee1f6af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -dm755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain ${pkgname} "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -rf "${pkgdir}"/etc/gconf/schemas
+}
diff --git a/testing/nautilus-open-terminal/nautilus-open-terminal.install b/testing/nautilus-open-terminal/nautilus-open-terminal.install
new file mode 100644
index 000000000..f7cdb9507
--- /dev/null
+++ b/testing/nautilus-open-terminal/nautilus-open-terminal.install
@@ -0,0 +1,17 @@
+pkgname=nautilus-open-terminal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/testing/nautilus-sendto/PKGBUILD b/testing/nautilus-sendto/PKGBUILD
new file mode 100644
index 000000000..1cf003352
--- /dev/null
+++ b/testing/nautilus-sendto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169166 2012-10-18 19:23:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=nautilus-sendto
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Nautilus context menu for sending files."
+arch=('i686' 'x86_64')
+url="http://download.gnome.org/sources/nautilus-sendto/"
+license=('GPL')
+groups=('gnome-extra')
+depends=('evolution-data-server' 'nautilus' 'dconf')
+makedepends=('pidgin' 'gajim' 'gettext' 'intltool' 'gupnp')
+options=('!libtool' '!emptydirs')
+install=nautilus-sendto.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('5f90a1a7b054257545dc72fa3a63de8f5564815576f90a21c320ebb177b9268e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/nautilus-sendto/nautilus-sendto.install b/testing/nautilus-sendto/nautilus-sendto.install
new file mode 100644
index 000000000..d33a1b261
--- /dev/null
+++ b/testing/nautilus-sendto/nautilus-sendto.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/nautilus/PKGBUILD b/testing/nautilus/PKGBUILD
new file mode 100644
index 000000000..039df8b52
--- /dev/null
+++ b/testing/nautilus/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169168 2012-10-18 19:23:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nautilus
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME file manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libexif' 'gnome-desktop' 'exempi' 'gvfs' 'desktop-file-utils' 'gnome-icon-theme' 'dconf' 'libtracker-sparql' 'libnotify')
+makedepends=('intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=nautilus.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('44d9b967d39c6785f077e4a83e61b398d1676742b9795f9e82a645fc20e80d72')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/nautilus \
+ --disable-nst-extension \
+ --disable-update-mimedb \
+ --disable-packagekit \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/nautilus/nautilus.install b/testing/nautilus/nautilus.install
new file mode 100644
index 000000000..082126d24
--- /dev/null
+++ b/testing/nautilus/nautilus.install
@@ -0,0 +1,14 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-mime-database /usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/networkmanager/PKGBUILD b/testing/networkmanager/PKGBUILD
index e4c927db3..9e763f63f 100644
--- a/testing/networkmanager/PKGBUILD
+++ b/testing/networkmanager/PKGBUILD
@@ -1,4 +1,5 @@
-# $Id: PKGBUILD 164974 2012-08-07 18:07:41Z heftig $
+# $Id: PKGBUILD 169165 2012-10-18 19:23:13Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Maintainer: Jan de Groot <jgc@archlinxu.org>
# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
# Contributor: Tor Krill <tor@krill.nu>
@@ -8,35 +9,43 @@
pkgname=networkmanager
_pkgname=NetworkManager
pkgver=0.9.6.0
-pkgrel=1
+pkgrel=5
pkgdesc="Network Management daemon"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.gnome.org/projects/$_pkgname/"
-depends=('dbus-glib' 'iproute2' 'libnl' 'nss' 'polkit' 'udev' 'wpa_supplicant' 'ppp' 'dhcpcd'
- 'libsoup')
-makedepends=('intltool' 'dhclient' 'iptables' 'gobject-introspection')
+depends=(dbus-glib iproute2 libnl nss polkit udev wpa_supplicant ppp dhclient
+ libsoup systemd)
+makedepends=(intltool dhcpcd iptables gobject-introspection)
optdepends=('modemmanager: for modem management service'
- 'dhclient: alternative DHCP/DHCPv6 client'
+ 'dhcpcd: alternative DHCP client; does not support DHCPv6'
'iptables: Connection sharing'
'dnsmasq: Connection sharing'
'bluez: Bluetooth support'
- 'openresolv: openresolv support')
+ 'openresolv: resolvconf support')
options=('!libtool')
backup=('etc/NetworkManager/NetworkManager.conf')
install=networkmanager.install
source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:3}/$_pkgname-$pkgver.tar.xz
- NetworkManager.conf disable_set_hostname.patch dnsmasq-path.patch)
+ NetworkManager.conf disable_set_hostname.patch dnsmasq-path.patch
+ nm-polkit-permissive.patch repair-signals.patch systemd-sleep.patch)
sha256sums=('3982b623b7b199ac99e2ddd0840fe7d088245a49e3f680237e8baebf0cf86d07'
'44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21'
'25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460'
- '65124505048cc8396daf0242c9f5d532fa669b4bbca305998c248ab2329490cb')
+ '65124505048cc8396daf0242c9f5d532fa669b4bbca305998c248ab2329490cb'
+ 'e23b651a90ef62d515921953b4c6779538d35a737fb74c266b7fce94d62fdb06'
+ 'a1c65a09e5e8ecb1004ab7922517aa7fbc9700dc61e3b2fd348d3d7c23808ce6'
+ '24c181ab69e769e703e45f64a552add5df5de22fbcd8899d588add053674420a')
build() {
cd $_pkgname-$pkgver
patch -Np1 -i ../disable_set_hostname.patch
patch -Np1 -i ../dnsmasq-path.patch
+ patch -Np1 -i ../nm-polkit-permissive.patch
+ patch -Np1 -i ../repair-signals.patch # FS#31115
+ patch -Np1 -i ../systemd-sleep.patch
+ AUTOPOINT="intltoolize -f -c --automake" autoreconf -fi
./configure \
--prefix=/usr \
@@ -46,12 +55,12 @@ build() {
--with-crypto=nss \
--with-distro=arch \
--with-dhclient=/usr/sbin/dhclient \
- --with-dhcpcd=/sbin/dhcpcd \
+ --with-dhcpcd=/usr/sbin/dhcpcd \
--with-iptables=/usr/sbin/iptables \
--with-systemdsystemunitdir=/usr/lib/systemd/system \
--with-udev-dir=/usr/lib/udev \
--with-resolvconf=/usr/sbin/resolvconf \
- --with-session-tracking=ck \
+ --with-session-tracking=systemd \
--disable-static \
--enable-more-warnings=no \
--disable-wimax
@@ -66,7 +75,4 @@ package() {
install -m644 ../NetworkManager.conf "$pkgdir/etc/NetworkManager/"
rm -r "$pkgdir/var/run"
-
- # Provide native service for arch-daemons generator
- ln -s NetworkManager.service "$pkgdir/usr/lib/systemd/system/networkmanager.service"
}
diff --git a/testing/networkmanager/nm-polkit-permissive.patch b/testing/networkmanager/nm-polkit-permissive.patch
new file mode 100644
index 000000000..1ac406224
--- /dev/null
+++ b/testing/networkmanager/nm-polkit-permissive.patch
@@ -0,0 +1,12 @@
+diff -up NetworkManager-0.8.997/policy/org.freedesktop.NetworkManager.policy.in.permissive NetworkManager-0.8.997/policy/org.freedesktop.NetworkManager.policy.in
+--- NetworkManager-0.8.997/policy/org.freedesktop.NetworkManager.policy.in.permissive 2011-03-24 14:21:35.100912222 -0500
++++ NetworkManager-0.8.997/policy/org.freedesktop.NetworkManager.policy.in 2011-03-24 14:21:49.916726997 -0500
+@@ -95,7 +95,7 @@
+ <_message>System policy prevents modification of network settings for all users</_message>
+ <defaults>
+ <allow_inactive>no</allow_inactive>
+- <allow_active>auth_admin_keep</allow_active>
++ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
diff --git a/testing/networkmanager/repair-signals.patch b/testing/networkmanager/repair-signals.patch
new file mode 100644
index 000000000..cf1319dc5
--- /dev/null
+++ b/testing/networkmanager/repair-signals.patch
@@ -0,0 +1,37 @@
+From 64342a313ef497fca8a4fb7567900d4a1460065f Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Thu, 13 Sep 2012 09:32:53 +0000
+Subject: core: wait until we daemonized before setting up signals (bgo #683932)
+
+If we mask signals before daemonizing, the daemon process will not be
+able to handle them, and thus would be unkillable with anything other
+than SIGKILL.
+---
+diff --git a/src/main.c b/src/main.c
+index 8bc6d3f..5b82cfa 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -401,10 +401,6 @@ main (int argc, char *argv[])
+ exit (1);
+ }
+
+- /* Set up unix signal handling */
+- if (!setup_signals ())
+- exit (1);
+-
+ /* Set locale to be able to use environment variables */
+ setlocale (LC_ALL, "");
+
+@@ -501,6 +497,10 @@ main (int argc, char *argv[])
+ wrote_pidfile = TRUE;
+ }
+
++ /* Set up unix signal handling - before creating threads, but after daemonizing! */
++ if (!setup_signals ())
++ exit (1);
++
+ if (g_fatal_warnings) {
+ GLogLevelFlags fatal_mask;
+
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/networkmanager/systemd-sleep.patch b/testing/networkmanager/systemd-sleep.patch
new file mode 100644
index 000000000..3470d4654
--- /dev/null
+++ b/testing/networkmanager/systemd-sleep.patch
@@ -0,0 +1,616 @@
+From b444d31cba5b8ac0c9771cc5a246dfd3af9dfd00 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Tue, 9 Oct 2012 00:36:35 -0400
+Subject: [PATCH] core: factor out the upower suspend/resume code (bgo
+ #677694)
+
+Factor the code that listens for upower sleeping and resuming
+signals out into a class code NMSleepMonitor.
+
+core: add a systemd suspend/resume monitor (bgo #677694)
+
+This implementation uses a delay inhibitor to get systemd to
+emit PrepareForSleep, and then emits ::Sleeping and ::Resuming
+when receiving the before/after PrepareForSleep emissions.
+
+core: DBusGConnections are not GObjects
+
+Introduced in 64fd8eea7706038e5d38c8463a1c765ed9331db2.
+
+core: fix suspend/resume signal names which the manager listens for
+
+Introduced in 64fd8eea7706038e5d38c8463a1c765ed9331db2; but honestly
+I also thought GObject lower-cased signal names since it munges them
+for - and _ too. Apparently not.
+---
+ configure.ac | 2 +-
+ src/Makefile.am | 9 +-
+ src/nm-manager.c | 40 +++-----
+ src/nm-sleep-monitor-systemd.c | 217 +++++++++++++++++++++++++++++++++++++++++
+ src/nm-sleep-monitor-upower.c | 151 ++++++++++++++++++++++++++++
+ src/nm-sleep-monitor.h | 46 +++++++++
+ 6 files changed, 437 insertions(+), 28 deletions(-)
+ create mode 100644 src/nm-sleep-monitor-systemd.c
+ create mode 100644 src/nm-sleep-monitor-upower.c
+ create mode 100644 src/nm-sleep-monitor.h
+
+diff --git a/configure.ac b/configure.ac
+index e76e193..9152c23 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -327,7 +327,7 @@ PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= 147)
+ AC_SUBST(GUDEV_CFLAGS)
+ AC_SUBST(GUDEV_LIBS)
+
+-PKG_CHECK_MODULES(GIO, gio-2.0)
++PKG_CHECK_MODULES(GIO, gio-unix-2.0)
+ AC_SUBST(GIO_CFLAGS)
+ AC_SUBST(GIO_LIBS)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index b155209..ba7d2d6 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -191,6 +191,7 @@ NetworkManager_SOURCES = \
+ nm-session-monitor.h \
+ nm-session-utils.c \
+ nm-session-utils.h \
++ nm-sleep-monitor.h \
+ nm-connection-provider.h \
+ nm-connection-provider.c \
+ nm-dispatcher.c \
+@@ -201,13 +202,18 @@ NetworkManager_SOURCES += nm-connectivity.c nm-connectivity.h
+ endif
+
+ if SESSION_TRACKING_SYSTEMD
+-NetworkManager_SOURCES += nm-session-monitor-systemd.c
++NetworkManager_SOURCES += \
++ nm-session-monitor-systemd.c \
++ nm-sleep-monitor-systemd.c
+ else
+ if SESSION_TRACKING_CK
+ NetworkManager_SOURCES += nm-session-monitor-ck.c
+ else
+ NetworkManager_SOURCES += nm-session-monitor-null.c
+ endif
++
++# UPower suspend/resume used whenever systemd is not enabled
++NetworkManager_SOURCES += nm-sleep-monitor-upower.c
+ endif
+
+ nm-access-point-glue.h: $(top_srcdir)/introspection/nm-access-point.xml
+@@ -283,6 +289,7 @@ BUILT_SOURCES = \
+ NetworkManager_CPPFLAGS = \
+ $(DBUS_CFLAGS) \
+ $(GLIB_CFLAGS) \
++ $(GIO_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ $(LIBNL_CFLAGS) \
+ $(GMODULE_CFLAGS) \
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 618c4ed..c8ce115 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -69,6 +69,7 @@
+ #include "nm-device-factory.h"
+ #include "wifi-utils.h"
+ #include "nm-enum-types.h"
++#include "nm-sleep-monitor.h"
+
+ #if WITH_CONCHECK
+ #include "nm-connectivity.h"
+@@ -78,8 +79,6 @@
+ #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
+ #define NM_AUTOIP_DBUS_IFACE "org.freedesktop.nm_avahi_autoipd"
+
+-#define UPOWER_DBUS_SERVICE "org.freedesktop.UPower"
+-
+ static gboolean impl_manager_get_devices (NMManager *manager,
+ GPtrArray **devices,
+ GError **err);
+@@ -228,7 +227,7 @@ typedef struct {
+ guint modem_removed_id;
+
+ DBusGProxy *aipd_proxy;
+- DBusGProxy *upower_proxy;
++ NMSleepMonitor *sleep_monitor;
+
+ GSList *auth_chains;
+
+@@ -3288,16 +3287,16 @@ impl_manager_sleep (NMManager *self,
+ }
+
+ static void
+-upower_sleeping_cb (DBusGProxy *proxy, gpointer user_data)
++sleeping_cb (DBusGProxy *proxy, gpointer user_data)
+ {
+- nm_log_dbg (LOGD_SUSPEND, "Received UPower sleeping signal");
++ nm_log_dbg (LOGD_SUSPEND, "Received sleeping signal");
+ _internal_sleep (NM_MANAGER (user_data), TRUE);
+ }
+
+ static void
+-upower_resuming_cb (DBusGProxy *proxy, gpointer user_data)
++resuming_cb (DBusGProxy *proxy, gpointer user_data)
+ {
+- nm_log_dbg (LOGD_SUSPEND, "Received UPower resuming signal");
++ nm_log_dbg (LOGD_SUSPEND, "Received resuming signal");
+ _internal_sleep (NM_MANAGER (user_data), FALSE);
+ }
+
+@@ -4049,8 +4048,8 @@ dispose (GObject *object)
+ if (priv->aipd_proxy)
+ g_object_unref (priv->aipd_proxy);
+
+- if (priv->upower_proxy)
+- g_object_unref (priv->upower_proxy);
++ if (priv->sleep_monitor)
++ g_object_unref (priv->sleep_monitor);
+
+ if (priv->fw_monitor) {
+ if (priv->fw_monitor_id)
+@@ -4372,23 +4371,12 @@ nm_manager_init (NMManager *manager)
+ } else
+ nm_log_warn (LOGD_AUTOIP4, "could not initialize avahi-autoipd D-Bus proxy");
+
+- /* upower sleep/wake handling */
+- priv->upower_proxy = dbus_g_proxy_new_for_name (g_connection,
+- UPOWER_DBUS_SERVICE,
+- "/org/freedesktop/UPower",
+- "org.freedesktop.UPower");
+- if (priv->upower_proxy) {
+- dbus_g_proxy_add_signal (priv->upower_proxy, "Sleeping", G_TYPE_INVALID);
+- dbus_g_proxy_connect_signal (priv->upower_proxy, "Sleeping",
+- G_CALLBACK (upower_sleeping_cb),
+- manager, NULL);
+-
+- dbus_g_proxy_add_signal (priv->upower_proxy, "Resuming", G_TYPE_INVALID);
+- dbus_g_proxy_connect_signal (priv->upower_proxy, "Resuming",
+- G_CALLBACK (upower_resuming_cb),
+- manager, NULL);
+- } else
+- nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy");
++ /* sleep/wake handling */
++ priv->sleep_monitor = nm_sleep_monitor_get ();
++ g_signal_connect (priv->sleep_monitor, "sleeping",
++ G_CALLBACK (sleeping_cb), manager);
++ g_signal_connect (priv->sleep_monitor, "resuming",
++ G_CALLBACK (resuming_cb), manager);
+
+ /* Listen for authorization changes */
+ nm_auth_changed_func_register (authority_changed_cb, manager);
+diff --git a/src/nm-sleep-monitor-systemd.c b/src/nm-sleep-monitor-systemd.c
+new file mode 100644
+index 0000000..70adc89
+--- /dev/null
++++ b/src/nm-sleep-monitor-systemd.c
+@@ -0,0 +1,217 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * (C) Copyright 2012 Red Hat, Inc.
++ * Author: Matthias Clasen <mclasen@redhat.com>
++ */
++
++#include "config.h"
++#include <errno.h>
++#include <string.h>
++#include <sys/stat.h>
++#include <dbus/dbus-glib-lowlevel.h>
++#include <dbus/dbus-glib.h>
++#include <gio/gio.h>
++#include <gio/gunixfdlist.h>
++
++#include "nm-logging.h"
++#include "nm-dbus-manager.h"
++
++#include "nm-sleep-monitor.h"
++
++#define SD_NAME "org.freedesktop.login1"
++#define SD_PATH "/org/freedesktop/login1"
++#define SD_INTERFACE "org.freedesktop.login1.Manager"
++
++
++struct _NMSleepMonitor {
++ GObject parent_instance;
++
++ GDBusProxy *sd_proxy;
++ gint inhibit_fd;
++};
++
++struct _NMSleepMonitorClass {
++ GObjectClass parent_class;
++
++ void (*sleeping) (NMSleepMonitor *monitor);
++ void (*resuming) (NMSleepMonitor *monitor);
++};
++
++
++enum {
++ SLEEPING,
++ RESUMING,
++ LAST_SIGNAL,
++};
++static guint signals[LAST_SIGNAL] = {0};
++
++G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT);
++
++/********************************************************************/
++
++static void
++inhibit_done (GObject *source,
++ GAsyncResult *result,
++ gpointer user_data)
++{
++ GDBusProxy *sd_proxy = G_DBUS_PROXY (source);
++ NMSleepMonitor *self = user_data;
++ GError *error = NULL;
++ GVariant *res;
++ GUnixFDList *fd_list;
++
++ res = g_dbus_proxy_call_with_unix_fd_list_finish (sd_proxy, &fd_list, result, &error);
++ if (!res) {
++ nm_log_warn (LOGD_SUSPEND, "Inhibit failed: %s", error->message);
++ g_error_free (error);
++ } else {
++ if (!fd_list || g_unix_fd_list_get_length (fd_list) != 1)
++ nm_log_warn (LOGD_SUSPEND, "Didn't get a single fd back");
++
++ self->inhibit_fd = g_unix_fd_list_get (fd_list, 0, NULL);
++
++ nm_log_dbg (LOGD_SUSPEND, "Inhibitor fd is %d", self->inhibit_fd);
++ g_object_unref (fd_list);
++ g_variant_unref (res);
++ }
++}
++
++static void
++take_inhibitor (NMSleepMonitor *self)
++{
++ g_assert (self->inhibit_fd == -1);
++
++ nm_log_dbg (LOGD_SUSPEND, "Taking systemd sleep inhibitor");
++ g_dbus_proxy_call_with_unix_fd_list (self->sd_proxy,
++ "Inhibit",
++ g_variant_new ("(ssss)",
++ "sleep",
++ g_get_user_name (),
++ "inhibited",
++ "delay"),
++ 0,
++ G_MAXINT,
++ NULL,
++ NULL,
++ inhibit_done,
++ self);
++}
++
++static gboolean
++drop_inhibitor (NMSleepMonitor *self)
++{
++ if (self->inhibit_fd >= 0) {
++ nm_log_dbg (LOGD_SUSPEND, "Dropping systemd sleep inhibitor");
++ close (self->inhibit_fd);
++ self->inhibit_fd = -1;
++ return TRUE;
++ }
++ return FALSE;
++}
++
++static void
++signal_cb (GDBusProxy *proxy,
++ const gchar *sendername,
++ const gchar *signalname,
++ GVariant *args,
++ gpointer data)
++{
++ NMSleepMonitor *self = data;
++ gboolean is_about_to_suspend;
++
++ if (strcmp (signalname, "PrepareForSleep") != 0)
++ return;
++
++ g_variant_get (args, "(b)", &is_about_to_suspend);
++ nm_log_dbg (LOGD_SUSPEND, "Received PrepareForSleep signal: %d", is_about_to_suspend);
++
++ if (is_about_to_suspend) {
++ g_signal_emit (self, signals[SLEEPING], 0);
++ drop_inhibitor (self);
++ } else {
++ take_inhibitor (self);
++ g_signal_emit (self, signals[RESUMING], 0);
++ }
++}
++
++static void
++nm_sleep_monitor_init (NMSleepMonitor *self)
++{
++ GDBusConnection *bus;
++
++ self->inhibit_fd = -1;
++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
++ self->sd_proxy = g_dbus_proxy_new_sync (bus, 0, NULL,
++ SD_NAME, SD_PATH, SD_INTERFACE,
++ NULL, NULL);
++ g_object_unref (bus);
++ g_signal_connect (self->sd_proxy, "g-signal", G_CALLBACK (signal_cb), self);
++ take_inhibitor (self);
++}
++
++static void
++finalize (GObject *object)
++{
++ NMSleepMonitor *self = NM_SLEEP_MONITOR (object);
++
++ drop_inhibitor (self);
++ if (self->sd_proxy)
++ g_object_unref (self->sd_proxy);
++
++ if (G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize != NULL)
++ G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
++}
++
++static void
++nm_sleep_monitor_class_init (NMSleepMonitorClass *klass)
++{
++ GObjectClass *gobject_class;
++
++ gobject_class = G_OBJECT_CLASS (klass);
++
++ gobject_class->finalize = finalize;
++
++ signals[SLEEPING] = g_signal_new (NM_SLEEP_MONITOR_SLEEPING,
++ NM_TYPE_SLEEP_MONITOR,
++ G_SIGNAL_RUN_LAST,
++ G_STRUCT_OFFSET (NMSleepMonitorClass, sleeping),
++ NULL, /* accumulator */
++ NULL, /* accumulator data */
++ g_cclosure_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++ signals[RESUMING] = g_signal_new (NM_SLEEP_MONITOR_RESUMING,
++ NM_TYPE_SLEEP_MONITOR,
++ G_SIGNAL_RUN_LAST,
++ G_STRUCT_OFFSET (NMSleepMonitorClass, resuming),
++ NULL, /* accumulator */
++ NULL, /* accumulator data */
++ g_cclosure_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++}
++
++NMSleepMonitor *
++nm_sleep_monitor_get (void)
++{
++ static NMSleepMonitor *singleton = NULL;
++
++ if (singleton)
++ return g_object_ref (singleton);
++
++ singleton = NM_SLEEP_MONITOR (g_object_new (NM_TYPE_SLEEP_MONITOR, NULL));
++ return singleton;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
+diff --git a/src/nm-sleep-monitor-upower.c b/src/nm-sleep-monitor-upower.c
+new file mode 100644
+index 0000000..3c93f66
+--- /dev/null
++++ b/src/nm-sleep-monitor-upower.c
+@@ -0,0 +1,151 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * (C) Copyright 2012 Red Hat, Inc.
++ * Author: Matthias Clasen <mclasen@redhat.com>
++ */
++
++#include "config.h"
++#include <errno.h>
++#include <string.h>
++#include <sys/stat.h>
++#include <dbus/dbus-glib-lowlevel.h>
++#include <dbus/dbus-glib.h>
++#include <gio/gio.h>
++#include "nm-logging.h"
++#include "nm-dbus-manager.h"
++
++#include "nm-sleep-monitor.h"
++
++#define UPOWER_DBUS_SERVICE "org.freedesktop.UPower"
++
++struct _NMSleepMonitor {
++ GObject parent_instance;
++
++ DBusGProxy *upower_proxy;
++};
++
++struct _NMSleepMonitorClass {
++ GObjectClass parent_class;
++
++ void (*sleeping) (NMSleepMonitor *monitor);
++ void (*resuming) (NMSleepMonitor *monitor);
++};
++
++
++enum {
++ SLEEPING,
++ RESUMING,
++ LAST_SIGNAL,
++};
++static guint signals[LAST_SIGNAL] = {0};
++
++G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT);
++
++/********************************************************************/
++
++static void
++upower_sleeping_cb (DBusGProxy *proxy, gpointer user_data)
++{
++ nm_log_dbg (LOGD_SUSPEND, "Received UPower sleeping signal");
++ g_signal_emit (user_data, signals[SLEEPING], 0);
++}
++
++static void
++upower_resuming_cb (DBusGProxy *proxy, gpointer user_data)
++{
++ nm_log_dbg (LOGD_SUSPEND, "Received UPower resuming signal");
++ g_signal_emit (user_data, signals[RESUMING], 0);
++}
++
++static void
++nm_sleep_monitor_init (NMSleepMonitor *self)
++{
++ NMDBusManager *dbus_mgr;
++ DBusGConnection *bus;
++
++ dbus_mgr = nm_dbus_manager_get ();
++ bus = nm_dbus_manager_get_connection (dbus_mgr);
++ self->upower_proxy = dbus_g_proxy_new_for_name (bus,
++ UPOWER_DBUS_SERVICE,
++ "/org/freedesktop/UPower",
++ "org.freedesktop.UPower");
++ if (self->upower_proxy) {
++ dbus_g_proxy_add_signal (self->upower_proxy, "Sleeping", G_TYPE_INVALID);
++ dbus_g_proxy_connect_signal (self->upower_proxy, "Sleeping",
++ G_CALLBACK (upower_sleeping_cb),
++ self, NULL);
++
++ dbus_g_proxy_add_signal (self->upower_proxy, "Resuming", G_TYPE_INVALID);
++ dbus_g_proxy_connect_signal (self->upower_proxy, "Resuming",
++ G_CALLBACK (upower_resuming_cb),
++ self, NULL);
++ } else
++ nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy");
++ g_object_unref (dbus_mgr);
++}
++
++static void
++finalize (GObject *object)
++{
++ NMSleepMonitor *self = NM_SLEEP_MONITOR (object);
++
++ if (self->upower_proxy)
++ g_object_unref (self->upower_proxy);
++
++ if (G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize != NULL)
++ G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
++}
++
++static void
++nm_sleep_monitor_class_init (NMSleepMonitorClass *klass)
++{
++ GObjectClass *gobject_class;
++
++ gobject_class = G_OBJECT_CLASS (klass);
++
++ gobject_class->finalize = finalize;
++
++ signals[SLEEPING] = g_signal_new (NM_SLEEP_MONITOR_SLEEPING,
++ NM_TYPE_SLEEP_MONITOR,
++ G_SIGNAL_RUN_LAST,
++ G_STRUCT_OFFSET (NMSleepMonitorClass, sleeping),
++ NULL, /* accumulator */
++ NULL, /* accumulator data */
++ g_cclosure_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++ signals[RESUMING] = g_signal_new (NM_SLEEP_MONITOR_RESUMING,
++ NM_TYPE_SLEEP_MONITOR,
++ G_SIGNAL_RUN_LAST,
++ G_STRUCT_OFFSET (NMSleepMonitorClass, resuming),
++ NULL, /* accumulator */
++ NULL, /* accumulator data */
++ g_cclosure_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++}
++
++NMSleepMonitor *
++nm_sleep_monitor_get (void)
++{
++ static NMSleepMonitor *singleton = NULL;
++
++ if (singleton)
++ return g_object_ref (singleton);
++
++ singleton = NM_SLEEP_MONITOR (g_object_new (NM_TYPE_SLEEP_MONITOR, NULL));
++ return singleton;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
+diff --git a/src/nm-sleep-monitor.h b/src/nm-sleep-monitor.h
+new file mode 100644
+index 0000000..173e6a1
+--- /dev/null
++++ b/src/nm-sleep-monitor.h
+@@ -0,0 +1,46 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * (C) Copyright 2012 Red Hat, Inc.
++ * Author: Matthias Clasen <mclasen@redhat.com>
++ */
++
++#ifndef NM_SLEEP_MONITOR_H
++#define NM_SLEEP_MONITOR_H
++
++#include <glib-object.h>
++
++G_BEGIN_DECLS
++
++#define NM_TYPE_SLEEP_MONITOR (nm_sleep_monitor_get_type ())
++#define NM_SLEEP_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NM_TYPE_SLEEP_MONITOR, NMSleepMonitor))
++#define NM_SLEEP_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), NM_TYPE_SLEEP_MONITOR, NMSleepMonitorClass))
++#define NM_SLEEP_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), NM_TYPE_SLEEP_MONITOR, NMSleepMonitorClass))
++#define NM_IS_SLEEP_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NM_TYPE_SLEEP_MONITOR))
++#define NM_IS_SLEEP_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NM_TYPE_SLEEP_MONITOR))
++
++#define NM_SLEEP_MONITOR_SLEEPING "sleeping"
++#define NM_SLEEP_MONITOR_RESUMING "resuming"
++
++typedef struct _NMSleepMonitor NMSleepMonitor;
++typedef struct _NMSleepMonitorClass NMSleepMonitorClass;
++
++GType nm_sleep_monitor_get_type (void) G_GNUC_CONST;
++NMSleepMonitor *nm_sleep_monitor_get (void);
++
++G_END_DECLS
++
++#endif /* NM_SLEEP_MONITOR_H */
++
+--
+1.7.12.2
+
diff --git a/testing/pango/PKGBUILD b/testing/pango/PKGBUILD
new file mode 100644
index 000000000..1e6d3616c
--- /dev/null
+++ b/testing/pango/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169163 2012-10-18 19:23:05Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pango
+pkgver=1.32.1
+pkgrel=1
+pkgdesc="A library for layout and rendering of text"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libthai' 'cairo' 'libxft' 'harfbuzz')
+makedepends=('harfbuzz' 'fontconfig' 'cairo' 'libxft' 'libthai' 'gobject-introspection')
+options=('!libtool')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:4}/${pkgname}-${pkgver}.tar.xz)
+url="http://www.pango.org/"
+sha256sums=('484babf7e1ac4bf959a0babe8168f180acb516932d70e2985de5f6e2961fcd82')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make -j1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/pango"
+}
diff --git a/testing/pango/pango.install b/testing/pango/pango.install
new file mode 100644
index 000000000..73b0f5bf1
--- /dev/null
+++ b/testing/pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules >etc/pango/pango.modules
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f usr/etc/pango/pango.modules ]; then
+ rm usr/etc/pango/pango.modules
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules
+}
diff --git a/testing/pangox-compat/PKGBUILD b/testing/pangox-compat/PKGBUILD
new file mode 100644
index 000000000..13375e949
--- /dev/null
+++ b/testing/pangox-compat/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169162 2012-10-18 19:23:02Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=pangox-compat
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="X Window System font support for Pango"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('pango')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz)
+url="http://www.pango.org/"
+sha256sums=('552092b3b6c23f47f4beee05495d0f9a153781f62a1c4b7ec53857a37dfce046')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make -j1 DESTDIR="${pkgdir}" install
+}
diff --git a/testing/pidgin/PKGBUILD b/testing/pidgin/PKGBUILD
new file mode 100644
index 000000000..f87f625dd
--- /dev/null
+++ b/testing/pidgin/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 169161 2012-10-18 19:22:57Z jgc $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+
+pkgname=('pidgin' 'libpurple' 'finch')
+pkgver=2.10.6
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://pidgin.im/"
+license=('GPL')
+makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
+ 'libidn' 'python2' 'hicolor-icon-theme' 'gstreamer0.10' 'avahi'
+ 'tk' 'ca-certificates' 'intltool'
+ 'networkmanager')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('3e25a633b97cbfa8326999a30282e7a662a9b9bbf2853be84af0b8fb60392c96')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Use Python 2
+ sed -i 's/env python$/&2/' */plugins/*.py \
+ libpurple/purple-{remote,notifications-example,url-handler}
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-schemas-install \
+ --disable-meanwhile \
+ --disable-gnutls \
+ --enable-cyrus-sasl \
+ --disable-doxygen \
+ --enable-nm \
+ --disable-vv \
+ --with-python=/usr/bin/python2 \
+ --with-system-ssl-certs=/etc/ssl/certs
+ make
+}
+
+package_pidgin(){
+ pkgdesc="Multi-protocol instant messaging client"
+ depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm'
+ 'hicolor-icon-theme')
+ optdepends=('aspell: for spelling correction')
+ install=pidgin.install
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ # For linking
+ make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+ make -C pidgin DESTDIR="$pkgdir" install
+ make -C doc DESTDIR="$pkgdir" install
+
+ # Remove files that are packaged in libpurle
+ make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+ install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop
+
+ rm "$pkgdir/usr/share/man/man1/finch.1"
+}
+
+package_libpurple(){
+ pkgdesc="IM library extracted from Pidgin"
+ depends=('gstreamer0.10' 'libsasl' 'libidn' 'dbus-glib' 'nss')
+ optdepends=('avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'python2-dbus: for purple-remote and purple-url-handler'
+ 'tk: Tcl/Tk scripting support')
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ for _dir in libpurple share/sounds share/ca-certs m4macros po; do
+ make -C "$_dir" DESTDIR="$pkgdir" install
+ done
+}
+
+package_finch(){
+ pkgdesc="A ncurses-based messaging client"
+ depends=("libpurple=$pkgver-$pkgrel" 'libx11' 'python2')
+
+ cd "$srcdir/pidgin-$pkgver"
+
+ # For linking
+ make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+ make -C finch DESTDIR="$pkgdir" install
+ make -C doc DESTDIR="$pkgdir" install
+
+ # Remove files that are packaged in libpurle
+ make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+ rm "$pkgdir"/usr/share/man/man1/pidgin.1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/pidgin/pidgin.install b/testing/pidgin/pidgin.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/testing/pidgin/pidgin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/polkit/PKGBUILD b/testing/polkit/PKGBUILD
index 2bc0b25de..70bb6e4d8 100644
--- a/testing/polkit/PKGBUILD
+++ b/testing/polkit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 166700 2012-09-16 00:09:31Z heftig $
+# $Id: PKGBUILD 169160 2012-10-18 19:22:54Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=polkit
pkgver=0.107
-pkgrel=2
+pkgrel=4
pkgdesc="Application development toolkit for controlling system-wide privileges"
arch=(i686 x86_64)
license=('LGPL')
@@ -13,22 +13,19 @@ makedepends=('intltool' 'gtk-doc' 'gobject-introspection')
replaces=('policykit')
options=('!libtool')
install=polkit.install
-source=("http://www.freedesktop.org/software/polkit/releases/$pkgname-$pkgver.tar.gz"
- 'polkit.pam'
- 'logind+ConsoleKit.patch'
- 'autogen.sh')
+source=(http://www.freedesktop.org/software/polkit/releases/$pkgname-$pkgver.tar.gz
+ polkit.pam fix-empty-wheel.patch)
md5sums=('0e4f9c53f43fd1b25ac3f0d2e09b2ae1'
'6564f95878297b954f0572bc1610dd15'
- 'fb71d43442dbf24f8760198a9a79c5e7'
- '38fe3119284e842e66b330b0f2ba230d')
+ 'c99ab2a7919ad0b69fde4804c043b07f')
build() {
cd $pkgname-$pkgver
- patch -p1 <../logind+ConsoleKit.patch
+ # https://bugs.archlinux.org/task/31717
+ patch -Np1 -i ../fix-empty-wheel.patch
- cp ../autogen.sh .
- ./autogen.sh --prefix=/usr --sysconfdir=/etc \
+ ./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --libexecdir=/usr/lib/polkit-1 \
--with-systemdsystemunitdir=/usr/lib/systemd/system \
--disable-static --enable-gtk-doc
diff --git a/testing/polkit/fix-empty-wheel.patch b/testing/polkit/fix-empty-wheel.patch
new file mode 100644
index 000000000..d6f99c43d
--- /dev/null
+++ b/testing/polkit/fix-empty-wheel.patch
@@ -0,0 +1,47 @@
+From fa04223240d46641b0773dbf9f7d72f529046bea Mon Sep 17 00:00:00 2001
+From: David Zeuthen <zeuthen@gmail.com>
+Date: Tue, 18 Sep 2012 18:47:06 +0000
+Subject: Fall back to authenticating as uid 0 if the list of admin identities is empty
+
+For example, this can happen if the wheel group has no members. This
+was reported in Red Hat bug 834494, see
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=834494
+
+Signed-off-by: David Zeuthen <zeuthen@gmail.com>
+---
+diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
+index 1d4a555..3bd2f0b 100644
+--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
++++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
+@@ -1293,15 +1293,11 @@ polkit_backend_interactive_authority_get_admin_identities (PolkitBackendInteract
+ PolkitDetails *details)
+ {
+ PolkitBackendInteractiveAuthorityClass *klass;
+- GList *ret;
++ GList *ret = NULL;
+
+ klass = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_GET_CLASS (authority);
+
+- if (klass->get_admin_identities == NULL)
+- {
+- ret = g_list_prepend (NULL, polkit_unix_user_new (0));
+- }
+- else
++ if (klass->get_admin_identities != NULL)
+ {
+ ret = klass->get_admin_identities (authority,
+ caller,
+@@ -2257,6 +2253,10 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
+ }
+ }
+
++ /* Fall back to uid 0 if no users are available (rhbz #834494) */
++ if (user_identities == NULL)
++ user_identities = g_list_prepend (NULL, polkit_unix_user_new (0));
++
+ session = authentication_session_new (agent,
+ cookie,
+ subject,
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/pygobject/PKGBUILD b/testing/pygobject/PKGBUILD
index ba46a1a38..33f064936 100644
--- a/testing/pygobject/PKGBUILD
+++ b/testing/pygobject/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 168846 2012-10-16 11:54:03Z allan $
+# $Id: PKGBUILD 169159 2012-10-18 19:22:49Z jgc $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=pygobject
pkgname=(python-gobject python2-gobject pygobject-devel)
-pkgver=3.2.2
-pkgrel=2
+pkgver=3.4.1.1
+pkgrel=1
arch=('i686' 'x86_64')
url="https://live.gnome.org/PyGObject"
license=('LGPL')
makedepends=('python' 'python2' 'python-cairo' 'python2-cairo' 'gobject-introspection')
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz)
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver::3}/$pkgbase-$pkgver.tar.xz)
options=('!libtool')
-sha256sums=('4653790baaff0176fd814b88cfb5378c45906a120b25d01be2554f423b726eb0')
+sha256sums=('dbcff64a641b4eb251a3ca72c782c8a2318c3bbf4a31bffc40446e15111e6017')
build() {
cp -a "$pkgbase-$pkgver" python2-build
diff --git a/testing/rest/PKGBUILD b/testing/rest/PKGBUILD
new file mode 100644
index 000000000..e21b8d110
--- /dev/null
+++ b/testing/rest/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169158 2012-10-18 19:22:47Z jgc $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=rest
+pkgver=0.7.90
+pkgrel=1
+pkgdesc="A helper library for RESTful services."
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libxml2' 'libsoup-gnome')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.xz)
+sha256sums=('1d682acaac4d946cc7c98a2dd9d65a8c83a6fdb8ca6759e70b8b5042fe66c022')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/rhythmbox/PKGBUILD b/testing/rhythmbox/PKGBUILD
index bd2a3a62e..2c507c786 100644
--- a/testing/rhythmbox/PKGBUILD
+++ b/testing/rhythmbox/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 164297 2012-07-29 23:16:02Z tomegun $
+# $Id: PKGBUILD 169157 2012-10-18 19:22:44Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=rhythmbox
-pkgver=2.97
+pkgver=2.98
pkgrel=2
pkgdesc="An iTunes-like music playback and management application"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.rhythmbox.org"
-depends=('clutter' 'clutter-gtk' 'clutter-gst' 'dconf' 'desktop-file-utils' 'grilo'
+depends=('dconf' 'desktop-file-utils' 'grilo'
'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'gvfs-afc' 'json-glib'
- 'libdmapsharing' 'libgpod' 'libmtp' 'libmusicbrainz4' 'libnotify' 'libpeas' 'libwebkit3'
- 'lirc-utils' 'media-player-info' 'mx' 'python2-gobject' 'python2-mako' 'totem-plparser'
+ 'libdmapsharing' 'libgpod' 'libmtp' 'libnotify' 'libpeas'
+ 'lirc-utils' 'media-player-info' 'python2-gobject' 'python2-mako' 'totem-plparser'
'tdb' 'libdiscid')
makedepends=('gnome-doc-utils' 'intltool' 'brasero' 'gobject-introspection' 'vala')
optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
@@ -22,20 +22,20 @@ optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
options=('!libtool' '!emptydirs')
install=rhythmbox.install
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz)
-sha256sums=('b52567cf45bf13c0452593da7f907920bd4cf31916ca8dcd15d555336b4947e4')
+sha256sums=('a5c0a18a7c76133d36c7dcbdc37e304eae8272703985b17b540d68603b0c76d5')
build() {
cd "$pkgname-$pkgver"
PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/rhythmbox \
--localstatedir=/var --disable-static \
- --enable-daap --enable-python --enable-musicbrainz \
- --with-mdns=avahi --disable-scrollkeeper
+ --enable-daap --enable-python --enable-vala \
+ --with-mdns=avahi --disable-scrollkeeper --without-webkit
make
}
package() {
cd "$pkgname-$pkgver"
-
make DESTDIR="$pkgdir" install
+ rm -r "$pkgdir/usr/lib/rhythmbox/sample-plugins"
}
diff --git a/testing/seahorse/PKGBUILD b/testing/seahorse/PKGBUILD
new file mode 100644
index 000000000..d1591ed7c
--- /dev/null
+++ b/testing/seahorse/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 169156 2012-10-18 19:22:42Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Michel Brabants <michel.linux@tiscali.be>
+
+pkgname=seahorse
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="GNOME application for managing PGP keys."
+arch=(i686 x86_64)
+license=(GPL)
+url="http://projects.gnome.org/seahorse/"
+depends=(gtk3 gcr libsecret libsoup gpgme desktop-file-utils hicolor-icon-theme dconf)
+makedepends=(libldap intltool yelp-tools gobject-introspection openssh libsm)
+optdepends=('openssh: SSH support')
+provides=(x11-ssh-askpass)
+options=('!libtool' '!emptydirs')
+groups=(gnome-extra)
+install=seahorse.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver::3}/$pkgname-$pkgver.tar.xz
+ seahorse-ssh-askpass.sh)
+sha256sums=('dcdd9681a7896a13a597cf02aa2d6718b5f0ab3b50ed81f8d24b8db296a9214b'
+ '400ea9a6084acc93f1dbd4223b95622bbd48071b763063328efba00de378b68c')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-ldap --enable-hkp \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm755 "$srcdir/seahorse-ssh-askpass.sh" \
+ "$pkgdir/etc/profile.d/seahorse-ssh-askpass.sh"
+}
diff --git a/testing/seahorse/seahorse-ssh-askpass.sh b/testing/seahorse/seahorse-ssh-askpass.sh
new file mode 100644
index 000000000..04f79d8f2
--- /dev/null
+++ b/testing/seahorse/seahorse-ssh-askpass.sh
@@ -0,0 +1,3 @@
+if [ -z "$SSH_ASKPASS" ] && [ -n "$DISPLAY" ]; then
+ export SSH_ASKPASS=/usr/lib/seahorse/seahorse-ssh-askpass
+fi
diff --git a/testing/seahorse/seahorse.install b/testing/seahorse/seahorse.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/testing/seahorse/seahorse.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/slim/PKGBUILD b/testing/slim/PKGBUILD
new file mode 100644
index 000000000..3aa5a9f1b
--- /dev/null
+++ b/testing/slim/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 169287 2012-10-18 19:49:16Z jgc $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=slim
+pkgver=1.3.4
+pkgrel=4
+pkgdesc='Desktop-independent graphical login manager for X11'
+arch=('i686' 'x86_64')
+url='http://slim.berlios.de/'
+license=('GPL2')
+depends=('pam' 'libxmu' 'libpng' 'libjpeg' 'libxft')
+makedepends=('cmake' 'freeglut')
+backup=('etc/slim.conf' 'etc/logrotate.d/slim' 'etc/pam.d/slim')
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'rc.d'
+ 'pam.d'
+ 'logrotate'
+ 'slim.service'
+ 'session-name.patch'
+ 'libpng-1.4+-support.patch'
+ 'fix-glibc-segfault-1.3.4.patch')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../session-name.patch # FS#26693: fix default session name
+ patch -Np1 -i ../libpng-1.4+-support.patch # taken from gentoo to build
+ patch -Np0 -i ../fix-glibc-segfault-1.3.4.patch # FS#30864
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_PAM=yes -DUSE_CONSOLEKIT=no
+ make
+}
+
+package() {
+ cd ${srcdir}/build/
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 ../rc.d "${pkgdir}"/etc/rc.d/slim
+ install -D -m644 ../pam.d "${pkgdir}"/etc/pam.d/slim
+ install -D -m644 ../logrotate "${pkgdir}"/etc/logrotate.d/slim
+
+ # Provide sane defaults
+ sed -i 's|#xserver_arguments.*|xserver_arguments -nolisten tcp vt07|' "${pkgdir}"/etc/slim.conf
+ sed -i 's|/var/run/slim.lock|/var/lock/slim.lock|' "${pkgdir}"/etc/slim.conf
+ # install systemd files
+ install -D -m644 ${srcdir}/slim.service ${pkgdir}/usr/lib/systemd/system/slim.service
+}
+md5sums=('51543533e492b41007811f7d880720fa'
+ 'd8ea9c4dee2811524b67f4f666311a1f'
+ '37ef35079139544d04b8316c7f66f754'
+ '43da096480bf72c3ccec8ad8400f34f0'
+ 'a5d6bde9e63899df7d2081e1585bbe54'
+ 'ebcb6829028615686de7b64ceeaaf8ed'
+ '6d19bd7a91592ed2bb902b22b9594565'
+ '9efc4e0d82d354f0c578be7723870769')
diff --git a/testing/slim/fix-glibc-segfault-1.3.4.patch b/testing/slim/fix-glibc-segfault-1.3.4.patch
new file mode 100644
index 000000000..b035f8a78
--- /dev/null
+++ b/testing/slim/fix-glibc-segfault-1.3.4.patch
@@ -0,0 +1,13 @@
+Index: app.cpp
+===================================================================
+--- app.cpp (revision 223)
++++ app.cpp (working copy)
+@@ -593,7 +593,7 @@
+
+ n++;
+
+- child_env = static_cast<char**>(malloc(sizeof(char*)*n));
++ child_env = static_cast<char**>(malloc(sizeof(char*)*(n+1)));
+ memcpy(child_env, old_env, sizeof(char*)*n);
+ child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
+ child_env[n] = NULL;
diff --git a/testing/slim/libpng-1.4+-support.patch b/testing/slim/libpng-1.4+-support.patch
new file mode 100644
index 000000000..57b39272b
--- /dev/null
+++ b/testing/slim/libpng-1.4+-support.patch
@@ -0,0 +1,14 @@
+--- a/image.cpp 2012-06-26 04:20:14.000000000 -0400
++++ b/image.cpp 2012-06-27 11:41:34.000000000 -0400
+@@ -781,7 +781,11 @@
+ (png_infopp) NULL);
+ }
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((png_ptr)))) {
++#else
+ if (setjmp(png_ptr->jmpbuf)) {
++#endif
+ goto png_destroy;
+ }
+
diff --git a/testing/slim/logrotate b/testing/slim/logrotate
new file mode 100644
index 000000000..26ec3b0f4
--- /dev/null
+++ b/testing/slim/logrotate
@@ -0,0 +1,9 @@
+/var/log/slim.log {
+ compress
+ rotate 1
+ size 1024k
+ notifempty
+ missingok
+ copytruncate
+ noolddir
+}
diff --git a/testing/slim/pam.d b/testing/slim/pam.d
new file mode 100644
index 000000000..59db5a8c5
--- /dev/null
+++ b/testing/slim/pam.d
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_loginuid.so
+-session optional pam_systemd.so
diff --git a/testing/slim/rc.d b/testing/slim/rc.d
new file mode 100755
index 000000000..b0be7ffc5
--- /dev/null
+++ b/testing/slim/rc.d
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/slim`
+case "$1" in
+ start)
+ stat_busy "Starting Simple Login Manager"
+ [ -z "$PID" ] && /usr/bin/slim -d &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon slim
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Simple Login Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon slim
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/slim/session-name.patch b/testing/slim/session-name.patch
new file mode 100644
index 000000000..8211c4f72
--- /dev/null
+++ b/testing/slim/session-name.patch
@@ -0,0 +1,21 @@
+diff -Naur slim-1.3.2.old/panel.cpp slim-1.3.2.new/panel.cpp
+--- slim-1.3.2.old/panel.cpp 2010-10-24 06:01:15.117000019 +0000
++++ slim-1.3.2.new/panel.cpp 2010-10-24 17:26:30.987999967 +0000
+@@ -23,7 +23,7 @@
+ Root = root;
+ cfg = config;
+
+- session = "";
++ session = cfg->nextSession(session);
+
+ // Init GC
+ XGCValues gcv;
+@@ -188,7 +188,7 @@
+ }
+
+ void Panel::ClearPanel() {
+- session = "";
++ session = cfg->nextSession(session);
+ Reset();
+ XClearWindow(Dpy, Root);
+ XClearWindow(Dpy, Win);
diff --git a/testing/slim/slim.service b/testing/slim/slim.service
new file mode 100644
index 000000000..b894085a0
--- /dev/null
+++ b/testing/slim/slim.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=SLiM Simple Login Manager
+After=systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/bin/slim -nodaemon
+
+[Install]
+Alias=display-manager.service
diff --git a/testing/slim/tty-slowness.patch b/testing/slim/tty-slowness.patch
new file mode 100644
index 000000000..c590fbed8
--- /dev/null
+++ b/testing/slim/tty-slowness.patch
@@ -0,0 +1,30 @@
+diff -aur slim-1.3.2.a/app.cpp slim-1.3.2.b/app.cpp
+--- slim-1.3.2.a/app.cpp 2010-08-21 15:10:13.702755711 +0200
++++ slim-1.3.2.b/app.cpp 2010-08-21 15:10:48.579631179 +0200
+@@ -280,21 +280,22 @@
+ signal(SIGALRM, AlarmSignal);
+
+ #ifndef XNEST_DEBUG
+- OpenLog();
+-
+ if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+ daemonmode = true;
+ }
+
+ // Daemonize
+ if (daemonmode) {
+- if (daemon(0, 1) == -1) {
++ if (daemon(0, 0) == -1) {
+ cerr << APPNAME << ": " << strerror(errno) << endl;
+ exit(ERR_EXIT);
+ }
+- UpdatePid();
+ }
+
++ OpenLog();
++
++ if (daemonmode) UpdatePid();
++
+ CreateServerAuth();
+ StartServer();
+ alarm(2);
diff --git a/testing/sushi/PKGBUILD b/testing/sushi/PKGBUILD
new file mode 100644
index 000000000..1e00c9a59
--- /dev/null
+++ b/testing/sushi/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169155 2012-10-18 19:22:40Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=sushi
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="A quick previewer for Nautilus"
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+groups=(gnome-extra)
+depends=('clutter-gtk' 'clutter-gst' 'gjs' 'libmusicbrainz5' 'webkitgtk3' 'gtksourceview3' 'evince')
+install=sushi.install
+makedepends=('intltool' 'gobject-introspection')
+options=(!libtool)
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('506f0f1f934e9e6c0f5584619c3f2ab0d5906248472ca1bf08a159504ad02f78')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr --libexecdir=/usr/lib/sushi
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/sushi/sushi.install b/testing/sushi/sushi.install
new file mode 100644
index 000000000..c19349f72
--- /dev/null
+++ b/testing/sushi/sushi.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/telepathy-farstream/PKGBUILD b/testing/telepathy-farstream/PKGBUILD
new file mode 100644
index 000000000..9c0821374
--- /dev/null
+++ b/testing/telepathy-farstream/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169154 2012-10-18 19:22:38Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=telepathy-farstream
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="A telepathy-backend to use stream engine."
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'farstream')
+makedepends=('dbus-glib' 'gobject-introspection')
+conflicts=('telepathy-farsight')
+replaces=('telepathy-farsight')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d154350f9f1e3bdba87617c0668481a5')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/telepathy \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/telepathy-gabble/PKGBUILD b/testing/telepathy-gabble/PKGBUILD
new file mode 100644
index 000000000..2ae8c9650
--- /dev/null
+++ b/testing/telepathy-gabble/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169153 2012-10-18 19:22:37Z jgc $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+# Contributor: Rodrigo L. M. Flores <mail@rodrigoflores.org>
+pkgname=telepathy-gabble
+pkgver=0.17.1
+pkgrel=1
+pkgdesc="A Jabber/XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libsoup' 'libnice' 'sqlite')
+makedepends=('libxslt' 'python2')
+options=('!libtool' '!emptydirs')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+install=telepathy-gabble.install
+md5sums=('42e01fdc4117255080883495411e7318')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy --with-tls=openssl
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "$pkgdir/usr/bin/telepathy-gabble-xmpp-console"
+}
diff --git a/testing/telepathy-gabble/telepathy-gabble.install b/testing/telepathy-gabble/telepathy-gabble.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/testing/telepathy-gabble/telepathy-gabble.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/telepathy-glib/PKGBUILD b/testing/telepathy-glib/PKGBUILD
new file mode 100644
index 000000000..29f21ee83
--- /dev/null
+++ b/testing/telepathy-glib/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169152 2012-10-18 19:22:35Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+
+pkgname=telepathy-glib
+pkgver=0.20.0
+pkgrel=1
+pkgdesc="GLib bindings for the Telepathy D-Bus protocol"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+license=('LGPL2.1')
+options=('!libtool' '!emptydirs')
+depends=('dbus-glib')
+makedepends=('libxslt' 'vala' 'gobject-introspection')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('9d7b2bcc2d9f8e0352c8789952717d83')
+
+build() {
+ cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-vala-bindings \
+ --enable-static=no
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/telepathy-mission-control/PKGBUILD b/testing/telepathy-mission-control/PKGBUILD
new file mode 100644
index 000000000..fd9c4ac92
--- /dev/null
+++ b/testing/telepathy-mission-control/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169151 2012-10-18 19:22:33Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Ju Liu <liuju86 at gmail dot com>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Contributor: Andreas Zwinkau <beza1e1@web.de>
+
+pkgname=telepathy-mission-control
+pkgver=5.14.0
+pkgrel=1
+pkgdesc="A Telepathy component providing abstraction of some of the details of connection managers."
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org/wiki/Mission Control"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgnome-keyring' 'dconf' 'upower' 'networkmanager')
+makedepends=('libxslt' 'python2')
+install=telepathy-mission-control.install
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('483fa8860891815a540ecf1bb9155122')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-gnome-keyring \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/telepathy-mission-control/telepathy-mission-control.install b/testing/telepathy-mission-control/telepathy-mission-control.install
new file mode 100644
index 000000000..c25dff2d3
--- /dev/null
+++ b/testing/telepathy-mission-control/telepathy-mission-control.install
@@ -0,0 +1,11 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/totem-plparser/PKGBUILD b/testing/totem-plparser/PKGBUILD
new file mode 100644
index 000000000..22ee81c89
--- /dev/null
+++ b/testing/totem-plparser/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 169150 2012-10-18 19:22:31Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=totem-plparser
+pkgver=3.4.3
+pkgrel=1
+url="http://www.gnome.org"
+pkgdesc="Totem playlist parser library"
+license=('LGPL')
+arch=(i686 x86_64)
+depends=('gmime' 'libsoup-gnome' 'libarchive' 'libquvi')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/${pkgver%.*}/totem-pl-parser-$pkgver.tar.xz)
+sha256sums=('ab8beed4dd5d3a5d7ed5dc8b357e94dc03a8553fef6e33c2e7fb63a76e44c42b')
+
+build() {
+ cd totem-pl-parser-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package(){
+ cd totem-pl-parser-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/totem/PKGBUILD b/testing/totem/PKGBUILD
new file mode 100644
index 000000000..e5f3cf652
--- /dev/null
+++ b/testing/totem/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 169149 2012-10-18 19:22:29Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=totem
+pkgname=('totem' 'totem-plugin')
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="GNOME3 movie player based on GStreamer"
+url="http://www.gnome.org"
+arch=(i686 x86_64)
+license=(GPL2 custom)
+depends=(gst-plugins-base gst-plugins-good totem-plparser desktop-file-utils iso-codes libpeas
+ hicolor-icon-theme gnome-icon-theme-symbolic gsettings-desktop-schemas dconf clutter-gst
+ clutter-gtk mx python2-gobject gst-plugins-bad)
+makedepends=(intltool gnome-doc-utils nautilus lirc-utils vala grilo pylint)
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz
+ browser-plugins.ini)
+sha256sums=('e767da34f5212bd9b2d3ea9bc7e3a87b284581ee012214274225dd8decb8fe3e'
+ 'a50a3bbf35f0535f7e8e20af1893446a2e5711015484f9ae6d1ff91af3b23c4e')
+
+build() {
+ cd "$pkgbase-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/totem \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-python \
+ --enable-nautilus
+ make
+}
+
+package_totem() {
+ groups=(gnome-extra)
+ install=totem.install
+ optdepends=('gst-plugins-ugly: Extra media codecs'
+ 'gst-ffmpeg: Extra media codecs'
+ 'lirc-utils: Infrared Remote Control plugin'
+ 'grilo-plugins: Browse sidebar (remote media)'
+ 'pyxdg: opensubtitles plugin')
+
+ cd "$pkgbase-$pkgver"
+ make DESTDIR="${pkgdir}" install
+
+ rm -r "$pkgdir/usr/lib/mozilla"
+ rm "$pkgdir/usr/lib/totem/totem-plugin-viewer"
+
+ sed -i "s|#!/usr/bin/python$|#!/usr/bin/python2|" \
+ $pkgdir/usr/lib/totem/totem/totem-bugreport.py
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/totem/COPYING"
+}
+
+package_totem-plugin() {
+ pkgdesc="Totem plugin for web browsers"
+ depends=("totem=$pkgver")
+ backup=(etc/totem/browser-plugins.ini)
+
+ cd "$pkgbase-$pkgver"
+ make -C browser-plugin \
+ plugindir=/usr/lib/mozilla/plugins \
+ xptdir=/usr/lib/mozilla/plugins \
+ DESTDIR="$pkgdir" install
+
+ install -Dm644 ../browser-plugins.ini "$pkgdir/etc/totem/browser-plugins.ini"
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/totem-plugin/COPYING"
+}
diff --git a/testing/totem/browser-plugins.ini b/testing/totem/browser-plugins.ini
new file mode 100644
index 000000000..cf3014997
--- /dev/null
+++ b/testing/totem/browser-plugins.ini
@@ -0,0 +1,2 @@
+[Plugins]
+application/x-shockwave-flash.disabled=true
diff --git a/testing/totem/totem.install b/testing/totem/totem.install
new file mode 100644
index 000000000..7f0fc704b
--- /dev/null
+++ b/testing/totem/totem.install
@@ -0,0 +1,13 @@
+post_install() {
+ /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/tracker/PKGBUILD b/testing/tracker/PKGBUILD
new file mode 100644
index 000000000..3c396174c
--- /dev/null
+++ b/testing/tracker/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 169148 2012-10-18 19:22:25Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgbase=tracker
+pkgname=(tracker libtracker-sparql)
+pkgver=0.14.2
+_tver=${pkgver%.*}
+pkgrel=2
+pkgdesc="All-in-one indexer, search tool and metadata database"
+arch=('i686' 'x86_64')
+license=('GPL')
+makedepends=('libgee' 'libgnome-keyring' 'upower' 'libexif' 'exempi'
+ 'poppler-glib' 'libgsf' 'icu' 'enca' 'networkmanager' 'gtk3'
+ 'desktop-file-utils' 'hicolor-icon-theme' 'gobject-introspection'
+ 'intltool' 'giflib' 'gstreamer0.10-base' 'totem-plparser'
+ 'taglib' 'nautilus' 'gnome-panel' 'libvorbis' 'flac' 'vala')
+url="http://www.gnome.org"
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/$_tver/$pkgbase-$pkgver.tar.xz
+ bug675660.patch
+ tracker-extract-pdf-crash-fix.patch)
+sha256sums=('9b59330aa2e9e09feee587ded895e9247f71fc25f46b023d616d9969314bc7f1'
+ '77c1377860f09aba42fc0bb662cb188613d5ed3744f3ffb3a710d1e60499cb8c'
+ 'afa14805b9a1adb2442dc4a6032b1575a07a87aa969599ca28669a2cf975e772')
+
+build() {
+ cd $pkgbase-$pkgver
+
+ patch -Np1 -i "${srcdir}/bug675660.patch"
+ patch -Np1 -i "${srcdir}/tracker-extract-pdf-crash-fix.patch"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/tracker \
+ --disable-unit-tests \
+ --enable-libflac \
+ --enable-libvorbis
+
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+
+ make
+}
+
+package_tracker() {
+ depends=("libtracker-sparql=$pkgver-$pkgrel" 'libgee' 'libgnome-keyring'
+ 'upower' 'libexif' 'exempi' 'poppler-glib' 'libgsf' 'enca'
+ 'networkmanager' 'gtk3' 'desktop-file-utils' 'hicolor-icon-theme')
+ optdepends=('giflib: extractor for GIF data'
+ 'gstreamer0.10-base: video extractor'
+ 'totem-plparser: playlist support'
+ 'nautilus: nautilus-extension'
+ 'libvorbis: Vorbis metadata extractor'
+ 'flac: FLAC metadata extractor'
+ 'taglib: writeback for audio files'
+ 'gnome-panel: tracker-search-bar')
+ groups=('gnome-extra')
+ install=tracker.install
+
+ cd $pkgbase-$pkgver
+ make DESTDIR="$pkgdir" install
+
+### Split libtracker-sparql
+
+ mkdir -p "$srcdir"/sparql/usr/{include,lib}/tracker-$_tver
+ mkdir -p "$srcdir"/sparql/usr/lib/{girepository-1.0,pkgconfig}
+ mkdir -p "$srcdir"/sparql/usr/share/{gir-1.0,vala/vapi}
+
+ mv "$pkgdir"/usr/lib/libtracker-sparql-* "$srcdir/sparql/usr/lib"
+
+ mv "$pkgdir"/usr/lib/tracker-$_tver/*.so* \
+ "$srcdir/sparql/usr/lib/tracker-$_tver"
+
+ mv "$pkgdir"/usr/share/vala/vapi/tracker-sparql-* \
+ "$srcdir/sparql/usr/share/vala/vapi"
+
+ mv {"$pkgdir","$srcdir/sparql"}/usr/include/tracker-$_tver/libtracker-sparql
+ mv {"$pkgdir","$srcdir/sparql"}/usr/lib/girepository-1.0/Tracker-$_tver.typelib
+ mv {"$pkgdir","$srcdir/sparql"}/usr/lib/pkgconfig/tracker-sparql-$_tver.pc
+ mv {"$pkgdir","$srcdir/sparql"}/usr/share/gir-1.0/Tracker-$_tver.gir
+}
+
+package_libtracker-sparql() {
+ pkgdesc="$pkgdesc (SPARQL library)"
+ depends=('sqlite' 'icu' 'glib2' 'libffi' 'pcre' 'util-linux')
+
+ mv "$srcdir"/sparql/* "$pkgdir"
+}
diff --git a/testing/tracker/bug675660.patch b/testing/tracker/bug675660.patch
new file mode 100644
index 000000000..5f217d983
--- /dev/null
+++ b/testing/tracker/bug675660.patch
@@ -0,0 +1,29 @@
+From 48713ba26af38a15a97fc7ebb0828cd287ef2447 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Fri, 20 Jul 2012 14:46:33 +0000
+Subject: libtracker-fts: ICU cannot handle complex locale descriptions
+
+ubrk_open expects the name of just a single locale (e.g. "en_US.UTF-8"),
+not the full definition of your various locale variables and their
+values as returned by glibc's setlocale(LC_ALL, NULL).
+
+Instead, limit ourselves to LC_CTYPE, since after all, that's all we
+need to determine word boundaries.
+
+Fixes GB#675660.
+---
+diff --git a/src/libtracker-fts/tracker-parser-libicu.c b/src/libtracker-fts/tracker-parser-libicu.c
+index 7388f69..69f75ed 100644
+--- a/src/libtracker-fts/tracker-parser-libicu.c
++++ b/src/libtracker-fts/tracker-parser-libicu.c
+@@ -676,7 +676,7 @@ tracker_parser_reset (TrackerParser *parser,
+
+ /* Open word-break iterator */
+ parser->bi = ubrk_open(UBRK_WORD,
+- setlocale (LC_ALL, NULL),
++ setlocale (LC_CTYPE, NULL),
+ parser->utxt,
+ parser->utxt_size,
+ &error);
+--
+cgit v0.9.0.2
diff --git a/testing/tracker/tracker-extract-pdf-crash-fix.patch b/testing/tracker/tracker-extract-pdf-crash-fix.patch
new file mode 100644
index 000000000..ac8522f6a
--- /dev/null
+++ b/testing/tracker/tracker-extract-pdf-crash-fix.patch
@@ -0,0 +1,22 @@
+From 008677280d32b6db56483832b143760888c91ad4 Mon Sep 17 00:00:00 2001
+From: Sam Thursfield <sam.thursfield@codethink.co.uk>
+Date: Tue, 31 Jul 2012 14:26:53 +0000
+Subject: tracker-extract-pdf: Fix crash if mmap() fails
+
+Patch from Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=751922
+---
+diff --git a/src/tracker-extract/tracker-extract-pdf.c b/src/tracker-extract/tracker-extract-pdf.c
+index caa24c7..85066b3 100644
+--- a/src/tracker-extract/tracker-extract-pdf.c
++++ b/src/tracker-extract/tracker-extract-pdf.c
+@@ -451,7 +451,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
+ len = 0;
+ } else {
+ contents = (gchar *) mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
+- if (contents == NULL) {
++ if (contents == NULL || contents == MAP_FAILED) {
+ g_warning ("Could not mmap pdf file '%s': %s\n",
+ filename,
+ g_strerror (errno));
+--
+cgit v0.9.0.2
diff --git a/testing/tracker/tracker.install b/testing/tracker/tracker.install
new file mode 100644
index 000000000..95114273e
--- /dev/null
+++ b/testing/tracker/tracker.install
@@ -0,0 +1,13 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/udisks2/PKGBUILD b/testing/udisks2/PKGBUILD
new file mode 100644
index 000000000..263e32349
--- /dev/null
+++ b/testing/udisks2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169147 2012-10-18 19:22:22Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=udisks2
+pkgver=1.99.0
+pkgrel=1
+pkgdesc="Disk Management Service, version 2"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/udisks"
+license=('GPL2')
+depends=('glib2' 'udev' 'polkit' 'libatasmart' 'eject')
+makedepends=('intltool' 'docbook-xsl' 'gobject-introspection')
+optdepends=('parted: partition management'
+ 'gptfdisk: GUID partition table support')
+options=(!libtool)
+source=(http://udisks.freedesktop.org/releases/udisks-$pkgver.tar.bz2)
+sha256sums=('f06d1947ac3c79f3de85ee17b7046da9d22dd9ab06cc75a985e767161704e176')
+
+build() {
+ cd "udisks-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "udisks-$pkgver"
+ make DESTDIR="$pkgdir" install \
+ bash_completiondir=/usr/share/bash-completion/completions
+}
diff --git a/testing/vala/PKGBUILD b/testing/vala/PKGBUILD
new file mode 100644
index 000000000..d31f8101b
--- /dev/null
+++ b/testing/vala/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 169146 2012-10-18 19:22:19Z jgc $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+
+pkgname=vala
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="Compiler for the GObject type system"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Vala"
+license=('LGPL')
+depends=('glib2')
+makedepends=('libxslt')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('18cb2220ce7352a9dd71be058530f7d4a6c8215a1d9c471430af60a04496a60b')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --enable-vapigen
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/vinagre/PKGBUILD b/testing/vinagre/PKGBUILD
new file mode 100644
index 000000000..1e6a3df88
--- /dev/null
+++ b/testing/vinagre/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169145 2012-10-18 19:22:16Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=vinagre
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="A VNC Client for the GNOME Desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/vinagre/"
+install=vinagre.install
+depends=('libsecret' 'gtk-vnc' 'vte3' 'telepathy-glib' 'avahi' 'desktop-file-utils' 'dconf' 'shared-mime-info' 'gnome-icon-theme')
+optdepends=('openssh: SSH plugin'
+ 'rdesktop: RDP plugin')
+makedepends=('docbook-xsl' 'intltool' 'rdesktop' 'openssh' 'itstool')
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('768727f9833ba9b9879d72671bc4b10577f4dfe74488cb0cf4c49edfe0165c62')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vinagre --enable-rdp --disable-spice
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/vinagre/vinagre.install b/testing/vinagre/vinagre.install
new file mode 100644
index 000000000..4998e6e8b
--- /dev/null
+++ b/testing/vinagre/vinagre.install
@@ -0,0 +1,14 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/vino/PKGBUILD b/testing/vino/PKGBUILD
new file mode 100644
index 000000000..282971898
--- /dev/null
+++ b/testing/vino/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 169285 2012-10-18 19:46:05Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vino
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="a VNC server for the GNOME desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libnotify' 'libxtst' 'libsm' 'libsoup' 'telepathy-glib' 'gtk3' 'libsecret' 'avahi' 'desktop-file-utils')
+makedepends=('intltool' 'networkmanager' 'gnome-common')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+options=(!emptydirs)
+install=vino.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('60fdc2271e27c4e10bef40dc2ee836d587930a178c3f189bd975c4d477f32783')
+
+build() {
+ cd $pkgname-$pkgver
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ autoreconf --force
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vino \
+ --localstatedir=/var \
+ --disable-http-server --with-secret
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/vino/vino.install b/testing/vino/vino.install
new file mode 100644
index 000000000..fabaa1ed7
--- /dev/null
+++ b/testing/vino/vino.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/vte3/PKGBUILD b/testing/vte3/PKGBUILD
new file mode 100644
index 000000000..a6eae68f2
--- /dev/null
+++ b/testing/vte3/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 169144 2012-10-18 19:22:14Z jgc $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=vte3
+pkgname=(vte3 vte-common)
+pkgver=0.34.1
+pkgrel=1
+pkgdesc="Virtual Terminal Emulator widget for use with GTK3"
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+makedepends=('intltool' 'gobject-introspection' 'gtk3')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/${pkgver%.*}/vte-$pkgver.tar.xz)
+sha256sums=('06b78824875545ced8ebaff111b656d0b4ed370f46a4b609f43f88a0ee908f08')
+
+build() {
+ cd "vte-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection
+ make
+}
+
+package_vte3(){
+ depends=('gtk3' 'vte-common')
+ cd "vte-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ rm "$pkgdir"/usr/lib/vte/gnome-pty-helper
+}
+
+package_vte-common() {
+ pkgdesc="Common files used by vte and vte3"
+ depends=('glibc')
+ cd "vte-$pkgver"
+
+ make -C gnome-pty-helper DESTDIR="$pkgdir" install
+}
diff --git a/testing/webkitgtk/PKGBUILD b/testing/webkitgtk/PKGBUILD
new file mode 100644
index 000000000..d77de3a00
--- /dev/null
+++ b/testing/webkitgtk/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 165829 2012-08-31 06:08:20Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=webkitgtk
+pkgname=('webkitgtk2' 'webkitgtk3')
+pkgver=1.10.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://webkitgtk.org/"
+license=('custom')
+makedepends=('libxt' 'libxslt' 'sqlite' 'libsoup' 'enchant' 'libgl' 'geoclue' 'gtk2' 'gtk3' 'gst-plugins-base-libs' 'gperf' 'gobject-introspection' 'python2' 'mesa' 'ruby' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+source=(http://webkitgtk.org/releases/webkitgtk-$pkgver.tar.xz)
+sha1sums=('3a2df2eb42ffdd7f3b39873d5461c347a6330493')
+
+build() {
+ cd "$srcdir/webkitgtk-$pkgver"
+ mkdir build-gtk2 build-gtk3
+
+ cd build-gtk2
+ PYTHON=/usr/bin/python2 ../configure --prefix=/usr \
+ --enable-introspection \
+ --disable-silent-rules \
+ --libexecdir=/usr/lib/webkitgtk2 \
+ --with-gstreamer=1.0 \
+ --with-gtk=2.0 \
+ --disable-webkit2
+ make all stamp-po
+
+ cd ../build-gtk3
+ PYTHON=/usr/bin/python2 ../configure --prefix=/usr \
+ --enable-introspection \
+ --disable-silent-rules \
+ --libexecdir=/usr/lib/webkitgtk3 \
+ --with-gstreamer=1.0
+ make all stamp-po
+}
+
+package_webkitgtk3() {
+ pkgdesc="GTK+ Web content engine library for GTK+ 3.0"
+ depends=('libxt' 'libxslt' 'sqlite' 'libsoup' 'enchant' 'libgl' 'geoclue' 'gtk2' 'gtk3' 'gst-plugins-base-libs')
+ conflicts=('libwebkit3')
+ provides=("libwebkit3=${pkgver}")
+ replaces=('libwebkit3')
+
+ cd "$srcdir/webkitgtk-$pkgver/build-gtk3"
+ make -j1 DESTDIR="$pkgdir" install
+ install -Dm644 ../Source/WebKit/LICENSE "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_webkitgtk2() {
+ pkgdesc="GTK+ Web content engine library for GTK+ 2.0"
+ depends=('libxt' 'libxslt' 'sqlite' 'libsoup' 'enchant' 'libgl' 'geoclue' 'gtk2' 'gst-plugins-base-libs')
+ conflicts=('libwebkit')
+ provides=("libwebkit=${pkgver}")
+ replaces=('libwebkit')
+
+ cd "$srcdir/webkitgtk-$pkgver/build-gtk2"
+ make -j1 DESTDIR="$pkgdir" install
+ install -Dm644 ../Source/WebKit/LICENSE "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/xfce4-session/PKGBUILD b/testing/xfce4-session/PKGBUILD
new file mode 100644
index 000000000..70e3be6f8
--- /dev/null
+++ b/testing/xfce4-session/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 169288 2012-10-18 19:49:18Z jgc $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-session
+pkgver=4.10.0
+pkgrel=6
+pkgdesc="A session manager for Xfce"
+arch=('i686' 'x86_64')
+url="http://www.xfce.org/"
+license=('GPL2')
+groups=('xfce4')
+depends=('libxfce4ui' 'libwnck' 'libsm' 'xorg-iceauth' 'upower' 'xorg-xinit'
+ 'hicolor-icon-theme')
+makedepends=('intltool' 'xfce4-dev-tools')
+optdepends=('gnome-keyring: for keyring support when GNOME compatibility is enabled'
+ 'xscreensaver: for locking screen with xflock4'
+ 'gnome-screensaver: for locking screen with xflock4'
+ 'xlockmore: for locking screen with xflock4')
+replaces=('xfce-utils')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+ xfce4-session-4.10.0-add-systemd-support.patch)
+sha256sums=('bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce'
+ 'ffae61c48a4bd0cb51d422cb93f2de9567abaf29085370c455ef349b6a10234b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # https://bugzilla.xfce.org/show_bug.cgi?id=8729
+ patch -Np1 -i "$srcdir/xfce4-session-4.10.0-add-systemd-support.patch"
+
+ xdt-autogen
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/xfce4-session/xfce4-session-4.10.0-add-systemd-support.patch b/testing/xfce4-session/xfce4-session-4.10.0-add-systemd-support.patch
new file mode 100644
index 000000000..7ab637b26
--- /dev/null
+++ b/testing/xfce4-session/xfce4-session-4.10.0-add-systemd-support.patch
@@ -0,0 +1,388 @@
+diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c
+index 4076586..90e7873 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.c
+@@ -0,0 +1,123 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#include <config.h>
++
++#include <gio/gio.h>
++#include <polkit/polkit.h>
++
++#include "xfsm-systemd.h"
++
++#define SYSTEMD_DBUS_NAME "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager"
++#define SYSTEMD_REBOOT_ACTION "org.freedesktop.login1.reboot"
++#define SYSTEMD_SHUTDOWN_ACTION "org.freedesktop.login1.power-off"
++
++struct _SystemdProxy {
++ PolkitAuthority *authority;
++ PolkitSubject *subject;
++};
++
++SystemdProxy *
++systemd_proxy_new (void)
++{
++ SystemdProxy *proxy;
++
++ proxy = g_new0 (SystemdProxy, 1);
++
++ proxy->authority = polkit_authority_get_sync (NULL, NULL);
++ proxy->subject = polkit_unix_process_new (getpid());
++
++ return proxy;
++}
++
++void
++systemd_proxy_free (SystemdProxy *proxy)
++{
++ g_object_unref (proxy->authority);
++ g_object_unref (proxy->subject);
++
++ g_free (proxy);
++}
++
++gboolean systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const gchar *method, GError **error)
++{
++ PolkitAuthorizationResult *res;
++ GError *local_error = NULL;
++
++ *can_method = FALSE;
++ res = polkit_authority_check_authorization_sync (proxy->authority,
++ proxy->subject,
++ method,
++ NULL,
++ POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
++ NULL,
++ &local_error);
++ if (res == NULL) {
++ g_propagate_error (error, local_error);
++ return FALSE;
++ }
++
++ *can_method = polkit_authorization_result_get_is_authorized (res) ||
++ polkit_authorization_result_get_is_challenge (res);
++
++ g_object_unref (res);
++
++ return TRUE;
++}
++
++gboolean systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error)
++{
++ return systemd_proxy_can_method(proxy, can_restart, SYSTEMD_REBOOT_ACTION, error);
++}
++
++gboolean systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error)
++{
++ return systemd_proxy_can_method(proxy, can_shutdown, SYSTEMD_SHUTDOWN_ACTION, error);
++}
++
++gboolean systemd_proxy_method (SystemdProxy *proxy, const gchar *method, GError **error)
++{
++ GDBusConnection *bus;
++
++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
++ g_dbus_connection_call_sync (bus,
++ SYSTEMD_DBUS_NAME,
++ SYSTEMD_DBUS_PATH,
++ SYSTEMD_DBUS_INTERFACE,
++ method,
++ g_variant_new ("(b)", TRUE),
++ NULL, 0, G_MAXINT, NULL, NULL);
++ g_object_unref (bus);
++
++ return TRUE;
++}
++
++gboolean systemd_proxy_restart (SystemdProxy *proxy, GError **error)
++{
++ return systemd_proxy_method(proxy, "Reboot", error);
++}
++
++gboolean systemd_proxy_shutdown (SystemdProxy *proxy, GError **error)
++{
++ return systemd_proxy_method(proxy, "PowerOff", error);
++}
+diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h
+index 3fa8317..2c4d868 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.h
+@@ -0,0 +1,42 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifndef __SYSTEMD_PROXY_H__
++#define __SYSTEMD_PROXY_H__
++
++#include <glib.h>
++
++G_BEGIN_DECLS
++
++typedef struct _SystemdProxy SystemdProxy;
++
++SystemdProxy *systemd_proxy_new (void);
++void systemd_proxy_free (SystemdProxy *proxy);
++gboolean systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const char *method, GError **error);
++gboolean systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error);
++gboolean systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error);
++gboolean systemd_proxy_method (SystemdProxy *proxy, const char *method, GError **error);
++gboolean systemd_proxy_restart (SystemdProxy *proxy, GError **error);
++gboolean systemd_proxy_shutdown (SystemdProxy *proxy, GError **error);
++
++G_END_DECLS
++
++#endif /* __SYSTEMD_PROXY_H__ */
+
+commit 518a28c23f110617aad36e64c02cdab6a36adf37
+Author: Christian Hesse <eworm@leda.eworm.de>
+Date: Fri Jul 27 14:21:14 2012 +0200
+
+ ...
+
+diff --git a/configure.in.in b/configure.in.in
+index 9aa4f8f..aa0b8bb 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,6 +96,33 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0])
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0])
+
++dnl systemd integration
++AC_ARG_ENABLE([systemd],
++ AS_HELP_STRING([--enable-systemd], [Use systemd]),
++ [with_systemd=$enableval],
++ [with_systemd=auto])
++PKG_CHECK_MODULES(SYSTEMD,
++ [libsystemd-login polkit-gobject-1],
++ [have_systemd=yes], [have_systemd=no])
++AC_MSG_CHECKING([whether to use systemd])
++if test x$with_systemd = xauto ; then
++ if test x$have_systemd = xno ; then
++ with_systemd=no
++ else
++ with_systemd=yes
++ fi
++fi
++AC_MSG_RESULT($with_systemd)
++if test x$with_systemd = xyes; then
++ if test x$have_systemd = xno; then
++ AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
++ fi
++ AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
++fi
++AC_SUBST(SYSTEMD_CFLAGS)
++AC_SUBST(SYSTEMD_LIBS)
++AM_CONDITIONAL(WITH_SYSTEMD, [test "$with_systemd" = "yes"], [Using systemd])
++
+ dnl Check for debugging support
+ XDT_FEATURE_DEBUG([xfsm_debug_default])
+
+
+commit f1279eba9452f027a2037be77388767437161d51
+Author: Christian Hesse <eworm@leda.eworm.de>
+Date: Fri Jul 27 14:18:16 2012 +0200
+
+ ...
+
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index 1429abd..077cdf3 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -96,7 +96,11 @@ struct _XfsmShutdown
+ {
+ GObject __parent__;
+
++#ifdef HAVE_SYSTEMD
++ SystemdProxy *systemd_proxy;
++#else
+ XfsmConsolekit *consolekit;
++#endif
+ XfsmUPower *upower;
+
+ /* kiosk settings */
+@@ -134,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown)
+ {
+ XfceKiosk *kiosk;
+
++#ifdef HAVE_SYSTEMD
++ shutdown->systemd_proxy = systemd_proxy_new ();
++#else
+ shutdown->consolekit = xfsm_consolekit_get ();
++#endif
+ shutdown->upower = xfsm_upower_get ();
+ shutdown->helper_state = SUDO_NOT_INITIAZED;
+ shutdown->helper_require_password = FALSE;
+@@ -153,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object)
+ {
+ XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
+
++#ifdef HAVE_SYSTEMD
++ systemd_proxy_free (shutdown->systemd_proxy);
++#else
+ g_object_unref (G_OBJECT (shutdown->consolekit));
++#endif
+ g_object_unref (G_OBJECT (shutdown->upower));
+
+ /* close down helper */
+@@ -644,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown *shutdown,
+ if (shutdown->helper_state == SUDO_AVAILABLE)
+ return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
+ else
++#ifdef HAVE_SYSTEMD
++ return systemd_proxy_restart (shutdown->systemd_proxy, error);
++#else
+ return xfsm_consolekit_try_restart (shutdown->consolekit, error);
++#endif
+ }
+
+
+@@ -661,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown *shutdown,
+ if (shutdown->helper_state == SUDO_AVAILABLE)
+ return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
+ else
++#ifdef HAVE_SYSTEMD
++ return systemd_proxy_shutdown (shutdown->systemd_proxy, error);
++#else
+ return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
++#endif
+ }
+
+
+@@ -701,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown *shutdown,
+ return TRUE;
+ }
+
++#ifdef HAVE_SYSTEMD
++ if (systemd_proxy_can_restart (shutdown->systemd_proxy, can_restart, error))
++#else
+ if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
++#endif
+ return TRUE;
+
+ if (xfsm_shutdown_sudo_init (shutdown, error))
+@@ -728,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown *shutdown,
+ return TRUE;
+ }
+
++#ifdef HAVE_SYSTEMD
++ if (systemd_proxy_can_shutdown (shutdown->systemd_proxy, can_shutdown, error))
++#else
+ if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
++#endif
+ return TRUE;
+
+ if (xfsm_shutdown_sudo_init (shutdown, error))
+
+commit 5aea3fb853683246a537a67423cf5b32076b8dfb
+Author: Christian Hesse <eworm@leda.eworm.de>
+Date: Fri Jul 27 14:03:27 2012 +0200
+
+ ...
+
+diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
+index c015154..7e3b311 100644
+--- a/xfce4-session/Makefile.am
++++ b/xfce4-session/Makefile.am
+@@ -38,8 +38,6 @@ xfce4_session_SOURCES = \
+ xfsm-compat-gnome.h \
+ xfsm-compat-kde.c \
+ xfsm-compat-kde.h \
+- xfsm-consolekit.c \
+- xfsm-consolekit.h \
+ xfsm-dns.c \
+ xfsm-dns.h \
+ xfsm-error.c \
+@@ -65,6 +63,16 @@ xfce4_session_SOURCES = \
+ xfsm-upower.c \
+ xfsm-upower.h
+
++if WITH_SYSTEMD
++xfce4_session_SOURCES += \
++ xfsm-systemd.c \
++ xfsm-systemd.h
++else
++xfce4_session_SOURCES += \
++ xfsm-consolekit.c \
++ xfsm-consolekit.h
++endif
++
+ xfce4_session_CFLAGS = \
+ $(LIBSM_CFLAGS) \
+ $(LIBX11_CFLAGS) \
+@@ -72,6 +80,7 @@ xfce4_session_CFLAGS = \
+ $(DBUS_CFLAGS) \
+ $(DBUS_GLIB_CFLAGS) \
+ $(LIBWNCK_CFLAGS) \
++ $(SYSTEMD_CFLAGS) \
+ $(XFCONF_CFLAGS) \
+ $(GMODULE_CFLAGS) \
+ $(PLATFORM_CFLAGS)
+@@ -91,6 +100,7 @@ xfce4_session_LDADD = \
+ $(DBUS_LIBS) \
+ $(DBUS_GLIB_LIBS) \
+ $(LIBWNCK_LIBS) \
++ $(SYSTEMD_LIBS) \
+ $(XFCONF_LIBS) \
+ -lm
+
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index d8757a8..1429abd 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -66,10 +66,13 @@
+ #include <xfce4-session/xfsm-fadeout.h>
+ #include <xfce4-session/xfsm-global.h>
+ #include <xfce4-session/xfsm-legacy.h>
+-#include <xfce4-session/xfsm-consolekit.h>
+ #include <xfce4-session/xfsm-upower.h>
+
+-
++#ifdef HAVE_SYSTEMD
++#include <xfce4-session/xfsm-systemd.h>
++#else
++#include <xfce4-session/xfsm-consolekit.h>
++#endif
+
+ static void xfsm_shutdown_finalize (GObject *object);
+ static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown);
diff --git a/testing/xfce4-session/xfce4-session.install b/testing/xfce4-session/xfce4-session.install
new file mode 100644
index 000000000..e4f8fd06c
--- /dev/null
+++ b/testing/xfce4-session/xfce4-session.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/xorg-xdm/PKGBUILD b/testing/xorg-xdm/PKGBUILD
index 1bcad22de..5a2ce0012 100644
--- a/testing/xorg-xdm/PKGBUILD
+++ b/testing/xorg-xdm/PKGBUILD
@@ -1,41 +1,37 @@
-# $Id: PKGBUILD 162974 2012-07-04 13:21:33Z dreisner $
+# $Id: PKGBUILD 169289 2012-10-18 19:49:22Z jgc $
# Maintainer: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=xorg-xdm
pkgver=1.1.11
-pkgrel=3
+pkgrel=4
pkgdesc="X Display Manager"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
-depends=('pam' 'libxaw' 'libxinerama' 'xorg-xrdb' 'xorg-sessreg' 'libxft' 'consolekit')
-makedepends=('pkgconfig' 'xorg-util-macros' 'systemd' 'xtrans')
+depends=('pam' 'libxaw' 'libxinerama' 'xorg-xrdb' 'xorg-sessreg' 'libxft' 'systemd')
+makedepends=('pkgconfig' 'xorg-util-macros' 'xtrans')
backup=(etc/X11/xdm/Xaccess etc/X11/xdm/Xresources etc/X11/xdm/Xservers etc/X11/xdm/xdm-config etc/pam.d/xdm etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xsession)
options=('!libtool')
source=(${url}/releases/individual/app/xdm-${pkgver}.tar.bz2
Xsession-loginshell.patch
Xsession-xsm.patch
- xdm-consolekit.patch
xdm-1.0.5-sessreg-utmp-fix-bug177890.patch
- xdm.pam)
-md5sums=('64a1af1f7eb69feae12e75d4cc3aaf19'
- '234ae568e7b22cbc09433bb396ff3d80'
- '2c30078c50bc653d72eb5114506eb313'
- '25c6d8adeed0796d432b2bbf1d83a7e9'
- '13032add23a0a8d48a638418094bfc00'
- '6de9362b1bf0835026270b20d8029909')
+ xdm.pam
+ git_fixes.diff)
sha256sums=('d4da426ddea0124279a3f2e00a26db61944690628ee818a64df9d27352081c47'
'fd3e7c20837b42a8ab111369fd6dc9612f9edb91c1f6904cca1d6a1fa3cfa0ff'
'77a1ce9bdf363591b72798db08b4df3589bd4e64737fd32cf9028f9245450edb'
- '10ce850e6a93c6ba68b5d71104b1fd6680ad9760274068512f43a694b1edda76'
'5f380a2d6f77feb910d77f7f6843fce9b00ff7610c159fc029ee44cc6c23a48a'
- '7d6818a1c1a44e9bd38774c035e03b0b831f6646681bc2bf556761aec7baf418')
+ '7d6818a1c1a44e9bd38774c035e03b0b831f6646681bc2bf556761aec7baf418'
+ '781b5577bb070220d018a11832d0d4a65fd16e130730ba26fb055c3aa68156b2')
build() {
cd "${srcdir}/xdm-${pkgver}"
+ # upstream commits - Add some missing malloc failure checks 2012-01-07
+ patch -Np1 -i "${srcdir}/git_fixes.diff"
+
patch -Np0 -i "${srcdir}/Xsession-loginshell.patch"
patch -Np1 -i "${srcdir}/Xsession-xsm.patch"
- patch -Np1 -i "${srcdir}/xdm-consolekit.patch"
patch -Np0 -i "${srcdir}/xdm-1.0.5-sessreg-utmp-fix-bug177890.patch"
autoreconf -fi
diff --git a/testing/xorg-xdm/git_fixes.diff b/testing/xorg-xdm/git_fixes.diff
new file mode 100644
index 000000000..69836d488
--- /dev/null
+++ b/testing/xorg-xdm/git_fixes.diff
@@ -0,0 +1,673 @@
+From 011a2710a69cd345a8ee3a6b2f15407b4c3b355a Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Sun, 25 Sep 2011 07:56:15 +0000
+Subject: Require xt >= 1.0 for appdefaultdir
+
+https://bugs.freedesktop.org/show_bug.cgi?id=7237
+
+Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+---
+diff --git a/configure.ac b/configure.ac
+index b488f0c..a4222f1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -383,7 +383,7 @@ PKG_CHECK_MODULES(AUTH, xau)
+ # Greeter
+ #
+
+-PKG_CHECK_MODULES(XDMGREET, xt x11 xext)
++PKG_CHECK_MODULES(XDMGREET, xt >= 1.0 x11 xext)
+
+ GREETERLIB="${XDMLIBDIR}/libXdmGreet.so"
+ AX_DEFINE_DIR(DEF_GREETER_LIB, GREETERLIB, [Location of Xdm Greeter library])
+--
+cgit v0.9.0.2-2-gbebe
+From 618039261b0c7f14eb3b32c8f636464369724407 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed, 21 Sep 2011 02:11:20 +0000
+Subject: Mark some chars as const to fix gcc -Wwrite-strings warnings
+
+Can't fix all the warnings, due to the Xt API, but can fix a bunch.
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/greeter/greet.c b/greeter/greet.c
+index 539ce17..82e2c21 100644
+--- a/greeter/greet.c
++++ b/greeter/greet.c
+@@ -110,9 +110,9 @@ void (*__xdm_SessionExit)(struct display *d, int status, int removeAuth) = NU
+ void (*__xdm_DeleteXloginResources)(struct display *d, Display *dpy) = NULL;
+ int (*__xdm_source)(char **environ, char *file) = NULL;
+ char **(*__xdm_defaultEnv)(void) = NULL;
+-char **(*__xdm_setEnv)(char **e, char *name, char *value) = NULL;
++char **(*__xdm_setEnv)(char **e, const char *name, const char *value) = NULL;
+ char **(*__xdm_putEnv)(const char *string, char **env) = NULL;
+-char **(*__xdm_parseArgs)(char **argv, char *string) = NULL;
++char **(*__xdm_parseArgs)(char **argv, const char *string) = NULL;
+ void (*__xdm_printEnv)(char **e) = NULL;
+ char **(*__xdm_systemEnv)(struct display *d, char *user, char *home) = NULL;
+ void (*__xdm_LogOutOfMem)(const char * fmt, ...) = NULL;
+diff --git a/greeter/verify.c b/greeter/verify.c
+index ea62cd2..5d2ad17 100644
+--- a/greeter/verify.c
++++ b/greeter/verify.c
+@@ -61,7 +61,7 @@ from The Open Group.
+ extern char *crypt(const char *, const char *);
+ #endif
+
+-static char *envvars[] = {
++static const char *envvars[] = {
+ "TZ", /* SYSV and SVR4, but never hurts */
+ #if defined(sony) && !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV)
+ "bootdev",
+@@ -94,8 +94,8 @@ static char **
+ userEnv (struct display *d, int useSystemPath, char *user, char *home, char *shell)
+ {
+ char **env;
+- char **envvar;
+- char *str;
++ const char **envvar;
++ const char *str;
+
+ env = defaultEnv ();
+ env = setEnv (env, "DISPLAY", d->name);
+diff --git a/include/dm.h b/include/dm.h
+index 316dd46..4085cae 100644
+--- a/include/dm.h
++++ b/include/dm.h
+@@ -443,7 +443,7 @@ extern void UnsecureDisplay (struct display *d, Display *dpy);
+ extern void execute(char **argv, char **environ);
+
+ /* server.c */
+-extern char *_SysErrorMsg (int n);
++extern const char *_SysErrorMsg (int n);
+ extern int StartServer (struct display *d);
+ extern int WaitForServer (struct display *d);
+ extern void ResetServer (struct display *d);
+@@ -462,10 +462,10 @@ extern int Asprintf(char ** ret, const char *restrict format, ...)
+ _X_ATTRIBUTE_PRINTF(2,3);
+ # endif
+ extern char *localHostname (void);
+-extern char **parseArgs (char **argv, char *string);
+-extern char **setEnv (char **e, char *name, char *value);
++extern char **parseArgs (char **argv, const char *string);
++extern char **setEnv (char **e, const char *name, const char *value);
+ extern char **putEnv(const char *string, char **env);
+-extern char *getEnv (char **e, char *name);
++extern char *getEnv (char **e, const char *name);
+ extern void CleanUpChild (void);
+ extern void freeArgs (char **argv);
+ extern void freeEnv (char **env);
+@@ -478,7 +478,7 @@ extern int Verify (struct display *d, struct greet_info *greet, struct verify_in
+ extern char *NetworkAddressToHostname (CARD16 connectionType, ARRAY8Ptr connectionAddress);
+ extern int AnyWellKnownSockets (void);
+ extern void DestroyWellKnownSockets (void);
+-extern void SendFailed (struct display *d, char *reason);
++extern void SendFailed (struct display *d, const char *reason);
+ extern void StopDisplay (struct display *d);
+ extern void WaitForChild (void);
+ extern void WaitForSomething (void);
+diff --git a/include/greet.h b/include/greet.h
+index 6b6689e..0d607ba 100644
+--- a/include/greet.h
++++ b/include/greet.h
+@@ -65,9 +65,9 @@ struct dlfuncs {
+ void (*_DeleteXloginResources)(struct display *d, Display *dpy);
+ int (*_source)(char **environ, char *file);
+ char **(*_defaultEnv)(void);
+- char **(*_setEnv)(char **e, char *name, char *value);
++ char **(*_setEnv)(char **e, const char *name, const char *value);
+ char **(*_putEnv)(const char *string, char **env);
+- char **(*_parseArgs)(char **argv, char *string);
++ char **(*_parseArgs)(char **argv, const char *string);
+ void (*_printEnv)(char **e);
+ char **(*_systemEnv)(struct display *d, char *user, char *home);
+ void (*_LogOutOfMem)(const char * fmt, ...);
+@@ -149,9 +149,9 @@ extern void (*__xdm_SessionExit)(struct display *d, int status, int removeAut
+ extern void (*__xdm_DeleteXloginResources)(struct display *d, Display *dpy);
+ extern int (*__xdm_source)(char **environ, char *file);
+ extern char **(*__xdm_defaultEnv)(void);
+-extern char **(*__xdm_setEnv)(char **e, char *name, char *value);
++extern char **(*__xdm_setEnv)(char **e, const char *name, const char *value);
+ extern char **(*__xdm_putEnv)(const char *string, char **env);
+-extern char **(*__xdm_parseArgs)(char **argv, char *string);
++extern char **(*__xdm_parseArgs)(char **argv, const char *string);
+ extern void (*__xdm_printEnv)(char **e);
+ extern char **(*__xdm_systemEnv)(struct display *d, char *user, char *home);
+ extern void (*__xdm_LogOutOfMem)(const char * fmt, ...);
+diff --git a/xdm/access.c b/xdm/access.c
+index d0850ad..7035375 100644
+--- a/xdm/access.c
++++ b/xdm/access.c
+@@ -667,7 +667,7 @@ scanHostlist (
+ /* Returns non-0 iff string is matched by pattern. Does case folding.
+ */
+ static int
+-patternMatch (char *string, char *pattern)
++patternMatch (const char *string, char *pattern)
+ {
+ int p, s;
+
+diff --git a/xdm/auth.c b/xdm/auth.c
+index bbca167..9e5cba2 100644
+--- a/xdm/auth.c
++++ b/xdm/auth.c
+@@ -116,7 +116,7 @@ int chown(int a,int b,int c) {}
+
+ struct AuthProtocol {
+ unsigned short name_length;
+- char *name;
++ const char *name;
+ void (*InitAuth)(unsigned short len, char *name);
+ Xauth *(*GetAuth)(unsigned short len, char *name);
+ void (*GetXdmcpAuth)(
+diff --git a/xdm/file.c b/xdm/file.c
+index 6e929b8..7b7f3d3 100644
+--- a/xdm/file.c
++++ b/xdm/file.c
+@@ -225,7 +225,7 @@ ParseDisplay (char *source, DisplayType *acceptableTypes, int numAcceptable)
+ }
+
+ static struct displayMatch {
+- char *name;
++ const char *name;
+ DisplayType type;
+ } displayTypes[] = {
+ { "local", { Local, Permanent, FromFile } },
+diff --git a/xdm/resource.c b/xdm/resource.c
+index ece4de3..83901a2 100644
+--- a/xdm/resource.c
++++ b/xdm/resource.c
+@@ -145,10 +145,10 @@ int choiceTimeout; /* chooser choice timeout */
+ #define DEF_UDP_PORT "177" /* registered XDMCP port, dont change */
+
+ struct dmResources {
+- char *name, *class;
+- int type;
+- char **dm_value;
+- char *default_value;
++ const char *name, *class;
++ int type;
++ char **dm_value;
++ const char *default_value;
+ } DmResources[] = {
+ { "servers", "Servers", DM_STRING, &servers,
+ DEF_SERVER_LINE} ,
+@@ -203,10 +203,10 @@ struct dmResources {
+ #define boffset(f) XtOffsetOf(struct display, f)
+
+ struct displayResource {
+- char *name, *class;
+- int type;
+- int offset;
+- char *default_value;
++ const char *name, *class;
++ int type;
++ int offset;
++ const char *default_value;
+ };
+
+ /* resources for managing the server */
+@@ -289,15 +289,16 @@ XrmDatabase DmResourceDB;
+
+ static void
+ GetResource (
+- char *name,
+- char *class,
+- int valueType,
+- char **valuep,
+- char *default_value)
++ const char *name,
++ const char *class,
++ int valueType,
++ char **valuep,
++ const char *default_value)
+ {
+ char *type;
+ XrmValue value;
+- char *string, *new_string;
++ const char *string;
++ char *new_string;
+ char str_buf[50];
+ int len;
+
+diff --git a/xdm/server.c b/xdm/server.c
+index 7fe55e6..1bb8873 100644
+--- a/xdm/server.c
++++ b/xdm/server.c
+@@ -62,9 +62,9 @@ CatchUsr1 (int n)
+ errno = olderrno;
+ }
+
+-char *_SysErrorMsg (int n)
++const char *_SysErrorMsg (int n)
+ {
+- char *s = strerror(n);
++ const char *s = strerror(n);
+ return (s ? s : "unknown error");
+ }
+
+diff --git a/xdm/util.c b/xdm/util.c
+index 033633a..60aab21 100644
+--- a/xdm/util.c
++++ b/xdm/util.c
+@@ -97,7 +97,7 @@ printEnv (char **e)
+ }
+
+ static char *
+-makeEnv (char *name, char *value)
++makeEnv (const char *name, const char *value)
+ {
+ char *result;
+
+@@ -111,7 +111,7 @@ makeEnv (char *name, char *value)
+ }
+
+ char *
+-getEnv (char **e, char *name)
++getEnv (char **e, const char *name)
+ {
+ int l = strlen (name);
+
+@@ -127,7 +127,7 @@ getEnv (char **e, char *name)
+ }
+
+ char **
+-setEnv (char **e, char *name, char *value)
++setEnv (char **e, const char *name, const char *value)
+ {
+ char **new, **old;
+ char *newe;
+@@ -207,9 +207,9 @@ freeEnv (char **env)
+ #define isblank(c) ((c) == ' ' || c == '\t')
+
+ char **
+-parseArgs (char **argv, char *string)
++parseArgs (char **argv, const char *string)
+ {
+- char *word;
++ const char *word;
+ char *save;
+ char **newargv;
+ int i;
+diff --git a/xdm/xdmauth.c b/xdm/xdmauth.c
+index 4b945cf..66804a4 100644
+--- a/xdm/xdmauth.c
++++ b/xdm/xdmauth.c
+@@ -44,7 +44,7 @@ static char auth_name[256];
+ static int auth_name_len;
+
+ static void
+-XdmPrintDataHex (char *s, char *a, int l)
++XdmPrintDataHex (const char *s, const char *a, int l)
+ {
+ int i;
+
+@@ -56,7 +56,7 @@ XdmPrintDataHex (char *s, char *a, int l)
+
+ # ifdef XDMCP
+ static void
+-XdmPrintArray8Hex (char *s, ARRAY8Ptr a)
++XdmPrintArray8Hex (const char *s, ARRAY8Ptr a)
+ {
+ XdmPrintDataHex (s, (char *) a->data, a->length);
+ }
+diff --git a/xdm/xdmcp.c b/xdm/xdmcp.c
+index 5bc4716..1c34e7c 100644
+--- a/xdm/xdmcp.c
++++ b/xdm/xdmcp.c
+@@ -74,7 +74,7 @@ static void request_respond (struct sockaddr *from, int fromlen, int length, int
+ static void send_accept (struct sockaddr *to, int tolen, CARD32 sessionID, ARRAY8Ptr authenticationName, ARRAY8Ptr authenticationData, ARRAY8Ptr authorizationName, ARRAY8Ptr authorizationData, int fd);
+ static void send_alive (struct sockaddr *from, int fromlen, int length, int fd);
+ static void send_decline (struct sockaddr *to, int tolen, ARRAY8Ptr authenticationName, ARRAY8Ptr authenticationData, ARRAY8Ptr status, int fd);
+-static void send_failed (struct sockaddr *from, int fromlen, char *name, CARD32 sessionID, char *reason, int fd);
++static void send_failed (struct sockaddr *from, int fromlen, const char *name, CARD32 sessionID, const char *reason, int fd);
+ static void send_refuse (struct sockaddr *from, int fromlen, CARD32 sessionID, int fd);
+ static void send_unwilling (struct sockaddr *from, int fromlen, ARRAY8Ptr authenticationName, ARRAY8Ptr status, int fd);
+ static void send_willing (struct sockaddr *from, int fromlen, ARRAY8Ptr authenticationName, ARRAY8Ptr status, int fd);
+@@ -1300,7 +1300,7 @@ abort:
+ void
+ SendFailed (
+ struct display *d,
+- char *reason)
++ const char *reason)
+ {
+ Debug ("Display start failed, sending Failed\n");
+ send_failed ((struct sockaddr *)(d->from), d->fromlen, d->name,
+@@ -1311,9 +1311,9 @@ static void
+ send_failed (
+ struct sockaddr *from,
+ int fromlen,
+- char *name,
++ const char *name,
+ CARD32 sessionID,
+- char *reason,
++ const char *reason,
+ int fd)
+ {
+ static char buf[256];
+@@ -1416,7 +1416,7 @@ NetworkAddressToHostname (
+ # else
+ char dotted[20];
+ # endif
+- char *local_name = "";
++ const char *local_name = "";
+ int af_type;
+
+ # if defined(IPv6) && defined(AF_INET6)
+--
+cgit v0.9.0.2-2-gbebe
+From c43eb799774743bc50233eff6643c51a5fbe6899 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed, 21 Sep 2011 02:22:48 +0000
+Subject: Fix warnings about printing longs with int type format strings
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/xdm/dm.c b/xdm/dm.c
+index cd0ee25..7bc2605 100644
+--- a/xdm/dm.c
++++ b/xdm/dm.c
+@@ -536,7 +536,7 @@ WaitForChild (void)
+ time(&now);
+ crash = d->lastReserv &&
+ ((now - d->lastReserv) < XDM_BROKEN_INTERVAL);
+- Debug("time %i %i try %i of %i%s\n", now, d->lastReserv,
++ Debug("time %li %li try %i of %i%s\n", now, d->lastReserv,
+ d->reservTries, d->reservAttempts,
+ crash ? " crash" : "");
+
+diff --git a/xdm/xdmauth.c b/xdm/xdmauth.c
+index 66804a4..b3c1c16 100644
+--- a/xdm/xdmauth.c
++++ b/xdm/xdmauth.c
+@@ -234,7 +234,7 @@ XdmGetKey(struct protoDisplay *pdpy, ARRAY8Ptr displayID)
+ if (line[0] == '#' || sscanf (line, "%s %s", id, key) != 2)
+ continue;
+ bzero(line, sizeof(line));
+- Debug ("Key entry for \"%s\" %d bytes\n", id, strlen(key));
++ Debug ("Key entry for \"%s\" %ld bytes\n", id, strlen(key));
+ if (strlen (id) == displayID->length &&
+ !strncmp (id, (char *)displayID->data, displayID->length))
+ {
+--
+cgit v0.9.0.2-2-gbebe
+From 8eee942be0db913511b4c53f94829e1201dfdf00 Mon Sep 17 00:00:00 2001
+From: Michał Górny <mgorny@gentoo.org>
+Date: Wed, 28 Sep 2011 19:25:17 +0000
+Subject: Support systemd startup notification.
+
+If libsystemd-daemon support is enabled, xdm uses it to announce its
+startup as soon as the session is established. This gives the user
+opportunity to delay I/O-intensive operations until the X server is
+started so that they would not interfere with its loading while keeping
+the machine busy when user types in his/her login.
+
+Reviewed-by: Jamey Sharp <jamey@minilop.net>
+Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/Makefile.am b/Makefile.am
+index e5f9f5c..bb6b51c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -43,8 +43,13 @@ endif LINT
+ if HAVE_SYSTEMD
+ systemdsystemunit_DATA = xdm.service
+
+-xdm.service: xdm.service.in
+- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < $< > $@
++xdm.service: xdm.service.in Makefile
++if USE_SYSTEMD_DAEMON
++ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < xdm.service.in > $@
++else !USE_SYSTEMD_DAEMON
++ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < xdm.service.in > $@
++endif !USE_SYSTEMD_DAEMON
++
+ endif HAVE_SYSTEMD
+ CLEANFILES = xdm.service
+ EXTRA_DIST = xdm.service.in
+diff --git a/configure.ac b/configure.ac
+index a4222f1..fcb37f8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -146,6 +146,7 @@ if test "x$USE_SELINUX" != "xno" ; then
+ fi
+
+ # Check whether to install systemd unit files, as suggested in daemon(7).
++# When a full path is specified, this does not require systemd installed.
+ AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
+ [Directory for systemd service files (default from the System and Service Manager)]),,
+ [with_systemdsystemunitdir=auto])
+@@ -166,6 +167,21 @@ AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
+ ])
+ AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
+
++# Check whether to enable systemd startup notification.
++# This requires libsystemd-daemon.
++AC_ARG_WITH([systemd-daemon], AS_HELP_STRING([--with-systemd-daemon],
++ [Add support for systemd startup notification (default is autodetected)]),
++ [USE_SYSTEMD_DAEMON=$withval], [USE_SYSTEMD_DAEMON=auto])
++AS_IF([test "x$USE_SYSTEMD_DAEMON" != "xno"], [
++ PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
++ [AC_DEFINE(USE_SYSTEMD_DAEMON,1,[Use systemd startup notification])],
++ [AS_IF([test "x$USE_SYSTEMD_DAEMON" = "xyes"],
++ [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd-daemon not found.])]
++ )]
++ )
++])
++AM_CONDITIONAL(USE_SYSTEMD_DAEMON, [test "x$USE_SYSTEMD_DAEMON" != "xno"])
++
+ # FIXME: Find better test for which OS'es use su -m - for now, just try to
+ # mirror the Imakefile setting of:
+ # if defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
+diff --git a/xdm.service.in b/xdm.service.in
+index d15e072..e782dd9 100644
+--- a/xdm.service.in
++++ b/xdm.service.in
+@@ -4,6 +4,8 @@ After=systemd-user-sessions.service
+
+ [Service]
+ ExecStart=BINDIR/xdm -nodaemon
++Type=notify
++NotifyAccess=all
+
+ [Install]
+ Alias=graphical.target.wants/xdm.service
+diff --git a/xdm/Makefile.am b/xdm/Makefile.am
+index aa9765c..797b5c5 100644
+--- a/xdm/Makefile.am
++++ b/xdm/Makefile.am
+@@ -22,11 +22,11 @@
+ bin_PROGRAMS = xdm
+
+ AM_CPPFLAGS = -I$(top_srcdir)/include
+-AM_CFLAGS = $(CWARNFLAGS) $(XDM_CFLAGS)
++AM_CFLAGS = $(CWARNFLAGS) $(XDM_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS)
+
+ # The xdm binary needs to export symbols so that they can be used from
+ # libXdmGreet.so loaded through a dlopen call from session.c
+-AM_LDFLAGS = $(XDM_LIBS) -export-dynamic
++AM_LDFLAGS = $(XDM_LIBS) $(SYSTEMD_DAEMON_LIBS) -export-dynamic
+
+ xdm_SOURCES = \
+ access.c \
+diff --git a/xdm/session.c b/xdm/session.c
+index 5fd47f0..573747d 100644
+--- a/xdm/session.c
++++ b/xdm/session.c
+@@ -81,6 +81,10 @@ extern int key_setnet(struct key_netstarg *arg);
+ # define RTLD_NOW 1
+ # endif
+
++#ifdef USE_SYSTEMD_DAEMON
++#include <systemd/sd-daemon.h>
++#endif
++
+ #ifdef USE_SELINUX
+ /* This should be run just before we exec the user session. */
+ static int
+@@ -349,6 +353,12 @@ ManageSession (struct display *d)
+ exit(UNMANAGE_DISPLAY);
+ }
+
++#ifdef USE_SYSTEMD_DAEMON
++ /* Subsequent notifications will be ignored by systemd
++ * and calling this function will clean up the env */
++ sd_notify(1, "READY=1");
++#endif
++
+ /* tell the possibly dynamically loaded greeter function
+ * what data structure formats to expect.
+ * These version numbers are registered with The Open Group. */
+--
+cgit v0.9.0.2-2-gbebe
+From 284532c0884893728b75ca37f5d2a9a33f7bc8db Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Sat, 22 Oct 2011 15:14:46 +0000
+Subject: greeter: link against -lXrender if xft is enabled
+
+XmuCvtStringToXftColor uses XRenderParseColor, so require xrender for
+the xft option, and link against it.
+
+Signed-off-by: Julien Cristau <jcristau@debian.org>
+Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/configure.ac b/configure.ac
+index fcb37f8..d20ae28 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -345,10 +345,10 @@ AC_ARG_WITH(xft,
+ AS_HELP_STRING([--with-xft],
+ [Use Xft to draw text (default is YES if installed)]),
+ [USE_XFT="$withval"],
+- PKG_CHECK_EXISTS(xft, [USE_XFT="yes"], [USE_XFT="no"]))
++ PKG_CHECK_EXISTS(xft xrender, [USE_XFT="yes"], [USE_XFT="no"]))
+
+ if test "x$USE_XFT" = "xyes" ; then
+- PKG_CHECK_MODULES(XFT, xft)
++ PKG_CHECK_MODULES(XFT, xft xrender)
+ GREETER_CFLAGS="$GREETER_CFLAGS $XFT_CFLAGS"
+ GREETER_LIBS="$GREETER_LIBS $XFT_LIBS"
+ AC_DEFINE([USE_XFT], 1,
+diff --git a/greeter/Login.c b/greeter/Login.c
+index 99a3932..d899376 100644
+--- a/greeter/Login.c
++++ b/greeter/Login.c
+@@ -86,6 +86,10 @@ from The Open Group.
+ # include <X11/extensions/Xinerama.h>
+ #endif
+
++#ifdef USE_XFT
++# include <X11/extensions/Xrender.h>
++#endif
++
+ #ifndef DEBUG
+ # define XDM_ASSERT(a) /* do nothing */
+ #else
+--
+cgit v0.9.0.2-2-gbebe
+From a02edebf21aae37f8564d7b9fad01d5d2942ad8d Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Mon, 07 Nov 2011 16:01:44 +0000
+Subject: Fix build outside of source dir. Fixes distcheck too.
+
+Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
+Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/Makefile.am b/Makefile.am
+index bb6b51c..e9da40f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -45,9 +45,9 @@ systemdsystemunit_DATA = xdm.service
+
+ xdm.service: xdm.service.in Makefile
+ if USE_SYSTEMD_DAEMON
+- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < xdm.service.in > $@
++ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < ${srcdir}/xdm.service.in > $@
+ else !USE_SYSTEMD_DAEMON
+- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < xdm.service.in > $@
++ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < ${srcdir}/xdm.service.in > $@
+ endif !USE_SYSTEMD_DAEMON
+
+ endif HAVE_SYSTEMD
+--
+cgit v0.9.0.2-2-gbebe
+From ad7a54288f62c0266540279dac775ebee68f092e Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Thu, 15 Dec 2011 21:14:23 +0000
+Subject: replace <varargs.h> by <stdarg.h>. Spotted my Marco Peereboom with clang.
+
+Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
+Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
+---
+diff --git a/greeter/verify.c b/greeter/verify.c
+index 5d2ad17..1221874 100644
+--- a/greeter/verify.c
++++ b/greeter/verify.c
+@@ -48,7 +48,7 @@ from The Open Group.
+ # include <errno.h>
+ #elif defined(USE_BSDAUTH)
+ # include <login_cap.h>
+-# include <varargs.h>
++# include <stdarg.h>
+ # include <bsd_auth.h>
+ #elif defined(USESECUREWARE)
+ # include <sys/types.h>
+--
+cgit v0.9.0.2-2-gbebe
+From 78403f6a7420798bf24798811c8c6b936c9ccb34 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sat, 07 Jan 2012 03:34:30 +0000
+Subject: Add some missing malloc failure checks
+
+Flagged by Solaris Studio 12.3 code analyzer
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/xdm/access.c b/xdm/access.c
+index 7035375..b16a066 100644
+--- a/xdm/access.c
++++ b/xdm/access.c
+@@ -304,6 +304,11 @@ tryagain:
+ if (!hostOrAlias)
+ return NULL;
+ h = malloc (sizeof (DisplayEntry));
++ if (!h)
++ {
++ LogOutOfMem ("ReadHostEntry: DisplayEntry\n");
++ return NULL;
++ }
+ h->hopCount = 1;
+ if (*hostOrAlias == ALIAS_CHARACTER)
+ {
+@@ -423,6 +428,11 @@ tryagain:
+ if (!displayOrAlias)
+ return NULL;
+ d = malloc (sizeof (DisplayEntry));
++ if (!d)
++ {
++ LogOutOfMem ("ReadDisplayEntry: DisplayEntry\n");
++ return NULL;
++ }
+ d->notAllowed = 0;
+ d->notBroadcast = 0;
+ d->chooser = 0;
+diff --git a/xdm/choose.c b/xdm/choose.c
+index 6f077eb..e5e003d 100644
+--- a/xdm/choose.c
++++ b/xdm/choose.c
+@@ -128,6 +128,11 @@ RememberIndirectClient (
+ connectionType == i->connectionType)
+ return 1;
+ i = malloc (sizeof (IndirectUsersRec));
++ if (!i)
++ {
++ LogOutOfMem ("RememberIndirectClient\n");
++ return 0;
++ }
+ if (!XdmcpCopyARRAY8 (clientAddress, &i->client))
+ {
+ free (i);
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/yelp/PKGBUILD b/testing/yelp/PKGBUILD
new file mode 100644
index 000000000..af6fb7ae1
--- /dev/null
+++ b/testing/yelp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 169142 2012-10-18 19:22:09Z jgc $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=yelp
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="A help browser for GNOME"
+arch=('i686' 'x86_64')
+depends=('webkitgtk3' 'yelp-xsl' 'libxslt' 'hicolor-icon-theme' 'dbus-glib' 'xz' 'bzip2'
+ 'desktop-file-utils' 'dconf')
+makedepends=('intltool' 'gtk-doc' 'itstool')
+groups=('gnome')
+license=('GPL')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+install=yelp.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('966a513420674c488b18df0ffcf51f8b4687cdba04b1d1d5e76d59c0484ac048')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/yelp/yelp.install b/testing/yelp/yelp.install
new file mode 100644
index 000000000..2a1cb91e9
--- /dev/null
+++ b/testing/yelp/yelp.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/zenity/PKGBUILD b/testing/zenity/PKGBUILD
new file mode 100644
index 000000000..d5dd093fe
--- /dev/null
+++ b/testing/zenity/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 169139 2012-10-18 19:22:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=zenity
+pkgver=3.6.0
+pkgrel=1
+pkgdesc="Display graphical dialog boxes from shell scripts"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk3' 'libnotify')
+makedepends=('intltool' 'gtk-doc' 'itstool' 'docbook-xsl')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('5de4ebbb6888ad4928fa9eebcd42dbe5bb282bee9dd7dd21475d9eaa854c74be')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}